1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nhận dạng cử chỉ tay trong thời gian thực

31 113 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nhận dạng cử chỉ tay trong thời gian thực
Tác giả Nhóm Sinh Viên Thực Hiện
Người hướng dẫn Cô Thái Thị Nguyệt
Trường học Trường Đại Học Xây Dựng
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đề án
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 31
Dung lượng 8,32 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các ứng dụng để nhận dạng cử chỉ bao gồm điều khiển môi trường ảo, dịch ngôn ngữ ký hiệu, điều khiển robot và sáng tác nhạc. Đề tài này sẽ chia ra làm hai mục chính là nhận dạng cử chỉ tay và nhận biết ký hiệu bàn tay. Chúng em sẽ học được cách tạo Công cụ nhận dạng cử chỉ tay trong thời gian thực bằng cách sử dụng khung MediaPipe và Tensorflow trong OpenCV và Python trong dự án máy học về Nhận dạng cử chỉ tay này.

Trang 1

TRƯỜNG ĐẠI HỌC XÂY DỰNG KHOA: CÔNG NGHỆ THÔNG TIN



Môn : Đồ án Thị giác máy tính

Đề tài: Nhận dạng cử chỉ tay trong thời gian thực

Giảng viên hướng dẫn: Cô Thái Thị Nguyệt Nhóm sinh viên thực hiện: Nhóm 8

Hà Nội, Ngày 13/10/ 2022

Trang 2

Nội dung

Trang 3

Lời mở đầu

Các ứng dụng để nhận dạng cử chỉ bao gồm điều khiển môi trường ảo,dịch ngôn ngữ ký hiệu, điều khiển robot và sáng tác nhạc Đề tài này sẽ chia ralàm hai mục chính là nhận dạng cử chỉ tay và nhận biết ký hiệu bàn tay Chúng

em sẽ học được cách tạo Công cụ nhận dạng cử chỉ tay trong thời gian thựcbằng cách sử dụng khung MediaPipe và Tensorflow trong OpenCV và Pythontrong dự án máy học về Nhận dạng cử chỉ tay này

Chúng em xin chân thành cảm ơn!

Trang 4

NỘI DUNG BÁO CÁO

Kiến thức chung

Khả năng nhận biết hình dạng và chuyển động của bàn tay có thể là mộtthành phần quan trọng trong việc cải thiện trải nghiệm người dùng trên nhiềulĩnh vực và nền tảng công nghệ Ví dụ: nó có thể tạo cơ sở để hiểu ngôn ngữ kýhiệu và kiểm soát cử chỉ tay, đồng thời cũng có thể cho phép phủ nội dung vàthông tin kỹ thuật số lên trên thế giới vật chất trong thực tế tăng cường Mặc dùđến với mọi người một cách tự nhiên, nhưng khả năng nhận biết bàn tay mạnh

mẽ theo thời gian thực là một nhiệm vụ thị giác máy tính đầy thách thức, vì cácbàn tay thường tự che khuất nhau hoặc che khuất nhau (ví dụ: khớp ngón

tay/lòng bàn tay và lắc tay) và thiếu các mẫu có độ tương phản cao

MediaPipe Hands là một giải pháp theo dõi ngón tay và bàn tay có độchính xác cao Nó sử dụng công nghệ máy học (ML) để suy ra 21 mốc 3D củamột bàn tay chỉ từ một khung hình duy nhất Trong khi các phương pháp tiêntiến nhất hiện nay chủ yếu dựa vào môi trường máy tính để bàn mạnh mẽ để suyluận, thì phương pháp này đạt được hiệu suất thời gian thực trên điện thoại diđộng và thậm chí có thể chia tỷ lệ cho nhiều tay Công nghệ cung cấp chức năngnhận biết bàn tay này cho cộng đồng nghiên cứu và phát triển rộng lớn hơn sẽdẫn đến sự xuất hiện của các trường hợp sử dụng sáng tạo, kích thích các ứngdụng mới và con đường nghiên cứu mới

MediaPipe Hands suy ra khoảng 21 mốc bàn tay 3D bao gồm các tọa độ

