Tên đề tài: Thiết kế và thi công hệ thống điều khiển xe lăn điện bằng cử chỉ tay sử dụng thông minh nhân tạo.. Áp dụng được mô hình nhận dạng đối tượng YOLOv8 để nhận diện các cử chỉ của
TỔNG QUAN
Giới thiệu
Tạo hóa ban tặng cho con người chúng ta khi sinh ra đều có đủ hình hài Thật tiếc thay, trong nhịp sống tấp nập và nền công nghiệp đang phát triển vượt bậc, vẫn tồn tại những con người có số phận bị khuyết tật các chi Theo công bố của Tổng cục thống kê và UNICEF ngày 11-1-2019, hơn 7% dân số Việt Nam từ 2 tuổi trở lên khoảng 6,2 triệu người là người khuyết tật [1] Từ con số thực tế trên có thể nhận thấy số lượng người khuyết tật chiếm một phần không nhỏ trong dân số Việt Nam Vì thế nhu cầu di chuyển của họ là một vấn đề cần đặc biệt được quan tâm, để có thể dễ dàng di chuyển thì phương tiện luôn đi liền với cuộc sống của họ chính là xe lăn. Với sự phát triển của khoa học công nghệ, xe lăn điện đã được tạo ra, được ví như là đôi chân nhân tạo cho những người bị bại liệt - hỗ trợ khả năng di chuyển cần thiết để họ có thể đi lại và thực hiện các công việc hằng ngày Hiện nay, các loại xe lăn điện có thể được điều khiển bằng nhiều phương thức điều khiển khác nhau Ngoài các phương thức điều khiển truyền thống bằng nút điều khiển thì trong đề tài [2] của
Võ Ngọc Tiến và Lâm Minh Cảnh sử dụng tín hiệu thu được từ cảm biến gia tốc MPU-6050 để đo và phát hiện các chuyển động nhằm mục đích ứng dụng vào điều khiển xe lăn điện Công nghệ tự định vị và đến vị trị mong muốn dựa vào bản đồ 2D cũng được ứng dụng vào điều khiển xe lăn như đề tài [3] của Lê Trung Nghĩa và Nguyễn Lữ Phụng Đình.
Trong thời gian gần đây, với sự phát triển không ngừng của xử lý ảnh và trí tuệ nhân tạo nó góp phần cho sự phát triển của khoa học công nghệ ở nhiều lĩnh vực Trí tuệ nhân tạo đã mang lại nhiều cơ hội mới cho việc thiết kế hệ thống điều khiển xe lăn điện Có khá nhiều đề tài nghiên cứu về ứng dụng của xử lý ảnh trong điều khiển xe lăn điện như đề tài [4] của Vũ Hoàng Thiên và Đoàn Lâm kết hợp việc điều khiển xe thông qua tín hiệu điện não và camera tránh vật cản giúp người sử dụng tránh những va chạm không cần thiết xảy ra Đề tài [5] của Huỳnh Tấn Cường sử dụng ảnh thu được từ camera Intel RealSense D435 3D để xử lý tính toán dựa trên độ sâu của ảnh và vị tí vật mốc để xác định khoảng cách để xe tránh vật cản Ngoài ra một số đề
2 tài ứng dụng của lĩnh vực trí tuệ nhân tạo trong việc điều khiển như [6] của Nguyễn Đoàn Vĩnh Thái và Bùi Đình Hiếu nhận dạng và phân loại hướng của mắt để điều khiển xe Đề tài [7] của Ngô Xuân Thịnh và Nguyễn Phạm Hoài Ân sử dụng cử chỉ tay để xây dựng mô hình thùng rác di chuyển tự động Hay đề tài [8] của Nguyễn Hữu Sáng và Từ Thị Kim Chi điều khiển các thiết bị bằng cử chỉ tay thông qua giao tiếp UART giữa máy tính và vi điều khiển PIC16F887
Qua những tóm tắt trên, nhóm đã đưa ra lựa chọn đề tài “ Thiết kế và thi công hệ thống điều khiển xe lăn điện bằng cử chỉ tay sử dụng thông minh nhân tạo” Công nghệ này mở ra một tương lai tươi sáng cho người khuyết tật, giúp họ có thể tận hưởng cuộc sống hằng ngày một cách thoải mái và độc lập hơn Việc kết hợp trí tuệ nhân tạo với thiết kế xe lăn điện mang lại nhiều ưu điểm lớn Hệ thống có khả năng nhận diện cử chỉ tay của người sử dụng, từ đó điều khiển xe lăn điện theo hướng và tốc độ mong muốn Điều này mang lại sự linh hoạt và tiện ích cao, giúp người sử dụng có thể di chuyển một cách dễ dàng trong môi trường xung quanh Ngoài ra, việc áp dụng trí tuệ nhân tạo cũng giúp tối ưu hóa hiệu suất và độ chính xác của hệ thống điều khiển Nhờ vào khả năng học máy, hệ thống có thể học và thích nghi với cử chỉ tay của mỗi người sử dụng, tạo ra trải nghiệm cá nhân hóa và tối ưu nhất Tuy nhiên, việc thiết kế hệ thống điều khiển xe lăn điện bằng cử chỉ tay cũng đặt ra một số thách thức Cần phải đảm bảo rằng hệ thống nhận diện cử chỉ tay một cách chính xác và đáng tin cậy, đồng thời phải cung cấp các phương tiện dự phòng để tránh những tình huống không mong muốn Tóm lại, việc kết hợp trí tuệ nhân tạo vào thiết kế hệ thống điều khiển xe lăn điện bằng cử chỉ tay mang lại nhiều lợi ích lớn cho người khuyết tật Điều này không chỉ giúp cải thiện chất lượng cuộc sống của họ mà còn mở ra những triển vọng mới và tiềm năng cho công nghiệp hỗ trợ người khuyết tật.
Mục tiêu để tài
Mục tiêu nhóm đề ra trong đề tài là Thiết kế và thi công hệ thống điều khiển xe lăn điện bằng cử chỉ tay sử dụng thông minh nhân tạo Sử dụng thuật toán phát hiện đối tượng YOLO để nhận dạng và phân loại cử chỉ tay thông qua máy tính nhúng
Jetson Nano Developer Kit từ hình ảnh thu được bằng camera sau đó trả kết quả phân loại và gửi tín hiệu điều khiển qua Arduino Due để điều khiển xe lăn.
Giới hạn đề tài
Các thông số giới hạn của đề tài bao gồm:
- Mô hình huấn chỉ được huấn luyện để nhận dạng 6 cử chỉ tay: tiến chậm, tiến nhanh, lùi, trái, phải, dừng
- Vị trí bàn tay đặt đối diện so với camera và cách khoảng 40cm - 50cm
- Hoạt động ổn định trong môi trường có ánh sáng vừa đủ và cử chỉ của người dùng không quá nhanh.
Nội dung nghiên cứu
Trong quá trình thực hiện Khóa luận tốt nghiệp với đề tài “Thiết kế và thi công hệ thống điều khiển xe lăn điện điều khiển bằng cử chỉ tay sử dụng thông minh nhân tạo”, nhóm chúng em đã tập trung giải quyết và hoàn thành được những nội dung sau:
- Nội dung 1: Tham khảo tài liệu và tóm tắt tài liệu để đưa ra ý tưởng của đề tài
- Nội dung 2: Thu thập dữ liệu hình ảnh cử chỉ tay và gán nhãn
- Nội dung 3: Huấn luyện mô hình nhận dạng, phân loại cử chỉ tay sử dụng mô hình Yolov8 trên Google Colab
- Nội dung 4: Viết chương trình nhận dạng, phân loại cử chỉ từ mô hình đã huấn luyện
- Nội dung 5: Thiết kế sơ đồ khối, sơ đồ mô hình hệ thống
- Nội dung 6: Thiết kế, tính toán, kết nối Jetson Nano Developer Kit với Arduino Due, màn hình, camera
- Nội dung 7: Thiết kế phần cứng
- Nội dung 8: Thiết kế giao diện kết quả trên Jetson Nano Developer Kit
- Nội dung 9: Thử nghiệm, kiểm tra, đánh giá, hiệu chỉnh
- Nội dung 10: Viết báo cáo thực hiện
- Nội dung 11: Bảo vệ luận văn
Bố cục
Chương này tập trung đặt vấn đề, trình bày lý do chọn đề tài, mục tiêu, giới hạn, nội dung nghiên cứu và bố cục của đề tài
Chương 2: Cơ sở lý thuyết
Chương này trình bày cơ sở lý thuyết và tham khảo các đề tài đã nghiên cứu trước đó để làm tiền đề thực hiện đồ án
Chương 3: Tính toán và thiết kế hệ thống
Chương này trình bày sơ đồ khối, đưa ra tính toán thiết kế phần cứng phù hợp với đề tài Trình bày về thiết kế hệ thống nhận đạng phân loại cử chỉ tay (chuẩn bị dữ liệu, huấn luyện, đánh giá mô hình)
Chương 4: Thi công hệ thống
Chương này trình bày quá trình thiết kế và thi công phần cứng và thiết kế phần mềm
Chương 5: Kết quả - nhận xét - đánh giá
Chương này trình bày kết quả thi công của đề tài, các nhận xét và đánh giá về sản phẩm sau khi hoàn thành
Chương 6: Kết luận và hướng phát triển
Chương này trình bày kết luận chung của nhóm về nội dung, quá trình tìm hiểu và thực hiện và kết quả của đề tài Đưa ra một số hướng phát triển, cải thiện khả thi trong tương lai
CƠ SỞ LÍ THUYẾT
Các mô hình, hệ thống điều khiển
2.1.1 Hệ thống điều khiển xe lăn điện sử dụng cảm biến gia tốc
Bộ điều khiển xe lăn điện sử dụng cảm biến gia tốc là sản phẩm nghiên cứu tạo ra một bộ điều khiển không dây sử dụng các cử chỉ bằng đầu để điều khiển hoạt động của xe lăn điện Hệ thống hoạt động dựa trên các cử chỉ thu thập được bằng đầu từ cảm biến gia tốc MPU6050 và xử lý dữ liệu thu được bằng Arduino Pro Mini sau đó gửi tín hiệu điều khiển về bộ xử lý tín hiệu điều khiển của xe thông qua module Bluetooth HC-05 để điều khiển xe hoạt động Hệ thống còn sử dụng cảm biến khoảng cách VL53L0X để phát hiện vật cản phía trước và sau xe giúp tránh khỏi những va chạm xảy ra Việc thiết kế và thi công bộ điều khiển với tiêu chí an toàn, dễ sử dụng cho người khuyết tật Hệ thống tương đối hoàn thiện về mặt thẩm mỹ và an toàn Về độ ổn định thì xe lăn sử dụng nguồn acquy an toàn và tai nghe điều khiển sử dụng bluetooth ổn định trong quá trình kết nối và truyền dữ liệu Ngoài một số ưu điểm thì hệ thống vẫn còn một số lỗi do khối cảm biến phát hiện vật cản lazer nên khi xe ra ngoài ánh sáng cường độ cao thì khoảng cách phát hiện vật cản của lazer bị thu hẹp vì ảnh hưởng của môi trường bên ngoài, ảnh hưởng của bề mặt vật vản phức tạp [2]
2.1.2 Hệ thống xe lăn tự định vị và đến đích dựa vào bản đồ 2D
Xe lăn là thiết bị hỗ trợ rất cần thiết cho người khuyết tật, người già di chuyển khó khăn Do đó đề tài được chọn giúp cho người khuyết tật và người già có thể dễ dàng trong quá trình di chuyển bẳng việc áp dụng công nghệ hiện nay vào xe để giúp cho xe có thể tự di chuyển và tìm đường đi đến vị trí đã chỉ định trước đó
Hệ thống sử dụng board Arduino Due để làm khối xử lý trung tâm và 2 encoder để bám theo chuyển động quay của bánh xe và xuất ra tín hiệu dưới dạng xung điện Màn hình LCD Nextion để nhập toạ đọ đích đến Bộ điều khiển động cơ gồm 2 module điều khiển động cơ BTS7960 43A để điều khiển 2 động cơ của xe lăn Mô hình xe có thể tự động tìm đường về đích và có thể né tránh những chướng ngại mà mô hình phát hiện trên đường đi.Hệ thống định vị được vị trí với sai số nhỏ Bên cạnh những ưu điểm thì hệ thống còn có nhưng khuyết điểm cần khắc phục như dễ bị ảnh
6 hưởng bởi môi trường vận hành như địa hình gồ ghề , mặt sàn trơn, xử lý chưa được tối ưu hoàn toàn gây ra hiện tượng giật, rung lắc [3]
2.1.3 Hệ thống điều khiển xe lăn điện thông qua tín hiệu điện não và camera
Nhận thấy nhu cầu đi lại của người khuyết tật là vấn đề cần được quan tâm, để họ có thể dễ dàng di chuyển thì phương tiện gắn liền với cuộc sống của họ chính là xe lăn Đề tài này nhằm mục đích đáp ứng nhu cầu di chuyển nhưng không tốn nhiều công sức và tiện lợi trong việc sử dụng
Hệ thống sử dụng board Arduino Nano làm bộ xử lý trung tâm kết hợp với việc điều khiển xe thông qua tín hiệu điện não và camera tránh vật cản giúp người sử dụng tránh được những va chạm không cần thiết xảy ra Hệ thống có cấu trúc bên ngoài đơn giản, bộ điều khiển gọn nhẹ phụ hợp nhiều loại xe lăn điện, camera đặt phía trước xe lăn, bộ Emotiv Epoc được đội lên đầu người dùng để điều khiển
Trải qua quá trình thực nghiệm, kết quả hệ thống xe lăn điện có khả năng xác định được vật cản nhoè vào camera, điều khiển được xe theo tín hiệu điện não, điều hướng xe lăn tránh vật cản, tối ưu được quãng đường đi khi kết hợp camera với tín hiệu điện não [4]
2.1.4 Hệ thống xe lăn tự hành dùng camera 3D
Trong cuộc sống, xe lăn là thiết bị hỗ trợ cần thiết cho những người khuyết tật, nó đã và đang ứng dụng trong các hộ gia đình có người khuyết tật, di chuyển khó khăn Đề tài nhằm mục đích giúp người khuyết tật có khả năng di chuyển một cách tự động, linh hoạt
Hệ thống sử dụng Arduino Nano làm bộ xử lý trung tâm, module bluetooth HC-
06 và Camera Intel RealSense D435 3D Xe lăn đạt được những mục tiêu nhận diện vật cản phía trước, xác định được vật mốc và cho xe ngừng di chuyển tại vật mốc Ngoài những kết quả đạt được thì hệ thống vẫn còn những hạn chế như khả năng nhận dạng bị ảnh hưởng bởi các yếu tố môi trường ánh sáng nhiễu, chỉ nhận dạng được vật có nhiều đặc trưng và nằm trong khoảng cách gần [5]
2.1.5 Hệ thống điều khiển xe lăn điện và giao tiếp theo hướng nhìn của mắt
Những bệnh nhân mắc chứng liệt luôn là những người cần được quan tâm và giúp đỡ trong cuộc sống Việc di chuyển của bệnh nhân hết sức khó khăn, một số bệnh nhân mắc chứng liệt còn không thể giao tiếp Vì thế, đề tài này đưa ra giải pháp để giúp những bệnh nhân ấy có thể giao tiếp với mọi người xung quanh và điều khiển xe lăn điện thông qua cử động mắt của họ
Hệ thống sử dụng camera thu thập dữ liệu thời gian thực, dữ liệu sẽ được gửi tới Jetson Nano Developer Kit Mô hình nhận dạng Yolov4 sử dụng để nhận diện hướng nhìn của mắt từ dữ liệu thu được để đưa ra các tín hiệu điều khiển xe Bệnh nhân giao tiếp với giao diện ứng dụng hiển thị thông qua màn hình Waveshare 10.1 inch, ngoài ra còn sử dụng loa để phát âm thanh giao tiếp cho những lựa chọn giao tiếp cơ bản Khi cần di chuyển , họ chỉ cần sử dụng các hướng nhìn của mắt, đưa ra các lệnh đièu khiển để xe di chuyển theo ý muốn Tuy nhiên, vấn đề về độ chính xác, tốc độ xử lý chưa cao và bất tiện về phần cứng là hạn chế của đề tài [6]
2.1.6 Mô hình thùng rác di chuyển theo cử chỉ tay
Vấn đề rác thải vẫn đang là một điểm nhấn nguy hiểm cho môi trường sống của con người trên toàn thế giới Sự ô nhiễm cho đến hiện tạo thì không chỉ dừng lại ở môi trường sống nào mà có thể nói là tất cả Vì vậy bảo vệ môi trường không chỉ là mọi người tự ý thức mà cụ thể là những giải pháp Cho nên đề tài này ngoài việc ý tưởng và mong muốn góp phần cải tạo môi trường ô nhiễm
Mô hình sử dụng camera thu thập dữ liệu cử chỉ sau đó sẽ được gửi tới Jetson Nano Developer Kit Mô hình nhân dạng cử chỉ dùng mạng Nơron tích chập để nhận diện cử chỉ tay từ ảnh thu được từ camera để đưa tín hiệu điều khiển ra ESP32 điều khiển robot thùng rác di động Mô hình có khả năng di chuyển tự động thông qua các cảm biến tránh vật cản hoặc có thể điều khiển bằng cử chỉ tay thông qua app Hiển thị dung lượng rác và thông báo rác đầy qua app.Sau khi thực nghiệm mô hình hoạt động ổn định, độ chính xác khá cao Tuy nhiên thời gian xử lý nhận diện cử chỉ bàn tay còn chậm, nhận diện sai trong điều kiện ánh sáng kém [7]
2.1.7 Mô hình điều khiển thiết bị bằng cử chỉ tay Đề tài thực hiện điều khiển sáng và tắt 5 Led đơn thông qua 5 cử chỉ tay của con người thông qua xử lý ảnh Hệ thống gồm có 1 webcam để thu nhận ảnh có chứa tay được kết nối với một máy tính chạy chương trình xử lý Chương trình có nhiệm vụ tìm, xác định nơi chứa bàn tay có trong ảnh bằng phương pháp lọc màu da Sau đó thực hiện khoanh vùng và chọn vùng thực sự chứa bàn tay Tiếp theo lần lượt thực hiện các phương pháp co ảnh, giãn ảnh, trừ ảnh để tìm và gắn nhãn cho các vùng ngón tay Thông qua việc đếm số vùng đã gắn nhãn chương trình sẽ đưa ra kết luận số ngón tay có trong ảnh Kết quả được hiển thị lên màn hình máy tính dạng hình ảnh thông qua giao diện người dùng và xuất ra tín hiệu điều khiển ra PIC16F887 thông qua cổng COM để bật/tắt 5 đèn LED trên phần cứng bên ngoài được kết nối với chương trình [8].
Một số mô hình nhận dạng cử chỉ tay
2.2.1 Nhận dạng cử chỉ tay dùng mô hình mạng nơron tích chập
Giao diện người và máy sẽ trực quan nếu con người có thể điều khiển thiết bị bằng cử chỉ hay giọng nói mà không cần đùng các thiết bị điêu khiển khác Hệ thống thị giác máy tính sẽ thích hợp hơn trong môi trường ồn ào hay âm thanh bị nhiễu Mạng nơron tích chập được áp dụng khá nhiều trong các bài toán nhận dạng với độ chính xác cao như nhận dạng gương mặt, nhận dạng chữ số viết tay, xử lý ngôn ngữ tự nhiện Bài nghiên cứu [9] này thiết lập một mạng nơron tích chập với 14 lớp và ứng dụng vào hệ thống nhận dạng 6 cử chỉ bàn tay, với đầu vào là các ãnh tĩnh thu được từ camera Tập dữ liệu huấn luyện được tạo ra từ các cử chỉ tay của 7 người Kết quả mô phỏng cho thấy hệ thống có độ chính xác cao 98,6% đối với các ảnh bàn tay chụp chính diện, có độ sáng và độ mở của các ngón tay thích hợp
Mô hình mạng nơron tích chập đề xuất cho ứng dụng nhận dạng cử chỉ bàn tay có thể ứng dụng trong các hệ thống điều khiển không tiếp xúc, ứng dụng chuyển đổi ngôn ngữ cử chỉ sang văn bản hoặc trong các ứng dụng điều khiển khác
2.2.2 Nhận dạng cử chỉ tay dùng phương pháp HMM
Phương pháp nhận biết cử chỉ bằng Mô hình Markov ẩn (Hidden Markov Model
- HMM) là một trong những phương pháp phổ biến và mạnh mẽ được sử dụng trong lĩnh vực nhận diện cử chỉ HMM được ứng dụng trong việc mô hình hóa chuỗi dữ liệu, trong đó mỗi trạng thái của mô hình được gán với một cử chỉ cụ thể HMM có khả năng học và nhận biết các chuỗi cử chỉ dựa trên quá trình học từ dữ liệu huấn luyện Khi được huấn luyện đúng cách, HMM có thể nhận diện và phân loại các cử chỉ mới mà không cần phải biết trước về chúng [10]
Phương pháp HMM cho phép nhận biết cử chỉ một cách linh hoạt và có thể được áp dụng trong nhiều lĩnh vực, từ nhận diện ngôn ngữ cử chỉ đến điều khiển các ứng dụng công nghiệp và y tế
2.2.3 Nhận dạng cử chỉ tay cho người khiếm thính dùng mô hình mạng học sâu YOLO
Ngôn ngữ cử chỉ là một trong những thách thức để có thể hiểu và cũng như luyện tập thì mới có thể thành thạo được Với sự phát triển của cồng đồng người khiếm thính, thì các nhà nghiên cứu đã và đang timd hiểu nhũng phương pháp khác nhau để có thể tiếp cận và đơn giản hoá các ngôn ngữ cử chỉ Đề tài [11] này tận dụng các bàn tay vật mốc để phát hiện 10 chữ cái trong hệ thống chữ ASL Thuật toán suy luận Mediapipe dùng để phát hiện các đặng trưng của bàn tay, các đặc trưng này sẽ được đưa vào huấn luyện bằng mạng YOLOv7 để đem lại kết quả dò tìm đúng hơn Trong đề tài sử dụng 2000 bức ảnh được thu thập thủ công tùe 5 người có độ tuổi và giới tính khác nhau Các hình ảnh sau khi thu thập sẽ được lọc nhiễu bằng phương pháp tích chập và định lại kích thước trước khi đưa vào mô hình mạng YOLOv7 cải tiến để thực hiện huấn luyện Kết quả huấn luyện chỉ số trung bình của độ chính xác mAP đạt 0.995, độ chính xác đạt 99.4% tham số thu hồi đạt 99,2% Độ chính xác của các kí tự “a”, “c”, “e”, “g”, “h”, “i”, “j” có độ chính xác 100%, “b” đạt 98% “c” đạt 97% và “f” có độ chính xác thấp nhất là 84%
2.2.4 Nhận dạng cử chỉ tay cho ngôn ngữ kí hiệu bằng mạng nơron
Giao tiếp phổ biến nhất với hầu hết các hệ thống máy tính hiện nay thường sử dụng chuột và bàn phím Mặc dù cử chỉ tay, một phương pháp tương tác không cần chạm, được coi là hiệu quả và trực quan để tương tác với máy tính, nhưng nó hiện vẫn ít được người dùng chấp nhận Nguyên nhân chính là do việc phát hiện chính xác các cử chỉ trong không gian không khí đang gặp nhiều thách thức kỹ thuật Đề tài này [12] giới thiệu về tính năng phát hiện cử chỉ tay trong Ngôn ngữ ký hiệu của Mỹ, sử dụng phương pháp K-Nearest Neighbor thông qua Mediapipe - một framework được thiết kế để giảm thiểu những rắc rối kỹ thuật trong việc nhận diện chính xác cử chỉ Khung này học từ các bản trình diễn và cho phép người dùng tương tác trực tiếp với máy tính chỉ qua camera RGB mà không cần sử dụng các thiết bị chạm Điều này tạo ra một trải nghiệm tương tác linh hoạt và thú vị, nơi người dùng có thể tùy chỉnh và thực hiện các cử chỉ trong thời gian thực
Nghiên cứu này tận dụng kỹ thuật theo dõi ngón tay với độ chính xác cao, sử dụng Bàn tay Mediapipe để trích xuất các điểm mốc từ hình ảnh 2D Quá trình này giúp phát hiện và trích xuất đặc điểm quan trọng của bàn tay từ mỗi hình ảnh Hệ thống có khả năng nhận diện 21 điểm chính trên mỗi bàn tay và hỗ trợ việc đồng thời phát hiện nhiều bàn tay Các điểm mốc bàn tay được trích xuất từ hình ảnh bàn tay có thể được sử dụng như một đặc trưng quan trọng để huấn luyện và kiểm tra mô hình.
Ứng dụng mô hình nhận dạng đối tượng với giải pháp suy luận vào nhận dạng cử chỉ tay
Mô hình nhận dạng đối tượng ( YOLOv7) và giải pháp suy luận (Mediapipe) được dùng ở đề tài [11] và [12] để thực hiện nhận dạng phân loại cử chỉ tay cho ra kết quả phân loại tốt và ổn định Dựa trên những cơ sở đó, nhóm lựa chọn sử dụng mô hình mạng YOLO kết hợp với Mediapipe để thực hiện bài toán nhận dạng cử chỉ tay để điều khiển xe lăn điện
Giải pháp suy luận - Mediapipe được thiết kế để xử lý suy luận dựa trên đa dạng dữ liệu [13], đã được phát triển bởi Google và mang đến một giao diện chương trình ứng dụng mã nguồn mở với nhiều tính năng hữu ích cho nghiên cứu trong lĩnh vực trí tuệ nhân tạo và máy học Điều đặc biệt là, Mediapipe không chỉ mạnh mẽ về chức năng mà còn tiêu thụ rất ít tài nguyên, một điểm đặc biệt trái ngược với nhiều mô hình máy học khác, thường yêu cầu tài nguyên phần cứng đáng kể Với kích cỡ nhỏ và hiệu suất năng lượng cao, Mediapipe trở thành lựa chọn linh hoạt có thể tích hợp vào hệ thống vạn vật kết nối Internet mà không làm suy giảm hiệu suất
Mediapipe hỗ trợ suy luận 3D, giúp chuyển đổi thông tin từ không gian 2D sang không gian 3D, có ứng dụng trong việc theo dõi chuyển động và định vị Nổi trội hơn cả Mediapipe được ứng dụng nhiều trong các nghiên cứu phát hiện cử chỉ tay, bàn tay Mediapipe được trích xuất các điểm mốc từ 1 hình ảnh 2D cho việc phát hiện và trích xuất bàn tay vật mốc Hệ thống có thể trích xuất 21 điểm chính trên mỗi bàn tay và hổ trợ cho việc phát hiện nhiều bàn tay đồng thời Vật mốc bàn tay được trích xuất từ hình ảnh bàn tay có thể được sử dụng như một đặc trưng cho việc huấn luyện và kiểm tra một mô hình
Hình 2.1 Các đặc trưng bàn tay được trích xuất bởi thuật toán Mediapipe
2.4.2 Mô hình nhận dạng đối tượng
Mô hình mạng YOLO (You Only Look Once) là một kiến trúc mạng neural convolutional (CNN) được phát triển để thực hiện tác vụ nhận diện vật thể trong ảnh và video Khác với các mô hình chỉ có khả năng phân loại đối tượng bằng cách đưa ra dự đoán về nhãn, YOLO tập trung vào việc phát hiện đối tượng [14] Nó không chỉ có khả năng phát hiện nhiều đối tượng với nhiều nhãn khác nhau, mà còn có khả năng
12 xác định vị trí chính xác của các đối tượng trong một hình ảnh thông qua việc đặt khung bao quanh đối tượng dưới dạng hình chữ nhật.
YOLO chuyển đổi bài toán nhận dạng đối tượng thành một bài toán hồi quy trên miền không gian các bounding box Thuật toán chia ảnh đầu vào thành một lưới S x
S ô Nếu tâm của đối tượng cần xác định rơi vào một ô nào đó, thì ô đó sẽ đảm nhận việc xác định đối tượng và tạo ra bounding box tương ứng Thuật toán này sử dụng một mạng neural đơn với các đặc trưng được trích xuất từ các lớp convolution để dự đoán bounding box trong mỗi ô và xác suất loại đối tượng cụ thể Cuối cùng sẽ có nhiều bounding box được dự đoán với kích thước và vị trí khác nhau Bằng cách sử dụng thuật toán Non-Maximum Suppression (NMS), từ đó có thể loại bỏ hầu hết các bounding box bị trùng lặp, chỉ giữ lại các bounding box có xác suất dự đoán cao nhất [15].
Hình 2.2 Cách thức hoạt động của mô hình nhận dạng đối tượng YOLO Đề tài này sử dụng mô hình nhận diện đối tượng YOLOv8, phiên bản nâng cấp của YOLOv7 ở đề tài [11], để phục vụ việc nhận diện đối tượng trên thiết bị YOLOv8 được chọn do có tốc độ nhận diện nhanh hơn và độ chính xác cao hơn so với phiên bản tiền nhiệm YOLOv7.
Kiến trúc của YOLOv8 được xây dựng dựa trên các phiên bản trước của thuật toán YOLO YOLOv8 sử dụng một mạng neural convolutional có thể chia thành hai phần chính: phần gói và phần đầu Một phiên bản điều chỉnh của kiến trúc CSPDarknet53 được sử dụng làm phần gói của YOLOv8 Kiến trúc này bao gồm 53 lớp convolution và sử dụng các kết nối chéo giữa các giai đoạn để cải thiện luồng thông tin giữa các lớp khác nhau Phần đầu của YOLOv8 bao gồm nhiều lớp convolution được tiếp theo bởi một chuỗi các lớp fully connected Các lớp này có
13 trách nhiệm dự đoán các bounding box, điểm đối tượng và xác suất lớp cho các đối tượng được phát hiện trong một hình ảnh Một trong những điểm nổi bật của YOLOv8 là việc sử dụng cơ chế tự chú ý trong phần đầu của mạng Cơ chế này cho phép mô hình tập trung vào các phần khác nhau của hình ảnh và điều chỉnh mức độ quan trọng của các đặc trưng khác nhau dựa trên sự liên quan của chúng đối với tác vụ
Một đặc điểm quan trọng khác của YOLOv8 là khả năng thực hiện việc nhận diện đối tượng với nhiều quy mô khác nhau Mô hình sử dụng một mạng cơ sở của đặc trưng để nhận diện các đối tượng có kích thước và quy mô khác nhau trong một hình ảnh Mạng cơ sở này bao gồm nhiều lớp để nhận diện các đối tượng với các quy mô khác nhau, cho phép mô hình nhận diện các đối tượng lớn và nhỏ trong một hình ảnh [16]
TÍNH TOÁN VÀ THIẾT KẾ
Giới thiệu
Mục tiêu để hoàn thành đề tài này là thiết kế hệ thống điều khiển xe lăn bằng cử chỉ tay, sử dụng camera để chụp hình ảnh cử chỉ tay Sau khi chụp ảnh có cử chỉ tay Jetson Nano Developer Kit sẽ xử lý hình ảnh đưa vào mô hình nhận dạng đối tượng YOLO để đưa ra các lệnh điều khiển
Trong chương này, nhóm sẽ tiến hành tính toán và thiết kế từng khối trong hệ thống và trình bày quá trình tính toán, xây dựng mô hình nhận diện cử chỉ tay
Quá trình tính toán và thiết kế gồm có 2 phần: tính toán và thiết kế hệ thống và thiết kế mô hình nhận diện cử chỉ tay.
Tính toán và thiết kế hệ thống
3.2.1 Thiết kế sơ đồ khối hệ thống
Theo yêu cầu đặt ra của đề tài, nhóm đã thiết kế sơ đồ khối cho hệ thống bao gồm: khối nguồn, khối thu thập dữ liệu, khối xử lý trung tâm, khối điều khiển, khối động cơ, khối hiển thị Sơ đồ khối được mô tả như hình 3.1
Hình 3.1 Sơ đồ khối của hệ thống
Khối xử lý trung tâm: thu nhận ảnh từ khối thu thập dữ liệu, dùng thuật toán nhận diện đối tượng - nhận diện cử chỉ tay và xử lý điều khiển, sau đó gửi dữ liệu hình ảnh
15 lên khối hiển thị, tiếp đó sẽ gửi tín hiệu điều khiển tới khối điều khiển qua phương thức truyền dữ liệu không dây bluetooth để điều khiển khối động cơ
Khối thu thập dữ liệu: thu thập ảnh cử chỉ tay của người dùng thông qua camera sau đó truyền dữ liệu đến khối xử lý trung tâm để xử lý dữ liệu ảnh đầu vào
Khối hiển thị: có chức năng hiển thị cử chỉ tay của người dùng và cho biết trạng thái di chuyển của xe
Khối điều khiển: đóng vai trò vận hành khối động cơ từ việc nhận dữ liệu điều khiển từ khối xư lý trung tâm
Khối nguồn: có chức năng cực kì quan trọng đó là cấp nguồn cho các thiết bị thông qua các mạch giảm áp - dòng phù hợp để các khối hoạt động ở mức điện áp ổn định nhất
3.2.2 Tính toán và thiết kế sơ đồ mạch a Thiết kế khối xử lý trung tâm
Khối xử lý trung tâm sẽ đảm bảo xử lý toàn bộ hệ thống thiết bị Nhiệm vụ của đề tài là sử dụng thuật toán nhận diện cử chỉ của tay Vì vậy, khối xử lý trung tâm sẽ là một vi điều khiển hoặc máy tính nhúng có khả năng xử lý mạnh mẽ cho các thuật toán mạng nơron, đồng thời giữ kích thước nhỏ gọn phù hợp để thiết kế trên xe Sau khi nghiên cứu thị trường, Raspberry Pi 4 và Jetson Nano là hai lựa chọn đáp ứng được yêu cầu Tuy Raspberry Pi 4 có ưu điểm về hỗ trợ chuẩn không dây và giá thành trong khi đó Jetson Nano vượt trội với GPU 128 lõi CUDA Dựa vào nhu cầu nhận diện đối tượng để nhận diện cử chỉ tay và tốc độ xử lý nhanh nên nhóm đề tài quyết định chọn máy tính nhúng Jetson Nano làm bộ xử lý trung tâm [17]
Hình 3.2 Jetson Nano Developer Kit
Bảng 3.1 Thông số kỹ thuật Jetson Nano Developer Kit
Model Jetson Nano Developer Kit A02
CPU Quad-core ARM A57 1.43 GHz
Memory 4 GB 64-bit LPDDR4 25.6 GB/s
Hình 3.3 Sơ đồ kết nối Jetson Nano với các thiết bị ngoại vi
Sơ đồ kết nối của Jetson Nano với các thiết bị ngoại vi như hình 3.3:
- Cổng DC kết nối với ngõ ra của module giảm áp DC-DC 15A
- Cổng HDMI kết nối với cổng HDMI trên màn hình
- Cổng USB1 kết nối với cổng micro USB trên màn hình
- Cổng USB2 kết nối với đầu USB của Webcam b Thiết kế khối thu thập dữ liệu
Khối thu thập dữ liệu có nhiệm vụ thu thập hình ảnh theo thời gian thực sau đó sẽ gửi đến khối xử lý trung tâm Khối thu thập dữ liệu sử dụng camera nhỏ gọn có khả
17 năng thu nhận ảnh màu rõ nét, độ tương phản cao, có khả năng thu nhận hình ảnh trong nhiều điều kiện ánh sáng môi trường và có cổng kết nối thích hợp với khối xử lý trung tâm Với đề tài này, có thể nói việc thu ảnh từ cử chỉ tay là chìa khoá quan trọng dẫn đến sự thành công của đề tài Sau khi tìm hiểu, nhóm đã quyết định chọn Webcam W2 Full HD 1080P Với độ phân giải 1080P 30FPS mang lại hình ảnh sắc nét cho hình ảnh thu được và có thể xoay 360 o phù hợp với việc đặt cố định trong quá trình thu dữ liệu ảnh đầu vào
Bảng 3.2 Thông số kỹ thuật Webcam W2 Full HD Độ phân giải tối đa 1080P/30FPS
Góc thấu kính 130 Điện áp 5VDC – 1A
Webcam W2 Full HD 1080P kết nối với Jetson Nano thông qua cổng USB 3.0 5V-1A trên Jetson như hình 3.5
Hình 3.5 Sơ đồ kết nối khối thu thập dữ liệu với khối xử lý trung tâm
18 c Thiết kế khối hiển thị
Khối hiển thị sử dụng màn hình cảm ứng Raspberry 7 inch HD [18] với độ phân giải 800×480 Có chức năng hiển thị trạng thái hoạt động của xe, cử chỉ tay và giao diện ứng dụng điều khiển giúp người dùng thao tác trực tiếp trên màn hình cảm ứng Màn hình giao tiếp với khối xử lý trung tâm thông qua cổng HDIM và lấy nguồn từ cổng USB 3.0 5V-2A của Jetson như hình 3.7
Hình 3.6 (a) ảnh mặt trước màn hình 7inch HD cảm ứng , (b) ảnh mặt sau màn hình 7inch HD cảm ứng
Bảng 3.3 Thông số kỹ thuật của Màn hình Cảm ứng 7 inch
Module Raspberry 7 inch HDMI LCD Độ Phân Giải 800x480
Cảm ứng Có – Điện dung
Thiết bị hỗ trợ Raspberry Pi, Jetson Nano, PC
Hình 3.7 Sơ đồ kết nối khối hiển thị với khối xử lý trung tâm d.Thiết kế khối điều khiển
Khối điều khiển sử dụng Arduino Due R3 [19] có nhiệm vụ nhận tín hiệu điều khiển từ khối xử lý trung tâm gửi quả để điều khiển xe Sơ đồ kết nối Arduino Due với các ngoại vị được trình bày như hình 3.12:
Bảng 3.4 Thông số kỹ thuật Arduino Due
Vi điều khiển AT91SAM3X8E Đầu nối USB Micro USB
Pin Chân đầu vào/ra digital 54
Chân đầu vào analog 12 Chân đầu ra analog 2
Power Điện áp I / O 3.3V Điện áp đầu vào (danh nghĩa) 7-12V
Dòng điện một chiều trên mỗi chân I / O (nhóm 1)
Dòng điện một chiều trên mỗi chân I / O (nhóm 2)
Tốc độ xung AT91SAM3X8E 84 MHz
Bộ nhớ AT91SAM3X8E 96KB SRAM,
Vì tính tiện lợi của giao tiếp truyền tải dữ liệu không dây của Bluetooth Nhóm đã quyết định lựa chọn module Bluetooth HC-05 để truyền nhận dữ liệu giữa máy tính nhúng Jetson Nano Developer Kit và Aruino Due để điều khiển khối động cơ Module bluetooth HC-05 [20] là một module Bluetooth thường được sử dụng để thiết lập kết nối không dây giữa các thiết bị điện tử Đặc biệt, HC-05 thường được tích hợp vào các dự án Arduino và các dự án IoT
Bảng 3.5 Thông số kỹ thuật Module Bluetooth HC-05 Điện áp hoạt động 3.3-5V
Mức điện áp chân giao tiếp TTL tương thích 3.3-5VDC
Bluetooth protocol Bluetooth specification v2.0 + EDR
Dòng điện khi hoạt động khi Pairing 30 mA, bình thường 8mA
Module HC- 05 kết nối với Arduino Due theo chuẩn UART như hình 3.9:
- Chân RXD module HC-05 kết nối với chân TX3 của Arduino Due
- Chân TXD module HC-05 kết nối với chân RX3 của Arduino Due
- Chân VCC module HC-05 kết nối với chân 5V của Arduino Due
- Chân GND module HC-05 kết nối với chân GND của Arduino Due
Hình 3.9 Sơ đồ kết nối Arduino Due với Module Bluetooth HC-05
Do xe lăn sử dụng động cơ công suất cao lên 60W nên nhóm sử dụng hai mạch điều khiển động cơ BTS7960 với đầu vào điện áp điều khiển động cơ là 24VDC, mạch có khả năng xử lý dòng điện tải lên đến 15A Mạch này nhận tín hiệu từ vi điều khiển Arduino Due để điều khiển hai động cơ, giúp xe có thể di chuyển dễ dàng theo hướng thuận và nghịch với tốc độ được điều khiển
Nguồn điện chính là ắc quy 24VDC, được chia làm hai để cấp điện cho động cơ và thông qua mạch giảm áp để cung cấp nguồn cho cầu H BTS7960, vi điều khiển Arduino, và module Bluetooth Chân L_EN và R_EN được kết nối vào hai chân của vi
22 điều khiển để đảm bảo hoạt động đồng bộ của cầu H Hai chân RPWM và LPWM được sử dụng làm chân PWM để điều khiển tốc độ của động cơ
Bảng 3.6 Thông số kĩ thuật Module BTS7960
Hình 3.11 Sơ đồ kết nối Arduino Due với Module BTS7960 Điện áp công suất 6-27VDC Điện áp điều khiển 3.3-5V
Tần số điều khiển Max 25KHz
Sơ đồ kết nối module BTS7960 với Arduino Due như hình 3.11:
- Chân R_EN, L_EN của moduel BTS7960 trái và phải lần lượt kết nối với chân 10,11 của Arduino Due
- Chân RPWM của module BTS7960 trái và phải lần lượt kết nối với chân
- Chân LPWM của module BTS7960 trái và phải lần lượt kết nối với chân
Lựa chọn điện trở kéo lên nút nhấn reset hệ thống:
Theo thông số của nhà sản xuất vi điều khiển Atmel ATSAM3X8E thì điện trở kéo lên ở chân reset nhỏ hơn 100kΩ để đảm bảo ngõ vào tích cực mức cao khi không nhấn
THI CÔNG HỆ THỐNG
Giới thiệu
Sau khi hoàn thành các tính toán và thiết kế ở chương 3 như hoàn thiện kết nối phần, thu thập dữ liệu hình ảnh cử chỉ tay và huấn luyện mô hình YOLOv8 Tiếp theo ở chương này nhóm sẽ trình bày quá trình hoàn thiện lắp ráp kết nối phần cứng và quá trình huấn luyện mô hình YOLOv8 nhận diện cử chỉ tay.
Hoàn thiện kết nối phần cứng hệ thống
Ở đề tài này nhóm thiết kế dựa trên những phần mô hình có sẵn nên có không có phần trình bày chi tiết về quá trình thi công mạch in cho bộ điều khiển
Dựa vào sơ đồ nguyên lý và sơ đồ kết nối ở chương 3, nhóm đã liệt kê danh sách và số lượng các linh kiện có sử dụng trong hệ thống để tiến hành hoàn thiện kết nối hệ thống, mô tả chi tiết trong bảng 4.1
Bảng 4.1 Danh sách linh kiện sử dụng
STT Tên linh kiện Số lượng Ghi chú
1 Jetson Nano Developer Kit 1 Nguồn 5V – 4A , 4GB RAM
2 Màn hình 7inch HD cảm ứng 1 Có chức năng cảm ứng
3 Webcam W2 FullHD 1 Kết nối qua USB
4 Xe lăn điện 1 Sản phẩm nghiên cứu từ đề tài trước
5 Card Intel Wireless AC8265 1 Lắp trực tiếp vào Jetson Nano
6 Module Bluetooth HC-05 1 Hỗ trợ kết nối bộ điều khiển với
7 Module DC-DC Buck 15A 1 Cấp nguồn cho Jetson Nano
Phần cứng hệ thống bao gồm nhiều thiết bị kết nối với nhau thông qua các cổng kết nối USB, HDMI, Jack DC của Jetson Nano như: camera, màn hình, nguồn cấp như ở hình 4.1
Khối xử lý trung tâm: gồm Jetson Nano đã được lắp Card Intel Wireless AC8265
Khối thu thập dữ liệu: gồm Webcam W2 FullHD kết nối với Jetson Nano thông qua cổng USB
Khối hiển thị: gồm màn hình Raspberry 7Inch HD cảm ứng kết nối với Jetson Nano thông qua 1 dây HDMI và 1 dây cấp nguồn một đầu là cổng micro USB và một đầu USB cắm vào Jetson
Khối điều khiển: gồm Arduino Due với các thiết bị ngoại vi như: module HC-05, module BTS7960
Khối động cơ: gồm 2 động cơ PWM được điều khiển thông qua module driver BTS7960
Hình 4.1 Hoàn chỉnh lặp đặt các khối trong hệ thống
Về khối điều khiển do nhóm tận dụng đề tài trước nên nhóm chỉ trình bày các linh kiện sử dụng trong khối điều khiển động cơ xe lăn như hình 4.2
Hình 4.2 mô tả bên trong của khối điều khiển bao gồm: Arduino làm bộ xử lý trung tâm, kết nối với các ngoại vi khác như là nút nhấn, module bluetooth HC-05, 2
Khối xử lý trung tâm
Khối thu thập dữ liệu và khối hiển thị
42 module BT7960, mạch nguồn giảm áp LM2596 từ 24V sang 5V 3A để cấp nguồn cho khối điều khiển hoạt động và mạch nguồn giảm áp XL4016E1 từ 24 sang 5V 15A để cấp cho khối xử lý trung tâm hoạt động
Hình 4.2 Cấu tạo bên trong của khối điều khiển.
Thi công phần mềm
4.3.1 Huấn luyện mô hình trên Google Colab
Google Colab là một sản phẩm từ Google Research, nó cho phép chạy các dòng code python thông qua trình Google Colab không cần yêu cầu cài đặt hay cấu hình máy tính, mọi thứ có thể chạy thông qua trình duyệt, người dùng có thể sử dụng tài nguyên máy tính từ CPU tốc độ cao và cả GPU và cả TPU đều được cung cấp Trong đề tài này nhóm sử dụng công cụ Google Colab để hỗ trợ trong việc huấn luyện mô hình nhận dạng cử chỉ tay để giảm được thời gian huấn luyên
Quy trình để huấn luyện mô hình nhận dạng đối tượng sử dụng YOLOv8 gồm
5 giai đoạn chính như hình 4.3
Hình 4.3 Quy trình huấn luyện mô hình YOLOv8
Các bước huấn luyện mô hình YOLOv8 trên Google Colab:
Bước 1: Truy cập vào địa chỉ https://colab.research.google.com/
Bước 2: Thanh công cụ → Chọn tệp → sổ tay mới → đặt tên dự án
Bước 3: Kết nối với tài nguyên để sử dụng GPU của Google Colab
Bước 4: Viết chương trình huấn luyện
- Cài đặt các thư viện cần thiết để huấn luyện mô hình YOLOv8
- Tải tập dữ liệu lên Google Drive kết nối với Google Colab: gồm tập ảnh, tập gán nhãn và file cấu hình YOLOv8
- Điều chỉnh các thông số cần thiết và tiến hành huấn luyện
Bước 5: Sau khi kết thúc qua trình huấn luyện Truy cập vào đường dẫn kết quả để lấy file mô hình và đồ thị kết quả huấn luyện
Giao diện ứng dụng của hệ thống bao gồm 3 phần chính: Hiện thị thông tin, kết quả nhận dạng và điều khiển như hình 4.4
Phần hiển thị: hiện thị hình ảnh thu được từ webcam giúp người dùng nhận biến được cử chỉ tay của mình
Phần kết quả: hiển thị kết quả nhận dạng và trạng thái đang hoạt động của xe Phần điều khiển: nút thoát giao diện ứng dụng của hệ thống
Hình 4.4 Giao diện ứng dụng
Hình 4.4 mô tả giao diện ứng dụng khi phát hiện có tay Hệ thống tiến hành nhận dạng cử chỉ đưa ra kết quả và hiển thị trạng thái hoạt động của xe
1 Hiển thị hình ảnh webcam
2 Hiển thị trạng thái của xe
Hướng dẫn sử dụng thiết bị
Bước 1: Người sử dụng sau khi ngồi vào xe lăn, tiến hành bật công tắc nguồn khởi động chế thống và chở khoảng 1-2 phút hệ thống hoàn tất khởi động
Hình 4.5 Vị trí công tắc nguồn
Bước 2: Khi xuất hiện giao diện điều khiển thì người dùng tiến hành giờ tay lên đặt ở vị trí đã đánh dấu đối diện và cách khoảng 40cm so với webcam hoặc người dùng có thể đặt ở vị trí khác nhưng vẫn phải đảm bảo webcam có thể bắt được trọn cả bàn tay như hình 4.6
Hình 4.6 Mô tả thực hiện cử chỉ
Bước 3: Người dùng thực hiện các cử chỉ như hình 4.7 để điều khiển xe theo hướng mong muốn (lưu ý người sử dụng cần giữ cử chỉ đó trong khoảng 1s đến 2s để hệ thống xác nhận là người dùng muốn thực hiện cho xe di chuyển theo hướng đó)
Cử chỉ xe tiến chậm Cử chỉ xe tiến nhanh
Cử chỉ xe lùi Cử chỉ xe dừng
Cử chỉ xe rẽ trái Cử chỉ xe rẽ phải
Hình 4.7 Tổng hợp 6 cử chỉ điều khiển xe
Bước 4: Khi người dùng muốn tạm dừng chức năng nhận dạng cử chỉ để tránh ảnh hưởng đến hoạt động của xe thì có thể nhấn nút bật/tắt bên góc trái bên dưới màn hình Lúc này nếu người dùng có thực hiện cử chỉ thì hệ thống vẫn không nhận dạng và gửi lệnh điều khiển xe, khi muốn mở lại chức năng thì người dùng chỉ cần nhấn nút bật/tắt một lần nữa
Hình 4.8 Nút bật/tắt webcam
Bước 5: Khi người dùng muốn thoát chương trình điều khiển xe thì chỉ cần nhấn nút thoát bên góc phải màn hình Sau đó gạt công tắc tắt nguồn hệ thống
Hình 4.9 Nút thoát giao diện điều khiển
Việc hoàn thiện các kết nối phần cứng của hệ thống, thiết kế phần giao diện ứng dụng điều khiển và hướng dẫn sử dụng thiết bị đã được nhóm trình bày đầy đủ các bước thực hiện, điều đó giúp cho người đọc hình dung được thiết bị được quy trình kết nối phần cứng của thiết bị, cách thức hoạt động của thiết bị Về phần giao diện của hệ
47 thống được thiết kế đơn giản, rõ ràng, giúp cho người dùng dễ dàng thao tác sử dụng Sau phần hoàn thiện kết nối phần cứng và kiểm tra hoạt động, nhóm đã tiến hành các bước thử nghiệm hệ thống và đánh giá hoạt động của hệ thống
KẾT QUẢ – NHẬN XÉT- ĐÁNH GIÁ
Kết quả thực hiện
Đây là chương trình bày và đánh giá kết quả thi công mà nhóm đã thực hiện trong quá trình nghiên cứu và thực hiện đề tài “thiết kế và thi công hệ thống điều khiển xe lăn điện bằng cử chỉ tay dùng thông minh nhân tạo”
5.1.1 Kết quả thi công phần cứng hệ thống Đề tài nhóm thực hiện đã hoàn thành thiết kế và thi công phần cứng của xe lăn điện Dưới đây là một số hình ảnh của xe sau khi hoàn thiện mô hình, bao gồm các hướng nhìn tổng quát về xe lăn
Hình 5.1 Mặt trước của xe Hình 5.2 Mặt sau của xe
Hình 5.3 Mặt bên trái của xe Hình 5.4 Mặt bên phải của xe
Hình 5.1 và 5.3 là góc chụp mặt trước và bên trái của xe, màn hình và webcam được đặt cố định ở cánh tay đòn, giúp người dùng thuận tiện thao tác trên màn hình và thực hiện các cử chỉ mà vừa có thể nhìn đường đi để điều khiển xe lăn di chuyển dễ dàng và chính xác Hình 5.2 là góc chụp phía sau của xe, khối nguồn và khối điều khiển được treo trên gá đỡ phía sau của xe Khối xử lý trung tâm được treo phía bên phải của xe như hình 5.4
5.1.2 Kết quả thiết kế giao diện
Giao diện hiển thị của màn hình với kích thước 800x480 như hình 5.5 Giao diện khi chạy chương trình sẽ bao gồm các thông tin hiển thị như: logo trường và khoa, khung hình hiển thị webcam, nút bật/tắt webcam bên dưới góc trái màn hình, khi nhấn sẽ tạm dừng chức năng nhận diện cử chỉ tay để sử dụng lại chỉ cần nhấn một lần nữa thì hệ thống sẽ tiếp tục thực hiện chức năng nhận diện cử chỉ tay và nút thoát bên dưới góc phải màn hình để thoát khỏi chương trình khi không sử dụng xe
Hình 5.5 Giao diện khi chạy chương trình
5.1.3 Kết quả mô hình nhận diện cử chỉ tay
Mô hình được huấn luyện trên Google Colab sử dụng với GPU Nvidia với tập dữ liệu được chia 80% (9600 ảnh) dữ liệu huấn luyên và 20% (2400 ảnh) dữ liệu đánh giá Trong quá trình huấn luyện thì tốc độ học là 2,5ms, tốc độ suy đoán là 19,4 ms và số giai đoạn huấn luyện là 100 lần
Trong suốt quá trình huấn luyện thì tham số mAP của mô hình đạt chỉ số rất cao hơn 0,99 ở hầu hết các chu kì Các tham số về Box loss là 0,002, Class loss là 0.002 và Object loss là 0,003 Trong đó box loss là cách mà mô hình xác định vị trí trung tâm vật thể nhận diện để dự đoán hộp bao quanh vật thể Classs loss là độ mất mát của độ chính xác trong việc dự đoán các lớp của vật thể Object loss là độ mất mát trong việc xác định xác suất xuất hiện vật thể trong vùng quan tâm được đề xuất, nếu chỉ số càng cao thì vật thể xuất hiện trong ảnh càng giống với vật thể trước
Hình 5.6 Kết quả các tham số độ lỗi trên tập huấn luyện
Hình 5.6 mô tả kết quả các tham số độ lỗi trên tập huấn luyện (train/loss): box loss, cls loss, obj loss các độ lỗi này đều giảm dần theo thời gian, điều đó cho thấy mô hình đã học được từ dữ liệu
Hình 5.7 Kết quả các tham số độ lỗi trên tập đánh giá
Hình 5.7 mô tả kết quả các tham số độ lỗi trên tập kiểm tra (val/loss): đo lường sự khác biệt giữa kết quả dự đoán và kết quả thực tế trên tập kiểm ra thì các thông số
51 box loss, cls loss và obj loss cũng giảm dần cho thấy mô hình có khả năng nhận diện tốt
Hình 5.8 Kết quả về độ chính xác và độ bao phủ của mô hình
Hình 5.8 thể hiện kết quả về độ chính xác và độ bao phủ của mô hình:
- Độ chính xác (precision): đo lường tỷ lệ giữa số đối tượng phát hiện đúng với tổng số đối tượng được phát hiện, độ chính xác càng cao cho thấy mô hình ít sai sót trong dự đoán đối tượng
- Độ bao phủ (recall): đo lường tỷ lệ giữa số đối tượng được phát hiện đúng so với tổng đối tượng có thực tế trên ảnh, độ bao phủ càng cao cho thấy mô hình có ít bỏ sót khi dự đoán đối tượng
Sau khi kết thúc quá trình huấn luyện thì chỉ số mAP đạt 0,99 và trong quá trình huấn luyện thì từ chu kì 0 đến 20 có sự sụt giảm tham số mAP so với các chu kì khác do các cử chỉ “Lui”, “Tien1” có những đặc trưng giống nhau dẫn đến sự mất mát trong quá trình huấn luyện
Việc đánh giá kết quả mô hình bằng ma trận nhẫm lẫn dựa trên tập dữ liệu đánh giá (2400 ảnh) cho ra kết quả rất chính xác Trong đó có cử chỉ “Lui” và “Tien1” có tỉ lệ nhận dạng nhầm lẫn cao nhất do các cử chỉ này có những đặc trưng tương đồng Các cử chỉ còn lại “Tien2”, “Phai”, “Dung” và “Trai” cho kết quả 100% Hình 5.9 mô tả ma trận nhầm lẫn của hệ thống
Hình 5.9 Ma trận nhầm lẫn của hệ thống
Khi áp dụng mô hình nhận diện đối tượng YOLOv8 vào nhận dạng cử chỉ thực tế trong môi trường ánh sáng tốt thì thuật toán kết quá phản hồi nhanh và tỉ lệ nhận diện sai thấp như hình 5.10
Hình 5.10 Kết quả nhận diện 6 cử chi tay
5.1.4 Kết quả điều khiển xe lăn
Mục đính chính của đề tài là điều khiển xe lăn điện, việc điều khiển xe lăn điện rất quan trọng với người sử dụng Việc thử nghiệm xe lăn điện nhóm đã thực hiện bên ngoài phòng Lab C306 tại Khu C Trường Đại học Sư phạm Kỹ thuật TP.HCM
53 như hình 5.11 Sau khi đi thử nghiệm xe lăn, nhóm đã thu được hình ảnh 2D như trên hình 5.13
Hình 5.11 Không gian thực tế bên ngoài phòng Lab C306
Hình 5.12 Một số hình ảnh thử nghiệm điều khiển xe ngoài thực tế
Hình 5.13 Bản đồ đường đi thực tế của xe so với đường chuẩn
Hình 5.13 mô tả đường đi thực tế của xe khi chạy thử nghiệm ngoài phòng Lab C306 Ban đầu xe ở vị trí mũi tên đỏ, sau khi người dùng giơ cử chỉ tay điều khiển xe “tiến chậm”, xe sẽ đi thẳng đến vị trí A Đến vị trí A người dùng cần giơ cử chỉ
Nhận xét, đánh giá
Sau quá trình chạy thực nghiệm hệ thống, nhóm đã đưa ra bảng số liệu về kết quả thực nghiệm hệ thống Bảng 5.2 là kết quả điều khiển bằng cử tay dựa trên số lần thực hiện và số lần thành công để đưa ra đánh giá
Nhóm đã tiến hành thực nghiệm nhận diện cử chỉ tay, trong môi trường có ánh sáng của đèn ở phòng và ánh sáng ngoài trời để có thể đánh giá khả năng nhận diện thực tế của mô hình Với 50 lần mỗi cử chỉ tay, trong đó có 1 sinh viên thực hiện đề tài và 1 người khác không có ảnh trong tập huấn luyện
Bảng 5.2 Thông kê kết quả điều khiển bằng cử chỉ
Dựa vào bảng 5.2, sau khi thực hiện mỗi cử chỉ 50 lần ở điều kiện ánh sáng trong phòng và ngoài trời thì cho kết quả khá cao Phần lớn những lần nhận diện sai là ở điều kiện ngoài trời có ánh sáng mạnh, cử chỉ có tỉ lệ nhận thành công cao nhất
“Trai” với 98% và cử chỉ có tỉ lệ nhận diện thành công thấp nhất là “Tien1” với 90% Bên cạnh đó, nhóm đã tiến hành thực hiện các thí nghiệm thời gian điều khiển xe trên 6 cử chỉ tay với 5 lần thực nghiệm cho ra kết quả như bảng 5.3
Bảng 5.3 Thời gian xử lý điều khiển của xe lăn điện
Lệnh Thời gian xử lý (ms) Trung bình
Lần 1 Lần 2 Lần 3 Lần 4 Lần 5
Từ bảng 5.3, ta nhận thấy thời gian xử lý điều khiển của xe lăn điện trung bình của mỗi lệnh điều khiển là từ 57 – 63ms Trong đó thời gian xử lý trung bình cao nhất
Dạng cử chỉ Số lần thành công
Dạng tín hiệu nhận dạng sai
Tỉ lệ nhận dạng đúng
57 là lệnh “Dừng” với thời gian trung bình là 62,94ms, thời gian xử lý trung bình thấp nhất là lệnh “Tiến chậm” với thời gian xử lý trung bình là 57,82ms
Sau khi chạy thực nghiệm và đánh giá hệ thống, nhóm đưa ra một số nhận xét về hệ thống Hệ thống nhận diện cử chỉ tay hoạt động rất chính xác trong môi trường có ánh sáng vừa phải Về tốc độ xử lý của xe lăn thì thời gian để xử lý một lệnh điều khiển nhanh phù hợp với yêu cầu điều khiển xe lăn phải nhanh và chính xác Hệ thống điều khiển được xe theo các hướng: tiến chậm, tiến nhanh, lùi, trái, phải, dừng Người dùng có thể lựa chọn 2 cấp độ xe chạy tiến (tiến chậm, tiến nhanh) Trong đó tiến chậm có tốc độ tối đa khoảng 0,3 m/s phù hợp cho xe di chuyển trong phòng hay nơi có nhiều vật cản giúp người sử dụng dễ dàng xử lý kịp thời các tình huống có va chạm xảy ra Tiến nhanh có tốc độ tối đa khoảng 0,5 m/s phù hợp cho xe di chuyển ở những nơi rộng rãi, ít vật cản xung quanh Sỡ dĩ thiết kế xe với tốc độ như vậy là vì những người bị khuyết tật thì không cần xe di chuyển với tốc độ cao, nếu tăng tốc độ của xe lên thì rất dễ dẫn đến nguy hiểm cho họ trong tình huống khẩn cấp.
Dự toán đề tài
Dựa vào danh sách các linh kiện sử dụng trong bảng 4.1 và bổ sung một số linh kiện để, nhóm tiến tổng hợp các chi phí để hoàn thành đề tài như bảng 5.4
Bảng 5.4 Chi phí các linh kiện sử dụng trong đề tài
STT Linh kiện Số lượng Đơn giá
1 Màn hình 7inch cảm ứng 1 990,000 990,000
Từ bảng 5.4 sau khi thống kê tổng các chi phí cho hệ thống là 1,552,000 VNĐ Tuy nhiên trong quá trình thực hiện đề tài có những chi phí phát sinh không đáng để nên nhóm không liệt kê vào dự toán đề tài Về phần mềm, nhóm đã sử dụng tài nguyên
58 miễn phí trên Google Colab để huấn luyện mô hình nên tiết kiệm được chi phí Về phần cứng hệ thống như: xe lăn điện, Jetson Nano Developer và bộ điều khiển xe nhóm tận dụng của đề tài đã thực hiện trước đó và thiết bị của nhà trường dành cho sinh viện học tập nên chi phí không tính vào dự toán đề tài Sản phẩm dừng lại ở mức độ học tập và nghiên cứu Để đưa sản phẩm ra thị trường cần thời gian nghiên cứu và phát triển thêm
Việc hoàn thiện các bước thử nghiệm hệ thống và đánh giá kết quả hoạt động của hệ thống đã được nhóm trình bày đầy đủ các giai đoạn thử nghiệm hệ thống Giúp người đọc hiểu rõ hơn về kết quả của hệ thống, từ đó nhận xét và đánh giá được độ hoàn thiện của hệ thống