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 (7.46 MB, 69 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>THÀNH PHỐ HỒ CHÍ MINH</b>
BỘ GIÁO DỤC VÀ ĐÀO TẠO
<b>TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT </b>
<b> </b>
<b> <sup> </sup> <sup> </sup> </b>
<b> </b>
<b> </b>
<b> KHĨA LUẬN TỐT NGHIỆP</b>
<b>NGÀNH CƠNG NGHỆ KỸ THUẬT ĐIỆN TỬ - VIỄN THÔNG</b>
<b> NGUYỄN LÊ VƯƠNG </b>
<b> </b>
<small>CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM </small>
<b>GVHD: PSG. TS. Trương Ngọc Sơn Số điện thoại: 0931085929 </b>
<b>Ngày nhận đề tài: 25/9/2023 Ngày nộp đề tài: </b>
1. Tên đề tài: Thiết kế và thi công thiết bị nhận diện thủ ngữ dành cho người khuyết tật
2. Các số liệu, tài liệu ban đầu: Kiến thức của các môn Điện tử cơ bản, Vi xử lý, Cơ sở và ứng dụng AI, Xử lý ảnh, các kiến thức về Arduino, Python, YOLO.
3. Sản phẩm: Thiết bị sẽ thu hình ảnh thủ ngữ từ tay của người khuyết tật để gửi về server nhận diện thơng điệp, sau đó thơng điệp sẽ được gửi về thiết bị để phát ra loa, hỗ trợ người khuyết tật giao tiếp.
<b> TRƯỞNG NGÀNH GIẢNG VIÊN HƯỚNG DẪN </b>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><small>CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM </small>
<b>Độc lập – Tự do – Hạnh phúc </b>
<b>----***---- </b>
<i>TP. Hồ Chí Minh, ngày … tháng 1 năm 2024 </i>
<b>Họ và tên sinh viên: Lê Hồng Mạnh MSSV: 19161135 Họ và tên sinh viên: Nguyễn Lê Vương MSSV: 19161195 Ngành: Công nghệ Kỹ thuật Điện tử - Viễn thông </b>
<b>Tên đề tài: Thiết kế và thi công thiết bị nhận diện thủ ngữ dành cho người khuyết tật Giảng viên hướng dẫn: PGS. TS. Trương Ngọc Sơn </b>
<b>NHẬN XÉT </b>
1. Về nội dung và khối lượng thực hiện:
... ... ...
2. Ưu điểm:
... ... ...
3. Khuyết điểm:
... ... ...
4. <i>Đề nghị cho bảo vệ hay không? </i>
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5"><small>CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM </small>
<b>Độc lập – Tự do – Hạnh phúc </b>
<b>----***---- </b>
<i>TP. Hồ Chí Minh, ngày … tháng 1 năm 2024 </i>
...
...
...
2. Ưu điểm: ...
...
...
3. Khuyết điểm: ...
1. Điểm: ……… (Bằng chữ: )
...
<b>GIÁO VIÊN PHẢN BIỆN </b>
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">Nhóm thực hiện đề tài mong muốn bày tỏ lòng biết ơn sâu sắc đến các giảng viên trong ngành CNKT Điện tử - Viễn thông tại Trường Đại học Sư phạm Kỹ thuật, đặc biệt là PGS. TS. Trương Ngọc Sơn, đã là người đồng hành, hỗ trợ và động viên trong suốt hành trình thực hiện đồ án tốt nghiệp. Sự tận tâm, lòng nhiệt thành cũng như kiến thức sâu rộng của các giảng viên đã giúp nhóm thực hiện đề tài nhận ra những thiếu sót và đồng thời là nguồn động lực giúp nhóm xử lý những vấn đề khó khăn suốt quá trình thực hiện và phát triển đồ án.
Nhóm cũng xin chân thành cảm ơn tới bạn bè và đồng đội, những người bạn đồng hành, chia sẻ cùng nhóm trong quá trình nghiên cứu. Những đóng góp, ý kiến và sự hỗ trợ từ mọi người đã giúp nhóm thực hiện đề tài nhận thức được các khía cạnh chưa hồn thiện và khơng ngừng hồn thiện cơng trình của mình.
Nhóm thực hiện đề tài mong nhận được những lời góp ý, nhận xét từ các giảng viên, để từ đó nhóm có thể tiếp tục hồn thiện bản thân và đồ án của mình. Một lần nữa, nhóm thực hiện đề tài xin bày tỏ lòng biết ơn chân thành đến tất cả những người đã đồng hành và hỗ trợ nhóm trên hành trình này.
Trân trọng.
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">Nhóm thực hiện đề tài thực hiện đề tài tốt nghiệp "Thiết kế và thi công thiết bị nhận diện thủ ngữ dành cho người khuyết tật" dưới sự hướng dẫn của PGS. TS. Trương Ngọc Sơn, xác nhận những điều sau đây:
Nhóm thực hiện đề tài đã tự ý thức và hoàn toàn chịu trách nhiệm với việc thực hiện dự án, không nhận sự giúp đỡ không đúng đắn từ bất kỳ nguồn nào ngoại trừ sự hướng dẫn và hỗ trợ chính thức từ PGS. TS. Trương Ngọc Sơn.
Mọi phần của hệ thống, từ việc nhận diện thủ ngữ hay chuyển thành giọng nói, đều được thực hiện bởi chính nhóm thực hiện đề tài. Khơng có sự hợp tác khơng chính thức hoặc bên thứ ba nào khác tham gia trong việc phát triển dự án.
Nhóm thực hiện đề tài cam đoan khơng có sự gian lận nào trong q trình thực hiện. Mọi kết quả đều trung thực và minh bạch. Nhóm thực hiện đề tài khơng làm giả mạo dữ liệu hoặc kết quả.
Nhóm thực hiện đề tài tuân thủ mọi quy tắc, quy định và luật lệ trong việc thực hiện dự án. Mọi sáng tạo và cơng việc của nhóm thực hiện đề tài khơng vi phạm bản quyền, không xâm phạm quyền riêng tư, và khơng có hành vi bất hợp pháp nào khác. Mọi thành viên trong nhóm đã cống hiến tất cả khả năng và kiến thức của mình để đạt được kết quả tốt nhất cho đồ án.
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">Dự án này phát triển một thiết bị nhận diện thủ ngữ nhỏ gọn, được đặt trên ngực áo của người khuyết tật nhằm hỗ trợ họ trong việc giao tiếp. Thiết bị sử dụng ESP32-CAM làm vi xử lý, kết hợp module MAX98357 (loa) và server từ máy tính để tạo ra một thiết bị tích hợp và di động. Xây dựng hệ thống nhận diện thủ ngữ là mục tiêu chính, chuyển đổi từ thủ ngữ thành giọng nói, tạo ra trải nghiệm giao tiếp tồn diện cho người khuyết tật.
Để đạt được mục tiêu, nhóm thực hiện đề tài sử dụng ESP32-CAM làm nền tảng nhận diện thủ ngữ. Dữ liệu này được chuyển đến máy tính, nơi nhóm triển khai mơ hình YOLO v5 để nhận diện thủ ngữ. Văn bản được chuyển về ESP32-CAM qua giao thức Message Queueing Telemetry Transport (MQTT) để phát ra loa thông qua mạch giải mã MAX98357, tạo ra khả năng giao tiếp giữa người khuyết tật và người đối diện. ESP32-CAM và hệ thống chủ yếu giao tiếp qua WiFi sử dụng giao thức MQTT, giúp thiết bị linh hoạt và di động, đồng giúp hệ thống có thể xử lý theo thời gian thực. Hệ thống này không chỉ đơn thuần nhận diện và chuyển đổi ngơn ngữ, mà cịn tích hợp cơ chế phát âm thanh qua loa, giúp việc giao tiếp dễ dàng hơn với người khuyết tật.
Kết quả của dự án là một thiết bị nhận diện thủ ngữ nhỏ gọn, di động và hiệu quả. Người khuyết tật dễ dàng giao tiếp bằng thủ ngữ. Sử dụng ESP32-CAM và kết nối Wi-Fi giúp tối ưu hóa tính di động và tiện lợi hơn trong cuộc sống hàng ngày. Nhóm thực hiện đề tài hy vọng rằng thiết bị này vừa là một công cụ hỗ trợ giao tiếp, vừa là một bước tiến quan trọng để tạo ra xã hội chân thật và công bằng đối với người khuyết tật.
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">The project focuses on developing a compact sign language recognition device placed on the clothing of people with disabilities to assist them in communication. The device utilizes ESP32-CAM as the processing core, along with the MAX98357 module (speaker) and a server from a computer to create an integrated and mobile system. The main goal is to build a sign language recognition system that converts sign language into speech, providing a comprehensive communication experience for people with disabilities.
To achieve this goal, the team implemented the project using ESP32-CAM as the recognition platform, collecting sign language data. This data is transferred to a computer where the team deployed the YOLO v5 model for sign language recognition. Text is then sent back to ESP32-CAM via the MQTT protocol to be played through the speaker (MAX98357), enabling communication between individuals with disabilities and their counterparts. ESP32-CAM and the system primarily communicate over Wi-Fi using the MQTT protocol, optimizing the device's flexibility and mobility while ensuring real-time processing capability. This system not only identifies and converts language but also integrates a mechanism for sound production through the MAX98357 speaker, enhancing the communication experience for people with disabilities.
The result of the project is a compact, mobile, and efficient sign language recognition device. Individuals with disabilities can easily communicate through sign language. The use of ESP32-CAM and Wi-Fi connectivity helps optimize mobility and integrate the system into daily life. The team hopes that this product is not just a communication support tool but also a significant step toward creating a genuinely fair and inclusive social environment for people with disabilities.
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">1.4. Phương pháp nghiên cứu ... 3
1.5. Đối tượng nghiên cứu... 4
2.2.2. Kiến trúc mạng và cách hoạt động của YOLO ... 10
2.2.3. Output của YOLO ... 11
2.2.4. Dự đoán nhiều future map ... 12
2.2.5. Anchor box ... 14
2.2.6. Hàm loss ... 15
2.2.7. Dự báo bounding box ... 16
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">2.2.8. Non-max suppression ... 17
2.3. YOLO v5 ... 19
2.3.1. Sơ lược về YOLO v5 ... 19
2.3.2. Cách hoạt động của YOLO v5 ... 21
3.2. Các linh kiện trong hệ thống ... 28
3.2.1. Vi điều khiển ESP32-CAM ... 28
3.2.2. Module giải mã âm thanh MAX98357 ... 31
3.3. Thiết kế phần mềm ... 32
3.4. Mơ hình học máy cá nhân hố về thủ ngữ - YOLO v5 ... 37
3.4.1. Quá trình thiết kế thư viện riêng về thủ ngữ tiếng Việt ... 37
3.4.2. Kết quả sau quá trình huấn luyện ... 40
CHƯƠNG 4: KẾT QUẢ, PHÂN TÍCH VÀ ĐÁNH GIÁ ... 41
4.1. Giới thiệu ... 41
4.2. Kết quả thực hiện mơ hình ... 41
4.3. Kết quả thi công hệ thống ... 44
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ... 48
5.1. Kết luận ... 48
5.2. Hướng phát triển ... 48
TÀI LIỆU THAM KHẢO ... 50
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">Hình 2.7 Cấu trúc một output của YOLO ... 12
Hình 2.8 Feature maps của mạng YOLO với kích thước đầu vào là 416x416 với 3 kích thước feature maps đầu ra ... 13
Hình 2.13 Bốn phiên bản của YOLO v5 ... 19
Hình 2.14 Kiến trúc của YOLO v5 ... 20
Hình 2.15 Bảng chữ cái thủ ngữ Việt Nam ... 24
Hình 3.1 Sơ đồ khối hệ thống nhận diện thử ngữ dành cho người khuyết tật ... 26
Hình 3.2 Sơ đồ nguyên lý hệ thống thiết bị nhận diện thủ ngữ cho người khuyết tật .. 28
Hình 3.3 Vi xử lý ESP32-CAM... 29
Hình 3.4 Mạch giải mã âm thanh MAX98357 ... 31
Hình 3.5 Lưu đồ giải thuật của thiết bị xử lý 1 ... 33
Hình 3.6 Sơ đồ giải thuật của máy tính – Python ... 34
Hình 3.7 Lưu đồ giải thuật của thiết bị xử lý 2 ... 35
Hình 3.8 Bảng chữ cái tiếng Việt thể hiện bằng thủ ngữ ... 38
Hình 3.9 Chuẩn bị dữ liệu thủ ngữ tiếng Việt để huấn luyện YOLO v5... 39
Hình 3.10 Kết quả của quá trình huấn luyện ... 40
Hình 4.1 Kết quả nhận diện thủ ngữ “đồng ý” và “cảm ơn” ... 42
Hình 4.2 Biểu đồ Confusion Matrix ... 43
Hình 4.3 Mặt trước và sau của thiết bị xử lý 1 ... 44
Hình 4.4 Thiết bị xử lý 1 sau khi đóng hộp ... 45
Hình 4.5 Thiết bị xử lý 2 ... 46
Hình 4.6 Tổng thể mơ hình thiết bị nhận diện thủ ngữ ... 47
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">Bảng 3. 1 Thông số các chân của ESP32-CAM ... 30Bảng 3. 2 Thông số kỹ thuật của MAX98357 ... 32Bảng 3. 3 Bảng mô tả tin nhắn và nội dung thông điệp tương ứng ... 36
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">SVM Support Vector Machine
KSL Korea Sign Language
VSL Vietnamese Sign Language
CNN Convolutional Neural Network
SUFT Speeded Up Robust Feature
ANN ArtificialiNeuraliNetwork
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">𝑦<sup>𝑇</sup> Output của YOLO
Xác suất dự đốn có vật thể xuất hiện trong bounding box
𝑡<sub>𝑥</sub>, 𝑡<sub>𝑦</sub> Tọa độ tâm của bounding box
𝑡<sub>𝑤</sub>, 𝑡<sub>ℎ</sub> Kích thước dài và rộng của bounding box
Giá trị hàm loss của bounding box so với thực tế
Giá trị hàm loss phân phối xác suất
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16"><b>1.1. Giớithiệu </b>
Không phải ai sinh ra cũng may mắn có thể giao tiếp được bằng ngơn ngữ của mình, đó là bất hạnh của những người điếc hay cịn gọi là người khiếm thính – chỉ có thể nhìn thấy mà khơng thể nghe được âm thanh xung quanh. Theo số liệu Tổ chức Y tế Thế giới (WHO) năm 2020, có 466 triệu người khiếm thính trên thế giới [1]. Đối với họ, khó khăn trong việc nghe nói là một rào cản rất lớn khi tiếp xúc với xã hội, họ có thể bị bỏ lại bởi những thông tin quan trọng, tri thức, các hoạt động về thể chất hay tinh thần mà vốn dĩ phải sử dụng giao tiếp mới có thể kết nối được. Vì vậy, rất nhiều hình thức ngơn ngữ để hỗ trợ cho người khiếm thính đã được phát minh, tiêu biểu cho các ngôn ngữ đó chính là thủ ngữ - một loại ngơn ngữ ký hiệu có thể dùng tay, nét mặt hoặc cử chỉ để nói lên điều họ muốn.
Sự tiến bộ của cơng nghệ là chìa khóa vơ cùng quan trọng với việc đối mặt và giải quyết những thách thức mà cộng đồng người khuyết tật đang phải đối diện hàng ngày. Lĩnh vực trí tuệ nhân tạo và học máy trong những năm gần đây đã có những nghiên cứu về các hệ thống, thiết bị nhận diện thủ ngữ, hỗ trợ người khiếm thính trong vấn đề giao tiếp của họ.
Có hai loại chính của hệ thống nhận dạng thủ ngữ: dựa trên cảm biến và dựa trên thị giác máy tính.
<b>• Phương pháp dựa trên cảm biến: </b>
Với phương pháp này, các cảm biến sẽ được gắn lên người của người sử dụng để thu thập dữ liệu về vị trí, chuyển động cùng lực tác động của các khớp ngón tay. Dữ liệu này sau đó được chuyển đến hệ thống xử lý để nhận dạng thủ ngữ.
Dữ liệu từ nhiều loại cảm biến gắn trực tiếp lên cơ thể sẽ mang lại độ chính xác cao và khơng phụ thuộc vào mơi trường. Tuy nhiên, phương pháp này có thể sẽ gây bất tiện cho người dùng và chi phí cao.
<b>• Phương pháp dựa trên thị giác máy tính: </b>
Phương pháp này sử dụng camera để thu thập hình ảnh thủ ngữ. Các hình ảnh là hình ảnh đầu vào của các thuật tốn xử lý, trích xuất các đặc trưng về không gian và
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">thời gian của thủ ngữ. Các đặc trưng này sau đó sẽ là đầu vào để huấn luyện mơ hình nhận dạng.
Phương pháp này không cần người dùng đeo thiết bị, do đó thuận tiện và thoải mái hơn. Chi phí thiết bị cũng thấp hơn so khi khơng phải chi tiền vào các cảm biến.
Nhược điểm của phương pháp này là độ chính xác thấp hơn so với phương pháp dựa trên cảm biến, đặc biệt là trong mơi trường có nhiều nhiễu.
<b>• Các nghiên cứu nước ngồi: </b>
Trên thế giới đã có nhiều nghiên cứu trong việc nhận dạng thủ ngữ với nhiều ngôn ngữ khác nhau. Nghiên cứu của tác giả [6] đã dùng phương pháp dựa trên cảm biến để có thể nhận dạng ngôn ngữ ký hiệu Mỹ (ASL), nghiên cứu này đã đạt độ chính xác 97,4% trên tập dữ liệu gồm 1.000 hình ảnh được thu thập từ các ký hiệu ngôn ngữ. Với một nghiên cứu khác của tác giả [7] sử dụng phương pháp dựa trên thị giác máy tính để nhận diện ngơn ngữ ký hiệu Trung Quốc (CSL), đã đạt được độ chính xác 96,3% trên tập dữ liệu gồm 5.000 hình ảnh mẫu. Tương tự với phương pháp thị giác máy tính nghiên cứu của tác giả [8] dùng phương pháp học sâu để nhận dạng ngôn ngữ ký hiệu Hàn Quốc (KSL), đối với nghiên cứu này tác giả có độ chính xác 95,4% trên bộ dữ liệu gồm 10.000 hình ảnh làm tăng độ tin cậy. Các nghiên cứu này cho thấy rằng nhận dạng ngôn ngữ ký hiệu là một lĩnh vực mới và có thể phát triển mạng trong tương lai. Các phương pháp nhận dạng dựa trên thị giác máy tính và học sâu đang cải thiện độ chính xác theo từng ngày, đáp ứng nhiều ứng dụng thực tế trong đời sống.
<b>• Các nghiên cứu trong nước: </b>
Các nghiên cứu về nhận dạng ngôn ngữ ký hiệu ở Việt Nam cũng đã được thực hiện. Trong nghiên cứu [11], các tác giả đã sử dụng module trích xuất đặc trưng để trích xuất đặc trưng ngữ cảnh và đặc trưng không gian, mô tả từ ngữ trong ngôn ngữ ký hiệu. Dữ liệu này sau đó được sử dụng để huấn luyện bộ phân loại SVM, đạt được độ chính xác 86,61%.
Trong nghiên cứu [12], các tác giả đã sử dụng phương pháp CNN-LSTM để phát triển mơ hình nhận dạng thủ ngữ Việt Nam. Kết quả cho thấy rằng so với phương pháp truyền thống, phương pháp học sâu có kết quả vượt trội hơn.
Từ các nghiên cứu trên làm nền tảng, nhóm thực hiện đề tài phát triển một thiết bị nhận diện thủ ngữ nhỏ gọn, được đặt trên ngực áo, nhằm hỗ trợ giao tiếp hai chiều
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">cho những người khuyết tật, với mục tối ưu hóa tính di động và tiện dụng của thiết bị vào giao tiếp cuộc sống hằng ngày.
• Phát triển giải thuật chuyển đổi từ văn bản đầu ra của YOLO v5 thành giọng nói, phát ra loa qua mạch chuyển đổi MAX98357, giúp người đối diện có thể nghe và hiểu được thơng điệp của người khuyết tật.
• Sử dụng kết nối WiFi và giao thức MQTT thời gian thực, đảm bảo tính liền mạch trong q trình sử dụng thiết bị để giao tiếp.
• Thiết bị được thiết kế nhỏ gọn, nhẹ, tích hợp pin sạc và có thể đeo trên ngực áo, tối ưu hóa tính di động để thuận tiện sử dụng.
<b>1.3. Giới hạn </b>
Mặc dù nhóm thực hiện đề tài muốn hỗ trợ người khuyết tật giao tiếp bằng cách thiết kế và thi công một thiết bị nhận diện thủ ngữ, nhưng nó cũng có những giới hạn đề tài cụ thể:
• Đồ án tập trung phát triển thiết bị nhận diện được những thủ ngữ đơn giản, không nhận diện thủ ngữ mang ý nghĩa thông điệp phức tạp. Điều này giới hạn phạm vi của hệ thống và nhấn mạnh vào khía cạnh cơ bản của thủ ngữ.
• Thiết bị chỉ hỗ trợ nhận diện thủ ngữ trong ngôn ngữ tiếng Việt, không mở rộng phạm vi đến các ngôn ngữ khác. Điều này giúp tối ưu hóa việc phát triển và đảm bảo tính ứng dụng trong ngữ cảnh văn hóa cụ thể.
• Nhóm thực hiện đề tài xây dựng thiết bị nhận diện thủ ngữ từ góc trước ngực, khơng mở rộng đến việc nhận diện từ các góc quan sát khác. Điều này nhằm đơn giản hóa q trình nhận diện và tối ưu hóa hiệu suất trong các tình huống sử dụng thực tế.
<b>1.4. Phương pháp nghiên cứu </b>
Nhóm thực hiện đề tài tiến hành nghiên cứu về các hệ thống nhận diện có sẵn, tập trung vào giải thuật và phương pháp tiếp cận để hiểu rõ cách hoạt động và ứng dụng
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">của chúng, đồng thời nghiên cứu về xử lý ảnh với thư viện OpenCV để có hiểu biết về cách tạo ra các ngôn ngữ cử chỉ từ tập ảnh tĩnh.
Phân tích, thử nghiệm và đánh giá độ chính xác và tốc độ xử lý của các giải thuật nhận diện thủ ngữ, bao gồm giải thuật YOLO v3, YOLO v5, YOLO v8 để lựa chọn model phù hợp nhất với yêu cầu và mục tiêu của dự án.
Với kiến thức từ các môn học về điện tử, lập trình, xử lí ảnh đã học, nhóm thực hiện đề tài tiến hành thiết kế hệ thống nhận dạng thủ ngữ, bao gồm quá trình lập trình hệ thống, huấn luyện model cũng như kết nối các phần cứng như ESP32-CAM, ESP32 và mạch giải mã âm thanh MAX98357.
<b>1.5. Đối tượng nghiên cứu </b>
Nhóm thực hiện đề tài tập trung nghiên cứu về xử lý ảnh với thư viện OpenCV, giải thuật nhận dạng và quá trình huấn luyện mơ hình YOLO v5 để có thể nhận diện thủ ngữ. Ngồi ra nhóm thực hiện đề tài cịn nghiên cứu giải thuật chuyển đổi văn bản thành giọng nói, cách kết nối hệ thống và ESP32-CAM thơng qua giao thức MQTT và Wi-Fi, đồng thời cũng tìm hiểu cách ESP32-CAM tương tác với máy tính, ESP32 và module MAX98357.
<b>1.6. Bố cục </b>
Luận văn báo cáo gồm 5 chương:
<b>• Chương 1 TỔNG QUAN ĐỀ TÀI: Giới thiệu đề tài và lý do chọn đề tài, xác </b>
định mục tiêu nghiên cứu, xác định phạm vi giới hạn đề tài, phương pháp và đối tượng nghiên cứu.
<b>• Chương 2 CƠ SỞ LÝ THUYẾT: Trình bày các hệ thống, giải pháp kỹ thuật và </b>
các giao thức sẽ sử dụng trong luận văn báo cáo.
<b>• Chương 3 THIẾT KẾ HỆ THỐNG: Trình bày cách hoạt động và yêu cầu của </b>
hệ thống. Thiết kế hệ thống với sơ đồ khối của hệ thống, lưu đồ giải thuật của từng khối và tổng hệ thống.
<b>• Chương 4 THI CƠNG HỆ THỐNG: Thi công kết hợp các khối đã thiết kế thành </b>
một hệ thống mơ hình hồn chỉnh. Đáp ứng mục đúng mục tiêu đề ra của một thiết bị nhận diện thủ ngữ.
<b>• Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN: Trình bày kết quả đạt được. </b>
Đưa ra kết luận và hướng phát triển của đề tài dựa trên mặt hạn chế của đề tài thực hiện.
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20"><b>2.1. Thị giác máy tính </b>
Thị giác máy tính là một lĩnh vực đang có sự phát triển nhanh chóng, tập trung vào việc phân tích, sửa đổi và nhận biết hình ảnh. Thị giác máy tính sẽ cố gắng xác định điều gì đang xảy ra trước camera và sử dụng các thuật tốn để điều khiển máy tính, các hệ thống robot hoặc trả về những hình ảnh mới mang nhiều thông tin hoặc thẩm mỹ hơn so với hình ảnh gốc [13]. Những ứng dụng của thị giác máy tính vào đời sống có thể nói đến như nhận dạng khuôn mặt, biển báo giao thông, điều khiển robot và trong đề tài
<b>của nhóm thực hiện đề tài là nhận dạng thủ ngữ. </b>
OpenCV (Open Source Computer Vision Library) là một thư viện C++ mã nguồn mở dành cho chuẩn bị hình ảnh và thị giác máy tính, ban đầu được tạo ra bởi Intel và hiện được duy trì bởi Willow Garage. Đây là một thư viện có nhiều chức năng tích hợp chủ yếu tập trung vào xử lý liên tục hình ảnh [14]. Việc sử dụng OpenCV vào dự án nhận diện thủ ngữ mang lại nhiều lợi ích vì thư viện vừa có các cơng cụ tiện ích cho xử lý hình ảnh, vừa hỗ trợ nhanh chóng và hiệu quả trong triển khai các thuật toán nhận diện và phân loại.
<i>Hình 2.1 Thư viện OpenCV </i>
<b>2.1.1. Tiền xử lý ảnh </b>
Trong quá trình nhận diện thủ ngữ, bước tiền xử lý ảnh sẽ tối ưu hóa dữ liệu hình ảnh trước khi đưa vào mơ hình nhận diện. Nhiều kỹ thuật xử lý ảnh có thể được sử dụng trong bước này như chuẩn hóa hình ảnh, cân bằng sáng, loại bỏ nhiễu, chuyển đổi màu, phân vùng ảnh [15][16]. Kết quả là một tập dữ liệu được tối ưu hóa, làm nền tảng cho việc nhận diện thủ ngữ với độ chính xác cao.
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21"><i>Hình 2.2 Quá trình tiền xử lý ảnh </i>
Hình 2.2 mơ tả các bước trong q trình tiền xử lý ảnh, bao gồm:
• Cắt ảnh (Cropping): Bước này giúp loại bỏ các phần không cần thiết của ảnh, chẳng hạn như nền, các đối tượng không liên quan, v.v.
• Lọc ảnh (Filtering): Bước này giúp loại bỏ nhiễu, cải thiện độ tương phản, độ sắc nét, v.v. của ảnh. Một số kỹ thuật lọc ảnh phổ biến bao gồm: Lọc trung bình (Average filter), lọc Gaussian (Gaussian filter), lọc Laplacian (Laplacian filter). • Thay đổi kích thước ảnh (Resizing): Để ảnh phù hợp với yêu cầu của các bước xử lý tiếp theo, bước này sẽ thay đổi kích thước ảnh. Một số kỹ thuật thay đổi kích thước ảnh phổ biến bao gồm: Thay đổi kích thước theo khung (Crop and resize), thay đổi kích thước theo tỷ lệ (Scaling).
• Chuẩn hóa ảnh (Normalization): Bước này giúp làm cho các giá trị của ảnh có cùng quy mơ, giúp cho các phép tính tiếp theo được chính xác hơn. Kỹ thuật chuẩn hóa ảnh phổ biến bao gồm: Chuẩn hóa theo giá trị trung bình (Mean normalization), Chuẩn hóa theo độ lệch chuẩn (Standardization).
<b>2.1.2. Phát hiện đối tượng </b>
Phát hiện đối tượng là một bài toán quan trọng trong thị giác máy tính , giúp phát hiện các đối tượng trực quan, làm cơ sở cho các tác vụ khác như phân loại, chú thích, theo dõi đối tượng,…[17]. Có nhiều thuật toán phát hiện đối tượng khác nhau, chẳng hạn như:
• Kỹ thuật phát hiện điểm ảnh cục bộ (local feature detection): Kỹ thuật này tìm kiếm các điểm ảnh cục bộ có đặc trưng độc đáo, chẳng hạn như các điểm Harris, các điểm SIFT, và các điểm SURF.
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">• Kỹ thuật phát hiện đối tượng bằng khuôn mẫu (template matching): Kỹ thuật này so sánh ảnh đầu vào với một khuôn mẫu đã biết. Nếu có sự tương đồng đáng kể giữa hai ảnh, thì có thể kết luận rằng đối tượng đã biết có mặt trong ảnh đầu vào. • Kỹ thuật phát hiện đối tượng bằng học máy (machine learning): Kỹ thuật này sử dụng các mơ hình học máy để phát hiện đối tượng trong ảnh. Các mơ hình học máy phổ biến được sử dụng bao gồm các mơ hình phân loại, các mơ hình hồi quy, và các mơ hình phát hiện đối tượng.
Hình 2.3 mơ tả hành trình phát triển của các thuật tốn nhận diện từ năm 2001 đến năm 2022. Có thể thấy, từ năm 2012, sự tiến bộ nhanh chóng của deep learning đã mang lại những đổi mới đáng kể trong nhận dạng đối tượng, tạo ra các phương pháp và thuật tốn hiện đại với độ chính xác cao. Các thuật toán nổi tiếng như RetinaNet, R-CNN, Fast-RCNN, YOLO và SSD là những cột mốc quan trọng trong phát triển của lĩnh vực này. Đặc biệt, chúng dựa trên deep learning, địi hỏi kiến thức sâu về tốn học và học máy [18].
<i>Hình 2.3 Lịch sử phát triển các kỹ thuật phát hiện đối tượng </i>
Trong đồ án này, nhóm thực hiện đề tài sử dụng thuật toán phát hiện đối tượng YOLO dựa trên học máy để phát hiện thủ ngữ. YOLO (You Only Look Once) là một phương pháp tiên tiến trong lĩnh vực nhận diện vật thể, các đối tượng trong một hình ảnh sẽ được xác định và phân loại chỉ trong một lần nhìn. YOLO có tốc độ xử lý rất nhanh cùng độ chính xác cao, là một lựa chọn mạnh mẽ cho các ứng dụng thời gian thực [18].
<b>2.1.3. Trích xuất đặc trưng </b>
Khi dữ liệu đầu vào của một thuật tốn q lớn và có thể mang nhiều dữ liệu dư thừa ngoài những dữ liệu cần xử lý, dữ liệu được chuyển thành một tập hợp các đặc trưng (còn được gọi là vector đặc trưng). Mục tiêu chính của trích xuất đặc trưng là giữ lại chi tiết quan trọng nhất từ dữ liệu gốc và biểu diễn thơng tin đó trong khơng gian
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">chiều thấp hơn [19]. Mục tiêu chính của trích xuất đặc trưng là một tập hợp các đặc trưng, giúp tăng tỷ lệ nhận dạng lên tối đa với số lượng thành phần ít nhất và tạo ra tập hợp đặc trưng tương tự cho các biến thể khác nhau của cùng một ký tự [20].
Các phương pháp trích xuất đặc trưng được sử dụng rộng rãi là: Kết hợp mẫu, Mẫu biến dạng, Biến đổi hình ảnh đơn vị, Mơ tả đồ thị, Bảng chiếu, Hồ sơ đường viền, Chia vùng, Bất biến mơ hình hình học, Mơ-men Zernike, Xấp xỉ đường cong Spline, Mơ tả Fourier, Đặc trưng gradient và Đặc trưng Gabor [21]
<b>Đặc trưng cục bộ: Thường là các đặc điểm hình học của từng phần nhỏ của ký </b>
tự, như các điểm lõm/lồi, số điểm cuối, số nhánh, điểm nối, v.v.
<b>Đặc trưng toàn cục: Thường là các đặc điểm cấu trúc hoặc thống kê của toàn </b>
bộ ký tự, như kết nối các nét, hình chiếu, số lỗ, bất biến mơ men, v.v.
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">Hình 2.4 cho thấy một số đặc trưng hình học được trích xuất từ chữ "th" viết tay. Các đặc trưng này bao gồm tỷ lệ khung hình, số điểm cuối, số giao điểm, kích thước và số vịng lặp, phân bố chiều rộng và chiều cao, độ nghiêng, hình dạng, độ cong trung bình và đặc trưng gradient.
<b>2.1.4. Phân loại </b>
Vai trị quan trọng khơng kém là bước phân loại vì bước này sẽ quyết định lớp hoặc đối tượng cụ thể mà mơ hình đang xử lý. Q trình này sẽ trích xuất các đặc trưng từ đối tượng hoặc mẫu, sau đó sử dụng các thuật tốn phân loại để xác định lớp của đối tượng hoặc mẫu [23].
<b>Thuật toán phân loại dựa trên ngưỡng là thuật toán đơn giản nhất trong </b>
computer vision. Thuật toán sẽ gán một lớp nhất định cho các đối tượng hoặc mẫu có giá trị đặc trưng nằm trên hoặc dưới một ngưỡng cụ thể.
<b>Thuật toán phân loại dựa trên xác suất sẽ tính xác suất của một đối tượng </b>
hoặc mẫu thuộc từng lớp. Đối tượng hoặc mẫu sẽ được gán cho lớp có xác suất cao nhất.
<b>Thuật toán phân loại dựa trên học máy là thuật toán tiên tiến nhất trong </b>
computer vision. Các thuật toán này học các đặc trưng từ dữ liệu huấn luyện. Sau khi được đào tạo, các thuật tốn này có thể sử dụng các đặc trưng này để phân loại các đối tượng hoặc mẫu mới. Các mơ hình phân loại có thể kể đến như: Mơ hình phân loại logistic, mơ hình hỗ trợ vector máy (SVM), mơ hình mạng nơ-ron nhân tạo (ANN), mơ hình mạng nơ ron tích chập (CNN).
<b>2.2. Tổng quan về YOLO 2.2.1. Tổng quan về YOLO </b>
You Only Look Once (YOLO) là một thuật toán nhận diện và phân loại đối tượng bằng cách sử dụng thị giác máy tính, được Redmon và đồng nghiệp ra mắt vào năm 2015. Trong những năm qua, các phiên bản tiếp theo của YOLO đã được các học giả công bố, bao gồm YOLO v2, YOLO v3, YOLO v4, YOLO v5 và mới nhất là YOLO v8 [24].
Là một thuật toán nhận diện vật thể, YOLO có thể xác định vị trí, phân loại hay dự đốn nhãn cho vật thể đó. Với các thuật tốn khác chỉ có thể dự đốn một nhãn cho bức ảnh, YOLO có thể dự đốn nhiều nhãn cho nhiều vật trong trong 1 bức ảnh duy nhất.
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25"><i>Hình 2.5 Hệ thống xác định vật thể YOLO </i>
Ưu điểm chính của YOLO là khả năng dự đoán và phân loại đối tượng trực tiếp từ toàn bức ảnh, giảm thiểu các dự đoán lặp lại và tăng cường tốc độ xử lý. Hình 2.5 mơ tả đơn giản cách hoạt động của YOLO. Đầu tiên, ảnh đầu vào sẽ được hệ thống điều chỉnh thành 448 × 448, sau đó chạy một mạng nơ-ron tích chập duy nhất trên ảnh, và dán nhãn cho các đối tượng bằng độ tự tin của model [25].
<b>2.2.2. Kiến trúc mạng và cách hoạt động của YOLO </b>
Mơ hình YOLO được triển khai dưới dạng một mạng nơ-ron tích chập (CNN) và được đánh giá trên bộ dữ liệu nhận dạng PASCAL VOC. Kiến trúc của mạng tham khảo từ mơ hình phân loại hình ảnh GoogLeNet. Kiến trúc của mạng YOLO được chia thành hai phần chính:
<b>• Base Network: Bao gồm 24 lớp tích chập, đảm nhận trách nhiệm trích xuất đặc </b>
trưng từ hình ảnh đầu vào.
<b>• Extra Layer: Bao gồm 2 lớp fully connected, được thiết kế để phát hiện vật thể </b>
dựa trên feature map được tạo ra bởi Base Network.
Các lớp tích chập 1 × 1 xen kẽ sẽ làm giảm không gian đặc trưng từ các lớp trước đó. Điều này giúp giảm số lượng tham số cần thiết và cải thiện hiệu suất của mạng. Các lớp tích chập trên tác vụ phân loại ImageNet được giảm độ phân giải xuống một nửa (ảnh đầu vào 224 × 224) và sau đó tăng độ phân giải lên gấp đôi để thực hiện nhiệm vụ nhận diện. Điều này giúp mạng có thể phát hiện các vật thể có kích thước khác nhau. Đầu ra cuối cùng của mạng là mảng tensor dự đoán có kích thước 7 × 7 × 30. Mảng tensor này chứa các dự đốn về kích thước, vị trí và nhãn của các vật thể trong hình ảnh [25]. Tất cả được thể hiện trong được thể hiện trong Hình 2.6.
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26"><i>Hình 2.6 Kiến trúc mạng YOLO </i>
Base Network chịu trách nhiệm trích xuất đặc trưng từ ảnh đầu vào, cho ra một feature map với kích thước 7x7x1024 và nó sẽ được sử dụng làm đầu vào cho các lớp Extra layers, có nhiệm vụ dự đoán nhãn và tọa độ của bounding box của các vật thể trong ảnh.
YOLO hỗ trợ hai kích thước đầu vào là 416x416 và 608x608. Mỗi kích thước đầu vào có thiết kế cấu trúc layers tương ứng để phù hợp với hình dạng của input. Sau khi đi qua các lớp tích chập, kích thước của feature map giảm dần, kết quả là một future map với kích thước rất nhỏ, được sử dụng để dự đốn vật thể trong từng ơ của feature map.
Feature map có kích thước thay đổi tùy thuộc vào kích thước đầu vào. Đầu tiên là đầu vào với kích thước 416x416, kích thước feature map đầu ra sẽ là 13x13, 26x26 và 52x52. Còn đối với đầu vào 608x608, feature map đầu ra có kích thước lần lượt là 19x19, 38x38 và 72x72 [26].
<b>2.2.3. Output của YOLO </b>
Kết quả đầu ra của mơ hình YOLO là một vectơ, bao gồm:
𝑦<sup>𝑇</sup> = [𝑝<sub>0</sub>, 〈𝑡<sub>𝑥</sub>, 𝑡<sub>𝑦</sub>, 𝑡<sub>𝑤</sub>, 𝑡<sub>ℎ</sub>〉, 〈𝑝<sub>1</sub>, 𝑝<sub>2</sub>, … , 𝑝<sub>𝑐</sub>〉] (2.1) • 𝑝<sub>0</sub> là xác suất dự đoán vật thể xuất hiện trong bounding box.
• 〈𝑡<sub>𝑥</sub>, 𝑡<sub>𝑦</sub>, 𝑡<sub>𝑤</sub>, 𝑡<sub>ℎ</sub>〉 giúp xác định bounding box, trong đó 〈𝑡<sub>𝑥</sub>, 𝑡<sub>𝑦</sub>〉 là tọa độ tâm, cịn 〈𝑡<sub>𝑤</sub>, 𝑡<sub>ℎ</sub>〉 là kích thước dài và rộng của bounding box.
• 〈p<sub>1</sub>, p<sub>2</sub>, … , p<sub>c</sub>〉 là vectơ phân phối xác suất dự đoán cho các lớp.
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">Dựa trên số lượng lớp, đầu ra sẽ được xác định bằng công thức (số lớp + 5). Nếu mơ hình được huấn luyện có 20 lớp thì đầu ra sẽ là tổng cộng 25. Trong trường hợp sử dụng 3 anchors mỗi ô, số lượng tham số đầu ra sẽ là (20 + 5) x 3 = 75.
<i>Hình 2.7 Cấu trúc một output của YOLO </i>
Trong Hình 2.7, hình ảnh gốc được chuyển thành một feature map có kích thước 13x13. Trên mỗi ô của feature map, chúng ta lựa chọn 3 anchor boxes có kích thước khác nhau, gọi lần lượt là Box 1, Box 2, Box 3 sao cho tâm của mỗi anchor box trùng với tâm của ô tương ứng. Kết quả, đầu ra của YOLO là một vectơ nối tiếp từ thông tin của 3 bounding boxes [27].
<b>2.2.4. Dự đoán nhiều future map </b>
Tương tự như SSD, từ phiên bản YOLO v3 cũng sử dụng nhiều feature map để dự đoán. Các feature map ban đầu có kích thước nhỏ, phù hợp để phát hiện các đối tượng có kích thước lớn. Các feature map sau có kích thước lớn hơn, nhưng anchor box vẫn có kích thước cố định. Điều này giúp YOLO có thể phát hiện cả các đối tượng có kích thước lớn và nhỏ.
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28"><i>Hình 2.8 Feature maps của mạng YOLO với kích thước đầu vào là 416x416 với 3 kích thước feature maps đầu ra </i>
Trong mơ hình YOLO, mỗi ô của feature map sẽ được gán 3 anchor box để dự đoán về vật thể. Điều này dẫn đến việc một mơ hình YOLO có 9 anchor box khác nhau (3 feature map x 3 anchor box). Trong một feature map hình vng có kích thước S x S, mơ hình YOLO sẽ tạo ra S x S x 3 anchor box. Điều này dẫn đến số lượng anchor box trên mỗi bức ảnh là:
𝑁 = 3 × 𝑆<sup>2</sup> (2.2) Với kích thước feature map mặc định của YOLO v3 là 608 x 608, số lượng anchor box trên mỗi bức ảnh là:
𝑁 = 3 × 608<sup>2</sup> = 10647 (anchor boxes) (2.3) Số lượng anchor box lớn (10647) là nguyên nhân khiến q trình huấn luyện mơ hình YOLO trở nên chậm. Điều này là do mơ hình cần dự báo đồng thời nhãn và bounding box trên tất cả 10647 anchor box. Để khắc phục vấn đề này, cần lưu ý một số điều sau khi huấn luyện mơ hình YOLO:
• Cần có dung lượng RAM lớn để lưu trữ 10647 bounding box.
• Khơng thể thiết lập số lượng mẫu thử q lớn như trong các mơ hình phân loại vì có thể gây ra trạng thái khơng đủ bộ nhớ.
• Thời gian xử lý của mỗi bước trên YOLO lâu hơn rất nhiều so với các mơ hình phân loại. Do đó, nên giới hạn số bước huấn luyện cho YOLO. Đối với các tác vụ nhận diện dưới 5 lớp, dưới 5000 bước là có thể đạt được kết quả ở mức chấp nhận được. Đối với mơ hình có nhiều lớp hơn, số bước có thể tăng theo cấp số nhân tùy ý [27].
</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29"><b>2.2.5. Anchor box </b>
Để xác định vị trí của một vật thể trong ảnh, mơ hình YOLO sẽ sử dụng anchor box để đưa ra ước lượng ban đầu. Các anchor box này là các bounding box được xác định trước và có độ chính xác tương đối cao khi bao quanh vật thể. Sau đó, thuật tốn bounding box hồi quy sẽ sử dụng các anchor box này để điều chỉnh và tạo ra bounding box dự đốn chính xác hơn. Trong cấu trúc của mơ hình YOLO:
• Trong q trình huấn luyện, mỗi vật thể trong hình ảnh sẽ được gán cho một anchor box. Nếu có nhiều anchor box bao quanh vật thể, anchor box có chỉ số IoU cao nhất với ground truth bounding box sẽ được chọn.
• Mỗi vật thể trong hình ảnh cũng sẽ được đặt vào một ơ trên feature map. Ô này tương ứng với nơi chứa trung điểm của vật thể. Ví dụ, nếu chú chó trong Hình 2.8 nằm trong ơ màu đỏ, điều này đồng nghĩa với việc vật thể sẽ được phân loại và dự đốn trong ơ đó. Ơ này cũng được sử dụng để xác định các anchor boxes bao quanh hình ảnh chú chó.
<i>Hình 2.9 Xác định anchor box </i>
Trong Hình 2.9, ơ thứ i, 3 viền xanh chính là 3 anchor boxes được xác định, tất cả đều giao nhau với bounding box của vật thể. Tuy nhiên, chỉ anchor box có đường viền dày nhất màu xanh được chọn làm anchor box chính cho vật thể, vì nó có chỉ số IoU (Intersection over Union) so với ground truth bounding box là cao nhất.
Việc xác định vật thể trong ảnh cần xác định cả hai thành phần liên quan đến nó, bao gồm ơ và anchor box. Nếu hai vật thể có trung điểm trùng nhau, thuật tốn sẽ gặp khó khăn trong việc phân loại chúng như Hình 2.10 [27].
</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30"><i>Hình 2.10 Cả người và xe đều thuộc cùng một ơ và có trung điểm trùng nhau. Thuật tốn sẽ xác định lớp cho ô bằng cách thực hiện các tiebreak </i>
(2.4)
ℒ<sub>𝑐𝑙𝑠</sub> = ∑ ∑ (1<sub>𝑖𝑗</sub><sup>𝑜𝑏𝑗</sup>𝜆<sub>𝑛𝑜𝑜𝑏𝑗</sub>(1 − 1<sub>𝑖𝑗</sub><sup>𝑜𝑏𝑗</sup>))(𝐶<sub>𝑖𝑗</sub>− 𝐶̂<sub>𝑖𝑗</sub>)<small>2</small>+
∑ ∑ 1<sub>𝑖</sub><sup>𝑜𝑏𝑗</sup>(𝑝<sub>𝑖</sub>(𝑐) − 𝑝̂<sub>𝑖</sub>(𝑐))<sup>2</sup>
(2.5)
Trong đó:
• ℒ<sub>𝑙𝑜𝑐</sub>: hàm loss của bounding box so với thực tế.
• ℒ<sub>𝑐𝑙𝑠</sub>: hàm loss phân phối xác suất. Vế trước là hàm loss dự đốn tồn tại vật trong ơ hay khơng. Nếu có vật thể trong ơ, vế sau là hàm loss của phân phối xác suất.
</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">• 1<sub>𝑖</sub><sup>𝑜𝑏𝑗</sup>: Hàm trỏ có giá trị nhằm xác định xem ơ có chứa vật thể hay khơng. Giá trị của hàm là 1 nếu ô chứa vật thể và là 0 nếu ơ khơng chứa vật thể.
• 1<sub>𝑖𝑗</sub><sup>𝑜𝑏𝑗</sup>: Để xác định xem bounding box thứ i của ơ có phải là bounding box của vật thể được dự đốn hay khơng.
• 𝐶<sub>𝑖𝑗</sub>: Điểm tin cậy của ô thứ i, P(contain object) * IoU (predict bbox, ground truth bbox).
• 𝐶̂<sub>𝑖𝑗</sub>: confidence score của dự đốn. • 𝐶: tập hợp các lớp.
• 𝑝<sub>𝑖</sub>(𝑐): xác suất ơ thứ i có chứa đối tượng của lớp 𝑐 ∈ 𝐶. • 𝑝̂<sub>𝑖</sub>(𝑐): xác suất dự đoán.
<b>2.2.7. Dự báo bounding box </b>
Để xác định vị trí của một vật thể trong ảnh, mơ hình sẽ dự đốn bounding box dựa trên anchor box và ơ.
Các thuật tốn YOLO v2 và YOLO v3 dự đốn bounding box sao cho tâm của nó nằm gần vị trí trung tâm của vật thể nhất. Điều này giúp cho việc huấn luyện mơ hình trở nên hiệu quả hơn, vì mơ hình chỉ cần học cách xác định tâm của vật thể. Nếu bounding box dự đốn có thể nằm ở bất kỳ vị trí nào trong ảnh, kết quả của việc huấn luyện mô hình có thể khơng tốt [28].
Đối với kích thước một anchor box là (𝑝<sub>𝑤</sub>, 𝑝<sub>ℎ</sub>) tại một ô trên feature map, góc trên bên trái là (𝑐<sub>𝑥</sub>, 𝑐<sub>𝑦</sub>), mơ hình dự đốn 4 tham số (𝑡<sub>𝑥</sub>, 𝑡<sub>𝑦</sub>, 𝑡<sub>𝑤</sub>, 𝑡<sub>ℎ</sub>), trong đó 2 tham số đầu là độ lệch (offset) so với góc trên cùng bên trái của ơ và 2 tham số sau là tỷ lệ so với anchor box. Các tham số này được sử dụng để xác định bounding box dự đốn b có tâm (𝑏<sub>𝑥</sub>, 𝑏<sub>𝑦</sub>) và kích thước (𝑏<sub>𝑤</sub>, 𝑏<sub>ℎ</sub>) thơng qua hàm sigmoid và hàm mũ, như sau:
𝑏<sub>𝑥</sub> = 𝜎(𝑡<sub>𝑥</sub>) + 𝑐<sub>𝑥</sub> (2.6) 𝑏<sub>𝑦</sub> = 𝜎(𝑡<sub>𝑦</sub>) + 𝑐<sub>𝑦</sub> (2.7) 𝑏<sub>𝜔</sub> = 𝑝<sub>𝜔</sub>𝑒<small>𝑡𝜔</small> (2.8) 𝑏<sub>ℎ</sub> = 𝑝<sub>ℎ</sub>𝑒<sup>𝑡</sup><small>ℎ</small> (2.9) Do các tọa độ đã được hiệu chỉnh theo kích thước của ảnh nên chúng ln nằm trong khoảng từ 0 đến 1. Điều này giúp hạn chế trường hợp các tọa độ vượt quá xa các ngưỡng này khi áp dụng hàm sigmoid.
</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32"><i>Hình 2.11 Từ anchor box, mơ hình ước lượng bounding box sử dụng các tham số dự đốn </i>
Ở Hình 2.11, Anchor box được biểu thị bằng hình chữ nhật nét đứt bên ngồi, có kích thước (𝑝<sub>𝑤</sub>, 𝑝<sub>ℎ</sub>). Tọa độ của một bounding box được xác định dựa trên cả anchor box và ơ mà nó thuộc về. Điều này giúp đảm bảo rằng bounding box dự đoán sẽ nằm trong một khoảng nhất định xung quanh vị trí của ô và anchor box. Điều này có lợi cho quá trình huấn luyện, vì nó giúp giảm thiểu sự dao động của các tham số dự đoán [28].
<b>2.2.8. Non-max suppression </b>
Hệ thống YOLO dự đoán rất nhiều bounding box trên một bức ảnh, dẫn đến khả năng chồng lấp cao ở những ô gần nhau. Để giảm thiểu số lượng bounding box được sinh ra, YOLO sử dụng thuật toán non-max suppression [29].
Non-max suppression được thực hiện theo hai bước:
<b>• Bước 1: Lọc bỏ các bounding box có xác suất thấp. </b>
Trong bước này, tất cả các bounding box có xác suất chứa vật thể nhỏ hơn một ngưỡng nhất định, thường là 0,5, sẽ bị loại bỏ. Điều này giúp giảm đáng kể số lượng bounding box cần xử lý.
<b>• Bước 2: Xóa bỏ các bounding box có IoU cao. </b>
Trong bước này, thuật tốn sẽ chọn bounding box có xác suất chứa vật thể cao nhất, sau đó tính tốn chỉ số giao thoa IoU giữa bounding box này với các bounding box còn lại. Nếu chỉ số IoU lớn hơn ngưỡng nhất định, điều đó có nghĩa là hai bounding
</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">box đang trùng lặp rất cao. Bounding box có xác suất thấp hơn sẽ bị loại bỏ, giữ lại bounding box có xác suất cao nhất.
Cuối cùng, thuật toán sẽ lặp lại bước 2 cho đến khi chỉ còn một bounding box được giữ lại. Bounding box này có xác suất chứa vật thể cao nhất và không trùng lặp với bất kỳ bounding box nào khác [29].
<i>Hình 2.12 Chiếc xe ban đầu được ba bounding box bao quanh, nhưng sau khi sử dụng thuật tốn non-max suppression, chỉ cịn một bounding box được giữ lại </i>
Ví dụ ở Hình 2.12, bức ảnh có chứa hai chiếc ô tô. Sau khi thực hiện bước 1, thuật toán sẽ loại bỏ tất cả các bounding box có xác suất chứa ơ tơ nhỏ hơn 0,5. Điều này sẽ khiến chúng ta chỉ còn lại hai bounding box, mỗi bounding box bao quanh một chiếc ô tô.
Trong bước 2, thuật tốn sẽ chọn bounding box có xác suất chứa ô tô cao nhất. Giả sử bounding box này có xác suất là 0,8. Sau đó, thuật tốn sẽ tính tốn chỉ số IoU giữa bounding box này với bounding box còn lại. Giả sử chỉ số IoU là 0,7. Điều này có nghĩa là hai bounding box đang trùng lặp khoảng 70%. Vì chỉ số IoU lớn hơn ngưỡng nhất định, bounding box có xác suất thấp hơn sẽ bị loại bỏ.
Cuối cùng, thuật toán sẽ giữ lại bounding box có xác suất cao nhất, có xác suất chứa ơ tơ là 0,8. Bounding box này sẽ là bounding box duy nhất cho một chiếc ô tô trong bức ảnh.
</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34"><b>2.3. YOLO v5 </b>
<b>2.3.1. Sơ lược về YOLO v5 </b>
YOLO v5 là phiên bản thứ 5 của YOLO, được phát triển bởi Alexey Bochkovskiy, Chien-Yao Wang và cộng sự tại Facebook AI, sử dụng để phát hiện đối tượng trong hình ảnh và video. Đây là phiên bản tiếp theo của dịng mơ hình YOLO nổi tiếng, nổi bật với khả năng nhận diện đối tượng real-time và phiên bản 5 mang lại nhiều cải tiến về hiệu suất và độ chính xác so với các phiên bản trước. Tuy nhiên, phiên bản này khơng có bài báo chính thức và chỉ có repository trên Github [29]. Với việc là một mã nguồn mở và có sẵn trên GitHub, cộng đồng có thể đóng góp vào phát triển và cải thiện mơ hình, thúc đẩy sự đa dạng và tính cập nhật của mơ hình và giúp mơ hình phát triển trong việc áp dụng YOLO v5 vào nhiều ứng dụng khác nhau. Nó được sử dụng rộng rãi trong các ứng dụng như giám sát an ninh, xe tự lái, và nhận dạng đối tượng trong video do khả năng nhận diện nhanh và chính xác.
<i>Hình 2.13 Bốn phiên bản của YOLO v5 </i>
YOLO v5 sử dụng một kiến trúc mạng thần kinh sâu với nhiều lớp tích tụ và lớp dự đốn. Hình 2.13 cho thấy có tất cả 4 phiên bản Yolo v5, bao gồm Yolo v5s, Yolo v5m, Yolo v5l và Yolo v5x, mỗi phiên bản được tối ưu hóa để đáp ứng các yêu cầu đặc biệt về hiệu suất và độ chính xác. Yolo v5 được phân biệt bởi độ sâu của mạng và hệ số nhân độ sâu, ví dụ bội số độ sâu của Yolo v5s là 0,33 và bội số độ sâu của Yolo v5l là 1. Yolo v5s là phiên bản đơn giản nhất với tệp trọng lượng nhỏ nhất và có tốc độ nhận dạng cao [30].
</div>