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 2DAI 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 3THÔ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 4LỜ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 5MỤ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 62.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 74.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 85.3.2 Hướng giải quyết
Trang 9Hì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 101: 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 12DANH 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 13TOM 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 14Chươ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 15viê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 16Dù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 171.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 18Có độ 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 19Chươ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 20Mô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 23Bang 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 24Giá 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 26Cả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 272.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 29Sau 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 31như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 322.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 33Khả 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 34Python, 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 35Biế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 36phá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 37là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 38TensorFlow 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 39Phạ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