Nghiên cứu, phát triển ứng dụng nhận dạng hoạt động của bàn tay sử dụng Webcam Laptop

67 3 0
Tài liệu đã được kiểm tra trùng lặp
Nghiên cứu, phát triển ứng dụng nhận dạng hoạt động của bàn tay sử dụng Webcam Laptop

Đ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

Báo cáo khóa luận tốt nghiệp "Nghiên cứu, phát triển ứng dụng nhận dạng hoạt động của bàn tay sử dụng Webcam Laptop". Có code Python đường link Driver: https://drive.google.com/drive/folders/1l_7BSLTEq6XDfmjJXPWYJhA7Thfeo1K5?usp=drive_link

Trang 1

TRƯỜNG ĐẠI HỌC TÂN TRÀO

KHOA KHOA HỌC CƠ BẢN

KHÓA LUẬN TỐT NGHIỆP

TÊN ĐỀ TÀI: NGHIÊN CỨU, PHÁT TRIỂN ỨNG DỤNG NHẬN DẠNG HOẠT ĐỘNG CỦA BÀN TAY

SỬ DỤNG WEBCAM CỦA LAPTOP

Tuyên Quang, 2023

Trang 2

TRƯỜNG ĐẠI HỌC TÂN TRÀO

KHOA KHOA HỌC CƠ BẢN

KHÓA LUẬN TỐT NGHIỆP

TÊN ĐỀ TÀI: NGHIÊN CỨU, PHÁT TRIỂN ỨNG DỤNG NHẬN DẠNG HOẠT ĐỘNG CỦA BÀN TAY

SỬ DỤNG WEBCAM CỦA LAPTOP

Người thực hiện: BÀN VĂN BẰNG Khóa: 2020-2024

Ngành: CÔNG NGHỆ THÔNG TIN Người hướng dẫn: TS LÊ VĂN HÙNG

Xác nhận của GV hướng dẫn

(Ký, ghi rõ họ tên)

Tuyên Quang, 2023

Trang 3

i

LỜI CAM ĐOAN

Tôi xin cam đoan luận văn mang đề tài “Nghiên cứu, phát triển ứng dụng nhận dạng hoạt động của bàn tay sử dụng Webcam Laptop” là công trình nghiên cứu của tôi và được hoàn thành dưới sự hướng dẫn của giảng viên TS Lê Văn Hùng

Toàn bộ số liệu trong bài luận văn đều được thu thập và sử dụng một cách trung thực cũng như trích dẫn đầy đủ tên các tác giả, các công trình nghiên cứu Kết quả nghiên cứu được hoàn thành trong bài luận văn không hề sao chép từ bất cứ một công trình nghiên cứu hay từ một luận văn nào khác đã từng được công bố ở bất cứ nơi nào khác trước đây

Tuyên Quang, tháng 12 năm 2023

Sinh viên thực hiện

Bàn Văn Bằng

Trang 4

ii

MỤC LỤC

MỞ ĐẦU 1

1.Lý do chọn đề tài 1

2.Mục tiêu nghiên cứu 3

3.Đối tượng nghiên cứu 3

4.Phạm vi nghiên cứu 3

5.Phương pháp nghiên cứu 3

NỘI DUNG 4

Chương 1 TỔNG QUAN VỀ NHẬN DẠNG HOẠT ĐỘNG BÀN TAY 4

1.1.TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI NƯỚC 4

1.1.1 Nghiên cứu trong nước 4

1.1.2 Nghiên cứu ngoài nước 5

1.2.NHẬN DẠNG HOẠT ĐỘNG BÀN TAY 5

1.2.1 Mô tả bàn tay người 7

1.2.2 Hoạt động của bàn tay 7

1.2.3 Một số ứng dụng của nhận dạng hoạt động bàn tay 8

1.3 MÔ HÌNH NHẬN DẠNG HOẠT ĐỘNG BÀN TAY 11

1.4 MỘT SỐ KHÁI NIỆM CƠ BẢN CỦA HỌC MÁY 16

1.4.1 Học có giám sát và học không giám sát 16

1.4.2 Học quá khớp, học chưa khớp và học vừa khớp 18

1.5 HỌC SÂU (DEEP LEARNING) 20

1.6 CÁC ĐỘ ĐO ĐÁNH GIÁ MÔ HÌNH 21

Chương 2 NHẬN DẠNG HOẠT ĐỘNG BÀN TAY SỬ DỤNG WEBCAM LAPTOP 23

Trang 5

3.3 KẾT QUẢ NGHIÊN CỨU 49

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 54

Danh mục tài liệu tham khảo: 55

Trang 6

iv

DANH MỤC CÁC BẢNG

Bảng 1.1: Ví dụ về ma trận nhầm lẫn 22

Bảng 3.1: Các tham số tính toán độ đo đánh giá 43

Bảng 3.2: Kết quả các độ đo đánh giá 49

DANH MỤC HÌNH ẢNH Hình 1: Minh họa về giao diện người - máy 1

Hình 2: Điều khiển thiết bị qua giọng nói trong nhà thông minh 1

Hình 3: Điều khiển TV bằng cử chỉ tay 2

Hình 1.1: Sơ đồ nhận dạng hoạt động bàn tay 6

Hình 1.2: Cấu trúc xương và mô hình học của bàn tay 7

Hình 1.3: Minh họa sử dụng hoạt động tay trong thực tế ảo 8

Hình 1.4: Minh họa về dùng các hoạt động tay để điều khiển robot 9

Hình 1.5: Minh họa điều khiển máy tính bằng cử chỉ tay 10

Hình 1.6: Minh họa về sử dụng cử chỉ tay trong y học 10

Hình 2.2: Mô hình hoạt động của MediaPipe Hands 24

Hình 2.3: Các điểm khớp ngón tay nhận diện bởi Mediapipe 25

Hình 2.4: Mô tả siêu phẳng trong SVM 26

Hình 2.5: Điểm dữ liệu có thể phân tách tuyến tính 26