x, y và z chỉ trong một khung duy nhất và tạo ra đầu ra mong muốn bằng cáchkết hợp hai mô hình: mô hình phát hiện lòng bàn tay và mô hình bản địa hóađiểm bàn tay (hand keypoint localization model) Ban đầu, mô hình này được sửdụng với một máy dò một lần gọi là Blaze Palm Máy dò này hỗ trợ MediaPipe

để giảm độ phức tạp về thời gian của việc phát hiện lòng bàn tay dựa trên tập dữliệu lớn về kích thước bàn tay trong hình ảnh đầu vào Mô hình này hoạt độngtrên toàn bộ hình ảnh và trả về một hộp giới hạn tập trung làm nổi bật các điểmchính, chẳng hạn như lòng bàn tay và nắm tay, để phát hiện lòng bàn tay thay vìtập trung vào các đối tượng không cần thiết Sau đó, mô hình sử dụng đầu raphát hiện lòng bàn tay để phát hiện các key points trên bàn tay Điều này tạo ra

ba đầu ra như sau:

● 21 điểm đốt ngón tay trong không gian 3D

● Hand flag hiển thị xác suất xuất hiện bàn tay trong hình ảnh đầu vào

● Phân loại nhị phân tay trái và tay phải

Trang 5

Machine Learning PipeLine

MediaPipe Hands sử dụng đường dẫn ML bao gồm nhiều mô hình hoạtđộng cùng nhau: Mô hình phát hiện lòng bàn tay hoạt động trên hình ảnh đầy đủ

và trả về hộp giới hạn bàn tay được định hướng Một mô hình mốc bàn tay hoạtđộng trên vùng hình ảnh đã cắt được xác định bởi bộ phát hiện lòng bàn tay vàtrả về các điểm chính 3D có độ chính xác cao Chiến lược này tương tự nhưchiến lược được sử dụng trong giải pháp MediaPipe Face Mesh của chúng tôi,

sử dụng bộ phát hiện khuôn mặt cùng với mô hình mốc khuôn mặt

Việc cung cấp hình ảnh bàn tay được cắt xén chính xác cho mô hình mốcbàn tay giúp giảm đáng kể nhu cầu tăng cường dữ liệu (ví dụ: xoay, dịch và chia

tỷ lệ) và thay vào đó, cho phép mạng dành phần lớn công suất của mình cho độchính xác của dự đoán tọa độ Ngoài ra, trong quy trình của chúng tôi, các loạicây trồng cũng có thể được tạo dựa trên các mốc bàn tay được xác định trongkhung trước đó và chỉ khi mô hình mốc không thể xác định được sự hiện diệncủa bàn tay nữa thì tính năng phát hiện lòng bàn tay mới được gọi để định vị lạibàn tay

Đường ống được triển khai dưới dạng biểu đồ MediaPipe sử dụng biểu đồcon theo dõi mốc tay từ mô-đun mốc tay và hiển thị bằng cách sử dụng biểu đồcon trình kết xuất tay chuyên dụng Biểu đồ con theo dõi mốc bàn tay bên trong

sử dụng biểu đồ con mốc bàn tay từ cùng một mô-đun và biểu đồ con phát hiệnlòng bàn tay từ mô-đun phát hiện lòng bàn tay

Hand Landmark Model

Sau khi phát hiện lòng bàn tay trên toàn bộ hình ảnh, mô hình mốc bàn tay tiếptheo sẽ thực hiện định vị chính xác điểm chính của 21 tọa độ khớp ngón tay 3Dbên trong vùng bàn tay được phát hiện thông qua hồi quy, đó là dự đoán tọa độtrực tiếp Mô hình học cách thể hiện tư thế bàn tay nội suy nhất quán và mạnh

mẽ ngay cả khi bàn tay có thể nhìn thấy một phần hoặc bị che phủ

Để có được dữ liệu thực về mặt đất, mô hình đã chú thích thủ công ~30K hìnhảnh trong thế giới thực với 21 tọa độ 3D, như minh họa bên dưới (mô hình lấygiá trị Z từ bản đồ độ sâu hình ảnh, nếu giá trị này tồn tại trên mỗi tọa độ tươngứng) Để bao quát tốt hơn các tư thế bàn tay có thể có và cung cấp thêm sự giámsát về bản chất của hình học bàn tay, mô hình cũng kết xuất tổng hợp chất lượngcao trên nhiều nền khác nhau và ánh xạ nó tới các tọa độ 3D tương ứng

