Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.82 MB, 41 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
ĐẠI HỌC ĐÀ NẴNG
<b>TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT-HÀN </b>
<small> </small>
<small> </small>
<small> </small>
<b>Đà Nẵng, 3/2023 </b>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">ĐẠI HỌC ĐÀ NẴNG
<b>TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT-HÀN </b>
<small> </small>
<small> </small>
<small> </small>
<b><small> Đà Nẵng, 3/2023 </small></b>
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3"><b>MỤC LỤC </b>
MỞ ĐẦU ... 6
CHƯƠNG 1. NGHIÊN CỨU TỔNG QUAN ... 7
I. Bài toán phân loại ảnh ... 7
II. Phân loại ảnh bằng kỹ thuật Deep Learning ... 8
2.1. Khái niệm về Deep Learning ... 8
2.2. Mạng nơ ron tích chập (CNN) ... 8
2.2.1. Nơ ron sinh học ... 8
2.2.2 Nơ ron nhân tạo ... 9
2.2.3 Cấu trúc của của mạng CNN ... 10
2.2.4 Một số thuật ngữ đối với mạng CNN ... 13
2.3. Phân loại khuôn mặt đeo khẩu trang ... 14
CHƯƠNG 2. SƯU TẬP DATASET, HUẤN LUYỆN MƠ HÌNH ... 18
2.1. Bộ dữ liệu huấn luyện ... 18
2.2. Mạng MobileNetV2 ... 18
2.3. Phương pháp học chuyển tiếp ... 19
2.4. Tăng cường dữ liệu ... 20
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><b>THƠNG TIN KẾT QUẢ NGHIÊN CỨU </b>
1. Thơng tin chung:
- Tên đề tài: XÂY DỰNG MƠ HÌNH PHÁT HIỆN NGƯỜI ĐEO KHẨU TRANG PHÒNG CHỐNG DỊCH COVID-19 DÙNG KỸ THUẬT DEEP LEARNING
- Mã số: ĐHVH-2022-04
- Chủ nhiệm: TS. Phạm Nguyễn Minh Nhựt
- Thành viên tham gia: TS. Nguyễn Đức Hiển, TS. Lê Thị Thu Nga, ThS. Trịnh Trung Hải
- Cơ quan chủ trì: Phịng Tổ chức – Hành chính - Thời gian thực hiện: 12 tháng
<i>- Sản phẩm khoa học: 01 bài báo trong nước: Nguyen Minh Nhut Pham, Duc Hien </i>
Nguyen, Nga Le-Thi-Thu, Face Mask-Wearing Classification Using Transfer Learning Technique with MobileNet V2, Tạp chí Khoa học và Công nghệ, Đại học Quảng Bình, 22(04), 117-125, ISSN: 0866-7683
<i>- Sản phẩm ứng dụng: </i>
+ Mơ hình phát hiện người đeo khẩu trang phòng chống dịch Covid-19: có đeo, khơng đeo, đeo khơng đúng quy cách dựa trên kỹ thuật Deep Learning.
+ Phần mềm phát hiện các trạng thái đeo khẩu trang trên mặt người trong video; cảnh báo các trường hợp không đeo hoặc đeo không đúng.
6. Hiệu quả, phương thức chuyển giao kết quả nghiên cứu và khả năng áp dụng:
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">Đề tài có ý nghĩa khoa học và có tính ứng dụng cao trong lĩnh vực xử lý ảnh, thị giác máy tính. Kết quả đề tài có thể được ứng dụng trong thực tiễn và trong lĩnh vực nghiên cứu lĩnh vực xử lý ảnh, thị giác máy tính. Cụ thể:
<i>- Đối với lĩnh vực giáo dục và đào tạo: Làm tài liệu tham khảo giảng dạy và học tập </i>
học phần: Xử lý ảnh, Thị giác máy tính, Deep Learning
<i>- Đối với lĩnh vực khoa học và công nghệ: Góp phần nâng cao năng lực nghiên cứu </i>
trong lĩnh vực Xử lý ảnh, Thị giác máy tính, Deep Learning
<i>- Đối với phát triển kinh tế-xã hội: Tăng cường cơng tác phịng chống dịch </i>
Covid-19 để phát triển kinh tế, ổn định xã hội
<i>- Đối với tổ chức chủ trì và các cơ sở ứng dụng kết quả nghiên cứu: </i>
+ Làm tài liệu tham khảo giảng dạy và học tập học phần: Xử lý ảnh, Thị giác máy tính, Deep Learning
+ Áp dụng phát hiện, cảnh báo cán bộ viên chức, sinh viên trong việc tuân thủ đeo khẩu trang khi tham gia sinh hoạt đơng người tại Trường, góp phần thực hiện tốt quy định 5K trong công tác phòng chống Dịch Covid-19.
Ngày 30 tháng 03 năm 2023 PHỊNG TỔ CHỨC – HÀNH CHÍNH
TS. Phạm Nguyễn Minh Nhựt
Chủ nhiệm đề tài
TS. Phạm Nguyễn Minh Nhựt
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6"><b>MỞ ĐẦU </b>
Do mối đe dọa nghiêm trọng của đại dịch COVID-19, khẩu trang được sử dụng như một chiến lược đơn giản và hiệu quả để giảm bớt mối đe dọa của virus. Tìm kiếm các giải pháp để tối ưu hóa việc sử dụng sai các cơ chế phòng ngừa là một chủ đề nóng hiện nay. Vì thế, việc ứng dụng hệ thống phát hiện con người không đeo khẩu trang, đeo khẩu trang hoặc đeo khẩu trang sai quy cách nhằm cảnh báo đang là nhu cầu cao tại các khu vực sử dụng phương tiện giao thông, khu đông dân cư, các nhà máy sản xuất, các doanh nghiệp ... Sử dụng trí tuệ nhân tạo (AI) là một trong những kỹ thuật hữu ích nhất để giải quyết bài tốn này.
Để giám sát việc đeo khẩu trang, nhiều nghiên cứu về phát hiện mặt người đeo khẩu trang đã thu hút sự chú ý của cộng đồng thị giác máy tính, khơng chỉ xây dựng các mơ hình học máy để phát hiện việc đeo khẩu trang mà còn nhiều cơng trình nghiên cứu về lĩnh vực dữ liệu, sưu tập và tạo ra nhiều bộ dữ liệu mặt người có đeo khẩu trang để phục vụ huấn luyện các mơ hình học máy. Bài tốn giám sát việc đeo khẩu trang thuộc lớp bài toán phân loại/lớp dữ liệu ảnh. Tức là, gán nhãn cho một ảnh (không đeo khẩu trang, đeo khẩu trang sai quy cách và có đeo khẩu trang đúng quy cách) từ một bộ danh mục ảnh. Bài tốn có nhiệm vụ phân tích một ảnh đầu vào và trả về một nhãn cho ảnh.
Để tạo ra các mơ hình phân loại đối với bài tốn này thường sử dụng các mơ hình mạng CNN để có thể phân loại. Tuy nhiên, phần lớn các nghiên cứu hiện nay chỉ phân loại mặt người có hay khơng có đeo khẩu trang. Tuy nhiên, việc đeo khẩu trang không đúng quy cách, đặc biệt là trẻ em, sẽ giảm hiệu quả phòng ngừa Dịch COVID-19. Vì thế, nghiên cứu xây dụng mơ hình học máy/học sâu để tạo bộ phân loại 3 lớp: đeo khẩu trang, không đeo khẩu trang và đeo không đúng quy cách; sưu tập dữ liệu để huấn luyện mơ hình. Từ đó, áp dụng mơ hình để xây dựng ứng dụng cảnh báo việc đeo khẩu trang không đúng quy cách là vấn đề cấp thiết hiện nay.
Báo cáo tổng kết đề tài này được trình bày trong 03 chương: Chương 1 trình bày kết quả nghiên cứu tổng quan về tình hình nghiên cứu. Chương 2 trình bày các đề xuất bộ dữ liệu ảnh đã được gắn nhãn về ảnh người cùng với các trạng thái đeo khẩu trang, lựa chọn mơ hình, huấn luyện và đánh giá kết quả huấn luyện mơ hình. Chương 3 trình bày ứng dụng mơ hình để xây dựng phần mềm cảnh báo các trạng thái đeo khẩu trang của người.
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7"><b>CHƯƠNG 1. NGHIÊN CỨU TỔNG QUAN </b>
<b>I. Bài toán phân loại ảnh </b>
Bài toán phân loại ảnh là một bài toán trong lĩnh vực Computer Vision, trong đó mục tiêu là phân loại các ảnh vào các nhóm khác nhau dựa trên nội dung của chúng. Bài tốn này u cầu mơ hình có khả năng nhận diện và phân loại ảnh dựa trên các đặc trưng và thơng tin được trích xuất từ ảnh, ví dụ như màu sắc, hình dạng, kích thước, vv.
Tức là, Phân loại ảnh là gán nhãn cho một ảnh từ một bộ danh mục ảnh. Nghĩa là, phân tích một ảnh đầu vào và trả về một nhãn cho ảnh (Nhãn từ một tập các danh mục được xác định trước).
<i>Hình 1. Các giai đoạn phân loại ảnh bằng kỹ thuật ML/DL </i>
Để giải quyết bài tốn này, có thể sử dụng các kỹ thuật và cơng cụ như:
- Mạng neural: Các mơ hình mạng neural đa lớp (như Convolutional Neural Network - CNN) là công cụ phổ biến trong việc giải quyết bài toán phân loại ảnh. Các mạng neural này được huấn luyện trên các tập dữ liệu lớn để học các đặc trưng của ảnh và sử dụng chúng để phân loại các ảnh mới.
- Feature extraction: Kỹ thuật trích xuất đặc trưng có thể được sử dụng để trích xuất các đặc trưng từ các ảnh và sử dụng chúng để huấn luyện các mơ hình phân loại khác nhau, chẳng hạn như k-means hoặc SVM.
- Transfer learning: Kỹ thuật này sử dụng các mơ hình đã được huấn luyện trên các tập dữ liệu khác và sử dụng chúng để giải quyết các bài toán phân loại ảnh khác. Chẳng
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">hạn như sử dụng các mơ hình đã được huấn luyện trên ImageNet để giải quyết các bài toán phân loại ảnh khác.
- Augmentation: Kỹ thuật tăng cường dữ liệu (data augmentation) là cách tạo ra thêm các dữ liệu mới từ các dữ liệu đã có bằng cách thay đổi một số thuộc tính như độ sáng, tăng giảm kích thước, xoay, lật ảnh, vv. Từ đó, tăng độ đa dạng cho các ảnh trong tập huấn luyện, giúp mô hình có khả năng khái qt hóa tốt hơn trên các ảnh mới.
- Kỹ thuật ensemble: sử dụng để kết hợp các mơ hình dự đốn khác nhau để đạt được kết quả tốt hơn so với việc sử dụng một mơ hình duy nhất. Kỹ thuật ensemble thường được sử dụng trong các bài toán phức tạp, mà một mơ hình duy nhất khơng thể đạt được kết quả tốt nhất. Có nhiều cách để áp dụng kỹ thuật ensemble, nhưng phương pháp phổ biến nhất là kết hợp các dự đốn của các mơ hình con bằng cách tính trung bình hoặc trọng số trung bình của các dự đốn đó. Trong kỹ thuật này, mỗi mơ hình con được huấn luyện trên một tập dữ liệu con khác nhau, hoặc sử dụng các kỹ thuật khác nhau để huấn luyện.
<b>II. Phân loại ảnh bằng kỹ thuật Deep Learning </b>
<i><b>2.1. Khái niệm về Deep Learning </b></i>
Deep Learning (học sâu) có thể xem là một lĩnh vực con của Machine Learning (học máy). Trong đó, các chương trình máy tính sẽ học và cải thiện chính nó thơng qua các thuật tốn. Deep Learning được xây dựng dựa trên các nơ-ron nhân tạo để bắt chước khả năng tư duy và suy nghĩ của bộ não con người.
Mạng nơ-ron nhân tạo trong Deep Learning được xây dựng để mô phỏng khả năng tư duy của bộ não con người. Một mạng nơ-ron bao gồm nhiều lớp (layer) khác nhau, số lượng layer càng nhiều thì mạng sẽ càng “sâu”.
Trong mỗi layer là các nút mạng (node) và được liên kết với những lớp liền kề khác. Mỗi kết nối giữa các node sẽ có một trọng số tương ứng, trọng số càng cao thì ảnh hưởng của kết nối này đến mạng nơ-ron càng lớn. Mỗi nơ-ron sẽ có một hàm kích hoạt có nhiệm vụ “chuẩn hố” đầu ra từ nơ-ron này. Dữ liệu đưa vào mạng nơ-ron sẽ đi qua tất cả layer và trả về kết quả ở layer cuối cùng, gọi là output layer.
Trong quá trình huấn luyện mơ hình mạng nơ-ron, các trọng số sẽ được thay đổi và nhiệm vụ của mơ hình là tìm ra bộ giá trị của trọng số sao cho phán đoán là tốt nhất. Các hệ thống Deep Learning yêu cầu phần cứng phải rất mạnh để có thể xử lý được lượng dữ liệu lớn và thực hiện các phép tính phức tạp.
<i><b>2.2. Mạng nơ ron tích chập (CNN) </b></i>
<i>2.2.1. Nơ ron sinh học </i>
Neural Network sinh học: gồm các Neuron được kết nối với nhau thông qua dendrites và neuron. Bộ não của người có khoảng 10 tỷ neuron, mỗi Neuron kết nối với khoảng
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">10.000 nơron khác. Trong đó, Cell body của Neuron gọi là soma, các đầu vào dendrite và đầu ra axon để kết các soma. Các Neuron nhận xung điện từ nơron khác thơng qua dendrite và nếu xung điện đủ mạnh nó sẽ truyền đến các Neuron khác, mục đích là để truyền “bản tin”
<i>Hình 2. Minh họa 01 Nơ ron sinh học </i>
<i>Hình 3. Minh họa mạng Nơ ron nhân tạo 2.2.2 Nơ ron nhân tạo </i>
Một Nơ ron nhân tạo có cấu trúc như sau
- Đầu vào X: x<small>1</small>, x<small>2</small>,…,x<small>m</small> và 1 gọi là bias. Và, gọi là vector đặc trưng X - Trọng số tương ứng: w<small>1</small>, w<small>2</small>,…, w<small>m</small> và w<small>0</small> và gọi là vec tơ trọng số W - Mỗi một vec tơ X kết nối với Neuron được kết hợp với vector W
- Đầu ra là hàm tổng của tích các trọng số và đầu vào tương ứng rồi áp một hàm kích hoạt
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">Mỗi Neuron nhân tạo gọi là Perceptron. Perceptron được dùng xây dựng: Các mạng Nơ ron nhân tạo và dùng để xây dựng c khối (block) của Machine Learning, Deep Learning
<i>Hình 4. Cấu trúc của một Nơ ron nhân tạo </i>
Trong đó, hàm kích hoạt có nhiệm vụ:
- Tác dụng của hàm kích hoạt: Tạo ra tính phi tuyến trong mạng - Tính phi tuyến cho phép tính gần đúng các hàm phức tạp
<i>2.2.3 Cấu trúc của của mạng CNN </i>
- Chức năng của mạng neural tích chập (CNN) là trích chọn các đặc trưng của ảnh. Thông thường gồm các layer sau:
+ Convolutional layer (CONV)
+ Activation Layer (sử dụng các hàm kích hoạt) + Pooling Layer (POOL)
+ Fully Connected Layer (FC) + Batch Normalization Layer (BN) + Dropout Layer (DO)
Hàm kích hoạt (Non-Linear)
Output
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">- Tùy theo từng bài tốn có các model khác nhau và sử dụng các layer khác nhau.
- Ký hiệu lưu đồ mạng CNN bằng dạng Text + Ví dụ 1: INPUT CONV RELU FC
+ Ví dụ 2: INPUT CONV RELU POOL CONV RELU POOL FC
<i>Hình 5. Cấu tạo của mạng CNN a) Lớp tích chập: </i>
- Chức năng của lớp tích chập: Tạo ra bản đồ kích hoạt/đặc trưng (feature map/ activation map) để làm đầu vào cho các lớp sau. Sử dụng mặc nạ thường gọi kernel, fifter, mask là ma trận kích thước: 3 x 3, 4 x 4, … Mặc nạ di chuyển trên ảnh và thao tác tích chập (nhân các pixel của ảnh và phần tử mặc nạ cùng vị trí rồi lấy tổng). Quá trình trên lặp lại đối với mỗi điểm ảnh trong ảnh gốc. Ảnh đầu ra có cùng kích thước với ảnh đầu vào
- Nếu quá trình di chuyển “nhảy cóc” một giá trị s nào đó thì ảnh đầu ra có kích thước giảm so với ảnh đầu vào và gọi là stride = s. Ở các lề của ảnh thiếu các pixel để tạo nên lân cận nên thêm p pixel ở lề và gọi là Padding = p. Nếu gọi p số pixel thêm vào lề, s là giá trị Stride, m x n là kích thước ảnh đầu vào, k x k là kích thước mặc nạ thì kích thước ảnh sau khi tích chập là:
<i>b) Lớp kích hoạt </i>
- Sau mỗi lớp CONV, áp dụng hàm kích hoạt: ReLU, ELU, Leaky ReLU, Tanh, sigmoid…Hàm kích hoạt (Activation Function) thực hiện ngay sau khi tích chập. Kích thước dữ liệu đầu ra của Activation layer có cùng kích thước dữ liệu đầu vào. Mục đích tăng tính phi tuyến của mạng
- Các hàm kích hoạt thơng dụng:
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">+ Hàm kích hoạt đơn giản nhất là hàm Step:
+ Hàm ReLU:
+ Leak ReLU:
+ Tanh:
+ Sigmoid:
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13"><i>d) Lớp kết nối đầy đủ </i>
- Đầu ra Pooling layer có D ma trận kích thước K x K. Dữ liệu này được làm phẳng thành vector có kích thước D x K x K và trở thành đầu vào Full Conected Layer. Mỗi phần tử của vector sẽ là đầu vào được kết nối với tất cả neuron của Full Conected Layer
- Trong mơ hình mạng CNN, các Full Connected Layer thường ở cuối mạng và được dùng để tối ưu hóa mục tiêu của mạng
<i>Hình 6. Cấu trúc lớp kết nối đầy đủ </i>
- Đầu ra của Full Connected Layer được áp dụng các hàm Sigmod hoặc Softmax để dự đoán nhãn của ảnh đầu vào
<i>2.2.4 Một số thuật ngữ đối với mạng CNN </i>
Sigmod() Softmax()
𝒚
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">- Epoch: một cơng đoạn hồn tất việc đưa toàn bộ dữ liệu để training
- Mini - batch: Khi dữ liệu quá lớn, không thể đưa hết tất cả tập dữ liệu vào để huấn luyện được, thường phải chia nhỏ tập dữ liệu ra thành các nhóm dữ liệu có kích thước nhỏ hơn và gọi là Mini-Batch
- Batch Normalization: Được sử dụng để chuẩn hóa các kích hoạt đầu vào trước khi chuyển vào lớp tiếp theo trong mạng. Tác dụng, giảm số lượng epoch để trainning và ổn định khi thực hiện nhiều lần q trình training.
+ Ngồi ra, sử dụng Dropout: Đối với mỗi mini-batch trong tập training, sử dụng dropout layers thực hiện: ngắt kết nối ngẫu nhiên theo xác suất p các đầu vào từ lớp trước sang lớp tiếp theo.
<i><b>2.3. Phân loại khuôn mặt đeo khẩu trang </b></i>
Hiện nay, sử dụng kỹ thuật phân loại khn mặt đeo khẩu trang phịng ngừa Dịch Covid-19 bằng kỹ thuật học máy được chia thành 2 loại bài toán. Bài toán thứ nhất, phân loại 2 lớp: khuôn mặt đeo khẩu trang và không đeo khẩu trang. Bài tốn thứ hai, phân loại 3 lớp: khn mặt khơng đeo khẩu trang, khn mặt có đeo khẩu trang đúng cách và khuôn mặt đeo khẩu trang không đúng.
<i>a. Đối với bài toán thứ nhất: </i>
- Chen và cộng sự, [1], đã phát triển một ứng dụng di động cho phép xác định tuổi thọ sử dụng khẩu trang, cho biết chúng đang ở giai đoạn nào và mức độ hiệu quả của nó sau một thời gian sử dụng. Để làm điều này, họ sử dụng mạng KNN, thực nghiệm thu được với độ chính xác của dự đốn mức “sử dụng bình thường” và “khuyến khích khơng sử dụng” đạt 92,00 và 92,59%, tương ứng.
- Nagrath và cộng sự, trong [2], đã phát triển một hệ thống mà sử dụng kỹ thuật dị tìm mặt người Single shot multibox và mơ hình phân lớp là mạng MobileNetV2, độ chính xác của nghiên cứu này là 92,64 % và Score - F1 là 0,93.
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">- Tương tự, Mata [3], đã tạo ra một mơ hình CNN để phân biệt, độ chính xác 60% trong đó sử dụng bộ phát hiện mặt người Image Data Generator.
- Jauhari và cộng sự, trong [4], với mục đích là phát hiện các mẫu khuôn mặt và phát hiện sự hiện diện của khẩu trang trong ảnh, họ sử dụng bộ phát hiện khuôn mựt Cascade Viola Jones và mơ hình phân loại AdaBoost, kết quả thực nghiệm thu được với độ chính xác 90.9%.
- Sen và cộng sự, trong [5], thông qua chuỗi hình ảnh và video, đã phát triển một hệ thống dựa trên mơ hình MobileNetV2, độ chính xác của mơ hình là 79,24%.
- Kurlekar và cộng sự, trong [6], đã phát triển một hệ thống học sâu có thể được tích hợp tại các văn phịng, sân bay và nơi công cộng.
- Loey và cộng sự, trong [7], đã phát triển một hệ thống kết hợp để phát hiện khuôn mặt đeo khẩu trang, họ đã chọn ba tập dữ liệu: Tập dữ liệu mô phỏng về khuôn mặt đeo khẩu trang, tập hợp về khuôn mặt được đeo khẩu trang trong thế giới thực và các khuôn mặt được gắn thẻ trong tự nhiên. Họ sử dụng bộ phát hiện đối tượng YOLO V3 và mơ hình Resnet-50 [8] để trích xuất đặc trưng, sau đó để phân loại hình ảnh dựa trên Máy hỗ trợ véc tơ (SVM). Độ chính xác dự đoán của hệ thống là 99,49%, 99,64% và 100%, tương ứng cho mỗi tập dữ liệu được nghiên cứu.
<i>b. Đối với bài tốn thứ hai: </i>
Ngồi việc phát hiện việc khn mặt có sử dụng hay khơng sử dụng khẩu trang thì nhu cầu việc phát hiện đeo khẩu trang khơng chính xác cũng rất cần thiết. Cơng trình tiêu biểu nhất cho loại bài tốn này gồm:
- Rudraraju và cộng sự, ở [9], đã phát triển một ứng dụng dựa trên hai bước. Bước thứ nhất, phát hiện việc khuôn mặt họ sử dụng bộ phân loại Haar cascade Classifier. Bước thứ hai, sau khi phát hiện khn mặt, nó phân biệt giữa đeo khẩu trang đúng và đeo khẩu trang sai bằng cách sử dụng mơ hình MobileNet [10], độ chính xác của hệ thống này là khoảng 90%.
- Wang và cộng sự 2021, trong [11], đã đề xuất sử dụng kỹ thuật máy học kết hợp tiếp cận hai bước. Trong bước đầu, người dùng đeo khẩu trang được phát hiện bằng cách sử dụng mơ hình kiến trúc Faster RCNN. Bước thứ hai xác minh khẩu trang thực bằng bộ phân loại thơng qua mơ hình phân loại InceptionV2 [12], độ chính xác cho các tình huống đơn giản là 97,32%, trong khi đối với các tình huống phức tạp hơn là 91,13%.
- Qin và cộng sự, trong [13], sử dụng mạng Multitask Cascaded CNN để nhận dạng khuôn mặt và kết hợp với mạng siêu phân giải và phân loại (SRCNet). Thuật toán của họ sử dụng bốn bước sau: xử lý trước hình ảnh, phát hiện và cắt khn mặt, hình ảnh siêu
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">phân giải và phát hiện khuôn mặt đeo khẩu trang, độ chính xác đạt được khi sử dụng phương pháp này là 98,70%.
(a) (b) (c) (d)
<i> Hình 7. Các trạng thái đeo khẩu trang </i>
(a) Không đeo; (b) Đeo khẩu trang đúng; (c) và (d) Đeo khẩu trang khơng đúng
Để giải quyết bài tốn thứ hai này, đề tài sử dụng các phương pháp và kỹ thuật như sau:
- Sử dụng các kỹ thuật Deep Learning như mạng Convolutional Neural Network (CNN) để trích xuất đặc trưng từ ảnh khuôn mặt và phân loại chúng. Các mơ hình này có thể được huấn luyện trên các tập dữ liệu lớn chứa các ảnh khuôn mặt đeo khẩu trang, không đeo khẩu trang và đeo khẩu trang không đúng để học các đặc trưng của chúng.
- Áp dụng các kỹ thuật như Data Augmentation để tăng cường dữ liệu huấn luyện và giảm Overfitting. Các kỹ thuật này bao gồm xoay, lật, thay đổi ánh sáng và màu sắc của ảnh khuôn mặt để tạo ra các ảnh mới.
- Sử dụng các kỹ thuật như Transfer Learning để sử dụng các mơ hình đã được huấn luyện trên các tập dữ liệu lớn khác, như ImageNet. Các mơ hình này có thể được tinh chỉnh và huấn luyện lại trên tập dữ liệu ảnh khuôn mặt đeo khẩu trang để phân loại chúng.
Các bước thực hiện bài toán
- Giai đoạn 1: Tạo mơ hình phân loại (3 loại)
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17"><i>Hình 8. Sơ đồ các bước thực hiện giai đoạn 1 </i>
- Giai đoạn 2: Ứng dụng mơ hình để phát hiện trạng thái đeo khẩu trang
<i>Hình 9. Sơ đồ các bước thực hiện giai đoạn 2 </i>
Nạp Dataset (đã gắn 3 nhãn)
Huấn luyện mơ hình (MobileNet v2)
Lưu mơ hình phân loại (MobileNet.h5)
Nạp mơ hình phát hiện khn mặt (Single Shot Multibox
Detector - SSD)
Ảnh/Video khuôn mặt (Đeo khẩu trang, Không đeo,
Đeo sai)
Bộ phát hiện ROI (phát hiện khn mặt)
Vùng ROI (khn mặt) Nạp mơ hình phân loại (Đeo khẩu trang, Không
đeo, Đeo sai)
Kết quả và cảnh báo (Đeo khẩu trang/Không
đeo/Đeo sai)
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18"><b>CHƯƠNG 2. SƯU TẬP DATASET, HUẤN LUYỆN MƠ HÌNH </b>
<b>2.1. Bộ dữ liệu huấn luyện </b>
Để huấn luyện mơ hình, chúng tôi sử dụng tập dữ liệu Face-Mask-Label Dataset (FMLD) [13] và Flickr Faces HQ (FFHQ) [14], bộ dữ liệu FFHQ có 70.000 ảnh khuôn mặt người chất lượng cao với độ phân giải 1024 x 1024. Bộ dữ liệu FMLD có 137,016 ảnh với hai tập dữ liệu Correctly Masked Face Dataset (CMFD) chứa ảnh khuôn mặt đeo khẩu trang đúng và Incorrectly Masked Face Dataset (IMFD) chứa ảnh khuôn mặt đeo khẩu trang sai. Như vậy, bộ dữ liệu sử dụng có 207.016 ảnh để huấn luyện mơ hình phân loại cho 3 lớp: Khơng đeo khẩu trang, có đeo khẩu trang và đeo khẩu trang không đúng.
<b>2.2. Mạng MobileNetV2 </b>
Mạng MobileNetV2 [15] là phiên bản cải tiến từ các mơ hình MobileNet và MobileNetV1 mà giúp cho nó có độ chính xác cao hơn, số lượng tham số và số lượng các phép tính ít hơn. Vì thế, mơ hình này có thể được áp dụng cho các thiết bị nhúng có khả năng tính tốn hạn chế (ví dụ: Raspberry Pi, Google Coral, NVIDIA Jetson Nano, v.v.).
MobileNetV2 sử dụng kỹ thuật kết nối tắt mà các khối ở lớp trước được cộng trực tiếp vào lớp liền sau. Các kết nối tắt của MobileNetV2 được điều chỉnh sao cho số kênh ở đầu vào và đầu ra của mỗi residual block được thắt hẹp lại. Chính vì thế nó được gọi là các bottleneck residual block. Các lớp trung gian trong một block sẽ làm nhiệm vụ biến đổi phi tuyến.
Kết nối tắt giữa các block được thực hiện trên những bottleneck đầu vào và đầu ra chứ không thực hiện trên các layer trung gian. Do đó các lớp bottleneck input và output chỉ cần ghi nhận kết quả và không cần thực hiện biến đổi phi tuyến. Ở giữa các lớp trong một bottleneck residual block sử dụng những biến đổi tích chập tách biệt chiều sâu để giảm thiểu số lượng tham số của mơ hình. Đây cũng chính là bí quyết giúp các mơ hình MobileNet V2 có kích thước giảm.
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19"><i>Hình 10. Kiến trúc mạng MobileNetV2 </i>
<b>2.3. Phương pháp học chuyển tiếp </b>
Học chuyển tiếp (transfer learning) khả năng sử dụng model được đào tạo trước trained) để học từ dữ liệu mà các dữ liệu này khơng được dùng để train cho model trước đó. Có 2 hình thức học chuyển tiếp: (1) Phương pháp thứ nhất gọi là trích xuất đặc trưng với mạng Pre-Trained CNN nhằm thay đổi mục đích của mạng CNN đã có để để trích xuất đặt trưng; (2) Phương pháp thứ hai gọi là tinh chỉnh (fine-tuning) các trọng số của CNN, trong phương pháp này sẽ loại bỏ các lớp FC đã có của mạng CNN, đặt lớp FC mới ở phần đầu của CNN và tinh chỉnh các trọng số của CNN. Sử dụng phương pháp này nhận được độ chính xác cao hơn.
(pre-Trong phạm vi đề tài này, chúng tôi sử dụng phương pháp thứ hai để học chuyển tiếp từ Mạng MobileNet V2. Vì thế, phần tiếp theo chúng tơi sẽ tinh chỉnh kiến trúc MobileNet V2. Đầu tiên, nạp trình phân loại MobilNetV2 sau khi loại bỏ phần đầu của mơ hình và sẽ tinh chỉnh mơ hình này với các trọng số ImageNet được đào tạo trước, tiếp đến xây dựng lớp kết nối đầy đủ (FC) mới và gắn kết vào các lớp cơ sở của mạng MobileNet V2 thay thể phần đầu cũ. Đóng băng các lớp cơ sở, trọng số của các lớp cơ sở này sẽ không được cập nhật, tức là tiến trình lan truyền ngược sẽ không tác động đến chúng, trong khi trọng số của lớp đầu sẽ được điều chỉnh. Rồi thì, Chúng tôi đào tạo mạng bằng cách sử dụng tốc độ học rất nhỏ để tập các lớp FC mới có thể bắt đầu học các mẫu từ các lớp CONV đã học trước đó trong mạng. Theo tùy chọn, chúng tơi có thể giải phóng phần cịn lại của mạng và tiếp tục đào tạo. Việc áp dụng tinh chỉnh cho phép chúng tôi áp dụng các mạng được đào
<b><small>Bottleneck Residual Block </small></b>
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">tạo trước để nhận ra các lớp mà chúng không được đào tạo ban đầu. Quá trình đào tạo được phép tiếp tục cho đến khi có đủ độ chính xác.
<b>2.4. Tăng cường dữ liệu </b>
Tăng cường dữ liệu bao gồm một loạt các kỹ thuật xử lý ảnh để tạo các mẫu đào tạo mới từ những mẫu ban đầu để nhãn đã được phân lớp không thay đổi. Mục tiêu của chúng tôi khi áp dụng tăng dữ liệu là tăng khả năng tổng qt hóa của mơ hình. Chúng tơi có thể nhận được dữ liệu đào tạo bổ sung từ các hình ảnh ban đầu bằng cách áp dụng các phép biến đổi hình học đối với ảnh như: dịch chuyển, xoay, thay đổi về độ co giãn, cắt, lật ngang hoặc lật dọc, thêm nhiễu. Việc áp dụng tăng cường dữ liệu đã làm tăng độ chính xác phân loại của chúng tôi đồng thời giúp giảm thiểu ảnh hưởng của overfitting
<b>2.5. Kết quả thực nghiệm </b>
Để huấn luyện mơ hình, chúng tơi sử dụng tập dữ liệu như đã trình bày tại Mục I Chương này. Triển khai đào tạo mơ hình phân loại, chúng tôi sử dụng thư viện Keras, TensorFlow. Biên dịch mơ hình với trình tối ưu hóa Adam (Adaptive Moment Estimation, thiết lập lịch trình giảm dần tốc độ học tập và sử dụng hàm mất mát categorical_crossentropy. Với các tham số: Tốc độ học bắt đầu = 1e-4; số epoch = 30 và kích thước dữ liệu batch_size = 32.
Trong thử nghiệm này, chúng tôi sẽ đề cập đến các mô hình phân loại hình ảnh hiện đại và cũng được sử dụng rộng rãi trong ngành, bao gồm VGG16 là một trong những mơ hình phổ biến nhất để phân loại hình ảnh. InceptionV3 có độ chính xác tốt. ResNet đã tăng độ sâu của mạng để tăng độ chính xác. DenseNet có những cải tiến đáng kể và yêu cầu tính tốn ít hơn để đạt được hiệu suất cao
Đối với mơ hình MobileNetV2, chúng tơi đã thực hiện 02 thử nghiệm: (1) Huấn luyện mơ hình MobileNetV2 từ tập dữ liệu; (2) sử dụng kỹ thuật Transfer Learning và phương pháp tinh chỉnh (như đã trình bày trong Phần 3.2) để huấn luyện MobileNetV2 từ tập dữ liệu được tạo từ quá trình tăng cường dữ liệu trên tập dữ liệu và chúng tôi đã gọi là mơ hình MobileNetV2*. Chúng tơi đã thay thế đầu mạng (head) bằng tập hợp các lớp FC mới được hiển thị trong Bảng 1, trong đó:
- Lớp Flatten: Sau khi sử dụng lớp AverageMaxpooling2D, chúng tôi sử dụng một lớp Flatten để làm phẳng toàn bộ mạng. Lớp Flatten biến đổi toàn bộ ma trận bản đồ đặc trứng (Feature Map) thành một cột duy nhất.
- Lớp Dense: Sau lớp làm Flatten, chúng tôi đã sử dụng hai lớp Dense. Lớp Dense còn được gọi là lớp tích chập đầy đủ FC. Một lớp FC cung cấp các xác suất chính xác cho các lớp khác nhau khi nó tính tốn các tích giữa các trọng số và lớp trước đó.
- Hàm kích hoạt: Chúng tơi đã sử dụng hàm kích hoạt ReLU đã được chứng minh là mang lại hiệu suất tốt nhất với AverageMaxpooling2D.
</div>