intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Đề án tốt nghiệp Thạc sĩ Kỹ thuật: Ứng dụng phương pháp học sâu vào nhận dạng cảm xúc để đánh giá độ hài lòng khách hàng

Chia sẻ: Cảnh Phương Thanh | Ngày: | Loại File: PDF | Số trang:61

11
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Đề án "Ứng dụng phương pháp học sâu vào nhận dạng cảm xúc để đánh giá độ hài lòng khách hàng" hướng tới một ứng dụng có chức năng phát hiện ra khuôn mặt người và nhận dạng cảm xúc trên khuôn mặt đó như giận giữ, khinh thường, sợ hãi, vui vẻ/hạnh phúc, bình thường, buồn, ngạc nhiên. Thông qua nghiên cứu các phương pháp học máy cho bài toán nhận dạng cảm xúc mặt người và ngôn ngữ lập trình Python, đề án muốn xây dựng một ứng dụng có thể nhận dạng được cảm xúc của khuôn mặt người từ đó đánh giá độ hài lòng của khách hàng. Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Đề án tốt nghiệp Thạc sĩ Kỹ thuật: Ứng dụng phương pháp học sâu vào nhận dạng cảm xúc để đánh giá độ hài lòng khách hàng

  1. HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG --------------------------------------- Nguyễn Phước Đại ỨNG DỤNG PHƯƠNG PHÁP HỌC SÂU VÀO NHẬN DẠNG CẢM XÚC ĐỂ ĐÁNH GIÁ ĐỘ HÀI LÒNG KHÁCH HÀNG ĐỀ ÁN TỐT NGHIỆP THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) THÀNH PHỐ HỒ CHÍ MINH - 2023
  2. HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG --------------------------------------- Nguyễn Phước Đại ỨNG DỤNG PHƯƠNG PHÁP HỌC SÂU VÀO NHẬN DẠNG CẢM XÚC ĐỂ ĐÁNH GIÁ ĐỘ HÀI LÒNG KHÁCH HÀNG Chuyên ngành: Hệ thống thông tin Mã số: 8.48.01.04 ĐỀ ÁN TỐT NGHIỆP THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) NGƯỜI HƯỚNG DẪN KHOA HỌC TS. HUỲNH TRỌNG THƯA THÀNH PHỐ HỒ CHÍ MINH - 2023
  3. i LỜI CAM ĐOAN Tôi xin cam đoan đề án thạc sĩ hệ thống thông tin “Ứng dụng phương pháp học sâu vào nhận dạng cảm xúc để đánh giá độ hài lòng khách hàng” là do tôi nghiên cứu, tổng hợp và thực hiện. Tất cả các nội dung, các số liệu, kết quả nêu trong đề án tốt nghiệp này là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác. Tôi hoàn toàn chịu trách nhiệm cho mọi hành vi sao chép trái phép hoặc vi phạm quy chế đào tạo. TPHCM, ngày 12 tháng 10 năm 2023 Học viên thực hiện đề án Nguyễn Phước Đại
  4. ii LỜI CÁM ƠN Tôi xin gửi lời cảm ơn chân thành và sâu sắc đến TS. Huỳnh Trọng Thưa, người thầy đã tận tâm và nhiệt tình trong việc hướng dẫn và động viên tôi suốt quá trình thực hiện đề án. Nhờ sự hỗ trợ của người thầy, tôi đã được định hướng và hoàn thành các mục tiêu mà tôi đã đề ra. Tôi xin gửi lời tri ân chân thành đến các Thầy, Cô đã đồng hành và tận tình giảng dạy cho tôi suốt thời gian học tập trong chương trình Thạc sĩ Hệ thống thông tin tại khoa Đào tạo Sau đại học, Học viện Công nghệ Bưu chính Viễn thông cơ sở tại thành phố Hồ Chí Minh. Tôi muốn bày tỏ lòng biết ơn đến ban Giám Đốc Trung tâm Công nghệ Thông tin – Viễn thông Tây Ninh đã tạo điều kiện thuận lợi cho quá trình học tập của tôi. Tôi biết ơn đến tất cả bạn bè đã động viên, hỗ trợ và đóng góp những ý kiến quý báu cho đề án này. Đóng góp của các bạn đã giúp tôi hoàn thiện nghiên cứu này. Đề án đã hoàn thành và đạt được một số kết quả nhất định, tuy vậy tôi thừa nhận rằng còn tồn tại những hạn chế và thiếu sót. Vì vậy, tôi chân thành mong nhận được sự thông cảm, sự đóng góp quý báu từ quý thầy cô và các bạn để tôi có thể cải thiện, nâng cao chất lượng của nghiên cứu này. Một lần nữa tôi xin chân thành cảm ơn ! TPHCM, ngày 12 tháng 10 năm 2023 Học viên thực hiện đề án Nguyễn Phước Đại
  5. iii MỤC LỤC LỜI CAM ĐOAN ...................................................................................................... i LỜI CÁM ƠN ........................................................................................................... ii MỤC LỤC ................................................................................................................ iii DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT ............................................v DANH SÁCH HÌNH VẼ ......................................................................................... vi DANH SÁCH BẢNG ............................................................................................ viii MỞ ĐẦU ....................................................................................................................1 CHƯƠNG 1 – TỔNG QUAN ...................................................................................2 2.1. Lý do chọn đề tài ..........................................................................................2 2.2. Mục đích nghiên cứu ...................................................................................2 2.3. Đối tượng và phạm vi nghiên cứu ..............................................................2 2.4. Phương pháp nghiên cứu ............................................................................3 2.5. Tính thực tiễn ...............................................................................................3 2.6. Bố cục trình bày đề án .................................................................................3 CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN ...5 2.1. Cơ sở lý thuyết .............................................................................................5 2.1.1. Giới thiệu TensorFlow ........................................................................5 2.1.2. Giới thiệu về OpenCV .........................................................................6 2.1.3. Giới thiệu về Python ............................................................................8 2.2. Các nghiên cứu liên quan ............................................................................9 2.2.1. Mô hình VGG ......................................................................................9 2.2.2. Mô hình ResNet .................................................................................11
  6. iv 2.2.3. Mô hình MobileNet ...........................................................................12 2.2.4. Kiến trúc Finetune-MobileNet ..........................................................15 CHƯƠNG 3 – MÔ HÌNH ĐỀ XUẤT ....................................................................19 3.1. Chuẩn bị dữ liệu ........................................................................................19 3.1.1. Tập dữ liệu .........................................................................................19 3.1.2. Xử lý dữ liệu ......................................................................................19 3.2. Huấn luyện mô hình ..................................................................................21 3.2.1. Xử lý dữ liệu đầu vào ........................................................................21 3.2.2. Xây dựng mô hình .............................................................................22 3.2.3. Huấn luyện mô hình ..........................................................................24 3.2.4. Kết quả huấn luyện mô hình..............................................................24 3.2.5. Mô hình được chọn............................................................................29 3.3. Cải tiến mô hình .........................................................................................30 3.3.1. Kiến trúc Finetune-MobileNetV2 .....................................................30 3.3.2. Phân nhóm độ hài lòng ......................................................................31 3.3.3. Kết quả huấn luyện sau cải tiến .......................................................312 Chương 4 – THỰC NGHIỆM ................................................................................36 4.1. Thu thập thêm dữ liệu cảm xúc thực tế .....................................................36 4.2. Huấn luyện mô hình .....................................................................................36 4.3. Triển khai mô hình.......................................................................................36 4.4. Cài đặt thực nghiệm .....................................................................................38 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .............................................................41 DANH MỤC CÁC TÀI LIỆU THAM KHẢO .....................................................42
  7. v DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT Viết tắt Tiếng Anh Tiếng Việt Deep Convolutional Neural DCNN Mạng nơron tích chập sâu Networks Finetune Tinh chỉnh MobileNet Mạng di động VGG Visual Geometry Group ResNet Residual Network Open Source Computer Vision Thư viện thị giác máy tính OpenCV Library mã nguồn mở
  8. vi DANH SÁCH HÌNH VẼ Hình 1.1: Cấu hình ConvNet .............................................................................10 Hình 1.2: Kiến trúc cho ImageNet ....................................................................11 Hình 1.3: Tỷ lệ lỗi khi xác thực ImageNet. Mô hình VGG-16, ResNet- 50/101/152 chỉ sử dụng phép chiếu để tăng kích thước ....................................12 Hình 1.4: Kiến trúc thân MobileNet .................................................................13 Hình 1.5: Lớp tích chập tiêu chuẩn: (a) với định mức hàng loạt và ReLU, (b) Lớp tích chập theo chiều sâu với Depthwise và Pointwise ...............................14 Hình 1.6: Kiến trúc hệ thống MobileNet tinh chỉnh .........................................16 Hình 1.7: Mô hình MobileNet CNN .................................................................17 Hình 1.8: Kiến trúc Finetuned MobileNet ........................................................18 Hình 2.1: Xử lý dữ liệu input ............................................................................22 Hình 2.2: Mô hình ResNet50 ............................................................................23 Hình 2.3: Mô hình VGG16 ...............................................................................23 Hình 2.4: Mô hình MobileNetV2 ......................................................................23 Hình 2.5: Kết quả training với ResNet50..........................................................24 Hình 2.6: Kết quả training với VGG16 .............................................................25 Hình 2.7: Kết quả training với MobileNetV2 ...................................................25 Hình 2.8: Kết quả độ chính xác nhãn cảm xúc với VGG16 .............................26 Hình 2.9: Kết quả độ chính xác nhãn cảm xúc với ResNet50 ..........................27 Hình 2.10: Kết quả độ chính xác nhãn cảm xúc với MobileNetV2 ..................28 Hình 2.11: Biểu đồ so sánh giữa 3 mô hình ......................................................29 Hình 3.1: Kiến trúc MobileNetV2 ....................................................................30
  9. vii Hình 3.2: Kết quả training với MobileNetV2 sau cải tiến ................................32 Hình 3.3: Biểu đồ độ chính xác của các nhãn cảm xúc với MobileNetV2 .......33 Hình 3.4: Biểu đồ so sánh giữa 4 mô hình theo nhãn cảm xúc .........................35 Hình 4.1: Kiến trúc hệ thống thực nghiệm ........................................................36 Hình 4.2: Giao diện hệ thống demo ..................................................................38 Hình 4.3: Các bước đưa dữ liệu vào hệ thống để nhận dạng ............................39 Hình 4.4: Kết quả dự đoán cảm xúc qua nhận dạng khuôn mặt .......................39 Hình 4.5: Kết quả dữ liệu nhận dạng chưa chuẩn xác hoàn toàn ......................40
  10. viii DANH SÁCH BẢNG Bảng 1.1: Kết quả kiểm thử mô hình VGG16 đã training ................................26 Bảng 1.2: Kết quả kiểm thử mô hình ResNet50 đã training .............................27 Bảng 1.3: Kết quả kiểm thử mô hình MobileNetV2 đã training ......................28 Bảng 1.4: Kết quả so sánh giữa 3 mô hình .......................................................29 Bảng 2.1: Kết quả 8 lớp cảm xúc chạy thử MobileNetV2 sau cải tiến .............32 Bảng 2.2: Kết quả so sánh giữa kỹ thuật đóng băng 5 lớp, 20 lớp và 40 lớp ...33 Bảng 2.3: Kết quả kiểm thử mô hình Finetune20-MobileNetV2 đã training ...34 Bảng 2.4: Kết quả kiểm thử 4 mô hình .............................................................34
  11. 1 MỞ ĐẦU Trong thời đại số hóa và phát triển công nghệ như hiện nay, ứng dụng của trí tuệ nhân tạo và học máy đã mang lại những tiến bộ đáng kể trong nhiều lĩnh vực, đặc biệt là trong việc nhận dạng và xử lý dữ liệu hình ảnh. Một trong những ứng dụng quan trọng của học máy trong lĩnh vực này là khả năng nhận dạng cảm xúc mặt người, góp phần nâng cao khả năng tương tác giữa con người và máy tính. Cảm xúc mặt người chứa đựng những thông điệp quan trọng về tâm trạng, tình cảm và thái độ của một cá nhân tại thời điểm cụ thể. Để hiểu được những thông điệp này, máy tính cần có khả năng xử lý và nhận biết các đặc điểm trong hình ảnh khuôn mặt, từ đó phân loại cảm xúc như vui vẻ, buồn bã, tức giận, sợ hãi, kinh ngạc, và ghét bỏ. Trong bối cảnh này, việc sử dụng mô hình Deep Convolutional Neural Networks (DCNN) và kỹ thuật Fine-tune đã chứng minh sự hiệu quả trong việc xây dựng các hệ thống nhận dạng cảm xúc mặt người. Mô hình MobileNet, một loại mô hình DCNN, đã được phát triển để đáp ứng nhu cầu trong việc xử lý hình ảnh trên các thiết bị có tài nguyên hạn chế như điện thoại di động và thiết bị nhúng. Kết hợp với kỹ thuật Fine-tune, mô hình MobileNet có thể được tinh chỉnh và đào tạo lại trên dữ liệu cụ thể, giúp nâng cao khả năng nhận dạng cảm xúc mặt người trên các tập dữ liệu cụ thể. Đề án tốt nghiệp này nhằm khám phá tiềm năng của mô hình MobileNet và kỹ thuật Fine-tune trong việc xây dựng hệ thống nhận dạng cảm xúc mặt người. Qua việc nghiên cứu và thực nghiệm, mong muốn rằng luận văn sẽ đóng góp vào sự phát triển của lĩnh vực này và mở ra những hướng nghiên cứu tiềm năng trong tương lai.
  12. 2 CHƯƠNG 1 – TỔNG QUAN 2.1. Lý do chọn đề tài Hiện nay, một phần rất quan trọng trong chiến lược sản xuất kinh doanh của nhiều doanh nghiệp là công tác đánh giá độ hài lòng của khách hàng. Ngoài các phương pháp truyền thống là khảo sát trực tiếp ý kiến khách hàng ngay tại điểm giao dịch, gửi liên kết đánh giá trực truyến…, thì một phương pháp được đề cập đến là nhận dạng cảm xúc khuôn mặt để đánh giá độ hài lòng của khách hàng khi trải nghiệm dịch vụ. Xây dựng một ứng dụng thử nghiệm khả năng nhận dạng cảm xúc trên mặt người từ các tập dữ liệu mở trên internet, đánh giá tính khả thi trước khi phát triển ý tưởng thành ứng dụng hoàn chỉnh áp dụng vào thực tế. Nên việc đề xuất giải pháp “Ứng dụng phương pháp học sâu vào nhận dạng cảm xúc để đánh giá độ hài lòng khách hàng” là có tính thiết thực và mang tính ứng dụng cao. 2.2. Mục đích nghiên cứu Đề án “Ứng dụng phương pháp học sâu vào nhận dạng cảm xúc để đánh giá độ hài lòng khách hàng” hướng tới một ứng dụng có chức năng phát hiện ra khuôn mặt người và nhận dạng cảm xúc trên khuôn mặt đó như giận giữ, khinh thường, sợ hãi, vui vẻ/hạnh phúc, bình thường, buồn, ngạc nhiên. Thông qua nghiên cứu các phương pháp học máy cho bài toán nhận dạng cảm xúc mặt người và ngôn ngữ lập trình Python, đề án muốn xây dựng một ứng dụng có thể nhận dạng được cảm xúc của khuôn mặt người từ đó đánh giá độ hài lòng của khách hàng. 2.3. Đối tượng và phạm vi nghiên cứu Với mục tiêu đặt ra ở trên, đề án thực hiện những vấn đề sau: - Đối tượng nghiên cứu là các phương pháp phát hiện khuôn mặt người và nhận dạng cảm xúc của khuôn mặt qua đó lựa chọn một phương pháp phù hợp. Tìm hiểu và đề xuất một phương pháp cụ thể. - Nghiên cứu và sử dụng phương pháp học máy, cụ thể là là mô hình MobileNet để phân loại cảm xúc của khách hàng.
  13. 3 - Phạm vi thực hiện: sử dụng tập dữ liệu trên Kaggle để huấn luyện và đưa ra kỹ thuật tối ưu mô hình áp dụng. 2.4. Phương pháp nghiên cứu - Phương pháp nghiên cứu lý thuyết: Mô tả kiến thức về mạng nơron và học sâu cần thiết để hiểu về mô hình MobileNet. Phân tích chi tiết cách MobileNet hoạt động, cách áp dụng vào bài toán phân loại cảm xúc. - Phương pháp nghiên cứu thực nghiệm: Trình bày quy trình xây dựng tập dữ liệu, tiền xử lý, huấn luyện và đánh giá mô hình. Thử nghiệm nhiều mô hình khác nhau như VGG,Resnet, thử nghiệm kỹ thuật Finetune với mô hình MobileNet để tăng độ chính xác. 2.5. Tính thực tiễn Đề án nghiên cứu một số kỹ thuật, các mô hình hỗ trợ cho việc phát hiện và nhận dạng cảm xúc mặt người. Bên cạnh đó, đề án này góp phần xây dựng ứng dụng nhận dạng cảm mặt người để áp dụng đánh giá độ hài lòng khách hàng trong thực tiễn. 2.6. Bố cục trình bày đề án Nội dung của đề án được chia thành các phần như sau: MỞ ĐẦU CHƯƠNG 1 – TỔNG QUAN - Lý do thực hiện đề tài, mục đích nghiên cứu Ứng dụng phương pháp học sâu vào nhận dạng cảm xúc để đánh giá độ hài lòng khách hàng. - Đối tượng nghiên cứu, phạm vi nghiên cứu và phương pháp nghiên cứu - Tính thực tiễn - Trình bày bố cục chính của đề án CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN - Giới thiệu các thư viện sử dụng: Tensorflow, Python , OpenCV - Giới thiệu các mô hình pretrained: VGG, Resnet, MobilenetV2 CHƯƠNG 3 – MÔ HÌNH ĐỀ XUẤT
  14. 4 - Phương pháp đề xuất được huấn luyện trên bộ dữ liệu “Facial Expressions Training Data” trên Kaggle - Để giải quyết bài toán cần xem xét thực hiện hai bước: giai đoạn huấn luyện và giai đoạn thử nghiệm - Trình bày cách thực hiện gồm: chuẩn bị dữ liệu, xử lý dữ liệu, huấn luyện mô hình và đưa ra kết quả bằng mô hình MobileNetV2 kết hợp kỹ thuật Fine-tune CHƯƠNG 4 – THỰC NGHIỆM - Xây dựng ứng dụng thử nghiệm nền web để xử lý nhận dạng cảm xúc mặt người từ các nguồn dữ liệu đầu vào. - Kết quả thực nghiệm. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN DANH MỤC TÀI LIỆU THAM KHẢO
  15. 5 CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN 2.1. Cơ sở lý thuyết 2.1.1. Giới thiệu TensorFlow TensorFlow là một thư viện mã nguồn mở của Google dành cho học máy và trí tuệ nhân tạo. Nó được phát triển ban đầu để tạo ra mô hình học máy và mạng nơron một cách dễ dàng và hiệu quả. Từ đó, TensorFlow đã trở thành một trong những thư viện phổ biến nhất và mạnh mẽ nhất trong lĩnh vực học máy, cho phép nhà nghiên cứu và nhà phát triển tạo ra và triển khai các mô hình phức tạp. [4] Đặc điểm chính của TensorFlow: - Data Flow Graphs (Đồ thị luồng dữ liệu): TensorFlow sử dụng cơ chế biểu diễn mô hình thông qua đồ thị luồng dữ liệu. Trong đồ thị này, các node đại diện cho các phép toán và các cạnh đại diện cho dữ liệu chạy qua các phép toán. Điều này tạo ra cơ sở cho việc phân tán tính toán và tối ưu hóa. - Static and Dynamic Computation (Tính toán tĩnh và động): TensorFlow hỗ trợ cả tính toán tĩnh và tính toán động. Trong tính toán tĩnh, đồ thị tính toán được xác định trước và tối ưu hóa trước khi chạy. Trong tính toán động, bạn có thể tạo ra và thay đổi đồ thị trong quá trình chạy, đặc biệt hữu ích trong việc xây dựng các mô hình có cấu trúc linh hoạt hơn. - High-level APIs và Low-level APIs: TensorFlow cung cấp cả hai loại API. High-level APIs như Keras giúp bạn xây dựng và huấn luyện mô hình một cách dễ dàng, trong khi Low-level APIs cho phép bạn tùy chỉnh và kiểm soát chi tiết hơn của quá trình tính toán. - Auto Differentiation (Tự động đạo hàm): TensorFlow có khả năng tính toán tự động đạo hàm, giúp bạn dễ dàng tính toán đạo hàm của các biểu thức phức tạp trong quá trình huấn luyện mô hình.
  16. 6 - Hỗ trợ đa nền tảng: TensorFlow không chỉ hỗ trợ CPU mà còn hỗ trợ GPU và TPU (Tensor Processing Unit) để gia tăng tốc độ tính toán, đặc biệt trong các mô hình sâu và phức tạp. - Community lớn và sự phát triển liên tục: TensorFlow có một cộng đồng lớn và đa dạng, đồng thời Google và cộng đồng đang liên tục phát triển thư viện, cung cấp cập nhật và cải tiến thường xuyên. Ứng dụng của TensorFlow: - Học máy và trí tuệ nhân tạo: TensorFlow được sử dụng rộng rãi để xây dựng, đào tạo và triển khai các mô hình học máy và trí tuệ nhân tạo trên nhiều lĩnh vực như nhận dạng hình ảnh, xử lý ngôn ngữ tự nhiên, dự báo, và nhiều ứng dụng khác. - Nghiên cứu và phát triển mới: Các nhà nghiên cứu và nhà phát triển có thể sử dụng TensorFlow để thử nghiệm các ý tưởng mới, thiết kế các mô hình tùy chỉnh và thực nghiệm các giải pháp trong lĩnh vực trí tuệ nhân tạo. - Triển khai sản phẩm: TensorFlow cũng có khả năng triển khai các mô hình đã xây dựng vào các sản phẩm thực tế, từ ứng dụng di động, ứng dụng web cho đến hệ thống nhúng. Tóm lại, TensorFlow là một công cụ mạnh mẽ và đa dạng trong lĩnh vực học máy và trí tuệ nhân tạo, cho phép bạn xây dựng và triển khai các mô hình từ cơ bản đến phức tạp, đáp ứng nhiều nhu cầu khác nhau trong cộng đồng nghiên cứu và phát triển. 2.1.2. Giới thiệu về OpenCV OpenCV (Open Source Computer Vision Library) là một thư viện mã nguồn mở chuyên dụng cho xử lý hình ảnh và thị giác máy tính. Được phát triển bởi Intel vào năm 1999 [5], OpenCV đã trở thành một công cụ quan trọng trong lĩnh vực xử lý hình ảnh, hỗ trợ cho việc phân tích, xử lý và hiểu thông tin từ dữ liệu hình ảnh. Chức năng chính của OpenCV: - Xử lý ảnh và video: OpenCV cung cấp nhiều chức năng để thực hiện các thao tác xử lý cơ bản như lọc, biến đổi, cắt, ghép, xoay, đảo ngược hình ảnh và video.
  17. 7 - Phân tích đối tượng và thị giác máy tính: OpenCV hỗ trợ việc phát hiện, theo dõi, và phân loại đối tượng trong hình ảnh và video. Điều này bao gồm nhận dạng khuôn mặt, đối tượng, và các đặc trưng quan trọng khác. - Phát hiện và theo dõi đường viền: OpenCV có khả năng phát hiện đường viền trong hình ảnh, cho phép bạn xác định các hình dạng và cạnh. - Xử lý dữ liệu từ camera: OpenCV cho phép bạn truy cập và xử lý dữ liệu từ các thiết bị camera, giúp xây dựng các ứng dụng thị giác máy tính thời gian thực. - Xử lý ảnh y tế và khoa học: OpenCV cũng được sử dụng trong lĩnh vực y tế và khoa học, giúp phân tích và xử lý dữ liệu hình ảnh y học và khoa học. - Phát triển ứng dụng thị giác máy tính: OpenCV cung cấp API và công cụ phát triển để xây dựng các ứng dụng thị giác máy tính trực quan và mạnh mẽ. Đặc điểm chính của OpenCV: - Đa nền tảng: OpenCV được hỗ trợ trên nhiều hệ điều hành như Windows, Linux, macOS và cả Android. - Hỗ trợ nhiều ngôn ngữ lập trình: OpenCV có API cho nhiều ngôn ngữ như C++, Python, Java, và C#. - Cộng đồng lớn và sự phát triển liên tục: OpenCV có một cộng đồng đông đảo và tích cực, giúp duy trì và phát triển thư viện, cũng như cung cấp hỗ trợ, tài liệu và ví dụ cho người dùng. - Hỗ trợ phân tán tính toán: OpenCV hỗ trợ tính toán phân tán để tận dụng khả năng xử lý song song của các máy tính. - Tiện ích trong việc học máy và trí tuệ nhân tạo: OpenCV cung cấp các công cụ hữu ích để xử lý và trích xuất dữ liệu hình ảnh để sử dụng trong các mô hình học máy và trí tuệ nhân tạo. Ứng dụng của OpenCV: - Xử lý hình ảnh y tế: OpenCV có thể giúp phát hiện và phân tích các vùng khối u, dấu vết trong hình ảnh y học. - Nhận dạng khuôn mặt và đối tượng: OpenCV được sử dụng rộng rãi trong các ứng dụng nhận dạng khuôn mặt, phát hiện đối tượng và nhận dạng vật thể.
  18. 8 - Xử lý ảnh và video trong ứng dụng di động và web: OpenCV cung cấp các công cụ phù hợp cho việc xử lý ảnh và video trong các ứng dụng di động và web. - Robotics và tự động hóa: OpenCV có thể được sử dụng trong các ứng dụng robotics và tự động hóa để nhận biết và tương tác với môi trường. Tóm lại, OpenCV là một thư viện quan trọng và mạnh mẽ trong lĩnh vực xử lý hình ảnh và thị giác máy tính, hỗ trợ cho việc xây dựng và triển khai các ứng dụng thị giác máy tính đa dạng và mạnh mẽ. 2.1.3. Giới thiệu về Python Python là một ngôn ngữ lập trình mã nguồn mở, có cú pháp đơn giản và dễ đọc, được phát triển bởi Guido van Rossum và được ra mắt lần đầu vào năm 1991. Python được thiết kế để dễ dàng đọc, viết và hiểu, giúp cho người lập trình tập trung vào giải quyết vấn đề thay vì tốn thời gian với cú pháp phức tạp.[6] Đặc điểm chính của Python: - Cú pháp đơn giản và rõ ràng: Python sử dụng cú pháp rất giống với ngôn ngữ tự nhiên, giúp dễ dàng học và sử dụng. - Dễ đọc và dễ hiểu: Code Python thường rất dễ đọc, người mới học lập trình cũng có thể nhanh chóng hiểu và viết mã. - Thư viện và cộng đồng phong phú: Python có một hệ thống thư viện rộng lớn, hỗ trợ cho nhiều lĩnh vực khác nhau như xử lý hình ảnh, học máy, web development, xử lý dữ liệu, và nhiều ứng dụng khác. - Hỗ trợ đa nền tảng: Python có thể chạy trên nhiều nền tảng như Windows, macOS và Linux. - Học và nghiên cứu: Python là một ngôn ngữ phổ biến trong lĩnh vực học tập và nghiên cứu, với nhiều tài liệu, sách và khóa học chất lượng. Ứng dụng của Python: - Web Development: Python được sử dụng trong việc xây dựng các trang web và ứng dụng web sử dụng các framework như Django và Flask. - Xử lý dữ liệu và phân tích: Python là ngôn ngữ ưa thích cho việc xử lý và phân tích dữ liệu, với các thư viện như NumPy, Pandas và Matplotlib.
  19. 9 - Học máy và trí tuệ nhân tạo: Python là một ngôn ngữ phổ biến trong lĩnh vực học máy và trí tuệ nhân tạo, với các thư viện như TensorFlow, PyTorch và Scikit- learn. - Ứng dụng di động và phát triển game: Python có thể được sử dụng trong phát triển ứng dụng di động sử dụng các framework như Kivy và BeeWare, cũng như trong phát triển game. - Xử lý hình ảnh và thị giác máy tính: Python có thể được sử dụng để xây dựng các ứng dụng xử lý hình ảnh và thị giác máy tính sử dụng thư viện OpenCV. 2.2. Các nghiên cứu liên quan 2.2.1. Mô hình VGG Kiến trúc mạng VGG là một dạng kiến trúc mạng nơron tích chập sâu (CNN) được giới thiệu trong bài báo "Very Deep Convolutional Networks For Large-scale Image Recognition" của Karen Simonyan và Andrew Zisserman [1]. Kiến trúc này được thiết kế để thực hiện nhận dạng hình ảnh trên quy mô lớn và đã đạt được hiệu suất ấn tượng trên các tập dữ liệu như ImageNet. Mô tả kiến trúc VGG: - Lớp đầu vào (Input Layer): Mạng VGG khởi đầu bằng một lớp đầu vào (input layer) được dùng để chứa hình ảnh đầu vào. - Lớp tích chập (Convolutional Layer): Mạng VGG sử dụng một chuỗi các lớp tích chập với kích thước nhỏ (3x3) và bước nhảy là 1. Những lớp tích chập này thực hiện việc học các đặc trưng cục bộ từ hình ảnh. - Lớp gộp (Pooling Layer): Sau mỗi lớp tích chập, một lớp gộp (pooling layer) được thêm vào với kích thước là 2x2 và bước nhảy là 2. Lớp gộp này giúp giảm kích thước dữ liệu, tăng tính trừu tượng và giảm số lượng tham số. - Lớp kết nối đầy đủ (Fully Connected Layer): Sau chuỗi các lớp tích chập và gộp, mạng VGG sử dụng một hoặc vài lớp kết nối đầy đủ để học các mối quan hệ toàn cục giữa các đặc trưng.
  20. 10 - Lớp đầu ra (Output Layer): Cuối cùng, kiến trúc VGG kết thúc với một lớp đầu ra (output layer) chứa số lượng nơ-ron tương ứng với số lượng lớp phân loại (ví dụ: số lượng lớp trong bộ dữ liệu ImageNet). - Hàm kích hoạt (Activation Function): Giữa các lớp, hàm kích hoạt thường được áp dụng, thường là hàm ReLU (Rectified Linear Activation), nhằm tăng tính không tuyến tính và giảm tình trạng mất mát đạo hàm. Hình 1.1: Cấu hình ConvNet - Các phiên bản phổ biến: Một số phiên bản phổ biến của mạng VGG là VGG16 và VGG19. VGG16 bao gồm tổng cộng 16 lớp, với 13 lớp tích chập và 3 lớp kết nối đầy đủ. VGG19 cũng tuân theo cấu trúc tương tự, nhưng có tổng cộng 19 lớp.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2