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

Khóa luận tốt nghiệp Kỹ thuật máy tính: Phát triển thiết bị tương tác với máy chiếu sử dụng Azure Kinect DK

78 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Phát triển thiết bị tương tác với máy chiếu sử dụng Azure Kinect DK
Tác giả Nguyen Ho Quang
Người hướng dẫn Thầy Phan Đình Duy, Thầy Đoàn Duy
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Kỹ thuật máy tính
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 78
Dung lượng 60,56 MB

Nội dung

Mục tiêu hướng tới của khóa luận tốtnghiệp là xây dựng một chương trình bằng ngôn ngữ lập trình Python, ứng dụng vào đó là giải pháp Media Pipe Hands của Google, công nghệ Speech Service

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KỸ THUẬT MÁY TÍNH

NGUYEN HO QUANG

KHOA LUAN TOT NGHIEP

SU DUNG AZURE KINECT DK

Development of equipment interact with projectors using Azure

Kinect DK

KY SU KY THUAT MAY TINH

TP HO CHÍ MINH, 2021

Trang 2

DAI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TINH

NGUYEN HO QUANG - 16520997

KHOA LUAN TOT NGHIEP

PHAT TRIEN THIET BI TUONG TAC VOI MAY CHIEU

SU DUNG AZURE KINECT DK

Development of equipment interact with projectors using Azure

Kinect DK

KY SU KY THUAT MAY TINH

GIANG VIEN HUONG DAN

PHAN DINH DUY

DOAN DUY

TP HO CHÍ MINH, 2021

Trang 3

THÔNG TIN HỘI ĐÒNG CHÁM KHÓA LUẬN TÓT NGHIỆP

Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số 462/QD-DHCNTT

ngày 23 tháng 07 năm 2021 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.

Trang 4

LỜI CẢM ƠN

Trải qua những năm tháng học tập tại trường Đại học Công nghệ Thông tin

ĐHQG - TPHCM, em mới biết tuổi trẻ đáng trân trọng như thé nào Trân trọng, bởi

vì tại đây có những người thầy, người cô và những người bạn đã giúp em vượt quanhững khó khăn tưởng chừng như đã gục ngã Không những thế, em còn biết đượcbản thân mình đã trưởng thành đến đâu và được trưởng thành cùng những người

bạn của mình.

Trước tiên em xin gửi lời cảm ơn UIT, cảm ơn vì khoảng thời gian 5 năm,

khoảng thời gian dường như là tất cả đối với thời sinh viên của chúng em Em

không rõ là UIT đã cho đi chúng em nhiều bao nhiêu và lấy lại những gì Nhưngchắc chắn rằng em sẽ không bao giờ quên được những năm tháng học tập và rèn

luyện tại trường.

Tiếp theo, em xin gửi lời cảm ơn đến thầy Phan Đình Duy và thầy Đoàn Duy

đã tận tình hướng dẫn em trong suốt quá trình thực hiện khóa luận tốt nghiệp Emcũng xin gửi lời cảm ơn đến quý thầy cô trong khoa Kỹ thuật Máy tính cũng nhưquý thầy cô tại trường Đại học Công nghệ Thông tin đã truyền đạt kiến thức và kinh

nghiệm quý báu trong suốt quá trình học tập tại trường cũng như tạo điều kiện thuận

lợi giúp em hoàn thành đồ án khóa luận tốt nghiệp

Em cũng xin gửi lời cảm ơn đến công ty công nghệ cổ phần TK25 đã tạo

điều kiện thuận lợi cho em có cơ hội học hỏi và thực hiện đề tài khóa luận của

mình Và đặc biệt, em xin gửi lời cảm ơn đến anh Nguyễn Trung Khánh và các anhchị ở TK25 đã dành thời gian dé hỗ trợ em trong suốt quá trình làm khóa luận

Em xin chúc các quý thầy cô cũng như các anh chị ở công ty luôn có nhiều

sức khỏe, đạt nhiều thành công trong cuộc sống Chúc UIT ngày càng thành côngtrong công tác giáo dục và đào tạo nguồn nhân lực công nghệ thông tin và chúc cho

công ty TK25 ngày càng phát triển vững mạnh Em xin chân thành cảm ơn!

Trang 5

MỤC LỤC

Chương 1 TONG QUAN -22::ccc2treeEEteEEEEiEEEEEiEEErrirrtrrirtrrirrtrrirrrrrreerrre 2

1.1 Tổng quan về khóa luận tốt nghiệp -cccccceccccescrrrrrveveeerree 2 1.2 Lý do thực hiện đề tài -cccsccccccrvveerrtrtrrrrrrrrtrriirrrrtrrirrirrrrrrrrrrre 2