Hình 2.6: Nhiều siêu phẳng phân tách dữ liệu từ hai lớp 27

Hình 2.7: Chọn siêu phẳng cho dữ liệu có ngoại lệ 27

Trang 7

v

Hình 2.8: Siêu phẳng được tối ưu hóa nhất 28

Hình 2.9: Tập dữ liệu 1D gốc để phân loại 28

Hình 2.10: Ánh xạ dữ liệu 1D sang 2D để có thể tách hai lớp 29

Hình 2.11: Sơ đồ biểu diễn các cây quyết định trong random forest 32

Hình 2.12: Mô hình thuật toán Random Forest 33

Hình 2.13: Mô tả phương pháp lấy mẫu bootstrap 34

Hình 2.14: Tổng quan về quá trình hoạt động của Mediapipe Hand 36

Hình 2.15: Sơ đồ tổng quát nhận dạng hoạt động bàn tay 39

Hình 2.16: Xác định các mốc bàn tay bằng MediaPipe Hands 41

Hình 2.17: Minh họa kết quả nhận dạng hoạt động 42

Hình 3.1: Các hoạt động bàn tay được thu thập hình ảnh để huấn luyện nhận dạng trong đề tài 46

Hình 3.2: Các thư mục hình ảnh có tên nhãn là tên hoạt động bàn tay 47

Hình 3.3: Ma trận tạo ra từ dữ liệu file CSV 48

Hình 3.4: Ma trận nhần lẫn khi mô hình huấn luyện với SVM 50

Hình 3.5: Ma trận nhần lẫn khi mô hình huấn luyện với Random Forest 51

Hình 3.6: Hình ảnh nhận dạng hoạt động bàn tay người thứ nhất 52

Hình 3.7: Hình ảnh nhận dạng hoạt động bàn tay người thứ hai 52

Hình 3.8: Hình ảnh nhận dạng hoạt động bàn người thứ ba 53

Hình 3.9: Hình ảnh nhận dạng hoạt động bàn tay người thứ tư 53

Trang 8

vi

DANH MỤC TỪ VIẾT TẮT

Từ viết tắt Nghĩa Tiếng Anh Nghĩa Tiếng Việt

CNN Convolutional Neural Network Mạng nơ-ron tích chập

CT Computerized Tomography Chụp cắt lớp vi tính MRI Magnetic Resonance Imaging Chụp cộng hưởng từ ANN Artificial Neural Network Mạng nơ-ron nhân tạo

SVM Support Vector Machines Máy vector hỗ trợ

MEM Maximum Entropy Model Mô hình cực đại hóa Entropy

Trang 9

1

MỞ ĐẦU 1 Lý do chọn đề tài

Ngày nay, tự động hóa đã và đang dần thay thế các hoạt động của con người trong nhiều lĩnh vực Với các yêu cầu thiết kế đòi hỏi độ chính xác cao, nhiều hệ thống đã có thể giúp con người tiếp cận đến những nơi mà tưởng chừng con người không đến được Điều này thách thức một giao diện người - máy không những phải đạt hiệu quả cao về sự thông hiểu nhau mà còn phải đạt tốc độ xử lý nhanh chóng

Hình 1: Minh họa về giao diện người – máy [39]

Giao diện người - máy cơ bản nhất được sử dụng thông qua bàn phím và chuột bị giới hạn bởi khoảng cách giữa người dùng với đối tượng cần tương tác [33] Một số tương tác qua giọng nói đã đem lại nhiều tiện ích cho người dùng như điều khiển thiết bị thông qua giọng nói trong ngôi nhà thông minh [35], các vấn đề nhận dạng đối tượng cần thiết trong an ninh [22]

Hình 2: Điều khiển thiết bị qua giọng nói trong nhà thông minh [4]

Trang 10

2

Tuy nhiên, các giao diện này bị giới hạn bởi các đặc trưng giọng nói theo vùng miền, từ đó dẫn đến việc thiết kế hệ thống phức tạp và khó được sử dụng phổ biến [14], hoặc cũng bị hạn chế do môi trường ồn ào, âm thanh nhiễu loạn Nhận dạng hoạt động bàn tay là phương pháp để xây dựng giao diện người dùng thân thiện giữa máy và người sử dụng Trong tương lai gần, công nghệ nhận dạng hoạt động bàn tay cho phép các máy phức hợp và các thiết bị thông minh hoạt động dựa trên tư thế bàn tay, ngón tay và sự di chuyển của bàn tay, loại bỏ việc giao tiếp vật lý giữa người và máy Ngày nay, với sự phát triển của các thư viện mã nguồn mở trong lĩnh vực thị giác máy tính đã cho phép thiết kế các ứng dụng nhận dạng hoạt động bàn tay dễ dàng hơn và có thể áp dụng các ứng dụng này rộng rãi vào nhiều lĩnh vực như nhận dạng ngôn ngữ cử chỉ [34], điều khiển robot [18], thực tế ảo [43], điều khiển các thiết bị trong nhà [20] và các ứng dụng giải trí [28]

Hình 3: Điều khiển TV bằng cử chỉ tay [13]

Đây là một lĩnh vực được nhiều nhà nghiên cứu và ngành công nghiệp đang quan tâm, nó cho phép con người tương tác với máy dễ dàng và thuận tiện hơn Vì vậy bài khóa luận này đã lựa chọn đề tài nghiên cứu ứng dụng nhận dạng dạng hoạt động bàn tay người sử dụng webcam laptop

Trang 11

3

2 Mục tiêu nghiên cứu

- Nghiên cứu các phương pháp nhận dạng hoạt động bàn tay

- Phát triển, ứng dụng nhận dạng hoạt động của bàn tay từ các dữ liệu hình ảnh thu được từ Webcam Laptop

3 Đối tượng nghiên cứu

- Bàn tay và hoạt động của bàn tay

- Phương pháp nhận dạng hoạt động của bàn tay

4 Phạm vi nghiên cứu

Nghiên cứu phương pháp nhận dạng hoạt động bàn tay dựa trên các phương pháp học máy

5 Phương pháp nghiên cứu

- Nghiên cứu tài liệu về hoạt động của bàn tay

- Nghiên cứu tài liệu về nhận dạng hoạt động của bàn tay - Nghiên cứu thực nghiệm nhận dạng hoạt động của bàn tay

Trang 12

4

NỘI DUNG

Chương 1 TỔNG QUAN VỀ NHẬN DẠNG HOẠT ĐỘNG BÀN TAY

1.1 TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI NƯỚC

1.1.1 Nghiên cứu trong nước

Các bài toán trong lĩnh vực trí tuệ nhân tạo, đặc biệt phát triển trong lĩnh vực thị giác máy tính đã được quan tâm của nhiều nhà khoa học trong nước, tại các cở sở giáo dục đào tạo, các viện nghiên cứu trong nước Một số bài toán liên quan đến nhận dạng hoạt động bàn tay:

TS Trần Nguyên Ngọc cùng các cộng sự của Khoa Công nghệ thông tin, Học viện Kỹ thuật Quân sự đã triển khai nghiên cứu đề tài “Nghiên cứu phát triển kỹ thuật nhận dạng cử động của bàn tay người theo thời gian thực” [9] Đề tài do TS Trần Nguyên Ngọc chủ nhiệm, mã số KC01.TN08/11-15 thuộc chương trình “Nghiên cứu ứng dụng và phát triển công nghệ Thông tin và Truyền thông” đã nghiên cứu thành công kỹ thuật nhận dạng cử động của bàn tay người theo thời gian thực để ứng dụng trong công nghiệp quốc phòng, điều khiển robot, phát triển dạng sản phẩm tích hợp Nhóm đã nghiên cứu phát hiện bàn tay trong chuỗi hình ảnh thu được từ camera và cảm biến khoảng cách; nghiên cứu phát hiện quỹ đạo và bám chuyển động của bàn tay theo thời gian thực; nghiên cứu giải pháp nhận dạng, phân biệt các cử động khác nhau của tay người; nghiên cứu giải pháp chuyển đổi kết quả nhận dạng thành các tín hiệu điều khiển thiết bị; xây dựng phần mềm hỗ trợ tương tác với máy tính thông qua cử động ra hiệu bằng tay Sau đó học máy được áp dụng trong các bài toán nhận dạng hoạt động bàn tay Phạm Minh Lộc cùng cộng sự [8] đã thực hiện nghiên cứu ứng dụng học máy để nhận dạng tư thế bàn tay từ một chuỗi ảnh chiều sâu Lê Minh Thành và cộng sự [11] thiết lập một mạng nơ-ron 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 phải, với đối tượng đầu vào là các ảnh tĩnh thu được từ camera điện thoại Nguyễn Sinh Huy và cộng sự [26] đề xuất một mô hình sâu mới để ước tính tư thế tay 2D chính xác

Trang 13

5

kết hợp HOPE-Net, ước tính tư thế tay và Mask R-CNN, cung cấp khả năng phát hiện và phân đoạn tay để định vị bàn tay trong hình ảnh

1.1.2 Nghiên cứu ngoài nước

Đã có nhiều nghiên cứu về nhận dạng hoạt động bàn tay như: Bardia Doosti và các cộng sự [21] đã thực hiện cuộc khảo sát về nhận dạng hoạt động bàn tay Nhóm tác giả Shan-Chien Hsiao và cộng sự [19], đã thực hiện nghiên cứu ước tính hoạt động tay dựa trên các điểm chính trên khung bàn tay 2D, mục đích ước tính hoạt động bàn tay sử dụng ít tham số hơn so với các mô hình truyền thống Jungpil Shin và các cộng sự [38] đã thực hiện một nghiên cứu nhận dạng hoạt động tay dựa trên học sâu (deep learning) từ hình ảnh 2D, nghiên cứu sử dụng mạng nơ-ron tích chập (CNN - Convolutional Neural Network) để phát hiện cử chỉ bàn tay 2D dựa trên các khớp bàn tay và đầu ngón tay

1.2 NHẬN DẠNG HOẠT ĐỘNG BÀN TAY

Những thiết bị đầu vào và đầu ra được thiết kế trong những năm qua với mục đích giao tiếp giữa con người và máy tính được thực hiện một cách dễ dàng Hai thiết bị phổ biến nhất được biết đến là bàn phím và chuột

Ý tưởng để làm cho máy tính hiểu được các ngôn ngữ giao tiếp của con người và phát triển giao diện người - máy thân thiện đang nhận được sự quan tâm của cộng đồng các nhà nghiên cứu Làm cho máy tính hiểu được lời nói, nét mặt, cử chỉ của con người là một trong những quan tâm đó Trong tương tác người - máy, các hình dạng khác nhau của bàn tay có thể giả định để giao tiếp với các đối tượng hoặc truyền tải rất nhiều thông tin Do đó, bàn tay của con người có thể sử dụng làm “thiết bị đầu vào” rất có giá trị

Trong thế giới thực, chúng ta có thể cầm, thả, di chuyển…các đối tượng bằng các cử chỉ của bàn tay Tương tự như vậy, khi tương tác với các thiết bị như máy tính, tivi, ô tô… chỉ với vài cử chỉ của bàn tay là ta có thể điều khiển được hoạt động của nó Ví dụ như chỉ cần phẩy tay là có thể chuyển kênh tivi, hay bật/ tắt radio trên ô tô… thay vì phải tự tay bấm nút trên bộ điều khiển Để

Trang 14

6

làm được điều này, bộ điều khiển của các thiết bị phải được gắn một thiết bị cảm nhận (camera/webcam), thiết bị cảm nhận này sẽ thu nhận hình ảnh của bàn tay, nhận dạng cử chỉ để phát lệnh điều khiển tương ứng Ngoài ra, nhận dạng hoạt động bàn tay còn có rất nhiều ứng dụng khác: hoạt động bàn tay được sử dụng đề giả lập các thao tác tương tác với đối tượng trong thể giới ảo; trong tương tác giữa người và robot, cử chỉ bàn tay chính là ngôn ngữ đề con người và robot có thể giao tiếp với nhau

