Tải bản đầy đủ (.pdf) (67 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.6 MB, 67 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

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

<b>KHOA KHOA HỌC CƠ BẢN </b>

<b>KHÓA LUẬN TỐT NGHIỆP </b>

<b>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 </b>

<b>SỬ DỤNG WEBCAM CỦA LAPTOP </b>

<b>Tuyên Quang, 2023 </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

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

<b>KHOA KHOA HỌC CƠ BẢN </b>

<b>KHÓA LUẬN TỐT NGHIỆP </b>

<b>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 </b>

<b>SỬ DỤNG WEBCAM CỦA LAPTOP </b>

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

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

<b>Xác nhận của GV hướng dẫn </b>

<i>(Ký, ghi rõ họ tên) </i>

<b>Tuyên Quang, 2023</b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

i

<b>LỜI CAM ĐOAN </b>

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 hồ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 hồ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

<b>Sinh viên thực hiện </b>

<b>Bàn Văn Bằng </b>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

ii

<b>MỤC LỤC </b>

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À NGỒ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

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

iv

<b>DANH MỤC CÁC BẢNG </b>

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 tốn độ đo đánh giá. ... 43

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

<b>DANH MỤC HÌNH ẢNH </b>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

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="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 tố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

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

vi

<b>DANH MỤC TỪ VIẾT TẮT </b>

<b>Từ viết tắt Nghĩa Tiếng Anh Nghĩa Tiếng Việt </b>

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 <sup>Mơ hình cực đại hóa </sup>Entropy

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

1

<b>MỞ ĐẦU 1. Lý do chọn đề tài </b>

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.

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

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]...

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

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="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].

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

Đâ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.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

3

<b>2. Mục tiêu nghiên cứu </b>

- 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.

<b>3. Đối tượng nghiên cứu </b>

- 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.

<b>4. Phạm vi nghiên cứu </b>

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.

<b>5. Phương pháp nghiên cứu </b>

- 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.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

4

<b>NỘI DUNG </b>

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

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

<b>1.1.1. Nghiên cứu trong nước </b>

Các bài tố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

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="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.

<b>1.1.2. Nghiên cứu ngồi nước </b>

Đã 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<small>,</small> 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. Để

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="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. Ngồ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 tố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 tố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.

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

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

7

<b>1.2.1. Mơ tả bàn tay người </b>

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.

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

<b>1.2.2. Hoạt động của bàn tay </b>

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à

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="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 đó.

<b>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: </b>

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.

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

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="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.

<b> Ứng dụng trong điều khiển robot: </b>

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.

<b>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: </b>

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, …

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<i> </i>

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

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

11

<b> Ứng dụng trong ngôn ngữ ký hiệu: </b>

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ả.

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<b> Tiền xử lý: </b>

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,..

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

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

 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.

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

14

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

 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.

<b> Trích chọn đặc trưng: </b>

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 chun 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 tồ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.

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="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 q trình xử lý ảnh. Có thể nêu ra một số đặc điểm của ảnh sau đây:

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

đ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- <i><b>Đặc điểm biến đổi: Đặc điểm biến đổi như hình dáng bàn tay. Các đặc </b></i>

đ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.

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

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ờ tố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 tốn cao và dung lượng nhớ lưu trữ giảm xuống [7].

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

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.

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

16

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

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.

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

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

<b>1.4.1. Học có giám sát và học khơng giám sát </b>

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ả.

<b> Học có giám sát (Supervised learning) </b>

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 tố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 𝑋 = {𝑥<sub>1</sub>, 𝑥<sub>2</sub>, … , 𝑥<sub>𝑁</sub>} và một tập hợp nhãn tương ứng 𝑌 = {𝑌<sub>1</sub>, 𝑌<sub>2</sub>, … , 𝑌<sub>𝑁</sub>} trong đó 𝑥<sub>𝑖</sub>, 𝑦<sub>𝑖</sub> là các vector. Các cặp dữ liệu biết trước (𝑥<sub>𝑖</sub>, 𝑦<sub>𝑖)</sub> đượ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 𝑌:

𝑌<sub>𝑖</sub> ≈ 𝑓(𝑥<sub>𝑖</sub>), ∀𝑖 = 1,2, … , 𝑁

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

Thuật tốn dị các khn 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

<i>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 </i>

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

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

<i>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 </i>

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

một giá trị thực cụ thể thì bài tố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?

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

18

<b> Học khơng giám sát (Unsupervised learning) </b>

Trong thuật tố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 tố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 tốn phân nhóm tồ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, vng, 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).

<b>1.4.2. Học quá khớp, học chưa khớp và học vừa khớp </b>

Mơ hình sau khi huấn luyện có thể đạt hiệu quả khơng tốt khi dự đố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 qt hố được

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="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 q khớp [1].

<b>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). </b>

<b> Học quá khớp (Overfitting): </b>

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. Ngun nhân có thể do chưa đủ dữ liệu để đánh giá hoặc do mơ hình của ta q phức tạp. Mơ hình bị q 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 q mức. Mơ hình này mà dự đố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.

<b> Học chưa khớp (Underfitting): </b>

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ự đốn. Ngun 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)

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="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.

<b> Học vừa khớp (Goodfitting) </b>

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.

<b>Hình 1.13: Minh họa về mơ hình hoạt động của Deep Learning [38]. </b>

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="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 lồ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 lồi vật đó. Bạn sẽ cố gắng xác định các hình mẫu, chẳng hạn như lồi vật có móng guốc nên nó có thể là bị hoặc hươu, lồi vật có mắt mèo nên nó có thể là một lồ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 tốn

<b>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 </b>

đượ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%).

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

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="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

<b>lẫn (confusion matrix). </b>

<b>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ự </b>

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>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à </b>

<b>1 </b>

<b>Dự đoán là 2 </b>

Chúng ta có thể suy ra ngay rằng tổng các phần tử trong tồ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

<b>tử của toàn ma trận. </b>

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="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í: Tồn bộ source code được cơng khai trên MediaPipe, người dùng hồn tồn có thể sử dụng và tùy chỉnh trực tiếp để phù hợp với bài tốn của mình.

<b>Hình 2.1: Logo MediaPipe. </b>

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 tố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

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="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].

<i><b>Hình 2.2: Mơ hình hoạt động của MediaPipe Hands [27]. </b></i>

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 tồ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.

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

25

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

Sau khi phát hiện lòng bàn tay trên tồ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ự đố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 tố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à

</div>

×