Trang 6

Các tham số API tùy chọn cấu hình

STATIC_IMAGE_MODE

Nếu được đặt thành false, giải pháp sẽ xử lý hình ảnh đầu vào dưới dạng luồngvideo Nó sẽ cố gắng phát hiện bàn tay trong các hình ảnh đầu vào đầu tiên vàkhi phát hiện thành công sẽ tiếp tục bản địa hóa các mốc bàn tay Trong các hìnhảnh tiếp theo, khi tất cả max_num_hands được phát hiện và các mốc bàn taytương ứng được bản địa hóa, nó chỉ theo dõi các mốc đó mà không gọi một pháthiện khác cho đến khi nó mất dấu vết của bất kỳ bàn tay nào Điều này làmgiảm độ trễ và lý tưởng để xử lý các khung hình video Nếu được đặt thành true,tính năng phát hiện bàn tay sẽ chạy trên mọi hình ảnh đầu vào, lý tưởng để xử lýmột loạt hình ảnh tĩnh, có thể không liên quan Mặc định là sai

MAX_NUM_HANDS

Số lượng tay tối đa để phát hiện Mặc định là 2

MODEL_COMPLEXITY

Trang 7

Độ phức tạp của mô hình mốc tay: 0 hoặc 1 Độ chính xác của mốc cũng như độtrễ suy luận thường tăng theo độ phức tạp của mô hình Mặc định là 1.

độ trễ cao hơn Bị bỏ qua nếu static_image_mode là true, trong đó tính năngphát hiện tay chỉ chạy trên mọi hình ảnh Mặc định là 0,5

Tùy chỉnh cho kiểu đầu ra

MULTI_HAND_LANDMARKS

Bộ sưu tập các bàn tay được phát hiện/theo dõi, trong đó mỗi bàn tay được biểudiễn dưới dạng danh sách 21 mốc bàn tay và mỗi mốc bao gồm x, y và z x và yđược chuẩn hóa thành [0,0, 1,0] theo chiều rộng và chiều cao của hình ảnhtương ứng z đại diện cho độ sâu của mốc với độ sâu ở cổ tay là gốc và giá trịcàng nhỏ thì mốc càng gần máy ảnh Độ lớn của z sử dụng tỷ lệ gần giống nhưx

MULTI_HAND_WORLD_LANDMARKS

Bộ sưu tập các bàn tay được phát hiện/theo dõi, trong đó mỗi bàn tay được thểhiện dưới dạng danh sách 21 mốc bàn tay trong tọa độ thế giới Mỗi mốc baogồm x, y và z: tọa độ 3D trong thế giới thực tính bằng mét với gốc là tâm hìnhhọc gần đúng của bàn tay

Trang 8

Các phương pháp đánh giá mô hình

1 Confusion Matrix

Một phương pháp tốt hơn để đánh giá performance của mô hình phân lớp đó làconfusion matrix (ma trận nhầm lẫn) Ý tưởng chính là đếm số lần phần tửthuộc class A bị phân loại nhầm vào class B

Để thực hiện tính toán ma trận nhầm lẫn, đầu tiên bạn phải có kết quả các dựđoán và so sánh với nhãn thật của nó Nghĩa là chúng ta phải dự đoán trên tậptest, sau đó dúng kết quả dự đoán này để so sánh với nhãn ban đầu

Ma trận nhầm lẫn sẽ cho chúng ta nhiều thông tin về chất lượng của bộ phânlớp

● TP (True Positive): Số lượng dự đoán chính xác

● TN (True Negative): Số lương dự đoán chính xác một cách gián tiếp

● FP (False Positive - Type 1 Error): Số lượng các dự đoán sai lệch

● FN (False Negative - Type 2 Error): Số lượng các dự đoán sai lệch mộtcách gián tiếp

2 Precision and Recall

Precision: Trong tất cả các dự đoán Positive được đưa ra, bao nhiêu dự đoán làchính xác? Chỉ số này được tính theo công thức

precision = TP / (TP + FP)Recall: Trong tất cả các trường hợp Positive, bao nhiêu trường hợp đã được dựđoán chính xác? Chỉ số này được tính theo công thức:

Trang 9

recall = TP / (TP + FN)