Để nhận dạng hoạt động bàn tay, bước đầu tiên trong các hệ thống nhận dạng là có một thiết bị ghi nhận hình ảnh về bàn tay, các hình ảnh sẽ được tiến hành phát hiện vị trí bàn tay qua thiết bị cảm nhận hoặc các phương pháp phát hiện bàn tay để thu thập các quan sát cần cho việc phân loại hay miêu tả sau đó tiến hành xử lý hình ảnh, trích chọn đặc trưng feature extraction) để tính toán các thông tin đưới dạng số hay dạng biểu tượng (synbolic) từ các dữ liệu quan sát và thực hiện Công việc phân loại dựa vào các đặc tính đã được trích chọn để nhận dạng hoạt động bàn tay Đó chính là nhiệm vụ của bài toán nhận dạng hoạt động của bàn tay Các hoạt động của bàn tay được nhận dạng dựa trên tập dữ liệu về bàn tay được thu thập từ trước

Hình 1.1: Sơ đồ nhận dạng hoạt động bàn tay

Trang 15

7

1.2.1 Mô tả bàn tay người

Mô hình xương bàn tay người có cấu trúc như sau [15]: bàn tay con người gồm 27 xương, trong đó có 8 xương ở cổ tay và 19 xương cho lòng bàn tay và ngón tay Các xương này được kết nối với nhau bởi các khớp nối có một hay nhiều bậc tự do Hình 1.2 biểu diễn mô hình xương bàn tay và biểu diễn các khớp nối cùng số bậc tự do tương ứng tạo thành tổng cộng 26 bậc tự do Trong đó cổ tay có 6 bậc tự do với 3 bậc tự do cho chuyển động tịnh tiến trong không gian và 3 bậc tự do cho chuyển động xoay quanh các trục Năm ngón tay, mỗi ngón có 4 bậc tự do với 2 bậc cho khớp gốc ngón tay (gập/ngửa và khép/mở) và 1 bậc cho mỗi khớp còn lại

Hình 1.2: Cấu trúc xương và mô hình học của bàn tay [5]

1.2.2 Hoạt động của bàn tay

Một hoạt động của bàn tay là một chuỗi chuyển động và hình dạng các bộ phận trên bàn tay bao gồm các ngón tay, lòng bàn tay và cổ tay Khi thực hiện một hoạt động các bộ phận đó sẽ tạo thành một hình dạng và một chuyển động nhất định Từ những đặc điểm đó sẽ tập trung đánh dấu các điểm đặc trưng và

Trang 16

8

so sánh chúng với các đặc trưng của hoạt động được mô tả trong mô hình huấn luyện và đưa ra kết quả về nhãn của hoạt động Ví dụ, khi thực hiện động tác “vẫy tay” các ngón tay mở tự nhiên và di chuyển bàn tay qua lại Khi thực hiện động tác “nắm tay” các ngón tay sẽ cụm lại thành hình nắm đấm Sau đó các trích xuất các điểm đặc trưng và đưa ra so sánh, nếu giống với mô tả “vẫy tay” hoặc “nắm tay” trong mô hình huấn luyện thì sẽ đưa ra kết quả cho hoạt động đó

1.2.3 Một số ứng dụng của nhận dạng hoạt động bàn tay  Ứng dụng trong thực tế ảo:

Thực tế ảo (tiếng Anh là virtual reality, viết tắt là VR) là cụm từ dùng để miêu tả một không gian ba chiều được dựng lên bởi máy tính Khi bước vào không gian ảo này, con người sẽ hòa mình vào môi trường xung quanh, có thể tự do tương tác và khám phá, có thể điều khiển vật dụng hoặc thậm chí thực hiện hàng loạt các hành động phức tạp như thể đang ở ngoài đời thật Đây là một hệ thống giao diện cấp cao giữa người sử dụng và máy tính Hệ thống này mô phỏng các sự vật và hiện tượng theo thời gian thực và tương tác với người sử dụng qua tổng hợp các kênh cảm giác

Hình 1.3: Minh họa sử dụng hoạt động tay trong thực tế ảo [16]

Trang 17

9

Tương tác thực tế ảo sử dụng hoạt động bàn tay cho phép các đối tượng thực sử dụng các cử chỉ bàn tay cho các tương tác 3D [37] hoặc 2D mô phỏng 3D [23] Ưu điểm lớn nhất của việc sử dụng bàn tay để tương tác trong môi trường thực tế ảo nằm ở việc các thao tác tay là hoàn toàn tự nhiên, bởi lẽ đây là bản năng của con người Do đó, bất cứ ai cũng có thể sử dụng công nghệ này một cách dễ dàng

 Ứng dụng trong điều khiển robot:

Các cử chỉ hoạt động bàn tay được sử dụng để tương tác và điều khiển robot hoàn toàn tương tự như các tương tác trong thực tế ảo, và được vận hành bằng cách cung cấp dữ liệu video từ máy ảnh nằm trên robot [25] Tại đây, hoạt động bàn tay có thể điều khiển bàn tay và chuyển động cánh tay của robot để tiếp cận và thao tác với các đối tượng thực, cũng như chuyển động của robot trong thế giới thực

Hình 1.4: Minh họa về dùng các hoạt động tay để điều khiển robot [36]  Điều khiển máy tính:

Trong các ứng dụng máy tính, hoạt động cử chỉ bàn tay có thể cung cấp một sự tương tác thay thế cho chuột và bàn phím [40] Nhiều hoạt động cho các tác vụ máy tính để bàn liên quan đến thao tác đồ họa, hoặc chú thích và chỉnh sửa các tài liệu dựa trên cử chỉ [17] Người dùng có thể sử dụng giọng nói, cử chỉ tay để điều khiển máy tính, trình chiếu powerpoint và các thiết bị khác như smart tivi, …

Trang 18

Hình 1.6: Minh họa về sử dụng cử chỉ tay trong y học [30]

Trang 19

11

 Ứng dụng trong ngôn ngữ ký hiệu:

Ngôn ngữ cử chỉ là một trường hợp quan trọng của cử chỉ giao tiếp Sử dụng cử chỉ là một cách hiệu quả giúp người khuyết tật có thể giao tiếp với nhau cũng như giao tiếp với máy tính một cách hiệu quả

Trang 20

 Tiền xử lý:

Tiền xử lý là nhiệm vụ quan trọng trong hệ thống nhận dạng hoạt động bàn tay Mục đích cơ bản của giai đoạn này là tối ưu hình ảnh thu được từ giai đoạn trước để chuẩn bị trích xuất các đặc trưng trong giai đoạn tiếp theo Chất lượng hình ảnh thu được phụ thuộc vào điều kiện sáng và và chất lượng của thiết bị ghi hình Một hình ảnh chất lượng thấp sẽ ảnh hưởng tới độ chính xác của hệ thống Vì vậy, tiền xử lý ảnh là bắt buộc để nâng cao chất lượng ảnh đồng thời cải thiện độ chính xác của hệ thống được đề xuất Từ hình ảnh thu nhận được ở dữ liệu vào ta có thể thực hiện xử lý ảnh cơ bản như: căn chỉnh ảnh, chuẩn hóa ánh sáng, loại bỏ nhiễu, phân đoạn ảnh, lọc màu da,

Trang 21

Hình 1.10: Ví dụ chuyển ảnh RGB sang nhị phân [34]

 Lọc nhiễu: Trong ảnh nhị phân, có thể có một số giá trị 0 trong vùng tay và có một số giá trị 1 trong khu vực nền Khi đó, nền có những số 1 được biết đến như nhiễu xung quanh và cử chỉ tay có một vài số 0 được biết đến như nhiễu cử chỉ Những nhiễu này có thể dẫn đến một vấn đề trong việc phát hiện đường viền của cử chỉ tay vì vậy cần phải loại bỏ các nhiễu này

Trang 22

14

Hình 1.11: Ví dụ về lọc nhiễu [34]

 Phân đoạn ảnh: Phân đoạn ảnh là thực hiện việc phân vùng ảnh thành các vùng rời rạc và đồng nhất với nhau hay nói cách khác là xác định các biên của các vùng ảnh đó Các vùng ảnh đồng nhất này thông thường sẽ tương ứng với toàn bộ hay từng phần của các đối tượng thật sự bên trong ảnh Như vậy, mục tiêu của phân đoạn ảnh là làm nổi bật hoặc tách hẳn đối tượng cần quan tâm ra từ ảnh ban đầu, làm đơn giản hóa và thay đổi cách biểu diễn để dễ dàng phân tích hơn

 Trích chọn đặc trưng:

Một hình ảnh kỹ thuật số có thể chứa một lượng lớn dữ liệu, đặc biệt là đối với ảnh có chất lượng tốt, hình ảnh chuyên nghiệp Vì vậy, để thao tác trên một hình ảnh hiệu quả, cần giảm bớt lượng dữ liệu phải xử lý Cách tốt nhất để giải quyết vấn đề này là trích xuất các đặc điểm quan trọng nhất của một hình ảnh mà có thể đại diện cho toàn bộ hình ảnh Những đặc điểm này được gọi là các đặc trưng hình ảnh Như vậy, trích chọn đặc trưng là chiết xuất thông tin từ dữ liệu thô mà nó phù hợp nhất cho mục đích nhận dạng để giảm thiểu các biến thể trong một lớp và tối đa hóa các biến thể giữa các lớp khác nhau

Trang 23

15

Trong giai đoạn trích chọn đặc trưng, mỗi đối tượng được đại diện bởi một véc tơ đặc trưng Mục tiêu chủ yếu của trích chọn đặc trưng là trích xuất một tập hợp các đặc trưng, trong đó có thể tối đa hóa tỷ lệ nhận dạng với sự nhầm lẫn nhỏ nhất Các đặc điểm của đối tượng được trích chọn tuỳ theo mục đích nhận dạng trong quá trình xử lý ảnh Có thể nêu ra một số đặc điểm của ảnh sau đây:

Đặc điểm không gian: Phân bố mức xám, biên độ, điểm uốn… Các đặc

điểm loại này thường được trích chọn bằng việc áp dụng phép biến đổi Like,… trên ảnh

Haar- Đặc điểm biến đổi: Đặc điểm biến đổi như hình dáng bàn tay Các đặc

điểm loại này được trích chọn bằng việc áp dụng bộ lọc Gabor lên ảnh

Đặc điểm biên và đường biên: Đặc trưng cho đường biên của đối tượng

rất hữu ích trong việc trích chọn các thuộc tính bất biến được dùng khi nhận dạng đối tượng Các đặc điểm này có thể được trích chọn nhờ toán tử Gradient, toán tử la bàn, toán tử Laplace,…

Việc trích chọn hiệu quả các đặc điểm giúp cho việc nhận dạng các đối tượng ảnh chính xác, với tốc độ tính toán cao và dung lượng nhớ lưu trữ giảm xuống [7]

 Huấn luyện hệ thống theo phương pháp học máy truyền thống:

Dựa trên các thông số sau khi trích chọn đặc trưng từ các dữ liệu, có thể sử dụng các phương pháp học máy như: mạng nơ-ron nhân tạo (Artificial Neural Network- ANN), Mô hình Markov ẩn (Hidden Markov Model - HMM), máy vector hỗ trợ (Support Vector Machines - SVM), mô hình cực đại hóa Entropy (Maximum Entropy Model - MEM),… để huấn luyện tập dữ liệu, đồng thời sử sụng các phương pháp đánh giá chất lượng của tập dữ liệu Kết quả thu được là cơ sở dữ liệu đã được phân lớp

Trang 24

16

 Cơ sở dữ liệu đã phân lớp:

Tập dữ liệu đạt chất lượng cao đã được huấn luyện và đánh giá ở bước huấn luyện hệ thống

 Nhận dạng hoạt động bàn tay:

Thực hiện việc so khớp giữa các véc tơ đặc trưng được trích chọn ở dữ liệu người dùng với các đặc trưng đã được huấn luyện và đánh giá (trong CSDL đã phân lớp) ở tập dữ liệu mẫu để đưa ra kết quả cho nhận dạng hoạt động bàn tay 1.4 MỘT SỐ KHÁI NIỆM CƠ BẢN CỦA HỌC MÁY

1.4.1 Học có giám sát và học không giám sát

Theo phương thức học, các thuật toán Machine Learning thường được chia làm 4 nhóm: Học có giám sát (Supervised learning), Học không giám sát (Unsupervised learning), học bán giám sát (Semi-supervised learning) và học củng cố (Reinforcement learning) [1] Trong đó phương pháp học có giám sát và không giám sát là phổ biến hơn cả

 Học có giám sát (Supervised learning)

Supervised learning là thuật toán dự đoán đầu ra (outcome) của một dữ liệu mới (new input) dựa trên các cặp (input, outcome) đã biết từ trước Cặp dữ liệu này còn được gọi là (data, label), tức (dữ liệu, nhãn) Supervised learning là nhóm phổ biến nhất trong các thuật toán Machine Learning [1]

Một cách toán học, Supervised learning là khi chúng ra có một tập hợp biến đầu vào 𝑋 = {𝑥1, 𝑥2, … , 𝑥𝑁} và một tập hợp nhãn tương ứng 𝑌 = {𝑌1, 𝑌2, … , 𝑌𝑁} trong đó 𝑥𝑖, 𝑦𝑖 là các vector Các cặp dữ liệu biết trước (𝑥𝑖, 𝑦𝑖) được gọi là tập training data (dữ liệu huấn luyện) Từ tập training data này, chúng ta cần tạo ra một hàm số ánh xạ mỗi phần tử từ tập 𝑋 sang một phần tử (xấp xỉ) tương ứng của tập 𝑌:

𝑌𝑖 ≈ 𝑓(𝑥𝑖), ∀𝑖 = 1,2, … , 𝑁

Trang 25

Thuật toán dò các khuôn mặt trong một bức ảnh đã được phát triển từ rất lâu Thời gian đầu, facebook sử dụng thuật toán này để chỉ ra các khuôn mặt

trong một bức ảnh và yêu cầu người dùng tag friends - tức gán nhãn cho mỗi khuôn mặt Số lượng cặp dữ liệu (khuôn mặt, tên người) càng lớn, độ chính xác ở những lần tự động tag tiếp theo sẽ càng lớn Bản thân thuật toán dò tìm các

khuôn mặt trong 1 bức ảnh cũng là một thuật toán Supervised learning với

training data (dữ liệu học) là hàng ngàn cặp (ảnh, mặt người) và (ảnh, không

phải mặt người) được đưa vào Chú ý là dữ liệu này chỉ phân biệt mặt người và không phải mặt người mà không phân biệt khuôn mặt của những người khác

Regression (Hồi quy): Nếu nhãn không được chia thành các nhóm mà là

một giá trị thực cụ thể thì bài toán sẽ đưa về dạng regression Ví dụ: một căn nhà rộng x m2, có y phòng ngủ và cách trung tâm thành phố z km sẽ có giá là bao nhiêu?

Trang 26

18

 Học không giám sát (Unsupervised learning)

Trong thuật toán này, chúng ta không biết được outcome hay nhãn mà chỉ có dữ liệu đầu vào Thuật toán unsupervised learning sẽ dựa vào cấu trúc của dữ liệu để thực hiện một công việc nào đó, ví dụ như phân nhóm (clustering) hoặc giảm số chiều của dữ liệu (dimension reduction) để thuận tiện trong việc lưu trữ và tính toán Một cách toán học, Unsupervised learning là khi chúng ta chỉ có dữ liệu vào X mà không biết nhãn Y tương ứng Những thuật toán loại này được gọi là Unsupervised learning vì không giống như Supervised learning, chúng ta không biết câu trả lời chính xác cho mỗi dữ liệu đầu vào [1] Giống như khi ta học, không có thầy cô giáo nào chỉ cho ta biết đó là chữ A hay chữ B Cụm không giám sát được đặt tên theo nghĩa này

Các bài toán Unsupervised learning được tiếp tục chia nhỏ thành hai loại:  Clustering (phân nhóm): Một bài toán phân nhóm toàn bộ dữ liệu X thành các nhóm nhỏ dựa trên sự liên quan giữa các dữ liệu trong mỗi nhóm Ví dụ: phân nhóm khách hàng dựa trên hành vi mua hàng Điều này cũng giống như việc ta đưa cho một đứa trẻ rất nhiều mảnh ghép với các hình thù và màu sắc khác nhau, ví dụ tam giác, vuông, tròn với màu xanh và đỏ, sau đó yêu cầu trẻ phân chúng thành từng nhóm Mặc dù không cho trẻ biết mảnh nào tương ứng với hình nào hoặc màu nào, nhiều khả năng chúng vẫn có thể phân loại các mảnh ghép theo màu hoặc hình dạng

 Association: Là bài toán khi chúng ta muốn khám phá ra một quy luật dựa trên nhiều dữ liệu cho trước Ví dụ: những khách hàng nam mua quần áo thường có xu hướng mua thêm đồng hồ hoặc thắt lưng; những khán giả xem phim Spider Man thường có xu hướng xem thêm phim Bat Man, dựa vào đó tạo ra một hệ thống gợi ý khách hàng (Recommendation System)

1.4.2 Học quá khớp, học chưa khớp và học vừa khớp

Mô hình sau khi huấn luyện có thể đạt hiệu quả không tốt khi dự đoán với một dữ liệu mới Chuyện này xảy ra là do mô hình chưa tổng quát hoá được

Trang 27

19

