Thứ nhất, mô hình phần cứng với nguyên mẫu là cánh tay robot có thể thao tác linh hoạt được những cử chỉ của bảng chữ cái và chữ số của ngôn ngữ kí hiệu Việt Nam.. Tuy nhiên, bộ dữ liệu
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THIẾT KẾ VÀ CHẾ TẠO CÁNH TAY ROBOT TƯƠNG TÁC QUA MÀN HÌNH ĐỂ HỖ TRỢ TRONG GIẢNG DẠY HỌC NGÔN NGỮ KÍ HIỆU CHO TRẺ EM CÂM ĐIẾC
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
ĐỒ ÁN TỐT NGHIỆP
THIẾT KẾ VÀ CHẾ TẠO CÁNH TAY ROBOT
TƯƠNG TÁC QUA MÀN HÌNH ĐỂ HỖ TRỢ TRONG GIẢNG DẠY HỌC NGÔN NGỮ KÍ HIỆU CHO TRẺ
EM CÂM ĐIẾC
GVHD : PGS TS Nguyễn Thanh Hải SVTH : Trương Nghệ Nhân
MSSV : 18161125 SVTH : Lê Nguyễn Thiên Sang MSSV : 18161139
Khóa : K18 Ngành : CNKT Điện tử - Viễn thông
Tp Hồ Chí Minh, tháng 07 năm 2022
Trang 3TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
ĐỒ ÁN TỐT NGHIỆP
THIẾT KẾ VÀ CHẾ TẠO CÁNH TAY ROBOT TƯƠNG TÁC QUA MÀN HÌNH ĐỂ HỖ TRỢ TRONG GIẢNG DẠY HỌC NGÔN NGỮ KÍ HIỆU CHO TRẺ
EM CÂM ĐIẾC
GVHD : PGS TS Nguyễn Thanh Hải SVTH : Trương Nghệ Nhân
MSSV : 18161125 SVTH : Lê nguyễn Thiên Sang MSSV : 18161139
Khóa : K18 Ngành : CNKT Điện tử - Viễn thông
Tp Hồ Chí Minh, tháng 07 năm 2022
Trang 4CỘNG HÒA XÃ HỘI CHỦ NGĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
TP Hồ Chí Minh, ngày tháng năm 2022
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên: Trương Nghệ Nhân MSSV: 18161125
Lê Nguyễn Thiên Sang MSSV: 18161139 Ngành: Công nghệ kỹ thuật Điện tử - Viễn thông
Giáo viên hướng dẫn: PGS TS Nguyễn Thanh Hải
1 Tên đề tài: Thiết kế và chế tạo cánh tay robot tương tác qua màn hình để hỗ trợ
trong giảng dạy học ngôn ngữ ký hiệu cho trẻ em câm điếc
2 Các số liệu, tài liệu ban đầu:
- Bảng chữ cái alphabet (a-y), chữ số (0-9) và các dấu thanh (sắc, huyền, hỏi, ngã,
nặng) của ngôn ngữ kí hiệu Việt Nam
- Trương Nghệ Nhân, Lê Nguyễn Thiên Sang, “Dạy trẻ em học thủ ngữ bằng
cách tay robot”, Đồ án Điện tử 2, trường ĐH SPKT, TP.HCM, 2021-2022, HK1
3 Nội dung thực hiện đề tài:
- Thiết kế và thi công mô hình phần cứng hệ thống, bao gồm phần cứng cơ khí
và mạch điện
- Thiết kế giao diện điều khiển
- Xây dựng thuật toán điều khiển và các thuật toán nhận diện dựa trên Deep
Learning
- Chạy thử, kiểm tra, đánh giá và điều chỉnh thiết bị
- Viết báo cáo thực hiện
- Bảo vệ luận văn
4 Sản phẩm: Mô hình cánh tay Robot in 3D thực hiện các cử chỉ của ngôn ngữ ký
hiệu Ứng dụng Deep Learning để đánh giá quá trình học ngôn ngữ Tương tác qua
màn hình cảm ứng
Trang 5CỘNG HÒA XÃ HỘI CHỦ NGĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Họ và tên sinh viên: Trương Nghệ Nhân MSSV: 18161125
Lê Nguyễn Thiên Sang MSSV: 18161139 Ngành: Công nghệ kỹ thuật Điện tử - Viễn thông
Tên đề tài: Thiết kế và chế tạo cánh tay robot tương tác qua màn hình để hỗ trợ trong
giảng dạy học ngôn ngữ ký hiệu cho trẻ em câm điếc
Họ và tên Giáo viên hướng dẫn: PGS TS Nguyễn Thanh Hải
NHẬN XÉT
1 Về nội dung đề tài & khối lượng thực hiện:
2 Ưu điểm:
3 Khuyết điểm
4 Đề nghị cho bảo vệ hay không?
5 Đánh giá loại:
6 Điểm: (Bằng chữ: )
Tp Hồ Chí Minh, ngày tháng năm 2022
Giáo viên hướng dẫn
PGS TS Nguyễn Thanh Hải
Trang 6CỘNG HÒA XÃ HỘI CHỦ NGĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN
Họ và tên sinh viên: Trương Nghệ Nhân MSSV: 18161125
Lê Nguyễn Thiên Sang MSSV: 18161139
Ngành: Công nghệ kỹ thuật Điện tử - Viễn thông
Tên đề tài: Thiết kế và chế tạo cánh tay robot tương tác qua màn hình để hỗ trợ trong
giảng dạy học ngôn ngữ ký hiệu cho trẻ em câm điếc
Họ và tên Giáo viên phản biện:
NHẬN XÉT 1 Về nội dung đề tài & khối lượng thực hiện:
2 Ưu điểm:
3 Nhược điểm
4 Đề nghị cho bảo vệ hay không?
5 Đánh giá loại:
6 Điểm: (Bằng chữ: )
Tp Hồ Chí Minh, ngày tháng năm 2022
Giáo viên phản biện
Trang 7LỜI CẢM ƠN
Lời đầu tiên, chúng em xin bày tỏ lòng biết ơn chân thành và sâu sắc đến Thầy
Nguyễn Thanh Hải – giáo viên phụ trách hướng dẫn cho chúng em đề tài luận văn
này Thầy đã tận tình góp ý các vấn đề chuyên môn, giải đáp những khúc mắc mà
nhóm gặp phải khi thực hiện đề tài Ngoài ra, thầy còn nhiệt tình trao đổi, chia sẻ
những kinh nghiệm hữu ích để nhóm có thể hoàn thiện và bảo vệ thật tốt đề tài luận
văn tốt nghiệp lần này Xin cảm ơn thầy!
Để có thể hoàn thành khóa luận này thì việc tích lũy kiến thức trong 4 năm đại
học là cực kì quan trọng, vì vậy chúng em xin chân thành cảm ơn toàn thể các quý
Thầy Cô trong Khoa Đào tạo Chất lượng cao đã cung cấp những kiến thức bổ ích
không chỉ cho việc thực hiện đề tài này mà còn sử dụng sau này trong công việc sau
khi tốt nghiệp
Ngoài ra, chúng em cũng xin gửi lời cảm ơn đến Phòng thí nghiệm Hệ thống
Thông minh (ISLab) của Khoa Điện-Điện tử đã hỗ trợ về cơ sở vật chất và tạo điều
kiện cho chúng em thực hiện luận văn
Cuối cùng, nhóm cũng xin cảm ơn gia đình, người thân và bạn bè đã luôn động
viên, hỗ trợ về mặt vật chất lẫn tinh thần đề nhóm có thể thực hiện đồ án tốt nghiệp
trong điều kiện tốt nhất trong suốt quá trình thực hiện
Ở đồ án tốt nghiệp này, nhóm chúng em đã nỗ lực hết mình để hoàn thành đúng
hạn các mục tiêu ban đầu đề ra Tuy nhiên, vì lý do kiến thức và thời gian còn hạn
chế nên sẽ không thể tránh khỏi những sai sót, kính mong các quý Thầy/Cô cùng các
bạn thông cảm và góp ý để giúp nhóm rút kinh nghiệm để phát triển và cải tiến đề tài
luận văn này trong tương lai
Một lần nữa, nhóm xin chân thành cảm ơn!
Người thực hiện đề tài
Trương Nghệ Nhân Lê Nguyễn Thiên Sang
Trang 8LỜI CAM ĐOAN
Đề tài đồ án tốt nghiệp này là công trình nghiên cứu do chúng em thực hiện dưới
sự hướng dẫn của thầy PSG TS Nguyễn Thanh Hải Nhóm cam kết không sao chép
từ một công trình hay bất cứ tài liệu nào đã công bố trước đó!
Người thực hiện đề tài
Trang 9TÓM TẮT
Hiện nay, theo ước tính, Việt Nam ta có khoảng 15,500 trẻ em dưới 6 tuổi bị điếc và khiếm thính Hầu hết các em này đều không được tiếp cận với giáo dục mầm non vì ngôn ngữ chính là rào cản lớn nhất của các em Trong những năm gần đây, nhờ vào sự phát triển vượt bậc của khoa học và công nghệ, con người luôn cố gắng tạo ra các thiết bị để có thể hỗ trợ các đối tượng này hòa nhập với cộng đồng xung quanh Các nỗ lực đã được thực hiện từ trước đến nay chỉ mới giải quyết được vấn
đề cấp bách của họ, đó là các thiết bị phiên dịch ngôn ngữ kí hiệu thành ngôn ngữ nói hằng ngày của chúng ta Tuy nhiên, vấn đề bền vững hơn đó là việc giảng dạy ngôn ngữ kí hiệu cho các em vẫn chưa thực sự được chú trọng Chính vì vậy, trong luận án này, một hệ thống thay thế giáo viên trong việc dạy ngôn ngữ kí hiệu cho trẻ em điếc
và khiếm thính dựa trên cánh tay robot và mạng học sâu đã được đề xuất
Những đóng góp trong đề tài này được chia thành 3 phần Thứ nhất, mô hình phần cứng với nguyên mẫu là cánh tay robot có thể thao tác linh hoạt được những cử chỉ của bảng chữ cái và chữ số của ngôn ngữ kí hiệu Việt Nam Trong phần này chúng
em đã sử dụng vi điều khiển Arduino Nano, module điều khiển xung PWM Adafruit PCA 9685, module điều khiển động cơ bước A4988, các cơ cấu chấp hành bao gồm servo DC và động cơ bước có hộp số Thứ hai, mô hình thuật toán giúp nhận diện các ngôn ngữ kí hiệu dựa trên thị giác máy tính và mạng nơ-ron học sâu Có 2 mô hình nhận diện được tích hợp tuần tự bên trong, đó là mô hình phát hiện vật thể và mô hình nhận dạng hành động Với mô hình phát hiện vật thể, việc sử dụng mô hình mạng YoloV5 kết hợp với tập dữ liệu tự thu thập đã đạt được kết quả nhận diện có độ chính xác trung bình mAP@0.5 là 99,73% và mAP@[.5:.95] là 83% Đối với mô hình còn lại, thư viện Mediapipe đã được sử dụng để trích xuất ra các tọa độ trên không gian
3 chiều của khung xương bàn tay từ hình ảnh đã mà camera thu được Các tọa độ đó
đã được đưa vào mô hình mạng Gated Recurrent Units cho việc huấn luyện các tham
số Độ chính xác của mô hình nhận diện hành động lên đến 97% Cả hai mô hình mạng này đều có khả năng thực thi dựa trên thời gian thực Phần đóng góp cuối cùng
đó là một giao diện trực quan tương tác với người học được hiển thị thông qua màn hình cảm ứng
Trang 10MỤC LỤC
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i
PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ii
PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN iii
LỜI CẢM ƠN iv
LỜI CAM ĐOAN v
TÓM TẮT vi
MỤC LỤC vii
DANH MỤC TỪ VIẾT TẮT x
MỤC LỤC BẢNG xi
MỤC LỤC HÌNH ẢNH xii
Chương 1 TỔNG QUAN 1
1.1 Giới thiệu 1
1.2 Mục tiêu đề tài 2
1.3 Đối tượng và phạm vi nghiên cứu 2
1.4 Nội dung nghiên cứu 3
1.5 Bố cục 3
Chương 2 CƠ SỞ LÝ THUYẾT 5
2.1 Các nghiên cứu đã thực hiện 5
2.1.1 Cánh tay robot Aslan 5
2.1.2 Nhận diện ngôn ngữ kí hiệu dựa trên YoloV5 5
2.1.3 Nhận diện ngôn ngữ kí hiệu sử dụng MediaPipe và Long Short-Term Memory 5
2.2 Ngôn ngữ kí hiệu Việt Nam 6
2.3 Học sâu (Deep Learning) 7
2.4 Phát hiện vật thể (Object Detection) 8
2.4.1 Giới thiệu 8
2.4.2 Mạng xương sống CSPDarknet 8
Trang 112.4.3 You Only Look Once (YOLO) 10
2.5 Nhận dạng hành động (Action Recognition) 12
2.5.1 Giới thiệu 12
2.5.2 Recurrent Neural Network (RNNs) 13
2.5.3 Gated Recurrent Units (GRUs) 14
2.5.4 Thư viện MediaPipe Hand 15
2.6 Các phương pháp đánh giá 15
2.7 Giới thiệu phần cứng 18
2.7.1 Arduino Nano 18
2.7.2 Động cơ Servo 18
2.7.3 Động cơ bước Nema 17 tỉ số 3969/289 19
2.7.4 Module Adafruit PWM/Servo driver PCA9685 19
2.7.5 Module driver A4988 20
2.7.6 Màn hình cảm ứng điện dung Waveshare LCD (C) 20
2.7.7 Webcam Logitech C310 20
Chương 3 THIẾT KẾ HỆ THỐNG 21
3.1 Thiết kế phần cứng 21
3.1.1 Thiết kế phần cứng cơ khí 21
3.1.2 Thiết kế mạch điều khiển 27
3.2 Phần mềm và thuật toán 39
3.2.1 Kiến trúc mạng mô hình nhận diện cử chỉ tĩnh YoloV5 39
3.2.2 Kiến trúc mạng của mô hình nhận diện cử chỉ động 40
3.2.3 Thiết kế giao diện 42
3.2.4 Các Framework xây dựng mô hình mạng 48
Chương 4 THI CÔNG VÀ THỰC NGHIỆM 51
4.1 Thi công phần cứng 51
4.1.1 Lắp ráp cánh tay giả 51
4.1.2 Thi công board mạch 52
Trang 124.2 Các thực nghiệm cho nhận diện cử chỉ tĩnh 56
4.2.1 Thu thập và tăng cường dữ liệu 56
4.2.2 Huấn luyện mô hình YoloV5 58
4.3 Các thực nghiệm cho nhận diện cử chỉ động 58
4.3.1 Huấn luyện mô hình GRUs 59
4.3.2 Thu thập dữ liệu 59
4.4 Xây dựng giao diện tương tác 61
Chương 5 KẾT QUẢ - NHẬN XÉT - ĐÁNH GIÁ 65
5.1 Kết quả 65
5.1.1 Mô hình phần cứng của hệ thống 65
5.1.2 Mô hình phát hiện cử chỉ tĩnh 67
5.1.3 Mô hình nhận diện cử chỉ động 69
5.1.4 Giao diện tương tác với người học 71
5.2 Nhận xét và đánh giá 75
5.3 Tài liệu hướng dẫn sử dụng 78
5.4 Dự toán chi phí thi công 79
Chương 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 81
6.1 Kết luận 81
6.2 Hướng phát triển 81
TÀI LIỆU THAM KHẢO 82
PHỤ LỤC 85
Trang 13DANH MỤC TỪ VIẾT TẮT
Al Artifical Intelligence
CNNs Convolution Neural Networks
EEPROM Electrically Erasable Programmable Read - Only Memory
GRUs Gated Recurrent Units
I2C Inter-Integrated Circuit
USB Universal Serial Bus
UART Universal Asynchronous Receiver - Transmitter
MLP Multilayer Perception
RNNs Recurrent Neural Network
Trang 14MỤC LỤC BẢNG
Bảng 2.1 Phân tích hiệu suất của mô hình YoloV3, YoloV5s và SSD–MobileV2 [16]
12
Bảng 3.1 Bảng thống kê thông số các linh kiện đã sử dụng trong mô hình 30
Bảng 3.2 Bảng trạng thái độ phân giải vi bước 34
Bảng 3.3 Bảng liệt kê các thông số của mô hình mạng nhận diện cử chỉ tĩnh 40
Bảng 3.4 Bảng liệt kê các thông số của mô hình mạng nhận diện cử chỉ động 41
Bảng 3.5 Bảng quy ước mã hóa các dấu thanh trong bảng chữ cái Việt Nam 45
Bảng 4.1 Bảng thống kê các linh kiện đã sử dụng trong board mạch điều khiển 53
Bảng 4.2 Bảng thống kê góc Servo của các ký tự thủ ngữ 55
Bảng 4.3 Ánh xạ nhãn của các cử chỉ động trong ngôn ngữ kí hiệu 59
Bảng 5.1 Các thông số kết quả của quá trình huấn luyện mô hình YoloV5 68
Bảng 5.2 Bảng so sánh hiệu suất phân loại của ba mô hình nhận diện hành động phổ biến hiện nay 71
Bảng 5.3 Bảng mô tả kết quả khi dùng chức năng “Phiên dịch” 74
Bảng 5.4 Kết quả thu được sau khi thực hiện 20 lần liên tục các ký tự thủ ngữ 76
Bảng 5.5 Bảng so sánh một số ký tự thủ ngữ mô hình thực hiện so với thực tế 76
Bảng 5.6 Bảng kết quả thực nghiệm thu âm ở các khoảng cách khác nhau 77
Bảng 5.7 Bảng dự toán chi phí thi công mô hình cánh tay robot 79
Trang 15MỤC LỤC HÌNH ẢNH
Hình 2.1 Mô hình cánh tay robot Aslan 5
Hình 2.2 Bảng ký hiệu thủ ngữ cơ bản trong Tiếng Việt 6
Hình 2.3 Mạng nơ-ron với nhiều lớp Convolution [14] 7
Hình 2.4 Cấu trúc mạng xương sống CSPNet 9
Hình 2.5 Kiến trúc mạng xương sống CSPDarknet53 10
Hình 2.6 Phương thức hoạt động của mô hình Yolo [15] 10
Hình 2.7 Kiến trúc mạng YoloV5 11
Hình 2.8 Kiến trúc mạng điển hình của RNNs 13
Hình 2.9 Cấu trúc tính toán bên trong GRU 14
Hình 2.10 Sự dự đoán 21 điểm mốc trên xương bàn tay con người [19] 15
Hình 2.11 Ma trận nhầm lẫn 17
Hình 2.12 IoU giữa hộp giới hạn thực tế và dự đoán 17
Hình 3.1 Mô phỏng cấu tạo tổng quan của mô hình phần cứng cơ khí 21
Hình 3.2 Vị trí các sợi dây cơ ngón tay của bàn tay robot 22
Hình 3.3 Mô phỏng cấu trúc bên trong bàn tay Robot 22
Hình 3.4 Chữ “U” và “V” trong ngôn ngữ ký hiệu Việt Nam 23
Hình 3.5 Mô phỏng sự phân bố lực trên ngón tay 23
Hình 3.6 Mô phỏng phần cổ tay của cánh tay robot 25
Hình 3.7 Mô phỏng phần cánh tay robot 26
Hình 3.8 Dây cơ được cố định ở đĩa Puli trên Servo 26
Hình 3.9 Cấu trúc đĩa Puli 26
Hình 3.10 Mô phỏng cấu trúc phần hộp cố định cánh tay robot 27
Hình 3.11 Sơ đồ khối của mô hình phần cứng hệ thống dạy học ngôn ngữ ký hiệu 27
Hình 3.12 Sơ đồ kết nối Module PCA9685 với Servo DC 29
Hình 3.13 Sờ đồ kết nối Driver A4988 với động cơ bước 30
Hình 3.14 Mô tả về Duty cycle của Servo 32
Trang 16Hình 3.15 Mô tả chu kỳ công tác của xung PWM 33
Hình 3.16 Hình ảnh mô tả vị trí biến trở và điện trở của Driver A4988 34
Hình 3.17 Sơ đồ mô tả hệ thống điều khiển toàn mạch 35
Hình 3.18 Sơ đồ nguyên lý toàn hệ thống 36
Hình 3.19 Lưu đồ giải thuật chương trình chính điều khiển cánh tay robot 37
Hình 3.20 Lưu đồ giải thuật chương trình con “So sánh dữ liệu” 37
Hình 3.21 Lưu đồ giải thuật chương trình con “Điều khiển động cơ bước” 38
Hình 3.22 Lưu đồ giải thuật chương trình con “Điều khiển Servo” 39
Hình 3.23 Các kính cỡ khác nhau của mô hình YoloV5 39
Hình 3.24 Kiến trúc mạng mô hình nhận diện cử chỉ động 41
Hình 3.25 Mạng nơ-ron tiêu chuẩn 42
Hình 3.26 Mạng nơ-ron sau khi Dropout 42
Hình 3.27 Lưu đồ thuật toán tổng quát của giao diện hệ thống dạy học ngôn ngữ ký hiệu 44
Hình 3.28 Lưu đồ thuật toán chế độ “Học chữ” trong hệ thống dạy học ngôn ngữ ký hiệu 45
Hình 3.29 Lưu đồ thuật toán chế độ “Phiên dịch” trong hệ thống dạy học ngôn ngữ ký hiệu 46
Hình 3.30 Lưu đồ thuật toán chế độ “Kiểm tra” trong hệ thống dạy học ngôn ngữ ký hiệu 47
Hình 3.31 Hệ thống phân cấp các API trong Tensorflow 48
Hình 3.32 Trình tự xây dựng mô hình tuần tự Keras 49
Hình 4.1 Lắp ráp phần bàn tay của cánh tay Robot: (a) Hình ảnh cấu trúc bên trong bàn tay Robot, (b) Hình ảnh mặt trước ủa bàn tay Robot 51
Hình 4.2 Lắp ráp phần cổ tay của cánh tay Robot 51
Hình 4.3 Lắp ráp phần cánh tay của cánh tay robot 52
Hình 4.4 Lắp ráp phần hộp cố định cánh tay Robot: (a) Hình dáng bên ngoài chiếc hộp, (b) Cấu trúc bên trong chiếc hộp 52
Hình 4.5 Mạch PCB của board mạch điều khiển mô hình cánh tay Robot 53
Hình 4.6 Mặt trên của board mạch điều khiển mô hình cánh tay Robot 54
Trang 17Hình 4.7 Mặt dưới của board mạch điều khiển mô hình cánh tay Robot 54
Hình 4.8 Tập dữ liệu đã thu thập: (a), (b), (c), (d), (e) là các hình ảnh đại diện cho 5 cử chỉ tĩnh của ngôn ngữ kí hiệu, (f) là các hình ảnh của 5 cử chỉ được thu thập với nhiều góc độ khác nhau 56
Hình 4.9 Gán nhãn dữ liệu trên thư viện labelImg 57
Hình 4.10 Các ví dụ về tăng cường dữ liệu 58
4.11 Các cử chỉ liên tục trong ngôn ngữ kí hiệu Việt Nam 59
Hình 4.12 Ví dụ về các khung hình trong một mẫu dữ liệu được thu 60
Hình 4.13 Mảng Numpy chứa các giá trị keypoint phục vụ cho quá trình huấn luyện mô hình GRUs 60
Hình 4.14 Phương pháp phân chia dữ liệu để đánh giá mô hình và lựa chọn siêu tham số 61
Hình 4.15 Quá trình thiết kế giao diện người học 61
Hình 4.16 Xây dựng bản phác thảo đồ họa 62
Hình 4.17 Thiết kế trên phần mềm Qtdesginer 62
Hình 4.18 Lập trình chức năng cho các đối tượng 63
Hình 5.1 Mô hình hệ thống cánh tay robot hoàn chỉnh 65
Hình 5.2 Cấu trúc bên trong phần hộp cố định cánh tay robot 65
Hình 5.3 Các ký tự thủ ngữ mô hình cánh tay robot đã thực hiện được: (a) Các ký tự chữ cái tĩnh, (b) Các ký tự liên tục, (c) Các ký tự chữ số 67
Hình 5.4.Các đồ thị biểu diễn hiệu suất của quá trình huấn luyện mô hình YoloV5 67
Hình 5.5 Đánh giá hiệu suất của quá trình huấn luyện mô hình phát hiện cử chỉ tĩnh thông qua ma trận nhầm lẫn 68
Hình 5.6 Kết quả phát hiện cử chỉ tĩnh trong thời gian thực dựa trên mạng YoloV5 69
Hình 5.7 Đồ thị kết quả hàm mất mát và độ chính xác trong quá trình huấn luyện mô hình GRUs 69
Hình 5.8 Kết quả nhận diện cử chỉ động trong thời gian thực dựa trên MediaPipe Hand và mô hình GRUs 70
Trang 18Hình 5.9 Đánh giá hiệu suất của mô hình nhận diện cử chỉ động dựa trên ma trận nhầm lẫn 71Hình 5.10 Trang màn hình bắt đầu của giao diện hệ thống học ngôn ngữ kí hiệu Việt Nam 72Hình 5.11 Trang màn hình “Chọn chế độ” của giao diện hệ thống học ngôn ngữ kí hiệu Việt Nam 72Hình 5.12 Trang màn hình chế độ “Học chữ” của giao diện hệ thống học ngôn ngữ
kí hiệu Việt Nam 73Hình 5.13 Trang màn hình chế độ “Kiểm tra” của giao diện hệ thống học ngôn ngữ
kí hiệu Việt Nam 73Hình 5.14 Màn hình giao diện chế độ “Phiên dịch” của giao diện hệ thống học ngôn ngữ kí hiệu Việt Nam: (a) Màn hình phụ hiện thông báo đang thực hiện ghi âm, (b) Màn hình chính sau khi lời nói được chuyển thành văn bản 74Hình PL.1 Ví dụ về cách khởi tạo giao diện dựa trên PyQT5 91
Trang 19Chương 1 TỔNG QUAN 1.1 Giới thiệu
Theo WHO, hiện nay trên thế giới có khoảng 34 triệu trẻ em điếc và khiếm thính [1] Trong khi ở Việt Nam con số đó là 15,500 bao gồm các trẻ em dưới 5 tuổi, số liệu được thống kê gần đây nhất vào năm 2014 [2] Bởi vì sinh ra đã mang khiếm khuyết về cơ quan thính giác thế nên các em nhỏ này hầu như mất đi tri giác về thế giới âm thanh, dẫn đến không nghe được tiếng nói và không hình thành nên ngôn ngữ Chính vì điều đó đã làm cản trở sự phát triển bản thân như các bạn bè đồng trang lứa Về lâu dài các em nhỏ này sẽ cảm thấy tự ti và dễ dẫn đến bệnh trầm cảm nếu như không được sự quan tâm sâu sắc
Ngôn ngữ kí hiệu là ngôn ngữ sử dụng cử chỉ tay và điệu bộ để thay thế cho âm thanh giọng nói Sự ra đời của ngôn ngữ kí hiệu đã gỡ bỏ được phần nào về rào cản giao tiếp của những người câm, điếc và cũng nhờ đó mới có thể tiếp cận được với các nguồn tri thức của nhân loại Bởi vì bản chất là một ngôn ngữ tượng hình, thế nên rất khó học và cần có sự chỉ dẫn và kèm cặp của giáo viên trong một thời gian dài Tuy nhiên số lượng giáo viên có khả năng dạy ngôn ngữ này vẫn còn rất hạn chế, chủ yếu tập trung ở các thành phố lớn Chính vì vậy, việc tạo ra một sản phẩm có khả năng thay thế giáo viên trong việc giảng dạy ngôn ngữ kí hiệu nên được xem là một vấn
đề cấp thiết
Trong những năm gần đây, trẻ em và người khuyết tật là các đối tượng được xã hội quan tâm sắc Minh chứng cho điều này được thể hiện qua đề tài [3], Nguyễn Trọng Thành và Trần Thiện Thanh đã phát triển một cánh tay giả hỗ trợ người khuyết tật trong việc cầm nắm đồ vật thông qua sự kết hợp của Arduino Nano, các servo và cảm biến cơ bắp EMG Trong khi đó, đề tài [4], Đặng Thị Ngọc và Nguyễn Hương Ngân đã ứng dụng mạng học sâu Yolo để thiết kế một mô hình có khả năng nhận diện
30 đối tượng khác nhau từ đó làm cơ sở cho trẻ em học Tiếng Anh thêm linh hoạt hơn
Bên cạnh đó, thời đại công nghệ 4.0 bùng nổ dẫn đến sự xuất hiện một số ứng dụng tự học ngôn ngữ kí hiệu trên các thiết bị thông minh [5] Các ứng dụng này đã cung cấp rất nhiều tài liệu số dưới dạng video hay ảnh động để người học có thể nhìn vào để bắt bước theo các cử chỉ được minh họa trong ứng dụng Tuy nhiên, các tổ chức nghiên cứu về sự phát triển của trẻ em chẳng hạn như WHO [6] cũng đã khuyến cáo là không nên để trẻ em tiếp cận quá sớm đến các thiết bị thông minh vì điều đó đem lại nhiều rủi ro làm ảnh hưởng đến sức khỏe cũng như nhận thức của các em nhỏ sau này Chính vì thế mặc dù các ứng dụng trên ra đời đã mang lại sự thuận tiện nhất
Trang 20định cho việc học ngôn ngữ kí hiệu, nhưng để hướng tới đối tượng là trẻ em thì chưa hoàn toàn phù hợp
Để người điếc và khiếm thính với người bình thường giao tiếp qua lại với nhau, các nhà nghiên cứu cũng đã thiết kế và triển khai một số các hệ thống nhận diện ngôn ngữ kí hiệu có khả phiên dịch ngôn ngữ kí hiệu thành văn bản, lời nói và ngược lại
Có hai danh mục chính trong nhận dạng ngôn ngữ kí hiệu, đó là nhận diện dựa trên
dữ liệu thu được từ các cảm biến và nhận diện dựa trên thị giác máy tính (computer vision) Trong bài báo [7], một chiếc găng tay thông minh có khả năng nhận diện cử chỉ tay nhờ vào việc tích hợp giữa các cảm biến và vi điều khiển Kết quả của nghiên cứu này đã đem lại là độ chính xác cao nhưng nhược điểm đó là hệ thống dây điện và các thiết bị điện tử gắn lên người sẽ làm hạn chế khả năng thao tác của người dùng Còn đối với các công nghệ nhận diện thuộc về lĩnh vực thị giác máy tính, rất nhiều phương pháp được đề xuất dựa trên máy học và các mạng học sâu như phân đoạn ảnh [8] hay các mô hình mạng CNNs [9] cũng đã mang lại kết quả đáng ngưỡng mộ Tuy nhiên, bộ dữ liệu các đề tài trên xây dựng chưa thực sự phong phú và chỉ tập trung giải quyết các ngôn ngữ kí hiệu ở địa phương, dẫn tới các đặc trưng riêng về dấu phụ của các nguyên âm và dấu thanh trong Tiếng Việt làm cho hệ thống nhận dạng đó không thể phân biệt được
Dựa vào bối cảnh nghiên cứu trên, nhóm đã đề xuất đề tài “Thiết kế và chế tạo cánh tay robot tương tác qua màn hình để hỗ trợ trong giảng dạy học ngôn ngữ ký hiệu cho trẻ em câm điếc” làm nội dung cho đồ án tốt nghiệp Qua đó hi vọng có thể đóng một phần công sức vào lĩnh vực giáo dục ngôn ngữ cho trẻ em câm-điếc ở Việt Nam
1.2 Mục tiêu đề tài
Thiết kế, thi công hệ thống phần cứng cánh tay robot có khả năng thực hiện các
kí tự thủ ngữ phục vụ cho việc dạy học theo hướng trực quan Xây dựng các thuật toán nhận diện cử chỉ tay dựa vào thị giác máy tính qua đó đánh giá hiệu quả quá trình học ngôn ngữ mà không cần đến giáo viên Cuối cùng, thiết kế giao diện tương tác với người học để triển khai các chức năng phù hợp với quá trình học cơ bản của một ngôn ngữ
1.3 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu
- Bảng chữ cái alphabet (a-y), chữ số (0-9) và các dấu thanh (sắc, huyền, hỏi, ngã, nặng) của ngôn ngữ kí hiệu Việt Nam
- Các thuật toán nhận diện cử chỉ tay bao gồm cử chỉ tĩnh và cử chỉ động
- Các thao tác chỉ tập trung áp dụng trên bàn tay phải con người
Trang 21 Phạm vi nghiên cứu
- Phần cứng cơ khí của hệ thống có kích thước 25x18x72 (cm)
- Cánh tay robot có khả năng thực hiện trên một nửa tổng số các kí tự thủ ngữ
- Các mô hình nhận diện được thực thi tuần tự, không đan xen nhau
- Hệ thống nhận diện đại diện 5 kí tự cử chỉ tĩnh và 11 kí tự cử chỉ động
1.4 Nội dung nghiên cứu
Đề tài được thực hiện gồm các nội dung chính sau:
- Nội dung 1: Khảo sát vấn đề thực tế đang cần giải quyết để đưa ra hướng
nghiên cứu
- Nội dung 2: Tìm hiểu các phương pháp thu thập và tăng cường dữ liệu phục
vụ cho các bài toán nhận thức hình ảnh
- Nội dung 3: Tìm hiểu lý thuyết và áp dụng mạng YoloV5 để nhận diện cử chỉ
tĩnh của ngôn ngữ kí hiệu
- Nội dung 4: Tìm hiểu và áp dụng thư viện MediaPipe để trích xuất vị trí 3D
của các khớp ngón tay
- Nội dung 5: Nghiên cứu lý thuyết và áp dụng thực hiện xây dựng mô hình
mạng Gated Recurrent Units để nhận diện cử chỉ động của ngôn ngữ kí hiệu
- Nội dung 6: Thiết kế và thi công mạch điện và mô hình phần cứng
- Nội dung 8: Thiết kế giao diện người dùng
- Nội dung 9: Thực nghiệm, hiệu chỉnh và đánh giá hệ thống
- Nội dung 10: Viết báo cáo tổng kết
- Nội dung 11: Bảo vệ luận án
1.5 Bố cục
Chương 1: Tổng quan
Chương này cung cấp ngắn gọn và tổng quát về các yêu cầu của báo cáo bao gồm giới thiệu, mục tiêu, phạm vi và nội dung của luận văn
Chương 2: Cơ sở lý thuyết
Chương này trình bày những cơ sở bao gồm các khảo sát về các nghiên cứu đã được thực hiện, lý thuyết về các thuật toán và nguyên lý hoạt động của các module được
sử dụng để thực hiện đề tài
Chương 3: Thiết kế hệ thống
Chương này trình bày chi tiết các thiết kế cho toàn bộ hệ thống bao gồm: phần cứng, phần mềm và các thuật toán
Chương 4: Thi công và thực nghiệm
Chương này trình bày về những thực nghiệm bao gồm thi công phần cứng, mô tả về các quá trình thu thập dữ liệu và huấn luyện các mô hình mạng
Trang 22Chương 5: Kết quả thực hiện, nhận xét và đánh giá
Chương này đưa ra các kết quả thực hiện, các biểu đồ phần tích hiệu năng của hai mô
hình nhận diện và đưa ra nhận xét chung về toàn hệ thống
Chương 6: Kết luận và hướng phát triển
Chương này đưa ra kết luận đề tài và hướng phát triển tiếp theo
Trang 23Chương 2 CƠ SỞ LÝ THUYẾT 2.1 Các nghiên cứu đã thực hiện
2.1.1 Cánh tay robot Aslan
Một nhóm nghiên cứu thuộc đại học Antwerp đã nghiên cứu phát triển thành công một thiết bị phiên dịch văn bản hoặc lời nói sang ngôn ngữ ký hiệu kí hiệu dựa trên nguyên mẫu phần cứng là một cánh tay robot [10] Để sử dụng, người dùng cần kết nối với mạng cục bộ và gửi tin nhắn văn bản đến Aslan, và cánh tay sẽ thao tác các chữ cái trong hệ thống bảng chữ cái theo như nhóm thiết kế gọi đó là chính tả ngón tay, trong đó mỗi chữ cái riêng lẻ được thể hiện thông qua một cử chỉ riêng biệt
Hình 2.1 Mô hình cánh tay robot Aslan
Phần cứng của cánh tay robot đã được chế tạo và lắp ráp từ công nghệ in 3 như hình 2.1 Để điều khiển được cánh tay robot hoạt động, bên trong cánh tay robot đã
sử dụng 16 động cơ servo, 3 bộ điều khiển động cơ, 1 board vi điều khiển Arduino Due, và một số các linh kiện khác
2.1.2 Nhận diện ngôn ngữ kí hiệu dựa trên YoloV5
Trong bài báo được công bố vào năm 2021 [11], Tasnim Ferdous Dima và đồng nghiệp đã cho công bố một hệ thống có thể nhận diện 36 chữ cái và chữ số trong ngôn ngữ kí hiệu Mỹ Để cải thiện được tốc độ nhận diện nhưng không ảnh hưởng đến độ chính xác, nhóm tác giả đã đề xuất cách tiếp cận mới đó là mạng YoloV5 Tập dữ liệu Benchmark (MU_HandImages ASL) đã được dùng trong suốt quá trình huấn luyện và đánh giá Kết quả mà hệ thống thu được là khả năng nhận diện thời gian thực với độ chính xác trung bình khá ấn tượng bao gồm: 95% Precision, 97% Recall, 98% mAP@0.5, 98% map@0.5:0.95
2.1.3 Nhận diện ngôn ngữ kí hiệu sử dụng MediaPipe và Long Short-Term Memory
Với một cách tiếp cận mới hơn, đối tượng hướng đến là các cử chỉ động trong ngôn ngữ kí hiệu Mỹ Trong bài báo [12], Souradeep Ghosh đã sử dụng MediaPipe
Trang 24Hand framework để trích xuất tọa độ 42 keypoints từ các đốt ngón tay của hai bàn tay Sau đó, các tọa độ này được đưa vào mô hình LSTM phục vụ cho việc huấn luyện, một mô hình cực kì phù hợp với các bài toán làm với dữ liệu dạng chuỗi Mô hình của tác giả tạo ra có thể nhận diện trong thời gian thực với 5 từ bao gồm: “wait, think, tiger, teacher, twins”
2.2 Ngôn ngữ kí hiệu Việt Nam
Ngôn ngữ ký hiệu của mỗi quốc gia hay mỗi khu vực sẽ khác nhau Nó không được sáng tạo ra bởi duy nhất một ai cả mà dần hình thành dựa trên phong tục, văn hóa, lịch sử của từng cộng đồng người câm – điếc Qua thời gian, ngôn ngữ ký hiệu càng phát triển và dần có những điểm chung giữa các cộng đồng Tuy nhiên họ vẫn giữ cho mình những nét đặc trưng nhất định của từng khu vực Như ở Hồ Chí Minh, người ta dùng tay chỉ vào môi để nói về “màu hồng” trong khi người Hà Nội lại dùng tay xoa vào má
Hình 2.2 Bảng ký hiệu thủ ngữ cơ bản trong Tiếng Việt
Dựa theo cách diễn đạt, có thể chia ngôn ngữ ký hiệu thành hai nhóm là đánh vần và nhóm giao tiếp Nhóm giao tiếp thường được dùng trong các hoạt động hằng ngày như ngủ sẽ lấy hai tay chắp lại đưa lên má hoặc hát sẽ nắm tay lại đưa ra trước miệng và thường diễn đạt bằng cả hai tay kết hợp với cơ thể, biểu cảm của khuôn mặt
để diễn đạt một từ, một cụm từ hoặc một câu ở những ngữ cảnh nhất định Trong khi
ở nhóm đánh vần, đối tượng sử dụng sẽ là những người bắt đầu học ngôn ngữ ký hiệu, các ký tự thủ ngữ trong nhóm này thường chỉ dùng một tay để diễn đạt Trong nhóm đánh vần sẽ bao gồm những ký tự về chữ cái, chữ số hay và các dấu thanh cơ bản (hình 2.2)và đây cũng là đối tượng chính mà đề tài nhóm hướng đến Dựa vào luận án về nhận dạng ngôn ngữ ký hiệu Tiếng Việt [13], có thể chia các ký tự này thành hai loại là ký hiệu tĩnh và liên tục Ký hiệu tĩnh chủ yếu được dùng để diễn tả
cử chỉ tĩnh như chữ “A”, “S” hay các số “2”, “5” Còn đối với loại ký tự liên tục cần
Trang 25thực hiện một chuỗi các thao tác để diễn tả như dấu ngã (~), dấu huyền (`) hay các chữ cái “Ă”, “Ê”, “Ư”
2.3 Học sâu (Deep Learning)
Deep Learning là một phân nhánh của trí tuệ nhân tạo và được kế thừa dựa trên
sự phát triển của mạng nơ-ron nhiều lớp (MLP – Multilayer Perception) Deep Learning ra đời đã tạo một cuộc đua xây dựng các kiến trúc mô hình với hàng chục thậm chí hàng trăm lớp mạng được chồng lên nhau để giải quyết các bài toán cụ thể chẳng hạn như thị giác máy tính hay xử lí ngôn ngữ tự nhiên
Convolution Neural Networks (CNNs) là một mô hình mạng cơ bản và cực kì nổi tiếng trong lĩnh vực học sâu CNNs ra đời giúp tiết kiệm thời gian cho việc trích xuất đặc trưng của các đối tượng trong một tấm ảnh so với các phương pháp thủ công trước đó Mạng CNNs đưa chúng ta đến một cách tiếp cận mới hơn trong các bài toán nhận thức hình ảnh Cụ thể CNNs đã khai thác các nguyên lý từ đại số tuyến tính, đặc biệt là phép nhân ma trận để định danh các mẫu trong một tấm ảnh Điều đó cũng đồng nghĩa là công nghệ này đỏi hỏi cao về mặt tính toán, đòi hỏi các đơn vị xử lí đồ họa (GPUs) mạnh mẽ để đào tạo các mô hình
Hình 2.3 Mạng nơ-ron với nhiều lớp Convolution [14]
Nhìn chung các mô hình CNN đều tuân theo một kiến trúc mạng nhất định Mỗi
mô hình sẽ là một sự chuỗi các lớp mạng nối tiếp mà đầu ra của lớp trước chính là đầu vào của lớp sau Trong số đó có 3 ba lớp mạng chính được thể hiện ở hình 2.3, bao gồm lớp Convolution, lớp Pooling và lớp Fully connected
- Lớp Convolution: Sử dụng các bộ lọc dưới dạng các ma trận để nhân chập với ảnh đầu vào, sau đó cho qua các hàm kích hoạt để tạo ra các bản đồ đặc trưng (feature map)
- Lớp Pooling: Pooling là một lớp nằm sau các lớp convolution layer, có tác dụng làm giảm kích thước của bản đồ đặc trưng, từ đó giúp giảm số lượng tính
Trang 26toán cho các lớp phía sau Nhờ sự tổ hợp của lớp Convolution lớp Pooling đi kèm đã giúp cho các đặc trưng càng về sau càng có tính khai quát cao
- Lớp Fully connected (FC): Lớp này hoạt động tương tự như một mạng nơ-ron nhiều lớp của ANNs FC giúp biến đối các đặc trưng ở giai đoạn cuối của mạng và đưa kết quả đến ngõ ra
2.4 Phát hiện vật thể (Object Detection)
2.4.1 Giới thiệu
Khi nhắc đến lĩnh vực thị giác máy tính, một trong những phương thức quan trọng tạo nên làn sóng giúp công nghệ trí tuệ nhân tạo phát triển đó là bài toán phát hiện vật thể Khác với bài toán phân loại, phát hiện vật thể có khả năng thực hiện hai nhiệm vụ gần như đồng thời, đó là xác định vị trí của một hay nhiều đối tượng trong một ảnh và gán nhãn phân loại cho các đối tượng đó Các ứng dụng của phát hiện vật thể xuất hiện nhiều trong các lĩnh vực khác nhau như an ninh, thống kê, người máy
và vô số lĩnh vực khác
Tuy nhiên với khả năng mà CNNs mang lại thì cách tiếp cận đó không thể giải quyết được được bài toán mà phát hiện vật thể đặt ra, vì bản chất CNNs chỉ là một mạng trích xuất đặt trưng ảnh và đầu ra là kết quả phân loại Từ khoảng năm 2012 cho đến nay, hàng loạt các mạng chuyên sâu ra đời như một hướng tiếp cận mới cho vấn đề này Đáng kể đến là các kiến trúc mạng RCN, fast R-CNN, faster R-CNN, đó
là những kiến trúc mạng khai sinh ra thuật ngữ Region of Interest (RoI) hay còn được hiểu là kĩ thuật đề xuất các vùng có thể chứa đối tượng Và sau này nhu cầu về triển khai với tốc độ đáp ứng thời gian thực trở thành một xu hướng từ đó dẫn đến sự xuất hiện các mạng nhận diện với tốc độ nhanh hơn như YOLO hay SSD Sự khác biệt cơ bản của các mạng này đó là có thể đưa ra dự đoán cho các “class” và vẽ “bounding box” chỉ với một lần chạy thuật toán
2.4.2 Mạng xương sống CSPDarknet
Bắt đầu từ những năm 2000 đến nay, hàng loạt các cấu trúc mạng CNNs phức tạp làm cơ sở để trích xuất các đặc trưng ảnh theo chiều sâu đã được được đề xuất với tên gọi là mạng xương sống “backbone” Mục tiêu của các mạng xương sống này
là tăng tính khái quát và trừu tượng của mô hình để tính toán các đặc trưng của ảnh ngày một sâu hơn Đồng thời tăng tính ứng dụng trong nhiều bài toán nhận thức hình ảnh khác nhau dựa trên khái niệm trường nhìn (Receptive Field) của từng nơ-ron CSPNet là một mô hình mạng sương sống với nguyên lý được mô tả ở hình 2.4
Mô hình bắt đầu bằng việc chia bản đồ đặc trưng đầu vào thành hai phần bằng nhau, một phần được giữ nguyên để đưa ghép nối ở các lớp sau, phần còn lại được đưa vào khối xử lý gốc thông thường để trích xuất các đặc trưng Điểm mạnh của khối CSP
Trang 27là giảm thiểu 50% khối lượng tính toán bằng cách chia feature map ra làm hai Từ đó kết nối CSP vừa giúp bảo toàn một phần thông tin từ các lớp trước, vừa đảm độ phức tạp của mô hình mà còn giảm được số lượng tính toán
Hình 2.4 Cấu trúc mạng xương sống CSPNet
CSPDarknet là mạng nơ-ron dựa trên sự kết hợp của hai mạng xương sống phát hiện đối tượng là Darknet53 và CSPnet Sau khi chia bản đồ đặc trưng của lớp cơ sở thành hai phần bằng cách sử dụng kỹ thuật CSPNet, các đặc trưng sẽ được kết hợp bằng cách sử dụng hệ thống phân cấp nhiều giai đoạn.CSPDarknet53 vượt trội hơn ResNet trong việc xác định đối tượng, trong khi ResNet vượt trội hơn nó trong việc phân loại đối tượng Hạn chế này có thể được khắc phục bằng cách sử dụng hàm kích hoạt Mish và một vài chiến lược như SPP (Spatial Paramid Pooling layer), PAN (Path Aggregation Network), Spatial Attention Module (SAM) Trong kiến trúc CSPDarknet53 như hình 2.5 phép tính cộng được thực hiên ở lớp cuối của khối CSP được đánh dấu viền đỏ với mục đích kết hợp đặc trung lại với nhau Nhờ việc sử dụng phương pháp tách và hợp nhất này đã giúp tối ưu hơn cho quá trình lan truyền đạo hàm xuyên suốt qua kiến trúc mạng
Trang 28Conv 64x1x1, stride 1 Mish
Conv 64x3x3, stride 1 Mish Add
Conv 64x1x1, stride 1 Mish
Conv 64x1x1, stride 1 Mish
Concat
CSPDarknet53 CSPBlock
Hình 2.5 Kiến trúc mạng xương sống CSPDarknet53
2.4.3 You Only Look Once (YOLO)
Yolo được tạm dịch là bạn chỉ cần nhìn một lần, là một mô hình mạng thuộc nhóm One-stage, được phát triển bởi lần đầu bởi Joseph Redmon và các cộng sự [Citation] Tương tự như SSD, Yolo cũng là một mạng được tạo ra với mục đích nhận diện với tốc độ cao từ các lớp Convolution và Fully-connected Trong đó, các lớp Convolution sẽ trích xuất các đặc trưng của ảnh và lớp Fully-connected sẽ dự đoán
để đưa ra các xác xuất và tọa độ 4 góc bao quanh đối tượng đó
Hình 2.6 Phương thức hoạt động của mô hình Yolo [15]
Trang 29Ý tưởng chi tiết được đề xuất của mô hình YOLO được mô tả ở hình 2.6 Các hình ảnh đầu vào được chia thành các ma trận với kích thước SxS, dựa vào thông số IOU và hàm mất mát bao gồm Classification loss, Localization loss, và Confidence loss để khoanh vùng và tạo ra các bounding box Cuối cùng, bounding box có độ tin cậy cao nhất sẽ được chọn là làm hộp giới hạn nhận diện cho vật thể Đây cũng chính
là cơ sở đề hình thành các phiên bản cải tiến về sau Trong đó, Yolov5 được xem là một phiên bản tốt nhất của Yolo cho đến hiện nay nhưng vẫn chưa được sử dụng rộng rãi vì vẫn chưa có bài báo chính thức nào được công bố chính thức về nó
Concat UpSample Conv1x1
SPP
Concat UpSample Conv1x1
BottleNeckCSP Conv3x3 S2 Concat
BottleNeckCSP Conv3x3 S2 Concat BottleNeckCSP
BottleNeckCSP
BottleNeckCSP BottleNeckCSP
Conv1x1
Conv1x1 CSP
SPP
Conv Concat
Cross Stage Partial Network Spatial Pyramid Pooling
Convolutional Layer Concatenate Function
Hình 2.7 Kiến trúc mạng YoloV5
Kiến trúc của YoloV5 được mô tả ở hình 2.7 bao gồm 3 phần chính:
- YoloV5 Backbone: Sử dụng CSPDarknet làm mạng xương sống để trích xuất đặc trưng từ các hình ảnh bao gồm các CSP
- YoloV5 Neck: Sử dụng PANet để tạo ra một mạng lưới kim tự tháp đặc trưng
để thực hiện tổng hợp các đặc trưng và chuyển cho Head để dự đoán
- YoloV5 Head: Các lớp tạo dự đoán từ các hộp neo (anchor boxes) để phát hiện đối tượng
Trong bài báo [16], hiệu suất của ba mô hình nhận diện vật thể phổ biến nhất hiện nay bao gồm YoloV3, YoloV5s và SSD-MobileV2 đã được thực hiện để nhận diện khẩu trang Kết quả ở bảng 2.1 cho thấy với cùng một mô hình phần cứng và được huấn luyện cùng một tập dữ liệu, YoloV5 có tốc độ nhận diên nhanh nhất, tuy nhiên sẽ phải đánh đổi về độ chính xác trung bình
Trang 30Bảng 2.1 Phân tích hiệu suất của mô hình YoloV3, YoloV5s và SSD–MobileV2 [16]
(%)
FPS Tesla T4 1660 Ti Jetson Nano
Việc học để phát hiện và phân biệt giữa các hành động khác nhau là một nhiệm
vụ thiết yếu đối với cả con người và trong lĩnh vực thị giác máy Đã có một số định nghĩa của một hành động được đưa ra trong cuộc khảo sát gần đây [17], nhưng trong luận án này, định nghĩa về hành động sẽ đưa ra một cách mơ hồ, đó là quá trình một người tương tác với một đối tượng, một hoặc nhiều người khác hoặc đơn giản là chỉ thực hiện các chuyển động cơ thể của riêng họ Một số ví dụ về hành động của con người có thể dễ dàng bắt gặp là chạy bộ, đi xe đạp, uống nước, vẫy tay hoặc đọc luận
án Vấn đề này đã đặt ra nhiều thách thức cho computer vision nói riêng và deep learning nói chung vì nó phá vỡ đi các quy tắc nhận diện trước đây Thay vì chúng ta
áp dụng các mô hình mạng để nhận diện đối tượng hay nhãn của một tấm ảnh thì bây giờ chúng ta sẽ đi tìm sự liên kết của một chuỗi hình ảnh với nhau và sau đó đưa ra phán đoán về hành động đang thực thi dựa trên sự liên kết đó
Ngày nay, một lượng dữ liệu video khổng lồ tồn tại trên khắp các trang mạng Internet Theo như ghi nhận vào năm 2015, chỉ sau mỗi phút trôi qua sẽ có khoảng hơn 400 giờ video được đăng tải lên Youtube Việc kiểm soát và quản các nội dung trong các video này để kịp thời bài trừ các hành vi tiêu cực như bạo lực, hiếp dâm là
vô cùng cần thiết Chính vì vậy, sự ra đời của nhận diện hành động đã giúp ích rất nhiều trong việc cải thiện chất lượng lượng của các văn hóa phẩm truyền thông, góp phần vào sự văn minh trong các môi trường mạng xã hội
Một số ví dụ khác về các ứng dụng sử dụng sử dụng nhận dạng hành động chẳng hạn như truy xuất video dựa trên nội dung (tìm kiếm trên Google về các video có người đang đá bóng), hệ thống hỗ trợ người già (cảnh báo nếu một người bị ngã hay đột quỵ trong nhà), hoặc sự tương tác giữa người và máy tính (tạm dừng phim khi người xem đứng lên và rời khỏi ghế sofa) Một vài vấn đề khác khiến cho bài toán nhận dạng hành động trở nên phức tạp hơn bao gồm các hành động tương tự nhau (chạy bộ và đi bộ), các hành động chồng lên nhau (vừa ăn cơm vừa lướt điện thoại) hoặc các chuyển động nằm ở nhiều góc nhìn camera khác nhau
Trang 312.5.2 Recurrent Neural Network (RNNs)
Mạng nơ-ron hồi quy (RNNs) là một loại kiến trúc mạng nơ-ron nhân tạo phù hợp cho các bài toán làm việc với dữ liệu dạng chuỗi hoặc tuần tự như video hoặc âm thanh Mạng này được gọi là “Recurrent” vì mang tính đặc trưng trong thực hiện lặp
đi lặp lại một cấu trúc tính toán duy nhất xuyên suốt quá trình tính toán, chỉ có dữ liệu đầu vào (𝑥𝑇) là thay đổi như mô tả ở hình 2.8 Điều này giúp giảm bớt các tham
số bên trong cấu trúc, dẫn đến tốc độ xử lí nhanh hơn Hơn thế nữa, nhờ có bộ nhớ bên trong nên RNNs cho phép lưu nhớ các giá trị trạng thái chuỗi hoặc ngữ cảnh của một câu nói, điều mà các mạng học nơ-ron khác như ANN hoặc CNNs không thể thực hiện được
Hình 2.8 Kiến trúc mạng điển hình của RNNs
Tại mỗi lớp mạng nơ-ron sẽ bao gồm:
𝑥𝑡 là dữ liệu đầu vào
𝑦𝑡 là phán đoán đầu ra
ℎ𝑡−1 là biến trạng thái ẩn trước đó, mô tả ngữ cảnh của chuỗi tính tới thời điểm T
ℎ𝑡 là trạng thái ẩn sau khi đã được tổng hợp để cung cấp cho bước tính toán tiếp theo
Trong quá trình huấn luyện, mô hình RNNs sẽ có nhiệm vụ đi tìm bộ 3 trọng số (U, W, V) cho đến khi mô hình đạt trạng thái tốt nhất Công thức tính toán liên quan đến bộ trọng số trên cụ thể như sau:
Trang 32Với cấu trúc như trên, mạng RNNs có yếu điểm là không mô tả hay học được những chuỗi quá dài do hiện tượng triệt tiêu đạo hàm (vanishing gradient) Chính vì vậy các nhà nghiên cứu đã cho ra mắt 2 biến thể của họ RNN đó là Gated Recurrent Unit (GRU) và Long Short-Term Memory (LSTM) [18].Bằng cách thay thế mỗi ô tính tiêu chuẩn của RNN bằng một ô nhớ (memory cell), chúng có khả năng lưu trữ các giá trị kích hoạt của dữ liệu trước đó trong suốt chuỗi dữ liệu dài Cả hai biến thể này đều có khả năng xem xét liệu những thông tin nào quan trọng, sau đó lọc và chuyến đến ngõ ra cho ô nhớ tiếp theo
2.5.3 Gated Recurrent Units (GRUs)
Gated Reccurent Units được ra mắt vào năm 2014, là một cấu trúc con thuộc biến thể của RNN Tương tự như LSTM, cả hai cấu trúc đều được ra đời để giải quyết những hạn chế của RNN là vanishing gradient Tuy nhiên có sự khác nhau, GRUs chính là một phiên bản cải tiến của đàn anh LSTM với ít tham số hơn nên tiêu tốn ít
bộ nhớ và tốc độ triển khai thuật toán nhanh hơn Một đơn vị Gated Recurrent sử dụng 2 cổng Update Gate và Reset Gate, bản chất là 2 vector lựa chọn thông tin để truyền cho đầu ra Ưu điểm của các cổng này là chúng có thể được đào tạo để lưu giữ những thông tin của quá khứ mà không bị rửa trôi theo thời gian và loại bỏ những thông tin không liên quan đến phán đoán Cấu trúc của một GRU điển hình được thể hình trong hình 2.9
ta nh
Hình 2.9 Cấu trúc tính toán bên trong GRU
Các công thức toán học đằng sau một đơn vị được mô tả dưới đây:
Trang 332.5.4 Thư viện MediaPipe Hand
MediaPipe Hands là một “framework” thuộc bộ giải pháp của MediaPipe được dùng để theo dõi ngón tay và bàn tay với độ chính xác cao Bên trong framework này
có 2 mô hình hoạt động cùng nhau Khi chúng ta cung cấp hình ảnh đầu vào, một mô hình phát hiện lòng tay (Palm detection model) sẽ trả về một giới hạn bao quanh bàn tay có định hướng với độ chính xác cao lên đến 95,7% (theo như báo cáo Google cung cấp) Sau đó, một mô hình mốc bàn tay (hand landmark model) giúp dự đoán
21 điểm mốc 3D của bộ xương bàn tay như mô tả ở hình hình 2.10 Đối với mỗi mốc bàn tay, đường ống sẽ trích xuất ra bản địa hóa của các tọa độ bao gồm 3 giá trị (x,y,z) Kích thước của khung hình đầu vào là (x,y) và giá trị chiều sâu tính từ camera đến bàn tay là (z) Một điều tuyệt vời mà thư viện MediaPipe Hand mạng lại đó là khả năng thực thi với thời gian thực
Hình 2.10 Sự dự đoán 21 điểm mốc trên xương bàn tay con người [19]
2.6 Các phương pháp đánh giá
Khi thực hiện bài toán phân loại, có 4 trường hợp của dự đoán có thể xảy ra, dưới đây là các định nghĩa thành phần của chúng Trong đó, A và B là các thuật ngữ tượng trưng
Trang 34- True Negative (TN): Một cử chỉ của kí tự không phải B và đã được xác định đúng là như vậy
- True positive (TP): Cử chỉ của kí tự A được nhận dạng đúng là cử chỉ của chữ
Precision là một chỉ số xác định độ tin cậy của mô hình dựa trên số lượng các
dự đoán đúng được thực hiện
Với Precision, Recall, giá trị của các chỉ số này càng cao càng có lợi, chứng tỏ
mô hình hiệu suất cao Tuy nhiên, như vậy chưa đủ vì mỗi chỉ số chỉ quan tâm đến một đối tượng đo nhất định Do đó chúng ta cần sử dụng thêm F1 Score để cân bằng
và tỉ lệ kết quả tích cực sai (FPR) khi ngưỡng phân loại của một mô hình thay đổi AUC là vùng bên dưới ROC, diện tích khu vực này càng lớn cho thấy mô hình chúng
ta hiệu quả, khi đó đường cong ROC sẽ dần di chuyển đến góc phần tư phía bên trái của đồ thị
Trang 35Ngoài các chỉ số trên, một phương pháp khác để hình dung về khả năng nhận diện của mô hình đó chính là ma trận nhần lẫn (confusion matrix) Ma trận nhầm lẫn dưới dạng tổng quát được thể hiện ở hình 2.11
Đánh giá dựa trên mô hình phát hiện đối tượng
Đối với các bài toán về phát hiện đội tượng, phép đo được sử dụng phổ biến nhất mà không thể không nhắc đến đó là phần giao và hợp (IoU) IoU là đại lượng đo dựa trên chỉ số Jaccard để tính toán độ trùng khớp của hai hộp giới hạn bao gồm hộp giới hạn thực tế và hộp giới hạn mô hình dự đoán Công thức tính IoU được mô tả ở hình phương trình 2.12 và được trực quan hóa dựa trên hình 2.12
IoU = BBT ∩ BBP
Trong đó, BBT là hộp giới hạn đối tượng đã được gán nhãn trước, BBP là hộp giới hạn tối tượng nhận diện được Chỉ số IoU được tính dựa trên chia tỉ lệ giữa phần giao và phần hợp của BBT và BBP Phép đo này giúp đánh xem đối tượng được phát hiện là thành công hay thất bại dựa trên một ngưỡng đặt trước Ngưỡng này thường được chọn là 50%, nhưng cũng có thể là 75% hoặc 95%
Trang 36Khi chúng ta tính được IoU, chúng ta sẽ có cơ sở để tính toán thêm một đại lượng nữa thuộc phát hiện vật thể đó là mAP Mean Average Precision (mAP) được định nghĩa là giá trị trung bình của các AP, mà AP chính là độ chính xác trung bình của từng lớp được gán nhãn Giá trị mAP có thể phản ánh chân thực chất lượng của
mô hình nhất, thế nên giá trị này càng cao càng có lợi Có nhiều biến thể trong việc tính toán mAP Phổ biến nhất trong số đó liên quan đến việc lựa chọn ngưỡng IoU Trong PASCAL VOC challenge, giá trị ngưỡng IoU 0,5 (mAP@0.5) được sử dụng, trong khi trong sự cạnh tranh COCO, mAP được tính trung bình trên các ngưỡng IoU khác nhau, từ 0,5 đến 0,95 với 0.05 cho mỗi bước thay đổi (mAP@ [.5:.95])
2.7 Giới thiệu phần cứng
2.7.1 Arduino Nano
Trong lĩnh vực điện tử, vi điều khiển là cái tên khá quen thuộc Mỗi vi điều khiển đươc sử dụng chuyên sâu theo những thông số cơ bản của nó Trong đề tài [3], tác giả sử dụng vi điều khiển Arduino Nano để xử lý các tín hiệu thu được từ các cảm biến cơ là Myoware và Muscle Sensor V3, sau đó cập nhật trạng thái thông báo đồng thời điều khiển động cơ Trong đề tài [20] tác giả cũng sử dụng Arduino Nano làm
bộ xử lý trung tâm, xử lý dữ liệu nhận được từ máy tính thông qua bluetooth và xuất tín hiệu để điều khiển động cơ thông qua các module điều khiển Từ khảo sát trên kết hợp với yêu cầu ban đầu đặt ra thì việc sử dụng vi điều khiển Arduino Nano cho hệ thống dạy ngôn ngữ kí hiệu là hoàn toàn phù hợp
Vi điều khiển Arduino được sử dụng khá phổ biến, nhất là trong ứng dụng về lập trình nhúng, điều khiển các thiết bị tự động Arduino có riêng một phần mềm cho người dùng lập trình và nạp code Ngôn ngữ lập trình Arduino giống với ngôn ngữ C/C++ nhưng Arduino đa dạng về nội dung thư viện
Arduino Nano sử dụng chip Atmega 328 thuộc vi điều khiển 8 bit, có kích thước nhỏ so với các họ Arduino khác những vẫn đảm bảo được các chức năng và tính ổn định Hoạt động ở mức điện áp 5V, có 6 chấn PWM với tín hiệu điều chế độ rộng xung 8 bit Bộ nhớ Flash của Arduino Nano là 32KB, SPAM là 2Kb và EEPROM là
Trang 37của từng vị trí và kích cỡ của khớp trên mô hình cánh tay robot nên động cơ Servo MG995 và Servo Emax mini được chọn để đảm nhận từng vai trò khác nhau
Động cơ Servo DC MG995 hoạt động với điện áp từ 4.8V – 7.2V cùng mức tiêu thụ dòng điện từ 500mA – 900mA Dễ dàng kiểm soát độ rộng xung với góc quay từ
0o tới 120o và có chỉ số mô-men xoắn cao
Servo Emax mini có chung mức điện áp hoạt động với Servo MG995 (4.8V – 6V) nên dễ dàng trong việc cấp nguồn điều khiển Dòng điện hoạt động 200mA và
có mô-men xoắn tối đa 1.8kg-cm với độ chính xác cao Emax mini có kích thước nhỏ (8.5mg) nhưng lại có đầy đủ các đặc tính thông dụng như những Servo DC khác
2.7.3 Động cơ bước Nema 17 tỉ số 3969/289
Động cơ bước thường được sử dụng trong các hệ thống đòi hỏi sự chuyển động với độ chính xác cao tuy nhiên động cơ bước lại có lợi thế hơn về mô-men xoắn khi vận hành ở tốc độ thấp Đặc điểm nổi bật của nó là khả năng xoay chính xác số góc quy định và tạo ra lực xoay lớn Động cơ bước thường được cấu tạo từ hai thành phần chính gồm Roto và Stato, trong đó Roto là một nam châm vĩnh cửu được chia thành từng cặp Ở mô hình ứng dụng tín hiệu EEG điều khiển khung xương trợ lực cánh tay [20] nhóm tác giả đã sử dụng động cơ bước cho trục quay của bộ khung nhằm tạo ra một lực đủ lớn để hạ hay nâng cánh tay người khuyết tật lên Vì vậy động cơ bước Nema 17 tỉ số 3969/289 được chọn để điều khiển chuyển động ở khớp khuỷu tay của cánh tay robot vì động cơ này có khả năng xoay chính xác và chịu lực tốt
Động cơ bước Nema 17 tỉ số 3969/289 hoạt động ở mức điện áp tối đa lên đến 24VDC, dòng điện tối đa 1.7A có tích hợp hộp số giảm tốc 3969/289 giúp hạn chế
độ rung và tăng độ chính xác Ngoài ra, động cơ hoạt động với mô-men xoắn 60kgf.cm, độ phân giải bước là 1.8o
2.7.4 Module Adafruit PWM/Servo driver PCA9685
Để điều khiển các khớp trên cánh tay robot cần số lượng lớn động cơ Servo, trong khi vi điều khiển Arduino chỉ đáp ứng được 6 chân ngõ ra PWM Vậy giải pháp tối ưu nhất là sử dụng một module vừa có thể tương tác với vi điều khiển và vừa có khả năng điều khiển đồng thời nhiều động cơ Servo DC Qua tìm hiểu, nhận thấy module điều khiển Servo 16 kênh PWM PCA9685 là phương án hiệu quả và phù hợp với đề tài này
Module Adafruit PWM/Servo driver PCA9685 sử dụng một bộ nguồn độc lập, hoạt động ở mức điện áp 5V, dòng hoạt động 40mA và có khả năng điều khiển tối đa
16 động cơ Servo DC thông qua giao thức truyền thông I2C[21] Mỗi ngõ ra PWM hoạt động ở dải tần số 40Hz-100Hz với độ phân giải 12 bit (nhiều hơn Arduino Nano)
Trang 38Việc điều khiển module này khá đơn giản khi làm việc với Arduino vì đã có sẵn bộ thư viện điều khiển
2.7.5 Module driver A4988
Để thực thi các tín hiệu điều khiển từ vi điều khiển gửi đến, động cơ bước cần
có driver để hỗ trợ mã hóa các tín hiệu này Chức năng chính của một driver điều khiển động cơ bước là xác định thứ tự các pha của động cơ và cấp dòng cho mỗi pha Trong mô hình máy khắc laser CNC [22], tác giả đã sử dụng driver A4988 để điều khiển động cơ bước ở trục X, Y của máy Sau khi xem xét và thấy được sự hiệu quả, driver A4988 được chọn để điều khiển động cơ bước được sử dụng trong đề tài Driver A4988 có kích thước nhỏ gọn (15,24x20,32mm) cùng khả năng bảo vệ quá dòng cho động cơ bước Driver hoạt động ở mức điện áp từ 8V-35V, dòng điện ngõ ra cấp cho động cơ được điều chỉnh trực tiếp trên driver cùng năm chế độ vi bước cho người dùng lựa chọn
2.7.6 Màn hình cảm ứng điện dung Waveshare LCD (C)
Để đáp ứng các tiêu chí như có thể tương tác trực tiếp trên màn hình, độ phân giải cao hay dễ dàng kết nối nên màn hình cảm ứng điện dung Waveshare LCD (C)
đã được chọn cho đề tài này Màn hình hoạt động ở mức điện áp từ 4V đến 5.5V thông qua cổng USB và có thể dễ dàng kết nối với máy tính bằng cổng HDMI Áp dụng công nghệ IPS với kích thước 7 Inch và độ phân giải lên đến 1024x600 và có thể cấu hình được với phần mềm
2.7.7 Webcam Logitech C310
Nhận dạng và xử lý hình ảnh là công nghệ đã không còn xa lạ trong thời đại hiện nay Việc chọn một Webcam phù hợp sẽ quyết định rất lớn đến kết quả thu được Trong các đề tài về dựa trên thị giác máy tính, nếu như những tấm ảnh thu được từ một Webcam không đảm bảo chất lượng sẽ làm chậm quá trình xử lý như lấy nét, cân bằng ảnh và lọc nhiễu Từ các yếu tố này, Webcam Logitech C310 được chọn cho vai trò thu thập dữ liệu hình ảnh
Webcam Logitech C310 có kích thước nhỏ gọn (71.15x31.3x25.95 mm) với độ phân giải HD 720p kèm khả năng chỉnh độ sáng tự động Hoạt động ở mức điện áp 5V, kết nối trực tiếp với máy tính thông qua cổng USB Ngoài ra, Webcam còn tích hợp sẵn Micro có khả năng chống ồn
Trang 39Chương 3 THIẾT KẾ HỆ THỐNG 3.1 Thiết kế phần cứng
3.1.1 Thiết kế phần cứng cơ khí
Mô hình phần cứng cơ khí được thiết kế trên phần mềm SolidWorks với cấu tạo gồm ba bộ phận chính bao gồm bàn tay robot, cánh tay và hộp cố định được mô tả trong hình 3.1
Hình 3.1 Mô phỏng cấu tạo tổng quan của mô hình phần cứng cơ khí
a Phần bàn tay robot
Ngón tay và lòng bàn tay robot
Để điều khiển ngón tay robot, những sợi dây không giãn (dây cơ) được sử dụng
để mô phỏng các sợi cơ trên ngón tay con người Như mô tả ở hình 3.2, ở mỗi ngón tay, bốn sợi dây cơ được chia làm hai bộ dây A1-A2 và B1-B2 đóng vai trò định hình ngón tay co – duỗi ở một góc bất kỳ Trên đốt số 1 của ngón tay robot một đầu dây A1 được cố định tại điểm duỗi, một đầu dây A2 được cố định tại điểm co và đầu còn lại của bộ dây sẽ nối với một động cơ Servo Khác với bộ dây A1-A2, một đầu của dây B1 sẽ cố định tại điểm duỗi của đốt số 3, trong khi một đầu dây B2 lại cố định ở điểm co của đốt số 2
Trang 40Hình 3.2 Vị trí các sợi dây cơ ngón tay của bàn tay robot
Một bộ dây cơ kết hợp với một Servo Emax mini lắp trực tiếp trên bàn tay được
sử dụng để điều khiển ngón tay cái của bàn tay robot do ngón này ít hơn các ngón còn lại một đốt tay Điều này khiến việc điều khiển ngón cái trở nên chính xác hơn, đồng thời giúp tối ưu diện tích chứa động cơ
Một cơ cấu bánh răng được thiết kế trên bàn tay robot sử dụng động cơ Servo Emax mini (hình 3.3), giúp ngón tay trỏ không chỉ co – duỗi mà có thể chuyển động theo phương ngang Thiết kế này nhằm đáp ứng việc thực hiện các ký tự thủ ngữ như chữ U và chữ V (hình 3.4)
Như vậy, để điều khiển 5 ngón tay robot cử động linh hoạt cần sử dụng 9 động
cơ Servo MG995 và 2 động cơ Servo Emax mini Các Servo MG995 sẽ được thiết kế lắp rắp ở phần cánh tay, trong khi các Servo Emax mini được lắp trực tiếp trên bàn tay robot
Hình 3.3 Mô phỏng cấu trúc bên trong bàn tay Robot