3 F1-Score

chỉ số F1-score là sự kết hợp của 2 chỉ số Precision và recall Một mô hình cóchỉ số F-score cao chỉ khi cả 2 chỉ số Precision và Recall để cao Một trong 2chỉ số này thấp đều sẽ kéo điểm F-score xuống Trường hợp xấu nhất khi 1trong hai chỉ số Precison và Recall bằng 0 sẽ kéo điểm F-score về 0 Trườnghợp tốt nhất khi cả điểm chỉ số đều đạt giá trị bằng 1, khi đó điểm F-score sẽ là1

F1-Score = 2 * (Precision * Recall) / (Precision + Recall)

4 Đường cong ROC (Receiver operating characteristic)

Đường đặc tính hoạt động của máy thu, hoặc đường cong ROC, là một biểu đồ

đồ họa minh họa khả năng chẩn đoán của hệ thống phân loại nhị phân vì

ngưỡng phân biệt của nó là khác nhau Phương pháp này ban đầu được pháttriển cho các nhà khai thác máy thu radar quân sự bắt đầu từ năm 1941, dẫn đếntên gọi của nó

Đường cong ROC được tạo bằng cách vẽ biểu đồ tỷ lệ dương tính thực (TPR) sovới tỷ lệ dương tính giả (FPR) ở các cài đặt ngưỡng khác nhau Tỷ lệ dương tínhthực sự còn được gọi là độ nhạy, độ thu hồi hoặc xác suất phát hiện Tỷ lệ

dương tính giả còn được gọi là xác suất báo động giả và có thể được tính bằng

độ đặc hiệu Nó cũng có thể được coi như là một biểu đồ của lũy thừa như mộthàm của Sai số loại I của quy tắc quyết định Do đó, đường cong ROC là độnhạy hoặc độ thu hồi như là một hàm của sự giảm giá trị Nói chung, nếu biếtphân bố xác suất cho cả phát hiện và cảnh báo sai, đường cong ROC có thểđược tạo bằng cách vẽ biểu đồ của hàm phân phối tích lũy (khu vực dưới phânphối xác suất từ− ∞ đến ngưỡng phân biệt) của phát hiện xác suất trong trục y

so với hàm phân phối tích lũy của xác suất báo động giả trên trục x

Phân tích ROC cung cấp các công cụ để chọn các mô hình có thể tối ưu và loại

bỏ các mô hình dưới mức tối ưu một cách độc lập với (và trước khi chỉ định) bốicảnh chi phí hoặc phân phối lớp Phân tích ROC có liên quan trực tiếp và tựnhiên đến phân tích chi phí / lợi ích của việc ra quyết định chẩn đoán

ROC còn được gọi là đường đặc tính hoạt động tương đối, bởi vì nó là sự sosánh của hai đặc tính hoạt động (TPR và FPR) khi tiêu chí thay đổi

- Tính chất:

Trang 10

● Đường cong càng đi dọc theo biên trái và rồi đi dọc theo biên phía trêncủa không gian ROC, thì chứng tỏ kết quả kiểm tra càng chính xác.

● Đường cong càng tiến tới thành đường chéo 45 độ trong không gian

ROC, thì độ chính xác của kiểm tra càng kém

Các chỉ số sử dụng trong ROC

TPR(True Positive Rate/Sentivity/Recall): Biểu diễn tỷ lệ phân loại chính xác

các mẫu dương tính trên tất cả các mẫu dương tính, được tính theo công thức:

TPR / Recall/Sensiiviy = 𝑇𝑃+𝐹𝑁𝑇𝑃

TPR càng cao thì các mẫu dương tính càng được phân loại chính xác

- Specificity: Biểu diễn tỷ lệ phân loại chính xác các mẫu âm tính trên tất

cả các mâu âm tính, được tính theo công thức:

Specificity = 𝑇𝑁+𝐹𝑃𝑇𝑁

- FPR(False Positive Rate/Fall-out): Biểu diễn tỷ lệ gắn nhãn sai các mẫu

âm tính thành dương tính trên tất cả các mẫu âm tính, được tính theo côngthức:

FPR = 1 – Specificity = 𝑇𝑁+𝐹𝑃𝐹𝑃

Có thể thấy Specificity tỷ lệ nghịch với FPR FPR càng cao thì

