Giới thiệu Dự án "Sign language recognition" là một ứng dụng thú vị trong lĩnh vực xử lý dữ liệu thị giác và nhận biết cử chỉ bằng tay.. Dự án này chúng tôi sử dụng hai công nghệ chính:
Tổ ng quan
Dự án "Sign language recognition" là một ứng dụng thú vịtrong lĩnh vực xử lý dữ liệu thị giác và nhận biết cử chỉ bằng tay Dự án này chúng tôi sử dụng hai công nghệ chính: MediaPipe một framework mạnh mẽ của Google cho việc xử lý dữ liệu thị giác và âm thanh, và (SVM) một thuật toán học máy để phân loại và nhận biết cử chỉ từ dữ liệu bàn tay
Trong dự án này, chúng tôi sử dụng MediaPipe để trích xuất thông tin vị trí và cử chỉ từ tay trong thời gian thực MediaPipe đã xây dựng sẵn giải pháp nhận diện và theo dõi bàn tay, cho phép chúng ta xác định các điểm quan trọng trên tay và theo dõi chuyển động của nó
Sau khi chúng ta có thông tin cử chỉ từ bàn tay, chúng ta sử dụng SVM để phân loại các cử chỉ cụ thể SVM là một thuật toán học máy phân loại, cho phép chúng ta dựđoán hoặc nhận biết cử chỉ dựa trên dữ liệu đầu vào từ MediaPipe Ứng dụng của dự án có thể rất đa dạng, từ việc tạo ra ứng dụng nhận dạng ngôn ngữ ký hiệu cho người điếc đến việc điều khiển thiết bị bằng cử chỉ tay trong thời gian thực Dự án " Sign language recognition" thể hiện sự kết hợp giữa các công nghệ thú vịđể tạo ra các ứng dụng thông minh và sáng tạo trong lĩnh vực xử lý dữ liệu thị giác
II Lý do chọn đề tài
Có một số lý do quan trọng để chúng tôi chọn đề tài " Sign language recognition
" (Nhận dạng ngôn ngữ ký hiệu): Ứng dụng trong thế giới thực: Nhận biết cử chỉ bằng tay là một khía cạnh quan trọng của giao tiếp con người-máy tính và tương tác người dùng trong thế giới thực Điều này có thể được áp dụng rộng rãi trong nhiều lĩnh vực, bao gồm y tế, giáo dục, và công nghiệp
Hỗ trợcho người khuyết tật: Công nghệ nhận biết cử chỉ bằng tay có thể cung cấp giải pháp cho người khuyết tật, đặc biệt là người điếc, đểtương tác với máy tính và các thiết bịdi động Điều này có thể tạo ra một môi trường thân thiện và truy cập hơn cho tất cả mọi người
Tích hợp và điều khiển thiết bị: Nhận biết cử chỉ bằng tay có thể giúp người dùng điều khiển và tương tác với các thiết bị và ứng dụng một cách trực quan và hiệu quả Ví dụ, bạn có thể dùng cử chỉ bằng tay để điều khiển trình phát truyền hình hoặc thiết bịđiều hòa nhiệt độ
Nghiên cứu và phát triển: Lĩnh vực nhận biết cử chỉ bằng tay đang phát triển mạnh mẽ, và nó là một thách thức thú vị cho các nhà nghiên cứu và phát triển Điều này thúc đẩy sự sáng tạo trong việc phát triển các giải pháp và ứng dụng mới
Sự phổ biến của các công nghệ liên quan: Cả MediaPipe và các thuật toán học máy như SVM đã trở nên dễ dàng truy cập và phát triển Điều này giúp dự án nhận biết cử chỉ bằng tay trở nên thú vị và khả thi cho nhiều người
Như vậy, việc chọn đề tài "Sign language recognition " không chỉ mang tính thực tiễn mà còn đóng góp cho việc xây dựng các ứng dụng sáng tạo và hữu ích trong cuộc sống hàng ngày và cả lĩnh vực nghiên cứu
Mục tiêu chính của đề tài " Sign language recognition " là phát triển hệ thống nhận biết và nhận dạng các cử chỉ bằng tay dựa trên các công nghệ thị giác máy tính và học máy:
Nhận dạng Các Cử Chỉ Bằng Tay: Xây dựng một hệ thống có khả nhận dạng các cử chỉ bằng tay phổ biến Trong phạm vi dự án này chúng tôi sẽ dừng ở 10 cử chỉ mô tả bữa ăn sáng.
Tích Hợp MediaPipe: Sử dụng MediaPipe để trích xuất thông tin từ hình ảnh hoặc video, bao gồm việc xác định vị trí và cử chỉ của bàn tay Đây là công cụ sẽ đóng vai trò quan trọng trong việc lấy dữ liệu đầu vào cho hệ thống nhận dạng
Sử Dụng SVM: Để phân loại và nhận dạng các cử chỉ từ dữ liệu đầu vào từ
MediaPipe Huấn luyện mô hình dựa trên tập dữ liệu mà nhóm thu thập Đánh Giá Hiệu Suất: Đánh giá hiệu suất của hệ thống bằng cách đo đạc khả năng nhận biết và nhận dạng cử chỉ bằng tay Điều này giúp xác định độ chính xác và hiệu suất tổng thể của hệ thống
Nghiên Cứu và Phát Triển Tiếp: Tìm hiểu và phát triển mô hình, sao cho tối ưu nhất Tăng phần trăm khả năng nhận dạng cử chỉ
Mục tiêu của dự án này là tạo ra một hệ thống mạnh mẽ và linh hoạt có thể được tích hợp vào nhiều ứng dụng.
Nề n t ả ng và công ngh ệ
MediaPipe là một Framework để xây dựng các đường ống học máy để xử lý dữ liệu chuỗi thời gian như video, âm thanh, v.v Framework đa nền tảng này hoạt động trên Desktop / Server, Android, iOS và các thiết bịnhúng như Raspberry
Bộ công cụ MediaPipe bao gồm Framework và các Solutions (giải pháp) Sơ đồ sau đây cho thấy các thành phần của Bộ công cụ MediaPipe
Framework được viết bằng C ++, Java và Obj-C, bao gồm các API sau
-API xây dựng đồ thị (Protobuf)
-API thực thi đồ thị (C ++, Java, Obj-C)
Quy trình nhận dạng của MediaPipe được gọi là Graph Ví dụ:chúng tôi cung cấp một hình ảnh bàn tay làm đầu vào, kết quả đi ra với các mốc tay được hiển thị trên hình ảnh
Hình 2: Kết quả sau khi MediaPipe nhận dạng
Biểu đồdưới đây đại diện cho đồ thị giải pháp Hands MP (viết tắt của
Hình 3: đồ thị giải pháp Hands MediaPipe
Trong ngôn ngữ học máy tính, một đồ thị bao gồm các Nút được kết nối bởi các
Cạnh Trong đồ thị giải pháp MediaPipe, các nút được gọi là Calculators (bộ tính toán), và các cạnh được gọi là Streams (luồng dữ liệu) Mỗi luồng dữ liệu chứa một chuỗi các Gói dữ liệu có thời gian tăng dần
Trong hình ảnh ở trên, chúng tôi đã biểu diễn các Calculators bằng các khối hình chữ nhật và Streams bằng các mũi tên
MediaPipe Calculators Đây là các đơn vị tính toán cụ thểđược viết bằng C++ với các nhiệm vụđược gán để xử lý Các gói dữ liệu (khung hình video hoặc đoạn âm thanh) đi vào và ra thông qua các cổng trên một calculator Khi khởi tạo một calculator, nó xác định kiểu dữ liệu của gói dữ liệu sẽđi qua cổng Mỗi khi một đồ thị chạy,
Framework thực hiện các phương thức Open, Process và Close trong các calculators Phương thức Open khởi tạo calculator; quá trình chạy lặp đi lặp lại khi một gói dữ liệu đi vào Quá trình này kết thúc sau khi một lần chạy đồ thị hoàn tất
Ví dụ, hãy xem xét calculator đầu tiên được hiển thị trong đồ thịở trên
Calculator, ImageTransform, nhận một hình ảnh tại cổng nhập và trả về một hình ảnh đã được biến đổi tại cổng xuất Trong khi đó, calculator thứ hai,
ImageToTensor, nhận một hình ảnh làm đầu vào và xuất ra một tensor
Các giải pháp là các ví dụđược xây dựng sẵn dựa trên một mô hình TensorFlow hoặc TFLite đã được huấn luyện cụ thể Bạn có thể kiểm tra các mô hình cụ thể cho từng giải pháp ởđây Các giải pháp của MediaPipe được xây dựng dựa trên Framework Hiện tại, nó cung cấp mười sáu giải pháp, được liệt kê dưới đây.
Như đã nói ở trên nó hoạt động bằng cách kết hợp một loạt các giải pháp và tích hợp chúng để giúp xử lý và hiểu dữ liệu từ các nguồn như video, hình ảnh, âm thanh, và nhiều loại dữ liệu thịgiác và âm thanh khác nhau Dưới đây là cách hoạt động cơ bản của MediaPipe:
-Định dạng dữ liệu đầu vào: MediaPipe có khả năng xử lý nhiều loại dữ liệu đầu vào, chẳng hạn như video, hình ảnh, luồng video từ camera, dữ liệu âm thanh,
-Chọn và tùy chỉnh giải pháp: Chúng ta chọn một hoặc nhiều giải pháp đã được xây dựng sẵn bởi MediaPipe (ví dụ: nhận diện khuôn mặt, theo dõi tay, nhận dạng âm thanh, v.v.) dựa trên nhiệm vụ cụ thể Mỗi giải pháp là một mô hình máy học đã được huấn luyện để thực hiện một tác vụ cụ thể
-Kết nối các giải pháp: Bạn có thể kết hợp các giải pháp lại với nhau trong một đồ thị(graph) Đồ thị này chỉđịnh cách dữ liệu chuyển từ một giải pháp sang giải pháp khác, cho phép bạn xử lý dữ liệu qua nhiều bước liên tiếp
-Tiền xử lý và xử lý chính: Mỗi giải pháp hoạt động dựa trên mô hình máy học hoặc thuật toán riêng, tiền xử lý dữ liệu đầu vào và trả ra kết quả sau khi xử lý
-Tích hợp với ứng dụng: Kết quả từ các giải pháp có thểđược tích hợp vào ứng dụng của bạn, cho phép bạn hiển thị thông tin xử lý hoặc thực hiện hành động dựa trên dữ liệu đầu ra
-Triển khai trên nhiều nền tảng: MediaPipe hỗ trợ triển khai trên nhiều nền tảng, bao gồm máy tính, thiết bị di động và web
MediaPipe giúp đơn giản hóa việc phát triển các ứng dụng liên quan đến thị giác và âm thanh bằng cách cung cấp các giải pháp và cơ sở hạ tầng đã được xây dựng sẵn, từ việc xử lý dữ liệu đầu vào đến việc trình bày kết quả cho người dùng cuối
4 Kết luận và nhược điểm
MediaPipe là một framework mạnh mẽ phát triển bởi Google, được thiết kếđể giúp xây dựng các ứng dụng và dự án xử lý dữ liệu thịgiác và âm thanh Dưới đây là một sốđiểm kết luận về MediaPipe:
-Đa nhiệm và đa dạng: MediaPipe hỗ trợ xử lý nhiều loại dữ liệu đầu vào, chẳng hạn như video, hình ảnh, luồng video từ camera, dữ liệu âm thanh, và nhiều dạng dữ liệu thịgiác và âm thanh khác Điều này giúp bạn xây dựng ứng dụng đa dạng và đa nhiệm
Thu th ậ p và chu ẩ n b ị d ữ li ệ u
I Thu thập dữ liệu về cử chỉ tay
Thu nhập dữ liệu là một bước quan trọng trong quá trình phát triển, và nó đóng vai trò quan trọng trong việc huấn luyện mô hình nhận diện cử chỉ tay
Trong mô hình nhận dạng này, chúng tôi lựa chọn phương pháp quay video trực tiếp bằng điện thoại để xây dựng bộcơ sở dữ liệu
Do thiếu hụt nhân lực trong khi quay video, nên nhóm ghi dữ liệu chỉ bao gồm
3 thành viên trong nhóm (Quang , Tâm , Sơn).
II Ghi dữ liệu video
Vì mô hình chúng tôi dựđịnh sử dụng sẽ là trích xuất khung xương 2 tay sau đó kết hợp mô hình SVM để huấn luyện nên trong quá trình ghi lại dữ liệu , chúng tôi tập trung thu sắc nét 2 tay, không cần rõ mặt
Chúng tôi thu tổng 10 video cử chỉ mỗi người
III Xử lý dữ liệu và chuẩn bị cho huấn luyện
Khi có được bộ video, chúng tôi bắt đầu trích xuất frames từ video để xử lý
Hình 12: Quá trình trích xuất frame từ video
Với đoạn code trên với folder “xoi”, trong folder này chứa 3 video về cử chỉ
“xoi” của 3 người, tương ứng như vậy chúng tôi có 10 folder tương ứng với 10 cử chỉ Đoạn code trên sẽ chạy qua từng video trong folder, với mỗi video nó sẽ chạy đến 300 frame, lớn hơn 300 frame nó sẽ dừng lại, trong quá trình chạy cứ 2 frame chúng tôi lấy 1 frame, vì vậy khi chạy đến 300 frame chúng tôi sẽ lấy 150 frame Vậy lên mỗi video chúng tôi sẽ lấy 150 frame, 1 folder có 3 video chúng tôi sẽcó 450 frame, tương ứng với số lượn frame cho 1 cử chỉ
Tóm lại sau khi chúng tôi chạy xong 10 folder tương ứng với 10 cử chỉ sẽ có tổng là 450 x 10 = 4500 frame
Sau khi có các frames ( là các ảnh trích ra từ video ) chúng tôi xử dụng phương pháp gắn khung xương bằng MediaPipe rồi sau đó lấy ra tọa độ của các điểm làm input đầu vào cho mô hình huấn luyện
Hình 13.1: Quá trình gắn khung sương
Hình 13.2: Quá trình gắn khung sương
Hình 13.3: Quá trình gắn khung sương
Mỗi ảnh sẽ cho ra 42 điểm ( 21 điểm trên 1 tay) vs mỗi điểm sẽ có 3 giá trị x, y, z Đầu ra sẽ là vector gồm 127 giá trị, trong đó 126 giá trị là tọa độ x, y, z của
42 điểm tương ứng với bàn tay, còn 1 giá trị cuối cùng chính là giá trị label, giá trị label này chúng tôi lấy chính tên của folder chứa cử chỉđó đểđặt tên cho label Và được lưu vào trong file dataset.csv Ở quá trình gắn khung sương này, chúng tôi thực hiện bổ xung giá trị 0 cho những frame không đủ 42 điểm trên 2 bàn tay Hay nói cách khác với các vecter không đủ 126 giá trị x, y, z và 1 label là chúng tôi sẽ gán thêm giá trị 0
Hình 14: Skeleton của tay gồm 21 điểm quan trọng trên 1 bàn tay
Hình 15: Giá trị x, y, z của các 42 điểm trên 2 bàn tay
Vấn đề phát sinh, ban đầu chúng tôi chỉ tập trung thu dữ liệu 1 tay sau đó đưa vào xử lí , đối vs những cử chỉ có 2 tay thực hiện tương tự như nhau như
PHO,TRUNG, thì khi nhận diện kết quả cho ra khá tốt
Hình 16: Cử chỉ mô tả “PHO”
Nhưng đối vs các cử chỉ có 2 tay thực hiện không tương đối giống nhau như NUOC, BUN, CHAO,XOI, thì nhận diện không còn được tốt khi ta thực hiện tay không đúng dữ liệu huấn luyện
Hình 17: Cử chỉ mô tả“BANH_MI”
Vì vậy, chúng tôi đã phải tiến hành lại quá trình thu dữ liệu từ đầu vào, và ở đây mỗi động tác chúng tôi đều thu dữ liệu khi đổi tay
Hình 18: Cử chỉ mô tả “XOI”
Và vấn đềphát sinh đã được giải quyết khá ổn thỏa.
Xây d ự ng mô hình nh ậ n d ạ ng c ử ch ỉ tay
1 Chuẩn bị dữ liệu a) Sử dụng dữ liệu về cử chỉ tay đã thu thập từ Chương 3
Hình 19: Class chứa các frames tương ứng với các cử chỉ Đây là bộ dữ liệu đã thu thập ởchương 3 gồm 10 folder chứa các frame đã được gắn khung sương của 10 cử chỉ mô tả bữa ăn sáng b) Phân chia dữ liệu thành tập huấn luyện và tập kiểm tra
Hình 20: chia dữ liệu thành tập train và test
“X” là tập dữ liệu chứa các đặc trưng
“Y” là tập dữ liệu chứa nhãn muốn dự đoán hoặc phân loại
“test_size” là tỷ lệ muốn chia dữ liệu thành tập kiểm tra Trong trường hợp này, chúng tôi để test_size=0.2 ý muốn chia dữ liệu thành 80% cho tập huấn luyện và 20% cho tập kiểm tra
“random_state” là một giá trị sốnguyên, nó được sử dụng để cốđịnh một trạng thái ngẫu nhiên Ởđây chúng tôi để bằng 0 để mỗi lần chạy mã, phân chia dữ liệu sẽ luôn giống nhau Điều này vô cùng hữu ích đểđảm bảo tính nhất quán của kết quả mỗi khi chúng tôi thực hiện phân chia dữ liệu hoặc thực hiện các phép thử nghiệm trên mô hình
Khi chạy xong đoạn code trên chúng tôi sẽ có
“x_train”: Tập dữ liệu huấn luyện chứa các đặc trưng.
“x_test”: Tập dữ liệu kiểm tra chứa các đặc trưng.
“y_train”: Tập nhãn tương ứng với tập huấn luyện
“y_test”: Tập nhãn tương ứng với tập kiểm tra
Sau khi phân chia như ở trên xong, chúng tôi có thể sử dụng “x_train” và
“y_train” để huấn luyện mô hình SVM và sử dụng “x_test” để kiểm tra hiệu suất của mô hình
Hình 21: Lựa chọn SVM Classifier
Trong dự án chúng tôi sử dụng kiểu SVM (Kernel SVM) hay còn gọi là:”
Support Vector Machine with Radial Basis Function kernel (RBF kernel)”
“SVC” là viết tắt của "Support Vector Classification," đây là một loại SVM được sử dụng cho bài toán phân loại
“kernel='rbf' “ đặt loại hạt nhân là RBF (Radial Basis Function), đây là một trong những hạt nhân phổ biến được sử dụng trong SVM Hạt nhân RBF cho phép mô hình SVM tạo ra một ranh giới phi tuyến tính giữa các lớp dữ liệu Các siêu tham số khác bao gồm:
“C ”: Siêu tham số C quyết định mức độđiều chỉnh mức độ phân loại sai số Giá trị C càng cao, mô hình càng cố gắng phân loại mọi điểm dữ liệu một cách chính xác tại mức cực đại, có nguy cơ gây overfitting nếu không được điều chỉnh thích hợp
“gamma=0.5”: Siêu tham số gamma quyết định hình dạng của hạt nhân RBF Giá trị gamma càng cao, hạt nhân có độ cong càng lớn, có thể dẫn đến mô hình quá phức tạp
Do quá trình lấy từng frame trong video input, cứ 2 frame sẽ lấy 1 frame
Hình 22: Tách frame ra từ video
Chính vì các frame khá là xát nhau như vậy nên việc giống nhau của các frame giữa các động tác này với các động tác khác là không tránh khỏi Chính vì điều đó sau các lần điều chỉnh các tham số (C, gamma) chúng tôi đã quyết định để chúng là (C , gamma=0.5) Nó cho chúng tôi kết quả tương đối tốt
Sau khi phân chia, tập kiểm tra được lưu trong x_test (đặc trưng kiểm tra) và y_test (nhãn kiểm tra)
Mô hình SVM được huấn luyện bằng cách sử dụng tập huấn luyện (x_train và y_train):
Hình 23: SVM được huấn luyện
Sau đó, mô hình được sử dụng để dự đoán trên tập kiểm tra:
Cuối cùng, các phân tích và đánh giá hiệu suất của mô hình trên tập kiểm tra được thực hiện bằng cách tính các số liệu thống kê như ma trận nhầm lẫn
Chúng tôi đã vẽ ma trận nhầm lẫn (Confusion Matrix):
Hình 25: Vẽ ma trận nhầm lẫn (Confusion Matrix):
Kết quả là một biểu đồ ma trận nhầm lẫn hiển thị kết quả cách mô hình SVM đã phân loại với 10 cử chỉ tay trong tập (“y_test”) dựa trên các dự đoán của mô hình (y_pred) Biểu đồ này cho thấy mối quan hệ giữa các dự đoán và thực tế trên các lớp dữ liệu
Hình 26: một biểu đồ ma trận
-Đầu tiên các bạn phải hiểu
+Các hàng biểu thị nhãn thực tế (true labels) trong dữ liệu kiểm tra
+Các cột biểu thị nhãn dự đoán (predicted labels) của mô hình
+Ô ở hàng i và cột j của ma trận hiển thị sốlượng mẫu thực tế thuộc vào lớp i mà mô hình dự đoán là lớp j
-Các phần quan trọng trong biểu đồ
+Đường chéo chính (diagonal) của ma trận biểu thị sốlượng dự đoán đúng Nói cách khác, các ô trên đường chéo chính là True Positives (TP) và
+Phần trên đường chéo chính hiển thị False Positives (FP) - các trường hợp mà mô hình dựđoán sai.
+Phần dưới đường chéo chính hiển thị False Negatives (FN) - các trường hợp mà mô hình đã bỏ sót
-Quan sát biểu đồ trên chúng ta có rất nhiều điều để nói
+Với các cử chỉ có động tác có sựa khác biệt nhiều so với các động tác còn lại tì kết quả đen lại rất tốt, sự chùng lặp vs các động tác khác là rất ít có thể kể đến như động tác: PHO, BANH_MI, SUA_CHUA Đó là các lớp mà mô hình của chúng tôi nhận biết và chả về kết quả khi dựđoán là tốt nhất
+Như đã quan sát thi các bạn cũng đã nhận thấy những động tác trả về kết quả dự đoán không thật sự tốt là các động tác có các cử chỉ tay có sựtương đồng nhau, chỉ khác ở tư thế và vịtrí đặt tay có thể kẻ đến như: BUN, CHAO,
COFFEE, TRUNG_OP Mô hình của chũng tôi dự đoán không tốt cho các động tác này chúng có sự giống cao, chỉ khác tư thế Ví dụnhư: CHAO và BUN
Có thể thấy động tác CHAO và BUN khá giống nhau chỉ khác là CHAO xòe cả
10 ngón tay, BUN thì có 3 ngón gập lại chính vì vậy mà mô hình của chúng tôi gặp khó khăn và nhầm lẫn rất nhiều khi phân biệt các động tác kiểu như này
II Tối ưu hóa siêu tham số
Tôi ưu hóa siêu tham sốlà điều mà mọi mô hình nhận dạng hay phân loại nên thực hiện và có phương hướng giải quyết Với mô hình của chúng tôi, chúng tôi nhận thấy kết quảmà nó đem lại chưa có hiệu quả, cần có sự cải thiên vềđộ chính xác Để cải thiện được khả năng dự đoán của mô hình thì chúng tôi sẽ tối ưu hóa tham số“C” và “gamma”:
+Là một tham số quan trọng kiểm soát hình dạng của hạt nhân (kernel) RBF (Radial Basis Function) Hạt nhân RBF là một trong những hạt nhân phổ biến được sử dụng trong SVM để xử lý bài toán phân loại phi tuyến tính
+Siêu tham số gamma ảnh hưởng đến độ cong của hạt nhân RBF và do đó ảnh hưởng đến mức độ phức tạp của mô hình Cụ thể:
Ứ ng d ụ ng th ự c t ế và k ế t qu ả
I Xây dựng ứng dụng nhận dạng cử chỉ tay Đây là một đề tài cho bài tập lớn của chúng tôi, nên chúng tôi mới dựng lại ở mức cơ bản chỉ thực hiện nhận dạng với 10 cử chỉ của bữa ăn sáng Vì vậy mô hình chưa đủ mạnh để ứng dụng vào thực tế
II Giao diện người dùng
Giao diện của chúng tôi mới chỉ dừng lại ở giao diện code thuần, nhận diện cử chỉ thông qua wecam của laptop, PC
III Tương tác và kết quả thực tế
Chúng tôi tương tác giao tiếp trực tiếp qua các dòng code mã nguồn
Kết quảmà mô hình đem lại khi dự đoán chưa thực sự tốt, còn nhiều nhầm lẫn, chưa đúng với mong đợi của chúng tôi
Mô hình còn nhiều hạn chế vì chỉ dừng lại ở 10 cử chỉ, chưa thể ứng dụng vào trong thực tế được
Trong quá trình trích xuất đực trưng của mô hình, khi gắn khung sương chúng tôi mới chỉ gắn khung sương cho 2 bàn tay, nhiều động tác cần có sự kết hợp của cả cánh tay Mô hình sẽ gặp khó khăn và sai sót khi phân loại Để tăng độ chân thực trong việc diễn tả hành động, có một sốđộng tác cần cả biểu cảm của khuân mặt, nhưng chúng tôi chưa thể áp dụng để trích xuất đặc chưng của khuân mặt để thêm thông tin cho quá trình nhận dạng và phân loại cử chỉ
IV Đề xuất cho tương lai
Nhóm chúng tôi mong muốn mô hình của mình sẽđược áp dụng trong thực tế Chính vì vậy, chúng tôi cần phát triển mô hình rộng ra hơn 10 cử chỉ bữa ăn sáng
Có thể trích xuất được nhiều thông tin của người diễn đạt cử chỉđể tối ưu cho quá trình nhận dạng và phân loại của mô hình
Phát triển giao diện người dùng trên nhiều nền tảng khác nhau, để nhiều người có thể tiếp cận.
Tài liệ u tham kh ỏ a
I Liên kết và tài liệu trực tuyến
• https://en.wikipedia.org/wiki/Support_vector_machine
• https://medium.com/machine-learning-101/chapter-2-svm-support- vector-machine-theory-f0812effc72
• https://viblo.asia/p/gioi-thieu-ve-support-vector-machine-svm-
Phụ l ụ c
I Mã nguồn và tài liệu kỹ thuật
• https://drive.google.com/drive/folders/1bwYVgN6FfFeXFSDFQeKWpJ O0KeGxakgL?usp=sharing
Chúng tôi sử dụng Visual Studio Code để chạy mã nguồn
II Bảng phân công công việc
Tên từng thành viên Công việc thực hiện
Phần trăm hoàn thành công việc Ký tên xác nhận
Ngô Thế Cao Sơn Thu dữ liệu, phát triển code
Nguyễn Khắc Quang Thu dữ liệu, phát triển code
90% Đoàn Văn Tâm Thu dữ liệu, sử lý dữ liệu, tổng hợp báo cáo