với toàn bộ tập dữ liệu Nguyên nhân cũng khá dễ hiểu khi mà tập huấn luyện chỉ là một tập nhỏ chưa thể đại diện cho toàn thể dữ liệu được và hơn nữa có thể nó còn bị nhiễu Có thể chia nguyên nhân ra làm 2 loại chính là chưa khớp hoặc quá khớp [1]

Hình 1.12: Hình biểu diễn mô hình học chưa khớp (bên trái), học vừa khớp (ở giữa) và học quá khớp (bên phải)

 Học quá khớp (Overfitting):

Học quá khớp đại diện cho việc mô hình rất khớp với tập huấn luyện nhưng khi đem ra dự đoán với dữ liệu mới thì lại không phù hợp Nguyên nhân có thể do chưa đủ dữ liệu để đánh giá hoặc do mô hình của ta quá phức tạp Mô hình bị quá phức tạp khi mà mô hình của ta sử dụng cả những nhiễu lớn trong tập dữ liệu để học, dấn tới mất tính tổng quát của mô hình Ví dụ như ở hình 1 phía bên phải ở trên Mô hình của ta gần như mong muốn bao được hết tất cả các điểm làm cho biên độ dao động của nó lớn quá mức Mô hình này mà dự đoán với 1 giá trị mới của x thì khả năng y sẽ bị lệch đi rất nhiều

 Học chưa khớp (Underfitting):

Mô hình được coi là chưa khớp nếu nó chưa được chưa phù hợp với tập dữ liệu huấn luyện và cả các mẫu mới khi dự đoán Nguyên nhân có thể là do mô hình chưa đủ độ phức tạp cần thiết để bao quát được tập dữ liệu Ví dụ như hình 1 phía bên trái ở trên Tập dữ liệu huấn luyện loanh quanh khúc y = sin(2πx)

Trang 28

20

thế nhưng mô hình của ta chỉ là một đường thẳng mà thôi Rõ ràng như vậy thì nó không những không thể ước lượng được giá trị của y với x mới mà còn không hiệu quả với cả tập dữ liệu (x, y) có sẵn

 Học vừa khớp (Goodfitting)

Mô hình này nằm giữa 2 mô hình chưa khớp và quá khớp cho ra kết quả hợp lý với cả tập dữ liệu huấn luyện và các giá trị mới Lý tưởng nhất là khớp được với nhiều dữ liệu mẫu và cả các dữ liệu mới Tuy nhiên trên thực tế được mô hình như vậy rất hiếm

1.5 HỌC SÂU (DEEP LEARNING)

Học sâu (Deep Learning) là một lĩnh vực trong trí tuệ nhân tạo mà mục tiêu chính là xây dựng và đào tạo các mạng thần kinh nhân tạo sâu (hay còn gọi là mạng neural sâu) để tự động học và hiểu dữ liệu đầu vào, từ đó suy luận đầu ra tốt nhất [29] Học sâu là một phần quan trọng của máy học (machine learning) và nó tập trung vào việc sử dụng các mô hình mạng nơ-ron sâu để giải quyết các nhiệm vụ phức tạp, như nhận dạng hình ảnh, nhận dạng video, xử lý ngôn ngữ tự nhiên, tự động lái xe, và nhiều ứng dụng khác trong đời sống

Là một phần của học máy, học sâu giúp máy tính tự động học từ dữ liệu mẫu, cải thiện khả năng của chúng trong việc tự động phân loại, dự đoán, hiểu, và gieo thông tin Học sâu được thực hiện thông qua việc xây dựng các mạng nơ-ron sâu với nhiều tầng (layer) và hàng trăm hoặc hàng nghìn tham số để học và biểu diễn dữ liệu

Hình 1.13: Minh họa về mô hình hoạt động của Deep Learning [38]

Trang 29

21

Mạng nơ-ron là một tập hợp các nút (neurons) kết nối với nhau qua các trọng số Các nút này thường được tổ chức thành các lớp (layers) gồm lớp đầu vào (input layer), các lớp ẩn (hidden layers), và lớp đầu ra (output layer):

 Lớp đầu vào: Một mạng nơ-ron nhân tạo sẽ có một số nút để nhập dữ liệu đầu vào Các nút này tạo nên lớp đầu vào của hệ thống

 Lớp ẩn: Lớp đầu vào xử lý và chuyển dữ liệu đến các lớp sâu hơn trong mạng nơ-ron Các lớp ẩn này xử lý thông tin ở các cấp độ khác nhau, thích ứng với hành vi của mình khi nhận được thông tin mới Các mạng học sâu có hàng trăm lớp ẩn có thể được dùng để phân tích một vấn đề từ nhiều góc độ khác nhau Ví dụ nếu bạn phải phân loại hình ảnh của một loài vật chưa xác định, bạn sẽ cần so sánh hình ảnh này với các loài vật đã biết Chẳng hạn, bạn sẽ quan sát hình dáng của cặp mắt, đôi tai, kích thước, số chi và hình mẫu lông của loài vật đó Bạn sẽ cố gắng xác định các hình mẫu, chẳng hạn như loài vật có móng guốc nên nó có thể là bò hoặc hươu, loài vật có mắt mèo nên nó có thể là một loài mèo hoang dã nào đó Các lớp ẩn trong mạng nơ-ron chuyên sâu hoạt động theo cùng một cách Nếu một thuật toán học sâu đang cố gắng phân loại một hình ảnh động vật, mỗi lớp ẩn của thuật toán này sẽ xử lý một đặc điểm khác nhau của con vật và cố gắng phân loại chính xác nó

 Lớp đầu ra: Lớp đầu ra bao gồm các nút xuất dữ liệu Các mô hình học sâu xuất ra đáp án "có" hoặc "không" chỉ có hai nút trong lớp đầu ra Mặt khác, các mô hình xuất ra nhiều đáp án hơn sẽ có nhiều nút hơn

1.6 CÁC ĐỘ ĐO ĐÁNH GIÁ MÔ HÌNH

Một trong những độ đo đơn giản và thường được sử dụng trong các bài toán