Specificity càng giảm và số lượng các mẫu âm tính bị gắn nhãn sai cànglớn

- Mối quan hệ giữa Sentivity – Specificity, TPR – FPR

o Sentivity và Specificity là 2 chỉ số tỷ lệ nghịch với nhau Khi chỉ sốSentivity tăng thì chỉ số Specificity giảm và ngược lại

o Khi ta tăng ngưỡng phân loại, số lượng mẫu được gắn nhãn âm tính

sẽ tăng lên, từ đó chỉ số Specificity tăng và chỉ số Sentivity giảm.Điều ngược lại cũng đúng

o Vì Sentivity/TFP và FPR đều tỉ lệ nghịch với Specificity nên TFP

tỷ lệ thuận với FPR

Dự định mô hình cài đặt:

Các bước giải quyết bài toán:

- Khởi tạo mô hình

- Đọc khung hình từ webcam

- Phát hiện các điểm chính của bàn tay

Trang 11

- Nhận biết cử chỉ tay

Cài đặt mô hình:

Nhận dạng thời gian thực các cử chỉ tay động từ các luồng video là một nhiệm

vụ khó khăn vì không có dấu hiệu khi nào một cử chỉ bắt đầu và kết thúc trongvideo, các cử chỉ đã thực hiện chỉ được nhận dạng một lần và toàn bộ kiến trúcnên được thiết kế cân nhắc dựa trên bộ nhớ và khả năng xử lý của CPU Trongcông việc này, chúng em giải quyết những thách thức này bằng cách đề xuấtmột cấu trúc phân cấp cho phép các kiến trúc mạng nơ-ron tích hợp hoạt độngngoại tuyến (CNN) hoạt động trực tuyến hiệu quả bằng cách sử dụng phươngpháp tiếp cận cửa sổ trượt Kiến trúc được đề xuất bao gồm hai mô hình: Một bộ

dò là một kiến trúc CNN nhẹ để phát hiện các cử chỉ và một bộ phân loại là mộtCNN sâu để phân loại các cử chỉ được phát hiện

Trang 12

Phần Thực nghiệm

1 Thu thập dữ liệu học tập:

Thư viện MediaPipe cung cấp các giải pháp theo dõi ngón tay và bàn tay có độchính xác cao Nó sử dụng công nghệ máy học (ML) để suy ra 21 mốc 3D củamột bàn tay chỉ từ một khung hình duy nhất với hiệu suất tốt Từ đó, nhóm em

đã xây dựng thêm hàm để lưu lại các điểm chính (key points) trong một khungảnh, tính toán tọa độ giữa các điểm với:

Cột thứ nhất: Số đã nhấn (được sử dụng làm ID lớp)

Cột thứ 2 và các cột tiếp theo: Tọa độ điểm chính

Trang 13

Ba lớp nhãn dữ liệu học tập bao gồm: tay mở (ID lớp: 0), tay đóng (ID lớp: 1)

và chỉ tay (ID lớp: 2)

Trang 14

2 Đào tạo mô hình

Từ tập dataset được lấy ở trên, chúng em sẽ tiến hành xây dựng mô hình huấnluyện thông qua 4 lớp xử lý như sau:

Chúng em đã tạo mô hình mạng neuron tuần tự với các lớp:

- Input: định hình dữ liệu đầu vào dự kiến là các lô vectơ 21 key points * 2(tọa độ x-y) chiều

- Dropout: giảm các node trong mô hình

- Dense: Xử lý số chiều của không gian đầu ra với hàm kích hoạt trong môhình là relu Với lớp fully-connected là hàm softmax

Các bước xử lý được thể hiện ở dưới:

Trang 15

Tiếp đến là các hàm callback để Dừng đào tạo khi một số liệu được theo dõi đãngừng cải thiện và Lưu mô hình Keras hoặc trọng số mô hình

Compile

Trang 16

Huấn luyện mô hình:

Trang 31

Chuyển đổi mô hình sang dạng Tensorflow-Lite dành riêng cho việc suy luận

để bổ trợ cho việc nhận diện ký hiệu bàn tay qua camera

Tài liệu tham khảo:

● Ý tưởng và hướng giải quyết bài toán

Ngày đăng: 08/09/2023, 11:46

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm