Ý NGHĨA CÁC KÝ HIỆU TOÁN HỌC
TỔNG QUAN
Giới thiệu
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
• Phương pháp dựa trên cảm biến:
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
• Phương pháp dựa trên thị giác máy tính:
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 toán xử lý, trích xuất các đặc trưng về không gian và
2 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
• Các nghiên cứu nước ngoài:
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
• Các nghiên cứu trong nước:
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
3 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.
Mục tiêu
Nhóm thực hiện đề tài đặt mục tiêu xây dựng một thiết bị nhận diện thủ ngữ cải thiện khả năng giao tiếp cho người khuyết tật Bao gồm:
• Xây dựng một hệ thống nhận diện thủ ngữ sử dụng mô hình YOLO v5, nhận diện thủ ngữ sau đó chuyển thành văn bản một cách chính xác với thời gian phản hồi nhanh chóng
• 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 quá 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.
Giới hạn
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 quá 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ế.
Phương pháp nghiên cứu
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
4 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.
Đối tượng nghiên cứu
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ữ Ngoà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ố cục
Luận văn báo cáo gồm 5 chương:
• Chương 1 TỔNG QUAN ĐỀ TÀI: Giới thiệu đề tài và lý do chọn đề tài, xác đị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
• 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à các giao thức sẽ sử dụng trong luận văn báo cáo
• 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 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
• 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 một hệ thống mô hình hoà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ữ
• Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN: Trình bày kết quả đạt được Đư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
CƠ SỞ LÝ THUYẾT
Thị giác máy tính
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 toá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 của nhóm thực hiện đề tài là nhận dạng thủ ngữ
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
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
Hình 2.2 Quá trình tiền xử lý ảnh
Hình 2.2 mô tả các bước trong quá 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)
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
• 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 toá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 toá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ề toán học và học máy [18]
Hình 2.3 Lịch sử phát triển các kỹ thuật phát hiện đối tượng
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]
Khi dữ liệu đầu vào của một thuật toán quá 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
8 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]
Tổng quan về YOLO
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ự đoán nhãn cho vật thể đó Với các thuật toán khác chỉ có thể dự đoán một nhãn cho bức ảnh, YOLO có thể dự đoán nhiều nhãn cho nhiều vật trong trong 1 bức ảnh duy nhất
Hình 2.5 Hệ thống xác định vật thể YOLO Ư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]
2.2.2 Kiến trúc mạng và cách hoạt động của YOLO
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:
• Base Network: Bao gồm 24 lớp tích chập, đảm nhận trách nhiệm trích xuất đặc trưng từ hình ảnh đầu vào
• Extra Layer: Bao gồm 2 lớp fully connected, được thiết kế để phát hiện vật thể 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ự đoá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
Hình 2.6 Kiến trúc mạng YOLO
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ự đoá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à
Kết quả đầu ra của mô hình YOLO là một vectơ, bao gồm:
• 𝑝 0 là xác suất dự đoán vật thể xuất hiện trong bounding box
• 〈𝑡 𝑥 , 𝑡 𝑦 , 𝑡 𝑤 , 𝑡 ℎ 〉 giúp xác định bounding box, trong đó 〈𝑡 𝑥 , 𝑡 𝑦 〉 là tọa độ tâm, còn
〈𝑡 𝑤 , 𝑡 ℎ 〉 là kích thước dài và rộng của bounding box
• 〈p 1 , p 2 , … , p c 〉 là vectơ phân phối xác suất dự đoán cho các lớp
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
Hình 2.7 Cấu trúc một output của YOLO
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]
2.2.4 Dự đoán nhiều future map
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ỏ
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
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 vuông 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à:
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à:
Số lượng anchor box lớn (10647) là nguyên nhân khiến quá 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ử quá 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]
YOLO v5
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
Hình 2.13 Bốn phiên bản của YOLO v5
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ự đoá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]
Hình 2.14 Kiến trúc của YOLO v5
Kiến trúc mạng của YOLO v5 thể hiện chi tiết trong Hình 2.14, gồm 3 phần chính:
• Backbone: là phần đầu tiên của mạng, chịu trách nhiệm trích xuất các đặc trưng quan trọng từ hình ảnh đầu vào Mạng CSPDarknet53 được sử dụng làm backbone trong YOLO v5 để trích xuất các đặc trưng đa dạng và phong phú
• Neck: là phần tiếp theo của mạng, có nhiệm vụ sắp xếp các đặc trưng đầu ra của backbone tạo thành các feature pyramid – một cấu trúc dữ liệu phân cấp các đặc trưng theo mức độ chi tiết, tương tự kim tự tháp Feature pyramid giúp mô hình tổng quát hóa tốt hơn khi xử lý các đối tượng có kích thước khác nhau YOLO v5 sử dụng PANet làm neck để tạo ra các feature pyramid
• Head: là phần cuối cùng của mạng, chịu trách nhiệm phát hiện các đối tượng trong ảnh Nó sử dụng các anchor box để xây dựng các vector đầu ra cuối cùng bao gồm xác suất class, object score, và bounding boxes Đầu của mô hình YOLO v5 giống như các phiên bản YOLO V3 và V4 trước đó [31]
2.3.2 Cách hoạt động của YOLO v5
Khi có một input được đưa vào, mô hình YOLO v5 sẽ hoạt động như sau:
Tiền xử lý: Tiền xử lý là một bước quan trọng để đảm bảo hình ảnh có định dạng phù hợp để bắt đầu quá trình xử lý Các bước tiền xử lý phổ biến bao gồm:
• Chuyển đổi ảnh sang định dạng RGB: YOLO v5 sử dụng các mạng CNN được đào tạo trên các tập dữ liệu RGB Do đó, cần phải chuyển đổi ảnh sang định dạng RGB trước khi đưa vào mô hình
• Tỷ lệ khung hình ảnh thành kích thước phù hợp: YOLO v5 có thể hoạt động trên các ảnh có kích thước khác nhau Tuy nhiên, để có hiệu quả tốt nhất, cần tỷ lệ khung hình ảnh thành kích thước phù hợp Kích thước tỷ lệ khung hình phổ biến là 608x608
• Chuẩn hóa giá trị pixel: Giá trị pixel của ảnh có thể khác nhau tùy thuộc vào thiết bị chụp Do đó, cần chuẩn hóa giá trị pixel để đảm bảo mô hình hoạt động chính xác trên các ảnh có độ sáng và độ tương phản khác nhau
Truyền ảnh qua CNN: Ảnh được truyền qua mạng neural YOLO v5 Mỗi ô lưới trên ảnh được sử dụng để dự báo các bounding box và xác suất của các lớp đối tượng
Phát hiện đối tượng: YOLO v5 chia ảnh thành 3x3 lưới Mỗi lưới được dự đoán một bounding box, xác suất và nhãn
• Bounding box mô tả vị trí và kích thước của đối tượng trong ảnh Xác suất mô tả khả năng Bounding box chứa đối tượng Nhãn mô tả loại đối tượng được chứa trong bounding box
• YOLO v5 sử dụng một phương pháp gọi là "anchor box" để dự đoán bounding box Anchor box là các hộp giới hạn có kích thước và vị trí cố định Mô hình sẽ dựa vào các trọng số được đào tạo trước đó để dự đoán vị trí của đối tượng tương đối với các anchor box
• Sau khi dự đoán bounding box, mô hình sẽ sử dụng một phương pháp gọi là "non- max suppression" để loại bỏ các dự đoán trùng lặp hoặc không đáng tin cậy
Kết quả: Kết quả của YOLO v5 là một danh sách các bounding box, xác suất và nhãn
Các bounding box có xác suất cao nhất được coi là các dự đoán tốt nhất
Giao thức MQTT
Giao thức MQTT (Message Queuing Telemetry Transport) là một giao thức truyền thông nhị phân nhẹ và mở rộng được thiết kế để truyền tải thông điệp giữa các thiết bị một cách hiệu quả trong mạng có băng thông hạn chế và liên kết không ổn định MQTT được phát triển để đáp ứng nhu cầu của Internet of Things (IoT), nơi cần có một cách giao tiếp đơn giản và tiết kiệm năng lượng giữa các thiết bị và trung tâm điều khiển
MQTT sử dụng mô hình publish/subscribe, trong đó các thiết bị có thể xuất bản (publish) các thông điệp lên một chủ đề (topic), và các thiết bị khác có thể đăng ký (subscribe) để nhận các thông điệp từ các chủ đề tương ứng Điều này tạo ra một hệ thống truyền thông phân phối, linh hoạt và hiệu quả Ứng dụng của MQTT trong đề tài là vô cùng quan trọng Bằng cách sử dụng MQTT, các khối xử lý và cảm biến có thể gửi và nhận thông điệp một cách hiệu quả Sau khi khối xử lý nhận diện thủ ngữ, nó sẽ publish thông điệp để phát ra loa ý nghĩa của thủ ngữ tương ứng qua MQTT Đồng thời dữ liệu âm thanh trong giao tiếp cũng được truyền qua giao thức này tới khối xử lý để xử lý thành văn bản, sau đó văn bản sẽ được truyền ngược về lại để hiển thị lên khối hiển thị
Mô hình publish/subscribe của MQTT rất linh hoạt, cho phép nhiều thiết bị đồng thời đăng ký để nhận thông điệp từ chủ đề cụ thể mà họ quan tâm Điều này làm cho việc quản lý và phân phối thông điệp trong một hệ thống nhận diện thủ ngữ trở nên thuận tiện và hiệu quả
Như vậy, sự linh hoạt và hiệu quả của MQTT làm cho nó trở thành một lựa chọn của nhóm thực hiện đề tài trong việc xây dựng hệ thống nhận diện thủ ngữ.
Thủ ngữ Việt Nam
Thủ ngữ, hay còn được gọi là ngôn ngữ ký hiệu, là một phương tiện giao tiếp phi ngôn ngữ dựa trên các biểu tượng, kí hiệu, cử chỉ, điệu bộ, nét mặt một cách có hệ thống, thường được sử dụng trong cộng đồng người khiếm thính hoặc trong các tình huống khi ngôn ngữ bằng lời không phải là phương tiện truyền đạt hiệu quả [32] Thủ ngữ có một hệ thống cấu trúc phức tạp, bao gồm các quy tắc về hình thái, cú pháp, ngữ nghĩa, Ví dụ, để diễn đạt từ "con chó", người dùng thủ ngữ sẽ tạo hình chữ C bằng bàn tay, sau đó di chuyển tay theo chuyển động của con chó chạy
Thủ ngữ có thể được chia thành hai loại chính:
• Thủ ngữ quốc tế: Đây là hệ thống thủ ngữ được sử dụng phổ biến nhất trên thế giới Thủ ngữ quốc tế có khoảng 2.500 từ và cụm từ, được sử dụng bởi người khiếm thính ở hơn 100 quốc gia
• Thủ ngữ địa phương: Đây là hệ thống thủ ngữ được sử dụng riêng ở một nước trên thế giới hoặc một cộng đồng nhất định Thủ ngữ địa phương thường hoàn toàn khác so với thủ ngữ quốc tế
Thủ ngữ vừa là công cụ giao tiếp quan trọng cho người khiếm thính, vừa là một lĩnh vực nghiên cứu và phát triển liên quan đến ngôn ngữ và giao tiếp phi ngôn ngữ Việc hiểu và sử dụng thủ ngữ tạo ra môi trường giao tiếp đa dạng và phong phú trong xã hội
Thủ ngữ ở Việt Nam có lịch sử phát triển lâu đời, bắt nguồn từ thế kỷ 19 Năm
1866, linh mục Azemar, cha sở họ đạo Lái Thiêu, đã thành lập một trường dạy trẻ điếc đầu tiên ở Việt Nam Nguyễn Văn Trường, một thanh niên câm điếc, đã được ông gửi sang Pháp để học về thủ ngữ Ông Azemar mở rộng trường dạy trẻ điếc chính thức sau khi anh Trường về nước
Thủ ngữ Việt Nam lúc bấy giờ được phát triển dựa trên thủ ngữ Pháp (LSF) Tuy nhiên, Việt Nam vẫn chưa nghiên cứu ra một hệ thống thủ ngữ Việt nam chính thức vì ảnh hưởng của chiến tranh Đến những năm 1990, thủ ngữ Việt Nam mới bắt đầu được tập trung nghiên cứu và phát triển Năm 1995, Hội người câm điếc Việt Nam đã thành lập Trung tâm Ngôn ngữ ký hiệu Việt Nam Trung tâm đã phối hợp với các chuyên gia ngôn ngữ học của Việt Nam và Pháp để nghiên cứu, thống nhất các ký hiệu cơ bản của thủ ngữ Việt Nam
Năm 2000, Bộ Giáo dục và Đào tạo đã ban hành Quyết định số 138/2000/QĐ- BGD&ĐT về việc ban hành chương trình giáo dục hòa nhập cho trẻ khuyết tật, trong đó có chương trình giáo dục cho trẻ khiếm thính bằng thủ ngữ Quyết định này đã đánh dấu bước ngoặt quan trọng trong việc phát triển thủ ngữ Việt Nam
Từ đó đến nay, thủ ngữ Việt Nam đã được phát triển và hoàn thiện hơn Năm
2011, Bộ Giáo dục và Đào tạo đã ban hành bộ sách giáo dục thủ ngữ Việt Nam cho trẻ khiếm thính Bộ sách này đã được sử dụng rộng rãi trong các trường học dành cho trẻ khiếm thính trên cả nước [32]
Hình 2.15 Bảng chữ cái thủ ngữ Việt Nam
Từ vựng: Từ vựng của thủ ngữ Việt Nam bao gồm các ký hiệu được sử dụng để biểu thị các từ, cụm từ, hoặc ý nghĩa Từ vựng của thủ ngữ Việt Nam có thể được chia thành hai loại chính:
• Từ vựng cơ bản: Đây là những từ vựng được sử dụng thường xuyên trong giao tiếp hàng ngày, chẳng hạn như các từ về con người, động vật, đồ vật, hành động,
• Từ vựng chuyên ngành: Đây là những từ vựng được sử dụng trong các lĩnh vực chuyên môn, chẳng hạn như khoa học, công nghệ, y tế,
Từ vựng của thủ ngữ Việt Nam có một số đặc điểm sau:
• Số lượng từ vựng còn hạn chế: Theo nghiên cứu của Hội người câm điếc Việt Nam, từ vựng của thủ ngữ Việt Nam chỉ có khoảng 200 từ Số lượng từ vựng này còn ít hơn nhiều so với từ vựng của ngôn ngữ nói
• Từ vựng không thống nhất: Trong cùng một cộng đồng người khiếm thính, có thể có nhiều cách ký hiệu khác nhau cho cùng một từ hoặc cụm từ Điều này là do thủ ngữ Việt Nam được phát triển dựa trên kinh nghiệm và hiểu biết của từng cá nhân hoặc cộng đồng
• Từ vựng mang tính hình tượng: Nhiều từ vựng trong thủ ngữ Việt Nam được tạo ra dựa trên hình tượng
Ví dụ: "hoa hồng" = “hoa + hồng” là xoa má, ký hiệu "hoa sữa" = “hoa + sữa” là cầm bông hoa sữa lên mũi
Ngữ âm: Ngữ âm của thủ ngữ Việt Nam là hệ thống các ký hiệu được sử dụng để biểu thị các âm vị của ngôn ngữ Ngữ âm của thủ ngữ Việt Nam có một số đặc điểm sau:
• Ngữ âm của thủ ngữ Việt Nam không phụ thuộc vào ngôn ngữ nói: Ngữ âm của thủ ngữ Việt Nam được tạo ra dựa trên các cử động của tay, không phụ thuộc vào cách phát âm của các âm vị trong ngôn ngữ nói
• Ngữ âm của thủ ngữ Việt Nam có số lượng âm vị hạn chế: Ngữ âm của thủ ngữ Việt Nam chỉ có khoảng 30 âm vị, trong khi ngôn ngữ nói có tới 42 âm vị
THIẾT KẾ HỆ THỐNG NHẬN DIỆN THỦ NGỮ CHO NGƯỜI KHUYẾT TẬT
Yêu cầu phần cứng
Thiết bị này được phát triển để hỗ trợ người khiếm thính và khiếm nghe trong việc giao tiếp hàng ngày Sử dụng công nghệ nhận diện ngôn ngữ cử chỉ, nó có khả năng chuyển đổi các cử chỉ thành âm thanh Hệ thống này sử dụng mô hình thuật toán xử lý ảnh để nhận diện các biểu hiện của ngôn ngữ cử chỉ Vi xử lý ESP32-CAM được sử dụng để chụp và truyền hình ảnh đến máy tính, nơi mô hình học máy YOLO v5 được áp dụng để nhận diện cử chỉ Khi hệ thống nhận diện được cử chỉ từ người dùng, máy tính sẽ xử lý và chuyển đổi thành giọng nói Độ chính xác cao là yếu tố chủ chốt để đảm bảo giao tiếp diễn ra một cách liền mạch Các linh kiện trong thiết kế này được lựa chọn cẩn thận để phù hợp với yêu cầu Sơ đồ khối của hệ thống được minh họa trong Hình
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
Hệ thống được trang bị vi xử lý ESP32-CAM, đảm nhận vai trò quan trọng trong việc chụp và truyền ảnh, cũng như chuyển đổi văn bản thành âm thanh Sử dụng camera
OV2640 tích hợp, ESP32-CAM cung cấp khả năng chụp hình ảnh, một yếu tố quan trọng để hỗ trợ người dùng trong việc giao tiếp Khả năng tích hợp này không chỉ mang
27 lại sự tiện lợi mà còn giúp hệ thống trở nên nhỏ gọn, thuận tiện và phù hợp với các hoạt động hàng ngày của người sử dụng Để chuyển đổi văn bản thành âm thanh, hệ thống sử dụng mạch giải mã âm thanh MAX98357 và loa có công suất 3W Sự tích hợp này mang đến âm thanh ổn định và chất lượng, đồng thời giúp điều chỉnh mức âm lượng để giao tiếp một cách ổn định trong khoảng cách gần, khoảng từ một đến hai mét Việc này đảm bảo rằng người dùng có trải nghiệm giao tiếp trực quan và âm thanh chất lượng, tạo điều kiện thuận lợi cho việc trao đổi thông tin và tương tác hàng ngày
• Cấp nguồn 5VDC cho vi xử lý ESP32-CAM và ESP32
Khối xử lý 1: Sử dụng ESP32-CAM:
• Có thể gửi ảnh và nhận lại thông tin đã được xử lý từ máy tính
• Dùng camera OV2640 tích hợp với vi xử lý ESP32-CAM để nhận diện thủ ngữ
• So sánh các thông số đặc trưng của ảnh với các tiêu chuẩn học máy đã được định sẵn để đưa ra chính xác âm thanh ứng với ngôn ngữ cử chỉ thực hiện
Khối xử lý 2: Sử dụng ESP32
• Sử dụng ESP32 kết nối với mạch giải mã âm thanh MAX98357 để giải mã truyền tín hiệu ra loa phát
• Sau nhận diện được thủ ngữ, giọng nói tương ứng sẽ được phát ra qua loa
Hệ thống được xây dựng dựa trên một mạch nguyên lý thông minh và tiện ích, nhằm hỗ trợ người khiếm thính và khiếm nghe trong quá trình giao tiếp hàng ngày Sử dụng vi xử lý ESP32-CAM, mạch này có khả năng nhận diện ngôn ngữ cử chỉ từ thủ ngữ và giọng nói, chuyển đổi chúng thành thông tin có thể hiểu được Mạch nguyên lý chi tiết Hình 3.2 dưới đây
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
Khối xử lý trung tâm của hệ thống, ESP32-CAM có khả năng chụp và gửi ảnh về máy tính để xử lý, sau đó chuyển đổi thành giọng nói để phát ra loa Điều này tạo ra một cầu nối hiệu quả giữa người dùng và môi trường xung quanh thông qua việc nhận diện thủ ngữ, từ đó cung cấp thông tin và tương tác một cách tự nhiên và hiệu quả
Với khả năng nhận diện thủ ngữ qua camera OV2640, mạch nguyên lý này mang đến sự linh hoạt và chính xác trong việc chuyển đổi ngôn ngữ cử chỉ thành giọng nói phù hợp Sử dụng mạch giải mã âm thanh MAX98357, hệ thống cung cấp trải nghiệm giao tiếp toàn diện và dễ dàng sử dụng cho người dùng.
Các linh kiện trong hệ thống
3.2.1 Vi điều khiển ESP32-CAM
ESP32-CAM là một phiên bản đặc biệt của module ESP32, mà trong đó đã tích hợp sẵn camera OV2640 Nó cung cấp khả năng kết hợp giữa vi xử lý mạnh mẽ của
ESP32 và khả năng chụp ảnh của camera, tạo ra một nền tảng linh hoạt để phát triển
29 các ứng dụng IoT (Internet of Things) hoặc các dự án liên quan đến hình ảnh và video Hình 3.3 mô tả hình ảnh của vi điều khiển ESP32-CAM
Hình 3.3 Vi xử lý ESP32-CAM
ESP32-CAM có các đặc điểm nổi bật sau:
• Chip ESP32 mạnh mẽ: Chip xử lý dual core 32-bit Xtensa LX6, tốc độ xung nhịp lên đến 160MHz, sức mạnh tính toán lên đến 600 DMIPS, tích hợp WiFi 802.11 b/g/n/e/i, Bluetooth 4.2 BR/EDR và BLE, cho phép kết nối linh hoạt với các mạng không dây và thiết bị khác
• Camera OV2640 tích hợp: Đây là camera chất lượng phổ thông, cung cấp khả năng chụp hình ảnh với độ phân giải tối đa 2 megapixel (1600 x 1200)
• Hỗ trợ lưu trữ: RAM 520KB SRAM + 4MB PSRAM, bộ nhớ flash 32MB SPI
Flash, ngoài ra hỗ trợ thẻ nhớ microSD, cho phép lưu trữ hình ảnh và video một cách dễ dàng và thuận tiện
• Khả năng giao tiếp đa dạng: Ngoài việc tích hợp WiFi và Bluetooth, ESP32-
CAM còn có các giao tiếp khác như UART, SPI, I2C, GPIO, cho phép kết nối với nhiều loại cảm biến và thiết bị ngoại vi khác
• Phát triển ứng dụng IoT và xử lý hình ảnh: Nhờ việc tích hợp camera, ESP32-
CAM thích hợp cho các ứng dụng IoT liên quan đến việc chụp ảnh, xử lý hình ảnh và video
GND GND Ground Chân nối đất
GPIO0 Reset Input Chân reset
GPIO2 CLK Input Chân CLK của camera OV2640
GPIO16 VSYNC I/O Chân đồng bộ camera
GPIO17 HREF I/O Chân kích hoạt hàng của camera
GPIO25 GND I/O Chân nối đất
GPIO27 SCL I2C Chân giao tiếp I2C
GPIO28 SDA I2C Chân giao tiếp I2C
VCC 3.3V/5V Power Nguồn cấp cho các thiết bị bên ngoài
Bảng 3 1 Thông số các chân của ESP32-CAM
Với những tính năng mạnh mẽ và sự linh hoạt trong việc phát triển ứng dụng, ESP32-CAM trở thành một công cụ hữu ích cho các nhà phát triển và người dùng quan tâm đến việc tận dụng khả năng IoT và xử lý hình ảnh
3.2.2 Module giải mã âm thanh MAX98357
MAX98357 là một module khuếch đại âm thanh Class D 3,2W, sử dụng giao diện I2S, được sản xuất bởi Maxim Integrated Chất lượng đầu ra của âm thanh âm thanh cao và linh hoạt, mạch này thường sử dụng trong các thiết bị có liên quan đến âm thanh như loa di động, hệ thống âm thanh nhỏ gọn hoặc trong các thiết bị IoT đòi hỏi chất lượng âm thanh phát ra phải tốt
Công suất đầu ra của MAX98357 lên đến 3,2W, cung cấp rất tốt cho các loa nhỏ và tai nghe Độ méo hài tổng thấp dưới 0,005% giúp đảm bảo âm thanh chất lượng cao, trong khi tỷ lệ S/N lên đến 78 dB giúp giảm thiểu nhiễu, tạo ra âm thanh rõ ràng và chi tiết Với ưu điểm nổi bật khác của MAX98357 là ăn rất ít điện, chỉ 12 mA ở chế độ 1W, tiết kiệm pin hơn cho các thiết bị sử dụng nó Hình 3.4 dưới đây là mô tả mạch giải mã âm thanh MAX98357
Hình 3.4 Mạch giải mã âm thanh MAX98357
Nguyên lý hoạt động của MAX98357 dựa trên việc cung cấp một giải pháp giải mã âm thanh đơn giản và hiệu quả Mạch này kết hợp nhiều chức năng trong một vi mạch, giúp giảm thiểu các thành phần bên ngoài và dễ dàng tích hợp vào các ứng dụng cụ thể MAX98357 sẽ nhận tín hiệu âm thanh từ nguồn đầu vào, sau đó sử dụng bộ khuếch đại Class D để xử lý và tăng cường tín hiệu này Kết quả là, người dùng có thể có được đầu ra âm thanh với chất lượng cao và hiệu suất tốt
Thông số Giá trị Điện áp hoạt động 3.3 VDC Dòng điện tiêu thụ 12 mA
Khuếch đại 100dB Điện áp đầu ra 3.3 VDC
Dòng điện đầu ra 200 mA
Bảng 3 2 Thông số kỹ thuật của MAX98357
Tóm lại, MAX98357 là một mạch giải mã âm thanh linh hoạt với nhiều tính năng tích hợp sẵn, giúp tối ưu hóa việc điều chỉnh và cung cấp âm thanh chất lượng cao trong các ứng dụng âm thanh khác nhau như vậy rất phù hợp với thiết bị nhận diện thủ ngữ cho người khuyết tật.
Thiết kế phần mềm
Lưu đồ giải thuật là một công cụ quan trọng trong việc mô tả quá trình giải quyết một vấn đề hoặc thuật toán thông qua các bước cụ thể và logic Đây là cách để biểu diễn thuật toán một cách trực quan, giúp người đọc hiểu rõ hơn về cấu trúc và luồng làm việc của quy trình hoặc thuật toán đó Dưới đây là lưu đồ giải thuật của hệ thống nhận diện thủ ngữ dành cho người khuyết tật Hình 3.5, Hình 3.6 và Hình 3.7 tương ứng với 3 phần chính của hệ thống là thiết bị xử lý 1, máy tính và thiết bị xử lý 2
Hình 3.5 Lưu đồ giải thuật của thiết bị xử lý 1
Giải thích lưu đồ: Bắt đầu chương trình, thiết bị xử lý 1 sẽ kết nối WiFi, sau đó tạo một đường dẫn để gửi hình ảnh thủ ngữ chụp được từ camera lên đường dẫn đó
Hình 3.6 Sơ đồ giải thuật của máy tính – Python
Giải thích lưu đồ: Bắt đầu chương trình, client MQTT sẽ được thiết lập, sau đó kết nối với camera để nhận hình ảnh và tiến hành xử lý nhận diện thủ ngữ trên hình ảnh đó Đối với mỗi thông điệp nhận diện được từ hình ảnh thủ ngữ, hệ thống sẽ gửi tin nhắn tương ứng cho thiết bị xử lý 2 thông qua giao thức MQTT
Hình 3.7 Lưu đồ giải thuật của thiết bị xử lý 2
Giải thích lưu đồ: Bắt đầu chương trình, các biến được sử dụng, các chân của mạch khuếch đại âm thanh MAX98357 và thẻ nhớ SD sẽ được khai báo, sau đó kết nối với client python để chờ tin nhắn từ đó Khi nhận được một tin nhắn từ python, vi xử lý sẽ phát ra một đoạn âm thanh tương ứng với tin nhắn đó Thông điệp tương ứng với các nội dung tin nhắn được mô tả trong Bảng 3 3 bên dưới
Bảng 3 3 Bảng mô tả tin nhắn và nội dung thông điệp tương ứng
Khi tin nhắn là “1” tương ứng với thủ ngữ “Xin chào”, mạch sẽ phát ra file âm thanh “xinchao.mp3” đã được lưu sẵn từ thẻ SD ra loa Quá trình này cũng tương tự với các nội dung tin nhắn còn lại
Sau khi âm thanh được phát ra, máy tính sẽ tiếp tục quá trình nhận diện mới Quá trình này sẽ lặp lại liên tục, tạo ra một chu trình hoàn hảo trong việc nhận diện và tái tạo thông tin theo cách đa dạng và hiệu quả
Mô hình học máy cá nhân hoá về thủ ngữ - YOLO v5
Trải qua sự phát triển liên tục, YOLO v8 và YOLO v5 đều đại diện cho những bước tiến đáng kể trong lĩnh vực nhận diện đối tượng YOLO v8, như một phiên bản tiếp theo của YOLO v4, hứa hẹn mang lại những cải tiến đáng chú ý về kiến trúc và hiệu suất Ngược lại, YOLO v5 được phát triển độc lập bởi Ultralytics, nổi bật với tốc độ và hiệu suất ấn tượng.Trong cuộc đua giữa hai phiên bản này, YOLO v5 nổi bật với hiệu suất ổn định và tốc độ xử lý đáng kể Nó không chỉ tập trung vào việc sử dụng GPU hiệu quả mà còn đơn giản hóa quá trình triển khai và tích hợp dữ liệu từ nhiều nguồn khác nhau Sự quan tâm lớn từ cộng đồng và tài liệu phong phú cũng làm cho việc sử dụng YOLO v5 trở nên dễ dàng và linh hoạt Với những lợi ích này, YOLO v5 trở thành một sự lựa chọn hấp dẫn cho các ứng dụng thực tế đòi hỏi hiệu suất cao và tính linh hoạt trong triển khai
Nhóm thực hiện đề tài sử dụng Google Colab để thực hiện huấn luyện đối tượng tùy chỉnh bằng việc sử dụng YOLO v5 của Ultralytics phù hợp với đề tài mà nhóm thực hiện nghiên cứu và phát triển
3.4.1 Quá trình thiết kế thư viện riêng về thủ ngữ tiếng Việt
Trong đồ án này, một trong những nhiệm vụ quan trọng là thiết kế thư viện riêng về thủ ngữ tiếng Việt để huấn luyện YOLO v5 Thư viện này phải cung cấp đầy đủ các thủ ngữ tiếng Việt thông dụng (xin chào, cảm ơn,…) và thủ ngữ chữ cái
Quá trình thiết kế thư viện được thực hiện theo các bước sau:
• Nghiên cứu các nguồn dữ liệu về thủ ngữ tiếng Việt: Đầu tiên, nhóm nghiên cứu đã tiến hành nghiên cứu các nguồn dữ liệu về thủ ngữ tiếng Việt hiện có, bao gồm: Các sách giáo khoa dạy chữ cho người khiếm thính, các video hướng dẫn thủ ngữ tiếng Việt hay các website về thủ ngữ tiếng Việt,…Từ việc nghiên cứu các nguồn dữ liệu này, nhóm nghiên cứu đã xây dựng được danh sách các thủ ngữ tiếng Việt cần thiết cho thiết bị nhận diện
• Thu thập dữ liệu thủ ngữ: Sau khi có danh sách các thủ ngữ cần thiết, nhóm nghiên cứu đã tiến hành thu thập dữ liệu thủ ngữ bằng cách chụp ảnh từ chính tay các thành viên của nhóm thực hiện đề tài Dữ liệu thu thập được được lựa chọn tỉ mỉ, loại bỏ các ảnh bị mờ, nhiễu, Để đảm bảo chất lượng của tập dữ liệu thu thập được là tốt nhất
• Xây dựng thư viện thủ ngữ: Dựa trên dữ liệu đã thu thập, nhóm thực hiện đề tài đã xây dựng thư viện thủ ngữ Thư viện này bao gồm các hình ảnh thủ ngữ có chất lượng tốt, rõ nét, đã được kẻ bounding box và dán nhãn ý nghĩa thủ ngữ tương ứng
Hình 3.8 mô tả bảng chữ cái thủ ngữ tiếng Việt
Hình 3.8 Bảng chữ cái tiếng Việt thể hiện bằng thủ ngữ
Thu thập dữ liệu: Cần có một bộ dữ liệu chứa ảnh với các tấm bảng chữ cái tiếng Việt và nhãn tương ứng với vị trí của các ký tự trên bảng Bộ dữ liệu cần phải đa
39 dạng với nhiều góc chụp, kích thước, cường độ sáng, vị trí và phông chữ để mô hình có khả năng tổng quát hóa tốt
Chuẩn bị nhãn: Sau khi đã có tập dữ liệu ảnh thủ ngữ, bước tiếp theo là chuẩn bị nhãn cho các ảnh này Nhãn là các thông tin mô tả đối tượng trong ảnh, trong trường hợp này là các thủ ngữ tiếng Việt Nhãn được sử dụng để huấn luyện mô hình YOLO v5 nhận diện thủ ngữ, trong đó mỗi dòng của file nhãn chứa thông tin về một đối tượng cần nhận diện, bao gồm nhãn lớp và tọa độ bounding box
Chọn công cụ gắn nhãn: Có nhiều công cụ gán nhãn ảnh có thể sử dụng, chẳng hạn như LabelImg, CVAT, LabelMe, Nhóm nghiên cứu đã chọn sử dụng công cụ Make Sense cho quá trình gán nhãn trong đồ án này
Tạo tập dữ liệu nhãn: Tập dữ liệu tag được tạo ra bằng cách mở từng ảnh trong tập dữ liệu và gán nhãn cho các thủ ngữ trong ảnh Nhóm thực hiện đề tài đã sử dụng phương pháp gán nhãn thủ công cho quá trình này
Hình 3.9 Chuẩn bị dữ liệu thủ ngữ tiếng Việt để huấn luyện YOLO v5
Vì bảng chữ cái tiếng Việt là nhiều ký tự đặc biệt, đòi hỏi thu thập dữ liệu phải đa dạng góc chụp, độ sáng và kích thước Những thông số đơn giản nhưng sẽ ảnh hưởng rất lớn tới quá trình học máy
3.4.2 Kết quả sau quá trình huấn luyện
Kết quả của quá trình huấn luyện được mô tả qua Hình 3.10
Hình 3.10 Kết quả của quá trình huấn luyện
Sau khi đã có tập dữ liệu hơn 500 ảnh thủ ngữ được đánh nhãn, mô hình YOLO v5 được huấn luyện trên tập dữ liệu này Quá trình huấn luyện được thực hiện trên Google Colab
Kết quả huấn luyện được đánh giá trên tập dữ liệu thử nghiệm Kết quả đánh giá cho thấy mô hình YOLO v5 có thể nhận diện thủ ngữ tiếng Việt với độ chính xác cao, có thể đáp ứng được yêu cầu của đồ án thiết kế thi công thiết bị nhận diện thủ ngữ dành cho người khuyết tật
KẾT QUẢ, PHÂN TÍCH VÀ ĐÁNH GIÁ
Giới thiệu
Đề tài về "Thiết bị hỗ trợ giao tiếp thủ ngữ cho người khuyết tật" đang mở ra một cánh cửa mới cho việc tạo ra công cụ quan trọng giúp người khuyết tật, đặc biệt là những người khiếm thính hoặc khiếm nói, có thêm cơ hội giao tiếp và tương tác với môi trường xã hội Điều này không chỉ là một bước tiến quan trọng mà còn là sự cầu nối để họ có thể tham gia vào cộng đồng một cách tự tin và hiệu quả hơn
Nhóm nghiên cứu của đề tài tập trung vào việc phát triển các thủ ngữ cơ bản, những câu từ thông dụng trong cuộc sống hàng ngày như "xin chào", "cảm ơn", "đồng ý", "không đồng ý", "làm ơn", và "tôi yêu bạn" Các thủ ngữ này không chỉ đơn giản mà còn quen thuộc, tạo nên nền tảng cần thiết để xây dựng một hệ thống giao tiếp linh hoạt và phù hợp với nhu cầu cụ thể của từng người dùng Qua việc chú trọng vào những thủ ngữ thông thường nhưng quan trọng, đề tài này mở ra triển vọng để phát triển một hệ thống giao tiếp linh hoạt và đa dạng, phục vụ từng cá nhân khuyết tật một cách tối ưu nhất.
Kết quả thực hiện mô hình
Dựa trên dữ liệu thống kê cùng việc áp dụng thuật toán xử lý hình ảnh và công nghệ YOLO v5, hệ thống này đã được thiết lập để nhận diện các biểu hiện thủ ngữ Khi nhận diện được thủ ngữ, hệ thống sẽ tự động phát ra âm thanh tương ứng với thủ ngữ đã nhận diện, tạo ra một phản hồi trực quan và có thể nghe được Để đảm bảo kết quả chính xác và đáng tin cậy nhất, nhóm đã tiến hành quá trình huấn luyện một cách liên tục và lặp đi lặp lại với mỗi thủ ngữ Việc này được thực hiện với mục tiêu tối đa hóa hiệu suất và độ chính xác của hệ thống nhận diện Đồng thời, các điều kiện chụp ảnh cũng đã được đa dạng hóa, bao gồm việc chụp từ nhiều góc độ khác nhau Bằng cách thực hiện quy trình này, nhóm thực hiện đề tài đã đảm bảo rằng hệ thống không chỉ được huấn luyện cẩn thận mà còn được thử nghiệm và tối ưu hóa dưới nhiều điều kiện khác nhau, từ đó cải thiện tính linh hoạt và độ chính xác trong việc nhận diện thủ ngữ
Hình 4.1 là kết quả nhận diện các thủ ngữ “đồng ý” và “cảm ơn” mà nhóm đã huấn luyện
Hình 4.1 Kết quả nhận diện thủ ngữ “đồng ý” và “cảm ơn”
Sau quá trình huấn luyện, quá trình đánh giá và kiểm tra đã cho thấy rằng hiệu suất nhận diện của hệ thống đối với thủ ngữ là tương đối cao, với giá trị độ chính xác đạt khoảng 0.8 Điều này ám chỉ rằng hệ thống đã đạt được mức độ nhận diện khá cao đối với các biểu hiện của thủ ngữ trong quá trình thử nghiệm và đánh giá với điều kiện môi trường ánh sáng đáp ứng tốt Điều này đem lại sự tin cậy và khả năng áp dụng rộng rãi cho hệ thống trong việc nhận diện và tương tác với ngôn ngữ thủ ngữ một cách hiệu quả
Nhận xét tổng quan về nhận diện thủ ngữ cơ bản:
Hệ thống nhận diện thủ ngữ đã trải qua thử nghiệm trên 6 biểu hiện ngôn ngữ khác nhau, được huấn luyện để có thể hoạt động ổn định dưới những điều kiện ánh sáng từ môi trường thực tế Mặc dù đã thể hiện sự ổn định trong các điều kiện này, nhưng trong quá trình thử nghiệm, nhóm thực hiện đề tài chỉ tập trung vào một số thủ ngữ thông dụng Điều này dẫn đến việc hệ thống còn tồn tại những hạn chế khi phải nhận diện liên tục và trong môi trường không thuận lợi, dẫn đến một số sai sót không mong muốn như ảnh bị nhoè hoặc nhiễu do cường độ ánh sáng không đồng đều Điều này mở ra một hướng phát triển để cải thiện khả năng nhận diện và thích ứng với nhiều điều kiện khác nhau, từ đó tối ưu hóa hiệu suất của hệ thống
Trải qua nhiều chuỗi thử nghiệm thực tế tại các môi trường đa dạng, cũng như đối mặt với các thách thức của việc đo lường ở các khoảng cách khác nhau, nhóm nghiên cứu thấy rằng khoảng cách nhận diện tối ưu cho thủ ngữ của thiết bị phát triển nằm trong khoảng từ 45cm đến 60cm Kết quả này không chỉ phản ánh sự linh hoạt và độ chính xác của hệ thống mà còn là một bước quan trọng trong việc đảm bảo khả năng hoạt động hiệu quả trong nhiều tình huống thực tế khác nhau Đánh giá mô hình qua quá trình huấn luyện YOLO v5:
Sau 100 lần huấn luyện nhận diện các thủ ngữ như "Xin chào", "Tôi yêu bạn",
"Không", "Làm ơn", "Đồng ý", và "Cảm ơn", nhóm thực hiện đề tài quan sát được độ tin cậy khá cao từ 0.85 đến 1 đối với mỗi thủ ngữ Tuy nhiên, quá trình này cũng đã phản ánh một số rủi ro liên quan đến độ tin cậy có thể xuất hiện Cụ thể, các lỗi nhận diện có thể xảy ra khi thủ ngữ bị nhầm lẫn với phần nền, như trong trường hợp sơ đồ Đáng chú ý, thủ ngữ "Không" có tỉ lệ trùng với phần nền lên tới 0.62, một con số khá cao có thể gây ảnh hưởng đến quá trình nhận diện và giao tiếp dựa trên thủ ngữ này, được minh họa rõ hơn qua biểu đồ Confusion Matrix trong Hình 4.2 dưới đây Điều này gợi ra hướng tối ưu hóa giúp cải thiện chính xác của hệ thống, xử lý những thử thách liên quan đến việc phân biệt thủ ngữ và nền
Hình 4.2 Biểu đồ Confusion Matrix
Thêm vào đó thông tin về việc giá trị nền của các thủ ngữ "Đồng Ý" và "Tôi yêu bạn" lần lượt là 0.25 và 0.12, cũng là một yếu tố ảnh hưởng nhất định đối với quá trình nhận diện và giao tiếp liên tục thông qua thủ ngữ
Tóm lại, mô hình có khả năng nhận diện tốt các thủ ngữ như "Cảm ơn," "Xin chào," và "Làm ơn." Tuy nhiên, đối với các trường hợp còn lại, độ chính xác trong việc nhận diện không đạt mức cao, điều này phụ thuộc rất nhiều vào môi trường trong quá trình thu thập hình ảnh để ESP32-CAM nhận diện Tỉ lệ nhận diện sai do trùng với bối cảnh xung quanh khá cao, là một yếu tố quan trọng ảnh hưởng đến hiệu suất chung của hệ thống.
Kết quả thi công hệ thống
Trước hết, nhóm thực hiện đề tài giới thiệu về thiết bị nhận diện hình ảnh sử dụng ESP32-CAM, trong đó Hình 4.3 và Hình 4.4 mô tả thiết bị xử lý 1 Đây là một phần quan trọng mà nhóm đã tập trung phát triển với mục tiêu làm cho thiết bị xử lý này trở nên nhỏ gọn nhất có thể Mục đích của việc làm nhỏ gọn này không chỉ là để thuận tiện cho việc di chuyển mà còn để tối ưu hóa tính thẩm mỹ, mang lại sự thoải mái và tiện lợi cho người sử dụng trong các hoạt động hàng ngày của họ
Hình 4.3 Mặt trước và sau của thiết bị xử lý 1
Nhóm thực hiện đề tài đã tích hợp pin nguồn LiPo có dung lượng 1000mAh đi kèm với một mạch sạc Pin được tích hợp không chỉ giúp thiết bị xử lý hoạt động một cách liên tục từ 6 đến 8 tiếng mà còn mang lại sự linh hoạt cao cho người dùng Sử dụng
45 mạch sạc với cổng sạc type-C cung cấp khả năng sạc lại pin nhanh chóng chỉ trong vòng
Hình 4.4 Thiết bị xử lý 1 sau khi đóng hộp Ở Hình 4.4, nhóm đã thực hiện đóng hộp bằng mica, mặt sau có đính thêm nam châm để đảm bảo tính thẩm mỹ, dễ dàng đính lên áo trong quá trình sử dụng
Thiết bị xử lý thứ 2 đã được nhóm thực hiện đề tài thiết kế thành một module nhỏ gọn Từ ý tưởng ban đầu, nhóm đã tập trung vào việc thiết kế một module có thể dễ dàng gắn lên mũ của người sử dụng Điều này không chỉ tạo ra sự thuận tiện trong quá trình giao tiếp mà còn giúp tối ưu hóa sự linh hoạt khi di chuyển
Với việc đây chỉ là phiên bản demo của sản phẩm, nhóm thực hiện đề tài đã đặt tiêu chí quan trọng là sự nhỏ gọn cùng với việc đáp ứng các yêu cầu cấp thiết của một thiết bị hỗ trợ Nhóm đã thiết kế thiết bị xử lý 2 theo Hình 4.5 dưới đây
Hình 4.5 Thiết bị xử lý 2
Thiết bị xử lý 2, với sự tích hợp của loa hỗ trợ phát âm thanh, khối thiết bị sẽ hỗ trợ giao tiếp một cách toàn diện và hiệu quả cho người sử dụng Hệ thống này không chỉ giúp người dùng thuận tiện trong việc tương tác và giao tiếp, mà còn đáp ứng nhiều nhu cầu khác nhau
Nhóm thực hiện đã tập trung vào việc thiết kế linh hoạt cho các chức năng của thiết bị demo, đảm bảo tính nhỏ gọn và hoàn thiện tối đa Điều này không chỉ tạo ra sự tiện lợi di động mà còn đảm bảo tính linh hoạt và đa dạng trong cung cấp các tính năng hỗ trợ giao tiếp toàn diện cho người dùng
Hình 4.6 Tổng thể mô hình thiết bị nhận diện thủ ngữ
Hình 4.6 mô tả tổng thể thiết bị nhận diện thủ ngữ gồm thiết bị xử lý 1 và thiết bị xử lý 2 Thiết bị được thiết kế nhỏ gọn, đảm bảo tính di động linh hoạt và thẩm mỹ