phân lớp là độ chính xác (accuracy) Độ đo này đơn giản tính tỉ lệ giữa số điểm

được dự đoán đúng và tổng số điểm trong tập dữ liệu kiểm thử Ví dụ, nếu có 6 điểm dữ liệu được dự đoán đúng trên tổng số 10 điểm Vậy ta kết luận độ chính xác của mô hình là 0.6 (hay 60%)

Cách tính sử dụng độ chính xác như ở trên chỉ cho chúng ta biết được bao

Trang 30

22

nhiêu phần trăm lượng dữ liệu được phân loại đúng mà không chỉ ra được cụ thể mỗi loại được phân loại như thế nào, lớp nào được phân loại đúng nhiều nhất, và dữ liệu thuộc lớp nào thường bị phân loại nhầm vào lớp khác Để có thể đánh giá được các giá trị này, sử dụng một ma trận được gọi là ma trận nhầm

lẫn (confusion matrix)

Về cơ bản, ma trận nhầm lẫn thể hiện có bao nhiêu điểm dữ liệu thực sự

thuộc vào một lớp, và được dự đoán là rơi vào một lớp Để hiểu rõ hơn, hãy xem Bảng sau:

Bảng 1.1: Ví dụ về ma trận nhầm lẫn Tổng cộng 10 mẫu Dự đoán là 0 Dự đoán là

1

Dự đoán là 2

Chúng ta có thể suy ra ngay rằng tổng các phần tử trong toàn ma trận này chính là số điểm trong tập kiểm thử Các phần tử trên đường chéo của ma trận là số điểm được phân loại đúng của mỗi lớp dữ liệu Từ đây có thể suy ra độ chính xác chính bằng tổng các phần tử trên đường chéo chia cho tổng các phần

tử của toàn ma trận

Trang 31

 Cung cấp một giải pháp inference nhanh chóng: Google khẳng định rằng bộ công cụ này có thể chạy ổn định trên hầu hết các cấu hình phần cứng thông dụng

 Dễ dàng cài đặt và triển khai: Việc cài đặt cực kỳ dễ dàng và tiện lợi, có thể triển khai trên nhiều nền tảng khác nhau như Mobile (Android/iOS), Desktop/Cloud, Web và IoT devices

 Mã nguồn mở và miễn phí: Toàn bộ source code được công khai trên MediaPipe, người dùng hoàn toàn có thể sử dụng và tùy chỉnh trực tiếp để phù hợp với bài toán của mình

Hình 2.1: Logo MediaPipe

Các giải pháp được sử dụng trong MediaPipe bao gồm nhiều mục như phát hiện bàn tay, ước tính bàn tay, ước tính tư thế, nhận dạng khuôn mặt,…Trong đề tài này sử dụng Mediapipe Hands để khoanh vùng bàn tay và ước lượng vị trí các khớp bàn tay [44] MediaPipe sử dụng phân tích hồi quy để tính toán tọa độ ngón tay từ lòng bàn tay được phát hiện từ một khung hình duy nhất được thu từ máy ảnh hoặc thiết bị ghi hình, có thể ước lượng và thu được 21 tọa độ x, y và z trong không gian 3D Trong số tọa độ 3D đầu ra thu được, tọa độ X và Y được chuẩn hóa theo chiều rộng và chiều cao của hộp giới hạn Tọa độ Z

Trang 32

24

biểu thị thông tin độ sâu và giá trị của nó trở nên nhỏ hơn khi nó đến gần máy ảnh hơn và lớn hơn khi nó ở xa máy ảnh hơn, sử dụng vị trí cổ tay làm điểm gốc

Mediapipe Hands kết hợp hai mô hình (model) hoạt động phụ thuộc vào với nhau: Mô hình Palm Detection Model (phát hiện lòng bàn tay) để tìm vị trí của bàn tay và một mô hình Hand Landmark Model (mốc bàn tay) để định vị chính xác 21 tọa độ khớp ngón tay từ vị trí tìm được ở Palm Detection [44]

Hình 2.2: Mô hình hoạt động của MediaPipe Hands [27]

Ban đầu, mô hình Palm Detection đượ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 động trê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ểm chí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 Hand Landmark sử dụng đầu ra của Palm Detection để ước tính 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 33

25

Hình 2.3: Các điểm khớp ngón tay nhận diện bởi Mediapipe [44]

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ếp theo thực hiện định vị chính xác điểm chính của 21 tọa độ khớp tay 3D bên trong các 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 này học cách biểu diễn tư thế bàn tay bên trong nhất quán và mạnh mẽ ngay cả đối với bàn tay có thể nhìn thấy được một phần và khả năng tự che Để có thể ước tính chính xác được 21 điểm mốc bàn tay này, các nhà phát triển đã phải đánh dấu thủ công 30.000 hình ảnh trong thế giới thực với tọa độ 3D bằng cách sử dụng bản đồ độ sâu hình ảnh Để 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ám sát về bản chất của hình ảnh bàn tay, mô hình cũng kết xuất tổng hợp chất lượng cao trên nhiều nền khác nhau và ánh xạ nó tới các tọa độ 3D tương ứng

2.2 SVM (SUPPORT VECTOR MACHINE)

Máy vectơ hỗ trợ (Support Vector Machine) là một thuật toán học máy có giám sát được sử dụng cho phân loại dữ liệu [42] Mục tiêu chính của thuật toán SVM là tìm siêu phẳng tối ưu trong không gian N chiều có thể phân tách các điểm dữ liệu trong các lớp khác nhau trong không gian đặc trưng

Siêu phẳng cố gắng sao cho khoảng cách giữa các điểm gần nhất của các lớp khác nhau phải lớn nhất có thể Kích thước của siêu phẳng phụ thuộc vào số lượng đặc trưng Nếu số lượng đặc trưng đầu vào là hai thì siêu phẳng chỉ là

Ngày đăng: 15/05/2024, 23:10

Tài liệu cùng người dùng

Tài liệu liên quan