1.3 (0ä 0ð 3

1.4 Phương pháp thực hiỆn cccvcererrrrrtrrirtrrirrriirririrrirrrrierrrrrrrire 3 1.5 Cac nội dung chính « -cscrkrrxrkstkirttrirtrirtirriiiriiiiirrrirrrre 4

1.6 Cac nghiên cứu liên quaI -s<-5c+e+cEEeE+EkekEkEketEkiirEkriririririirriee 5

Chương 2 CƠ SỞ LÝ THUYẾT -2:+ceetireettrreettrrertrrerrrrrsrtrrrrrrrrrrrrre 7

2.1 Giới thiệu về Azure Kinect DK .e-cccsccccveserkeerrrketerkirtrkrtrrkirrrrirrriee 7

RRR 77 A ee 7

2.1.2 Thông số phần cứng -s.eeeetrecetrreertrrerrrrrerrrrre 92.1.3 _ Thiết lập Azure Kinect DK ssxeceesreceerrreerrre 152.1.4 Thiết lập kết nổi cho Azure Kinect body tracking 17

2.1.5 API của Azure Kinect DK ecceereeerrrrriitiiiiiriiriiie 20

2.1.6 IMIusb 20820 0110797 20

2.2 Tìm hiểu về giải pháp Media Pipe -ccecccceserrrrrriiirirrrrrrrriee 20

2.2.1 Những khả năng tuyệt vời của Media PIpe . .e - 20

2.2.2 Các giải pháp Machine Learning trong Media PIpe 21

2.2.3 Khả năng tương thích của Media Pipe trên các hệ điều hành và ngôn

ngữ lập trình -« «ccxs+kkkkkrEritkrH HH HH1 11111111 11trree 21

2.2.4 Media Pipe với Python s<ccxkhihhnH HH nà iày 23

2.2.5 Media Pipe Hands -.-. -ccceerrrxerrrrerrrrrrrrrrrrrrrrrrrrrrree 23

2.3 Tìm hiểu về Keras và TenSOTfÏOAW c c<ccx<cckkerrkerkkeerrkerrkerkrerrrkerrkeree 25

Trang 6

2.4 Tìm hiểu về thư viện OpenCV -cccceesscccrvveetrtrrrrerstrrrrrrrerrrrre 26

2.4.1 Giới thiệu về OpenCV cccccrreeverrrierrrrrrrrrerrirrrerrre 262.4.2 Ứng dụng của OpenCV e ccerreeerrrertrrrrrtrrrrrrrrree 272.4.3 Kiến thức cơ bản về xử lý ảnh trong OpenCV 27

2.4.4 Các tính năng của Gui trong OpenCV , cecceeerieerriierirree 28

2.4.5 Xử lý ảnh trong OpenCV «-c«ccsxrikkiitrikiiirriiirrrree 28 2.5 Thư Viện NumPy Trong Pyth0H cc«ccrreeerirrrriirrrrirrrrrirrrrrrrrrrrrie 29

2.6 Tìm hiểu về giải pháp Speech SerViCe -ccccccsccrrrrrerrrrrrrrrrrrrrree 29

2.6.1 Tổng quan về Speech Service .-cssreccerrreerrrrrrrrrree 29

2.6.2 Các giải pháp trong Speech Service 29 2.6.3 Khởi tạo tài khoản AZULC cssssesesessesssecsessesessesessessessesetseeseeasserseessseeseestenesees 30

Chương 3 Phân tích và thiết kế hệ thống -. ccc -ccccccvveeeerrreerrrrke 31

3.1 Phân tích hố Ƒ mo ®612 / 31

3.1.1 _ Sơ đồ khối của hệ thống e eceerreceerreeerrreerre 313.1.2 — Sơ đồ lắp đặt coi 323.2 Thiết kế hệ thống -ccccccxrrrrrrrkrktriirrrirrrtrrriiiirrrrrrrriiiirrrrree 33

3.2.1 Xây dựng module nhận diện giọng nỐI - -s +-e<c+xsxx+ 33

3.2.2 Xây dung module nhận diện cử chỉ tay bằng giải pháp Media Pipe

Hands 38

3.2.3 Xây dựng thao tác điều khiển ChUGtocsssssssessseesssseesssnessssesaseesssseesassee 413.2.4 Xây dựng module điều khiển âm lượng bằng cử chỉ tay 443.2.5 Xây dung module vẽ bằng cử chỉ tay -eccesreeceerre 46

Chương 4 KET QUA MO PHỎNG -22.+s2tce2tteettrrrtrrrrrrrrrrrrrrree 51

4.1 Điều khiển chon lựa bằng giọng nói và trả lời - 51

Trang 7

4.1.1 Danh sách các khẩu lệnh, độ chính xác và thời gian đáp ứng 51

4.2 Điều khiển sự kiện của chuột bằng cử chỉ tay - 52

4.2.1 Thao tác di chuyền chuột -se:+cestrecetrreceerrerrrrrexe 52

4.2.2 Thao tác clIck ChuỘPC -s-cc5sccs+cs+sersEesttersersrksrsersrtsrsersrsrrsrrsresree 53

4.2.3 Thao tác kéo thả -c-ccreieriirtkrirtEiirriiiiiiiiiiiiiriiie 53

4.3 Điều khiển âm lượng bằng cử chỉ tay ccccccccccvvvvvvvvveeeeeecee 54

4.3.1 Âm lượng tối đa ccecreeeerreeerrrererrreerrrrrrrrrree 544.3.2 Âm lượng tối thiẾu -eccseeceerrererrreerrrrrrrrrree 544.3.3 Âm lượng trung bình css.+ccetreeeerrreerrrrrrrrrrre 55

4.4 Vẽ bằng cử Chỉ tay -cccccccccccccccccececeeeeerertttrtrrrrrrrrrrtttrrrrrrrrrrrrrrrrrrrrsrsred 55

4.4.1 Màu đỏ HH ieg 55 4.4.2 Màu xanh da trời -+c-cccccrsxeerrirerrrxrtrireirkrrrirrrrrree 56 4.4.3 Màu đm BĐPee 7ô I0 ĐSẠ / 57 44.4 Màu Vàng ch grikt 58

4.4.5 Màu xanh dương -cccccccrerreekrreerreerrrtrrrrrrrrrrrrrrrrrrrrrrrrree 59

4.4.6 Màu xanh lá cccecrrirtrkiirtrrirtiiiiiiiiiiiiiiiiirriiie 60

4.4.7 Xóa hình đã vẽ ii 61

4.5 So sánh với các nghiên cứu liÊn quan +-cscceesrsserirrrrririe 62

Chương 5 KẾT LUẬN, HƯỚNG PHÁT TRIỂN VÀ NHỮNG KHÓ KHĂN 64

Trang 8

5.3.2 Hướng giải quyết

Trang 9

Hình 2.

Hình 2.

Hình 2.

Hình 2.

Hình 2.

Hình 2.

Hình 2.

Hình 2.

Hình 2.

Hình 2.

Hình 2.

Hình 2.

Hình 2.

Hình 3.

Hình 3.

Hình 3.

Hình 3.

Hình 3.

Hình 3.

Hình 3.

Hình 3.

Hình 3.

Hình 3.

Hình 3.

Hình 3.

Hình 3.

Hình 3.

DANH MỤC HÌNH

1: Thiết bi Azure Kinect DK -s szcccseevrxserrxsertrxerrrxerrrrerrrrxerrrresrrre 7

2: Dịch vụ đi kèm của thiết bị Azure Kinect DK -cccceceee 8

3: Bố trí sensor trên thiết bi Azure Kinect DK -. -c cc-s-ccccsccs 9

4: Thông số kỹ thuậtt -ccccceccccvveeeirrrrrrtrrrrrtrrrrrrrrtrrrirrrrrrrrrrrrree 10

5: Trường nhìn CỦa CaImeFA -cc<-5cxecSEEetEkrtEkrirtkriririiirirrree 13

6: Tầm nhìn của camera về phía trước 2m . -ccecccrrerrrrre 13

7: Giao diện để cấu hình camera của thiết bị -c-sesceccseeee 16

8: Giao diện hiển thị của thiết bị . -cecccceeekerrresrtrrrirrrrree 17

9: Mô phỏng khung xương cơ thỂ ccccccccccvveseerevrvvveesrrrrrreossee 18

10: Mô phỏng khung xương của nhiều cơ thể - -cccccse- 19 11: Hệ tọa độ Oxyz trên cơ thể ccsccecccccvveeeerrrrrveerrrrrrrrrrrrrrrrrrer 19

14: Sơ đồ các mốc của lòng bàn tay trong mô hình landmark 24

16: Key subscriptions ID và ÌoCafÏOH e -cs-cccxsrrrerererrrrrrrrrrrrree 30 1: Sơ đồ khối của đề tài che 31 2: Sơ đồ lắp đặt của đề tài ccerrrrrrrriirrrrrrirrrie 32 3: Sơ đồ thiết kế hệ thống . -cccccccveeekrrtetterkrtrtrriirrrrrrrrrrrree 33 4: Sơ đồ giải thuật nhận diện giọng nói - c -cccccccscccccceeexee 34 5: Lưu đồ giải thuật cho chức năng trả lời thời gian - 36

6: Lưu đồ giải thuật điều khiển âm lượng bằng giọng nói 37

7: Sơ đồ giải thuật nhận nhận diện lòng bàn tay . 39

8: Sơ đồ giải thuật cho thao tác điều khiển chuột - 42

12: Sơ đồ giải thuật nhận điều khiển âm lượng bằng cử chỉ tay 45

13: Sơ đồ giải thuật nhận vẽ bằng cử chỉ tay -c - 47

14: Thiết kế giao diện hình vẽ bằng website canva.com 48

15: Giao diện của chức năng vẽ bằng cử chỉ tay - 49

16: Chọn màu bằng ngón giữa và ngón trỎ . -cccccccccvcvrre 49 17: Vẽ bằng ngón trỎ -cccccrrrrrrrrtttrttttrtrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr 50

Trang 10

1: Di chuyển chuột bằng ngón tro w.cccccssssssssssssssssssssssssssssssssssssssssssssssesseesssssssssssee 52

2: Click chuột bằng ngón trỏ và ngón giñữa cccccccccvevveeeeeeooee 53 3: Kéo thả bằng cử chỉ tay ccccccceerrrrrrrrrrrrrrrrrrrirrrrrrrrrirrriie 53

4: Điều khiển âm lượng tối đa bang cử chỉ tay -c-ee 54 5: Điều khiển âm lượng tối thiểu bằng cử chỉ tay .- 54 6: Điều khiển âm lượng trung bình bằng cử chỉ tay - 55

7: Chon màu đỏ bằng cử chỉ tay . -cccsceerttrtrtrrrrrrrrrrrrrererrree 55

8: Vẽ màu đỏ bằng ngón trỏ . -5cccccccvvvvvvvvvvvvvvveeerersrrrrrrrrrrrrrrree 56

9: Chọn màu xanh da trời bằng cử chỉ tay ccccccccccccceeeeee 56

10: Vẽ màu xanh da trời bằng ngón trỏ ccccccccccccccvcccrrrrrre 57

11: Chon màu cam bằng cử chỉ tay -cccceeesrsrrrerrrrrrrrrrrrrrree 57 12: Vẽ màu cam bằng ngón trỏ -i -ccccccccecceeeeeevvvrrrrrrrrrrrrrrrrrrr 58

13: Chọn màu vàng bằng cử chỉ tay -ccccceccccvvvvvvvvvvvvrvrrrrrrrrre 58

14: Vẽ màu vàng bằng ngón trỏ -cccccccceecceeceeerrrrerrrrrrrrrrrrr 59

15: Chọn màu xanh dương bằng cử Chi tay -cccccvcccxs 59

16: Vẽ màu xanh dương bằng ngón trỎ -5cccccvvevvcvcvevrre 60

17: Chọn màu xanh lá bằng cử chỉ tay -cceccccccecevrrrrvrrrre 60 18: Vẽ màu xanh lá bằng ngón trỏ -cccecceeecevvvvvvvvvvvvvvvrrrrrrrre 61

19: Chọn chức năng xóa bằng cử chỉ tay -cccccccccccccverrrrrrrre 61

20: Xóa màu đã vẽ bằng ngón trỏ -52c2cvvvvvvvvvvvvrrvvrvrsersossee 62

Trang 11

: Các nghiên cứu liÊn quan xs-xxerxrerkrirtrirtriirririiiiiiiriirre 5

: Chế độ hoạt động của camera độ sÂu -ceccseccccvvessscre 11

: Chế độ hoạt động của máy ảnh mààu -cccccc-++cccvvvcxerrrr 11

: Thời gian phơi sáng của máy ảnh màu -.«c.scecccvseersvee 12

: Thời gian thô của máy ảnh đo độ sâu -. cc-ccc.eerree 12

: Bảng ID của cổng giao tiếp trên thiết bị cccccceeecee 14

: Khả năng tương thích của Media Pipe với ngôn ngữ lập trình 22

: Bộ danh sách dữ liệu GION nÓỐI - - 55 6 11+ ksssseeere 38

: Danh sách các lệnh, độ chính xác và thời gian đáp ứng 51 : So sánh với các nghiên cứu liên quan -cccecerreeerrsrrrree 62

Trang 12

DANH MUC TU VIET TAT

: Central Processing Unit

: Artificial intelligence : Software Development Kit : Graphics Processing Unit : Tensor Processing Unit

: Field of View

: Narrow Field of View : Wide Field of View

: Infrared : Integrated development environment

Trang 13

TOM TAT KHÓA LUẬN

Đề tài “Phát triển thiết bị tương tác với máy chiếu sử dụng Azure Kinect DK” làmột đề tài nghiên cứu về Computer Vision và Machine Learning thiên về hướngnhận diện bàn tay và giọng nói của con người Mục tiêu hướng tới của khóa luận tốtnghiệp là xây dựng một chương trình bằng ngôn ngữ lập trình Python, ứng dụng

vào đó là giải pháp Media Pipe Hands của Google, công nghệ Speech Service và

thiết bị Azure Kinect DK của Microsoft Chương trình cho phép nhận diện đượcyêu cầu của người dùng thông qua giọng nói, ngoài ra nó nhận diện thêm bàn tay,

cử chỉ tay và mô phỏng các đốt xương ở lòng ban tay trên cơ thé con người Dé rồi

từ đó, chúng ta dựa vào kết quả được phát triển ở trên để xây dựng một chương

trình cho phép lựa chọn các chức năng bằng giọng nói, những chức năng đó giúpchúng ta điều khiển các thao tác như điều khiến chuột bang cử chỉ tay, điều khiển

âm lượng bằng cử chỉ, vẽ bằng cử chỉ tay

Ở khóa luận tốt nghiệp “Phát triển thiết bị tương tác với máy chiếu sử dụng AzureKinect DK”, đề tai được thực hiện bằng ngôn ngữ lập trình Python va IDEPycharm Ngoài ra, đề tài còn sử dụng các thư viện hỗ trợ cho việc xây dựng hệthống như: OpenCV, Numpy, Time, Pyautogui, Pyttsx3, Math Về thiết bị phầncứng, hệ thống gồm có thiết bi Azure Kinect DK dùng dé lay dit liệu đầu vào, máychiếu, màn chiếu dùng dé hién thị kết quả Giọng nói và cử chỉ tay sẽ là dữ liệu đầu

vào của hệ thống, chúng được thu nhận thông qua các sensor của thiết bị Azure

Kinect DK Hệ thống sẽ xử lý và trả về kết quả là những thao tác như điều khiểnchuột, điều khién âm lượng, vẽ bằng cử chỉ tay

Một trong những ứng dụng thiết thực nhất của đề tài khóa luận tốt nghiệp là ápdụng vào môi trường giáo dục Ứng dụng này giúp học sinh cũng như giáo viên tạođược cảm hứng học tập, thông qua việc tương tác với máy chiếu bằng giọng nói và

cử chỉ tay Từ đó, tăng tính hấp dẫn, lôi cuốn và đây mạnh khả năng tiếp thu củahọc sinh, sinh viên Không những thé, ứng dụng còn giảm đi những tác hại về phôi,

do bụi phan gây ra trong cách giảng dạy truyền thống

Trang 14

Chương 1 TONG QUAN

1.1 Tông quan về khóa luận tốt nghiệp

Trong những năm gần đây, ngành công nghệ thông tin trong nước và thế giới rấtphát triển, điển hình là sự ra đời của nền công nghiệp 4.0 Kéo theo đó là việc ra đời

cua Artificial Intelligence, Big Data, Internet of Thing, Deep Learning, Machine Learning va Computer Vision AI — Artificial Intelligence là một trong những

hướng nghiên cứu va phát triển được nhiều trung tâm khoa hoc, những trường

trường đại học lớn và cũng như các học viện chú ý đến Trong đó Computer Vision

là một trong những lĩnh vực được theo đuôi nhiều nhất Nhờ có hệ thống xử lý ảnh

và thị giác máy tính mà con người chúng ta đã giảm bớt được khối lượng lớn côngviệc liên quan đến xử lý ảnh trên nhiều lĩnh vực như: quân sự và quốc phòng, y tế,công nghiệp và giáo dục Cùng với lĩnh vực xử lý ảnh như nhận dạng chữ viết, dấu

vân tay, võng mạc thì bài toán nhận dạng giọng nói, nhận dạng cử chỉ tay là một

trong những bài toán được nhiêu người quan tâm và mong đợi trên toàn thê giới.

1.2 Lý do thực hiện đề tài

Ở đề tài khóa luận tốt nghiệp này, sinh viên chúng em thực hiện đề tài khóa luận để

kết thúc chương trình đào tạo kỹ sư Kỹ thuật Máy tính tại trường Đại học Côngnghệ Thông tin ĐHQG — TPHCM Thi đây cũng là một cơ hội dé bản thân em cóthé tong hợp lại những kiến thức đã học về công nghệ thông tin và cũng là bước

chuẩn bị hành trang cần thiết dé bước vào sự nghiệp của một kỹ sư Kỹ thuật Máy

tính.

Là một sinh viên dai học Công Nghệ Thông Tin, em luôn đề cao chất lượng học tập

và giáo dục ở Việt Nam Và như chúng ta đã biết, giáo dục là một trong những yếu

tố cốt lõi hình thành nên nhân cách, đạo đức và trí tuệ mỗi con người Nelson

Mandela — một nhà chính trị, lãnh đạo của Nam Phi đã từng nói “Dé pha huy bat ky

quốc gia nào, không can phải sử dụng đến bom nguyên tử hoặc tên lửa tam xa Chỉ

cần hạ thấp chất lượng giáo dục và cho phép gian lận trong các kỳ thi của sinh

Trang 15

viên” Chính vì thê mà vân đê vê nhận dạng giọng nói, nhận dạng cử chỉ tay của con

người đê áp dụng vào giáo dục là một trong những vân dé thiệt thực nhat vào thời

đại 4.0.

Nhất là với trẻ em, chúng ta cần tạo cho chúng một cảm giác yêu thích, say mê, tăngtương tác trong việc học, để rồi từ đó nâng cao chất lượng đào tạo, đưa phương

pháp giáo dục thích hợp nhất dé rèn luyện và giáo dục chúng trở thành một người

có ích cho xã hội Vì vậy mà bài toán Phát triển thiết bị tương tác với máy chiếu sử

dụng Azure Kinect DK được ra đời.

1.3 Mục tiêu của đề tài

Mục tiêu của đề tài là xây dựng một hệ thống tương tác với máy chiếu sử dụng thiết

bị Azure Kinect DK Hệ thống xử lý có khả năng nhận diện được cử chỉ bàn tay,nhận diện giọng nói và hiển thị trên màn hình và tương tác với màn hình Dé tài sẽ

hướng đên những mục tiêu cụ thê sau:

- _ Nhận diện thành công các đốt xương tay

- _ Nhận diện thành công giọng nói và chuyền thành các lựa chon: tắt âm thanh,

mở âm thanh và lựa chọn các chức năng của nhận dạng cử chỉ tay

- _ Lập trình thao tác tương tác với nhận dạng cử chỉ tay

- _ Vẽ bang cử chi tay

- _ Hệ thống chạy gần mức realtime

1.4 Phương pháp thực hiện

Đề giải quyết một bài toán về công nghệ, đặc biệt là về AI, Computer Vision sẽ córất nhiều phương pháp dé xử lý Nhung với đề tài khóa luận này, em sử dụng nhữngphương pháp xử lý ảnh trên thư viện OpenCV, sử dụng các mô hình về nhận diện

giọng nói của Google và Microsoft dé tăng độ chính xác cao nhất có thê

- Str dụng công nghệ Speech Service từ Microsoft xử lý và dé lấy giọng nói

thông qua mảng Micro có trên thiết bị Azure Kinect DK

- _ Chuyên từ giọng nói sang ky tự bang speech to text

3

Trang 16

Dùng những đoạn text đó dé lựa chọn các chức năng thao tác

Ngoài ra, đề tài cần có một danh sách tập dữ liệu dé hệ thống trả lời lại với

người dùng qua giọng đọc google, thông qua thư viện text to speech.

Đề tài có sử dụng thư viện OpenCV kết hợp cùng các API hỗ trợ từ thiết bịAzure Kinect DK dé mở camera màu dé lay di liéu ttr sensor va thuc hiénbước tiền xử ly dữ liệu đầu vào

Thông qua giải pháp Media Pipe của Google, em tiến hành nhận dạng ban

tay và xử lý các đốt xương tay và trả về các tọa độ trên màn hình

Dùng kết quả trả về sau khi nhận dạng cử chỉ tay để lập trình các thao tácđiều khiển chuột, kiểu khién âm lượng, vẽ bằng cử chỉ tay

Các nội dung chính

Thiết lập kết nói hệ thống: Azure Kinect DK, máy vi tính va máy chiếu.

Lập trình xử lý giọng nói của người thao tác thông qua Speech Service của

Microsoft, chuyên từ speech sang text và dùng những đoạn text đó để lựachọn chức năng, chuyên từ tap dir liệu text sang speech dé trả lời

Lập trình xử lý dữ liệu đầu vào (giọng nói va cử chỉ tay) bang thư viện

Opencv kết hợp các API của Speech Service đề lấy dữ liệu đầu vào thông

qua các sensor có trên Azure Kinect DK.

Lập trình xử lý các đốt xương ở hai tay của người thao tác thông qua hand

tracking của Azure Kinect DK.

Lập trình chức năng: ứng dụng sẽ có 2 chức năng chính là chức năng dùng tay của người thao tác và dùng giọng nói của người thao tác.

Lập trình chức năng dùng tay: Di chuyên con trỏ chuột, click chọn, chuyểnslide, phóng to thu nhỏ màn hình và vẽ bang cử chỉ tay

Lập trình chức năng dùng giọng nói: tắt âm thanh, mở âm thanh, dùng dé

chuyền đổi các thao tác ở phần chức năng dùng tay

Sửa lỗi source code đề tối ưu hệ thống

Tinh chỉnh và tối ưu source code dé hệ thống chạy realtime

Trang 17

1.6 Các nghiên cứu liên quan

Phát triển thiết bị tương tác với máy chiếu sử dụng Azure Kinect DK là một trong

những đề tài thiết thực nhất dành cho cuộc sống Tắt nhiên rằng, trên thị trường đã

có những sản pham nghiên cứu liên quan Có thể ké đến sản pham của tập đoànMicrosoft với phương pháp nhận diện cử chỉ tay và đo khoảng cách từ tay đến bề

mặt tương tác thông qua camera đo độ sâu của thiết bị Kinect DK và sản pham của

nhóm sinh viên nghiên cứu đến từ Đại học Sheffield Hallam University, UK với

phương pháp phân và nhận diện ngưỡng màu của vat Dưới day là bang so sánh của

hai nghiên cứu trên:

Bang 1 1: Các nghiên cứu liên quan.

Đề tài [2]Sheffield Hallam University,

{1]Microsoft

tương tự UK

Dùng camera độ sâu và các API | Dùng phương pháp phân đoạn

Phương | của body tracking có trong thiết bi ngưỡng màu dé nhận dang

pháp thực | Kinect DK dé nhận dang cử chỉ những vật có màu sắc riêng

hiện tay va đo khoảng cách giữa tay và |_ biệt Rồi dùng vật đó dé điều

bề mặt chiếu khiển con trỏ chuột

Nhận dạng tốt cử chỉ tay và đưa ra

các thao tác rât nhạy trên bê mặt

: Dé sử dụng và tiện lợi chiêu.

„ l Đơn giản hóa công nghệ đê

„ Phù hợp dé trình chiêu trong các ,

Ưu diém việc lập trình trở nên ngăn gọn,

môi trường văn phòng và phòng

không phức tạp học.

Dễ sử dụng và thân thiện với

người dùng.

Phan cứng | Máy chiếu và Camera đo độ sâu Máy chiếu và camera IP

Trang 18

Có độ delay khá cao giữa thao

Chỉ phù hợp với những khôn "

P sp š š tác và trình chiêu.

gian có kích thước nhỏ hẹp ; Nhuoc Bi ảnh hưởng khá nhiêu vào

` Chỉ có dùng cử chỉ tay vì vậ ‘ho TA ở A a:

diém „ tệ yey điêu kiện ánh sáng của môi

thiêu công nghệ nhận dạng giọn g nghệ nhận dang giọng trường

nói đê thao tác với màn chiêu

us/research/publication/combining | https://vision.eng.shu.ac.uk/mm

https://www.microsoft.com/en-Link dé tai -multiple-depth-cameras-and- vl/viewfinder/interactive_came

tương tự projectors-for-interactions-on- ra_projector_system.html

above-and-between-surfaces/

Trang 19

Chương 2 CƠ SỞ LÝ THUYET

Ở chương cơ sở lý thuyết này, em trình bày kết quả tìm hiểu và nghiên cứu về thiết

bị Azure Kinect DK, các thuật toán xử lý ảnh và những giải pháp về máy học như:

Media Pipe của Google, Speech service của Microsoft Dé hoàn thiện hệ thống, em

còn nghiên cứu về các thư viện như OpenCV, Numpy, keras và nền tang công nghệ

cung cấp cho chúng ta cảm biến đo độ sâu, mảng micro không gian, Camera màu,Camera hồng ngoại, bộ đo lường quán tính Những sensor tên có thé điều chỉnh

Hình 2 1: Thiết bị Azure Kinect DK

Trang 20

Môi trường phát triển của thiết bị Azure Kinect DK bao gồm những SDK sau:

SDK cảm biến dé truy cập thiết bi và cảm biến cấp thấp

SDK theo dõi cơ thé dé theo dõi cơ thé trong 3D

SDK dịch vụ nhận thức giọng nói để cho phép truy cập micrô và các dịch vụ

4 lay

Body Tracking User built

SDK skills

GD Sensor SDK

Azure Kinect Sensor SDK cung cấp quyền truy cập cảm biến cấp thấp cho cau hình

thiết bị và cảm biến phần cứng Azure Kinect DK

Các tính năng của Azure Kinect Sensor SDK:

Kiểm soát chế độ và truy cập camera độ sâu (chế độ IR thụ động, cùng vớichế độ độ sâu trường xem rộng và hẹp)

Kiểm soát và truy cập máy anh RGB (ví dụ: phơi sáng và cân bang trang)Truy cập cảm biến chuyền động (con quay hồi chuyên và gia tốc kế)

Phát trực tuyến máy ảnh Độ sâu-RGB được đồng bộ hóa với độ trễ có thể

định câu hình giữa các máy ảnh

Trang 21

- _ Đồng bộ hóa thiết bị bên ngoài với độ trễ có thé định cau hình giữa các thiết

Các tính năng theo dõi cơ thể trên SDK:

- _ Cung cấp các phân đoạn cơ thé của con người

- Chitra một bộ xương chính xác về mặt giải phẫu cho từng bộ phận hoặc toàn

bộ cơ thê trong FOV (trường nhìn)

- _ Cung cấp một ID định danh riêng cho mỗi cơ thể

- (C6 thé theo dõi cơ thé theo thời gian thực

- Body Tracker có một công cụ người xem dé theo dõi cơ thé ở dạng 3D

SDK dịch vụ nhận dạng giọng nói cho phép được kết nối với Azure:

- _ Chuyên giọng nói thành văn bản

- Dich giọng nói.

- _ Chuyên văn bản thành giọng nói

Các dịch vụ thị giác máy tính có thể xác định và phân tích nội dung trong hình ảnh

và video.

2.1.2 Thông sé phần cứng

Thiết bị Azure Kinect bao gồm các kích thước kích thước và trọng lượng sau:

9

Trang 22

- Độ âm: 8-90% (không ngưng tụ) độ ầm tương đối

Thiết bị Azure Kinect DK tích hợp một camera đo độ sâu Time-of-Flight (ToF) 1

Megapixel do Microsoft thiết kế Nó sử dụng cảm biến hình ảnh được giới thiệu tại

ISSCC 2018.

Các chê độ hoạt động của camera đo độ sâu:

10

Trang 23

Bang 2 1: Ché độ hoạt động của camera độ sâu.

Pham vi | Thời gian

Ché độ | Độ phân giải Fol FPS hoạt phơi

^ 1,6 mili

IR thụ động | 1024x1024 N/A 0, 5, 15, 30 N/A giây

Các chế độ hoạt động của máy ảnh màu:

Bảng 2 2: Chế độ hoạt động của máy ảnh màu.

RGB Camera | Aspect Frame Rates

Resolution Ratio Format Options (EPS) Nominal FOV

Trang 24

Giá trị thời gian phơi sáng của máy ảnh RGB:

Bảng 2 3: Thời gian phơi sáng của máy ảnh màu.

-4 62500 50000 50000

-3 125000 60000 66670 -2 250000 80000 83330 -1 500000 100000 100000

0 1000000 120000 116670

1 2000000 130000 133330 Thời gian thô cua camera do độ sâu:

Bảng 2 4: Thời gian thô của máy ảnh đo độ sâu.

Depth Mode IR Pulse Idle Idle Time Exposure

Pulses | Width Periods Time

Trang 26

Cảm biến chuyên động (IMU) được nhúng vào đó là chip LSM6DSMUS và baogồm ca gia tốc kế và con quay hồi chuyền Gia tốc kế và con quay hồi chuyển đượclay mẫu đồng thời ở tần số 1,6 kHz Các mẫu được trả về máy chủ ở tần số 208 Hz.

Mang micro của Azure Kinect DK được nhúng một mang gồm bảy micro chấtlượng cao Tat cả 7 kênh có thé được truy cập đồng thời Các thông số kỹ thuật cóhiệu suất là:

- D6 nhạy: -22 dBES (94 dB SPL, 1 kHz)

- Ty lệ tín hiệu trên tiếng ồn> 65 dB

- _ Điểm quá tải âm thanh: 116 dB

Azure Kinect DK là thiết bị được kết hợp với chuẩn USB3, nó cho phép hiển thị cácđiểm cuối của phần cứng cho hệ điều hành ID của nhà cung cấp cho thiết bị Azure

Kinect DK là 0x045E (Microsoft) Bảng ID của từng sensor:

Bảng 2 5: Bảng ID của cong giao tiếp trên thiết bị

USB Interface PNP IP Notes USB3.1 Genl Hub 0x097A The main hub

USB2.0 Hub 0x097B HS USB Depth camera 0x097C USB3.0 Color camera 0x097D USB3.0 Microphones 0x097E HS USB

Thiết bi có thé được cấp nguồn theo hai cách:

- _ Sử dụng nguồn điện trong hộp Đầu nối nguồn là đường kính ngoài 4,5mm

với ID 3,0mm và đường kính chân là 0,6mm.

- Str dụng cáp Type-C sang Type-C cho cả nguồn và dữ liệu

Mức độ tiêu thụ năng lượng tối đa của Azure Kinect DK là 5,9 W Tiêu thụ điện

năng phụ thuộc vào các trường hợp sử dụng và mục đích khác nhau.

14

Trang 27

2.1.3 Thiết lập Azure Kinect DK

Thiết lập kết nối nguồn cho Azure Kinect DK và thiết lập kết nối công USB vào PC

dé truyền dữ liệu

- Sw dụng nguồn điện trong hộp Dau nối nguồn là đường kính ngoài 4,5mm

với ID 3,0mm và đường kính chân là 0,6mm.

- Sử dụng cáp Type-C sang Type-C cho cả nguồn và dit liệu

Thiét bi Azure Kinect DK cân yêu câu vê mặt câu hình của hệ điêu hành và kiên

trúc để được hỗ trợ:

- Yéu cầu hệ điều hành window 10 phiên bản 2018 và Linux Ubuntu 18.04

(x64) trở lên.

- GPU sử dung OpenGL v4.4 hoặc phiên bản mới hon.

Mức độ yêu cầu phần cứng của PC phụ thuộc vào ứng dụng / thuật toán / tốc độkhung hình / độ phân giải của cảm biến Cau hình SDK cảm biến tối thiêu được dé

xuất cho Windows là:

- Bộ xử lý Intel® CoreTM i3 thé hệ thứ bảy trở lên

- Bộ nhớ 4 GB.

- _ Cổng USB3 chuyên dụng

- _ Hỗ trợ trình điều khiển đồ họa cho OpenGL v4.4 hoặc DirectX 11.0

CPU cấp thấp hon hoặc cũ hơn cũng có thé hoạt động tùy thuộc vào trường hợp sử

dụng của người dùng.

Dé sử dụng các SDK đi kèm theo thiết bị Azure Kinect DK, người dùng cần tiễn

hành cài đặt theo theo đường dẫn sau:

Trang 28

- Azure Kinect Viewer có thê chạy từ các dòng lệnh terminal hoặc bằng cách

nhấp đúp vào tệp thực thi

- Azure Kinect Viewer có thé khởi chạy từ menu Start máy tính.

Trong ứng dụng Azure Kinect Viewer, người ding cần chọn mở thiết bị va bắt dau:

2 Close device Configuration

Hình 2 7: Giao diện dé cấu hình camera của thiết bị

Giao diện dùng đê câu hình camera của thiệt bị gôm có chức năng chính sau:

- Enable Depth Camera: bật/tắt camera do độ sâu

- Enable Color Camera: bật/tắt camera màu.

- Enable IMU: bật/tắt bộ đo lường quán tính

- Enable Microphone: bật/tắt mang micro

- Depth Configuration: lựa chọn các chế độ trong camera độ sâu

- Color Configuration: lựa chọn các chế độ trong camera màu

- Resolution: lựa chọn độ phân giải của camera màu.

- Framerate: lựa chọn tốc độ khung hình trên một giây

16

Trang 29

Sau khi người dùng hoàn tất công đoạn cấu hình các sensor của thiết Azure Kinect

DK Người dùng có thể bắt đầu các quan sát sự tiếp nhận dữ liệu và phát triển các

ứng dụng của mình.

Để sử dụng chức năng body tracking của Azure Kinect DK, người dùng cần tiếnhành thiết lập kết nối dé cung cấp nguồn cho thiết bi Azure Kinect DK và thiết lậpkết nỗi công USB vào máy tính để truyền dữ liệu

- Thiết bị sử dụng nguồn điện dân dụng dé làm nguồn cung cấp năng lượng

cho thiết bị Đầu nối nguồn có đường kính ngoài là 4,5mm và đường kính

trong là 3,0mm và đường kính chân là 0,6mm.

- Thiết bị có thé sử dụng cáp Type-C sang Type-C cho kết nối cả nguồn và kết

nói dữ liệu

Những yêu cầu về mặt phần cứng máy tính để đáp ứng cho thiết lập chức năng củaAzure Kinect Body Tracking cao hơn yêu cầu phần cứng máy tính cho thiết lập các

sensor Body tracking cần card đồ họa NVIDIA dé hoạt động realtime

Cấu hình tối thiểu về mặt phần cứng được đề xuất trên hệ điều hành Windows là:

- Bộ xử lý Intel® CoreTM i5 thế hệ thứ bảy trở lên

17

Trang 30

- _ Bộ nhớ RAM từ 4GB trở lên.

- Card đồ họa NVIDIA GEFORCE GTX 1070 trở lên

- _ Công USB3 chuyên dụng

Cấu hình tối thiểu được cho chế độ K4A_DEPTH_MODE_NFOV_UNBINNED là

30 khung hình / giây theo đõi 5 người CPU và GPU NVIDIA cấp thấp hơn hoặc cũhơn cũng có thê hoạt động tùy thuộc vào trường hợp sử dụng của người dùng

Người dùng khởi chạy Azure Kinect Body Tracking Viewer để kiểm tra xem

SDK theo dõi cơ thé có được thiết lập chính xác hay không

Nếu người dùng không có GPU đủ mạnh và vẫn muốn kiểm tra kết quả, người dùng

có thê khởi chạy chương trình theo déi cơ thé Azure Kinect trong dòng lệnh bang

lệnh sau:<SDK Installation Path>\tools\k4abt_simple_3d_viewer.exe CPU

Sau khi đã download SDK cho Body Tracking, người dùng tiến hành chạy file thực

thi k4abt simple 3d viewer.exe như hướng dan ở trên.

Ngoài ra, SDK body tracking có thé theo dõi nhiều cơ thé cũng một lúc, mỗi cơ théđược hiển thị một màu, mỗi màu tượng trưng cho một ID

Mỗi điểm trên cơ thé sẽ trả về một tọa độ Oxyz trong không gian Về mặt phầncứng, SDK Body Tracking yêu cầu có card đồ hoa NVIDIA để chạy realtime,

18

Trang 31

nhưng nếu không có card đồ họa, chúng ta vẫn chạy được bằng CPU, nhưng sẽ xảy

ra hiện tượng delay, tốc độ delay phụ thuộc vào cầu hình của CPU

Hình 2 10: Mô phỏng khung xương của nhiều cơ thể

Hệ tọa độ trong Azure Kinect Body Tracking có các vị trí và hướng của mỗi khớp

tạo thành hệ tọa độ Oxyz trên các khớp riêng của nó và ước lượng liên quan đến hệ

quy chiêu của cảm biên độ sâu.

Hệ thống phân cấp chung của bộ xương bao gồm 32 khớp với hệ thống phân cấp

khớp chảy từ trung tâm của cơ thể đến tứ chỉ

19

Trang 32

2.1.5 API của Azure Kinect DK

Dưới đây là các API của thiết bi Azure Kinect DK được viết và gọi bang ngôn ngữlập trình C/C++ Microsoft có hướng dẫn và giải thích chỉ tiết từng chức năng cụ

thé của mỗi API trong các link sau

Link API cho SDK Sensor:

https://microsoft.github.io/Azure-Kinect-Sensor-SDK/master/modules.html.

Link API cho SDK body tracking:

https://microsoft.github.io/Azure-Kinect-Body-Tracking/release/1.x.x/index.html

2.1.6 Dich vu kèm theo

Microsoft có chức năng dùng thử free cho mỗi tài khoản Microsoft Sau khi đăng

nhập vào: https://portal.azure.com/ chúng ta tìm kiếm Cognitive Services Azure córất nhiều dịch vụ đề người dùng thỏa sức trải nghiệm Tuy vậy, người dùng cần xácđịnh rõ nhu cầu sử dụng dé lựa chọn dịch vụ, bởi vi Azure cung cấp những dịch vụmiễn phí và những dịch vụ phải trả phí mà người dùng cần cân nhắc đề lựa chọn

Dịch vụ nhận diện giọng nói được Microsoft đặc biệt quan tâm và phát triển rất

mạnh như Speech to text, text to speech, Speech translation, Speaker recognition Với các API và các tool mạnh mẽ, cho phép ta thỏa sức sáng tạo, nghiên cứu và

phát triển

Ngoài ra, dịch vụ nhận dạng giọng nói còn được hỗ trợ nhiều ngôn ngữ lập trình

khác nhau như: C/C++, C#, Java, JavaScrip, python, Objective C and Swift.

2.2 Tìm hiểu về giải pháp Media Pipe

Media Pipe là một giải pháp công nghệ thông tin ứng dụng Machine Learning được

phát triển bởi tập đoàn Google

2.2.1 Những khả năng tuyệt vời của Media Pipe

- Kha năng tăng tốc của Media Pipe: Kha năng suy luận, tính toán và xử lý

các mô hình machine learning nhanh chóng được tăng tốc trên những phần

cứng thông thường.

20

Trang 33

Khả năng tương thích: Với câu châm ngôn: ”Xây dựng một lần, triển khai

ở mọi nơi” Giải pháp Media Pipe có thé tùy chỉnh dé nhúng lên các nền tangnhư Android, iOS, desktop, cloud, web và IoT Đặc biệt hon thé là giải phápMedia Pipe còn chạy trên cả CPU và GPU, cho ra kết quả trong thời gianthực.

Kha năng mớ rộng: Media Pipe cung cấp đến những nhà phát triển một mãnguồn mở và hoàn toàn miễn phí Các framework và solutions có thể mởrộng và tùy chỉnh.

Khả năng ứng dụng tức thòi: Các giải pháp của Media Pipe cho phép

chúng ta sẵn sàng sử dụng tức thì và thể hiện được sức mạnh tính toán và xử

lý của các framework.

2.2.2 Các giải pháp Machine Learning trong Media Pipe

Media Pipe cung cấp đến cho các nhà phat trién những giải pháp ứng dụng Machine

Nhận diện các tư thế và toàn bộ cơ thé con người

Nhận diện phân đoạn tóc.

Nhận diện và theo dõi đối tượng

Theo dõi đối tượng tức thì

Phát hiện và nhận diện biển báo giao thông.

Nhận diện và đóng hộp lập phương đối tượng (Objectron)

2.2.3 Khả năng tương thích của Media Pipe trên các hệ điều hành và ngôn

ngữ lập trình

Giải pháp Media Pipe có khả năng tương thích tốt trên nhiều hệ điều hành cho ứngdụng di động và có khả năng tương thích với nhiều ngôn ngữ lập trình như C++,

21

Trang 34

Python, JS va Coral Tuy nhiên, không phải giải pháp nào của Media Pipe cũng

tương thích với tất cả các hệ điều hành và ngôn ngữ lập trình Chính vì vậy, chúng

ta phải xác định thật kỹ các giải pháp trước khi sử dụng.

Dưới đây là bảng so sánh khả năng tương thích của Media Pipe với hệ điều hành và

ngôn ngữ lập trình:

Bang 2 6: Kha năng tương thích của Media Pipe với ngôn ngữ lập trình.

Android iOS C++ Python JS Coral

Trang 35

Biến báo giao

2.2.4 Media Pipe với Python

Giải pháp Media Pipe cung cấp các giải pháp cho ngôn ngữ lập trình Python, chúng

có thê tùy chỉnh dưới dạng một gói Python được tạo săn trên PyPI Google cung cấp

các công cụ và những giải pháp riêng để người dùng xây dựng các giải pháp của

riêng của họ.

2.2.5 Media Pipe Hands

Giải pháp Media Pipe cung cấp cho chúng ta nhiều giải pháp công nghệ ứng dungMachine Learning Nhưng với đề tài khóa luận này, chúng ta sẽ tập trung chủ yếu

về Media Pipe Hands

Giải pháp Media Pipe Hands có khả năng nhận biết hình dạng và chuyển động của

bàn tay Và đây là một thành phần quan trọng trong việc cải thiện trải nghiệm của

người dùng trên nhiều lĩnh vực và nền tảng công nghệ khác nhau Ví dụ: nó có thểtạo cơ sở cho việc hiểu ngôn ngữ ký hiệu và điều khiển cử chỉ tay và trong công

nghệ thực tế ảo Media Pipe Hands có khả năng nhận biết bàn tay theo thời gian

thực mạnh mẽ Đây cũng là một nhiệm vụ khó khăn trong lĩnh thị giác máy tính, vì hai bản tay thường tự chạm vào nhau.

Media Pipe Hands là 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 (Machine Learning) dé suy ra 21 điểm mốc 3D củabàn tay chỉ từ một khung hình duy nhất Trong khi các phương pháp tiếp cận hiệnđại nhất chủ yếu dựa vào sức mạnh của phần cứng máy tính để suy luận, phương

23

Trang 36

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ê mở rộng cho nhiêu người dùng.

Mô hình nhận diện lòng bàn tay Hand Landmark của Media Pipe Hands có tap dữ

liệu hơn 30 nghìn tắm ảnh về lòng bàn tay với 21 điểm tọa độ 3D Sau đó Google

phát triển một mô hình dé nhận dang bàn tay với độ chính xác trung bình là 95,7%

với hàm mắt mát Entropy chéo Sau khi phát hiện được lòng bàn tay trên hình ảnh

đầu vào, mô hình Hand Landmark đã thực hiện định vi và nội suy ra 21 điểm tọa độđốt ngón tay trên lòng bàn tay theo phương pháp hồi quy tuyến tính Dé bao quát tốthơn các tư thé có thé có của bàn tay và cung cấp thêm sự giám sát về bản chất trong

hình học của bàn tay, Google cũng kết xuất mô hình bàn tay ánh xạ nó tới các tọa

độ 3D tương ứng.

Mô hình nhận diện lòng bàn tay Hand Landmark chạy trên nền tảng Tensorflow va

được gọi xuống dưới dạng API:

INDEX_FINGER_PIP 17 PINKY_MCP

INDEX_FINGER_DIP 18 PINKY_PIP INDEX_FINGER_TIP 19 PINKY_DIP

MIDDLE_FINGER_MCP 20 PINKY_TIP MIDDLE_FINGER_PIP

SCOMNANDNAWNAO

Hình 2 12: So đồ các mốc của lòng bàn tay trong mô hình landmark

API của giải pháp Media Pipe Hands gồm có các đặc trưng như:

STATIC_IMAGE MODE: Nếu được set thành false, giải pháp sẽ coi các hìnhảnh đầu vào như một luồng video 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ẽ định vị thêm các mốc bàn tay.Trong các hình ảnh tiếp theo, khi tất cả các tay max_num_hands được phát hiện vacác mốc bàn tay tương ứng được bản địa hóa, nó chỉ cần theo dõi các mốc đó màkhông cần phát hiện khác cho đến khi mat dấu vết của bat kỳ bàn tay nào Điều này

24

Trang 37

làm giảm độ trễ và lý tưởng dé xử lý các khung hình video Nếu được set 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ý

hàng loạt hình ảnh tĩnh, có thể không liên quan Mặc định sẽ được set thành false.

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

MIN_DETECTION_CONFIDENCE: Giá trị tin cậy tối thiểu ([0.0, 1.0]) từ môhình phát hiện tay dé việc phát hiện được coi là thành công Mặc định thành 0.5

MIN_TRACKING_CONFIDENCE: Giá trị tin cậy tối thiểu ((0.0, 1.0]) từ mô

hình theo dõi mốc dé các mốc bàn tay được coi là đã theo dõi thành công, hoặc nếu

không, tính năng dò tìm tay sẽ được gọi tự động trên hình ảnh đầu vào tiếp theo.Đặt nó thành một giá trị cao hơn có thể làm tăng độ chắc chắn của giải pháp, với chỉ

phí là độ trễ cao hon Bỏ qua nếu static_image_mode là true, phát hiện bàn tay don

giản chạy trên mọi hình ảnh Mặc định sẽ được set thành 0.5.

MULTI HAND_LANDMARKS: Các bàn tay được phát hiện và theo dõi, trong

đó mỗi ban tay được biéu thị dưới dạng danh sách 21 điểm mốc bàn tay và mỗi mốc

bao gồm X, y va Z x và y được chuẩn hóa [0.0, 1.0] theo chiều rộng và chiều caocủa hình ảnh tương ứng z đại diện cho độ sâu của mốc với độ sâu ở cổ tay là điểmsốc và giá trị càng nhỏ thì mốc càng gần máy ảnh Mức độ z sử dụng gần giống như

X.

MULTTI HANDEDNESS: Tập hợp độ thuận tay của các tay được phát hiện / theo

dõi (tức là tay trái hay tay phải) Mỗi bàn tay bao gồm label và score Label là một

chuỗi giá trị "Left"hoặc "Right" Score là xác suất ước tính của dự đoán và luôn lớn

hơn hoặc bằng 0.5(và thuận tay ngược lại có xác suất ước tính là 1 - score)

2.3 Tìm hiéu vê Keras va Tensorflow

Keras là một API của deep learning va nó được viết bằng ngôn ngữ lập trìnhpython Keras chạy trên nền tảng machine learning của Tensorflow

25

Trang 38

TensorFlow 2.0 là một nền tang machine learning mã nguồn mở được phát triển bởiGoogle Chúng ta có thé nghĩ về nó như một lớp cơ sở hạ tầng dé lập trình Nó kết

hợp bốn khả năng chính:

- _ Thực hiện hiệu quả các hoạt động tenor mức thấp trên CPU, GPU hoặc TPU

- Tinh toán độ dốc của các biểu thức khác nhau tùy ý

- Tinh toán ty lệ cho nhiều thiết bị (ví dụ: siêu máy tính Summit tại Phòng thí

nghiệm quốc gia Oak Ridge, trải rộng 27.000 GPU)

- _ Xuất các chương trình ("đồ thị") sang thời gian chạy bên ngoài như máy chủ,

trình duyệt, thiết bị di động và thiết bị nhúng

Keras cho phép các kỹ sư và nhà nghiên cứu tận dụng tối đa khả năng mở rộng và

khả năng đa nền tảng của TensorFlow 2.0 Người dùng có thể chạy Keras trên TPUhoặc trên các cụm GPU lớn và người dùng có thé chiết xuất các mô hình Keras của

mình để chạy trên trình duyệt hoặc trên thiết bị đi động thiết bị.

Các cau trúc dữ liệu cốt lõi của Keras là các lớp và mô hình Loại mô hình đơn giảnnhất là Sequential model, một lớp tuyến tính của các lớp Đối với các kiến trúc phức

tạp hơn, người dùng nên sử dụng API function của Keras, cho phép xây dựng các

biểu đồ tùy ý của các lớp hoặc viết mô hình hoàn toàn từ đầu thông qua phân lớp

2.4 Tìm hiểu về thư viện OpenCV

2.4.1 Giới thiệu về OpenCV

OpenCV (Open-Source Computer Vision Library) là một thư viện mã nguồn mở về

thị giác máy (computer vision) và học máy (machine learning) OpenCV được phát

hành theo giấy phép BSD, do đó nó hoàn toàn miễn phí cho cả học thuật và thương

mại Nó có các Interface C++, C, Python, Java và hỗ trợ Windows, Linux, Mac OS,

iOS và Android OpenCV được thiết kế để tính toán và xử lý tập trung nhiều vào

các ứng dụng thời gian thực Được viết bằng tối ưu hóa C/C++, thư viện có thé tận

dụng lợi thé của xử lý đa lõi Được sử dụng trên khắp thé giới, OpenCV có cộngđồng hơn 47 nghìn người dùng và số lượng download vượt quá 6 triệu lần

26

Trang 39

Phạm vi sử dung của thư viện OpenCV là từ nghệ thuật tương tác, cho đến lĩnh vựckhai thác mỏ, bản đồ trên website hoặc công nghệ robot.

- _ Nhận diện người va vat.

- Hỗ trợ xử lý trong các thuật toán thị giác máy tính.

2.4.3 Kiến thức cơ bản về xử lý ảnh trong OpenCV

Ảnh kỹ thuật SỐ (digital image) là một dạng biéu diễn của ảnh ở dạng ma trận số 2chiều Tùy vào độ phân giải của ảnh có cố định hay không, ảnh kĩ thuật số được

chia ra làm 2 loại là ảnh vector (độ phân giải không có định) và ảnh raster (hay còn

gọi là bitmapped, độ phân giải cố định) Thuật ngữ ảnh kĩ thuật số thường được

dùng dé nói đên ảnh raster.

Độ phân giải ảnh là mức độ chi tiết mà ảnh có thé thé hiện Thuật ngữ nay được

dùng cho ảnh raster Độ phân giải càng cao, ảnh càng nhiều chỉ tiết Ví dụ: độ phân

Mức xám của ảnh (greyscale) là một trong những giá trị số của điểm ảnh biểu diễn

mức độ ánh sáng (light intensity) tại điểm ảnh đấy Thông thường, trong xử lý ảnhhiện tại, mức xám hay sử dụng nhất là mức 256 (có giá trị mức xám từ 0 -> 255)

27

Ngày đăng: 22/11/2024, 16:43

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

TÀI LIỆU LIÊN QUAN

w