Đề có thể chăm sóc họ, robot cần thiết phải thực hiện theo dõi con người dựa vào chuyên động của người đó cũng như phải xác định đâu là người mà robot cần theo dõi.. Robot thực hiện các
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HỌC CÔNG NGHỆ THONG TIN
KHOA KY THUAT MAY TÍNH
Pham Dang Minh Huy
Thân Thế Tùng
KHÓA LUẬN TÓT NGHIỆP
THIET KE VÀ TÍCH HỢP THUẬT TOÁN THEO DOI DE
DONG HANH CÙNG NGƯỜI CAO TUỔI
Design and integrate tracking algorithms to accompany the elderly
KỸ SƯ NGÀNH KỸ THUẬT MÁY TÍNH
TP HÒ CHÍ MINH, 2021
Trang 2ĐẠ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
Pham Đặng Minh Huy — 17520585
Thân Thế Tùng — 17521241
KHÓA LUẬN TÓT NGHIỆP
THIET KE VÀ TÍCH HỢP THUẬT TOÁN THEO DOI DE
ĐÔNG HÀNH CÙNG NGƯỜI CAO TUỔI
Design and integrate tracking algorithms to accompany the elderly
KỸ SƯ NGÀNH KỸ THUẬT MÁY TÍNH
GIẢNG VIÊN HƯỚNG DẪN
TS Đoàn 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é 466/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òng biết ơn sâu sắc tới TS Nguyễn Minh Sơn và TS Đoàn Duy, những người đã
tận tình truyền đạt những kiến thức trong quá trình học tập và trực tiếp hướng dẫn
đề tài này, chỉ dạy những kinh nghiệm quý báu để chúng em hoàn thành đề tài.
Chúng em cũng bày tỏ lòng biết ơn tới quý thầy cô trong khoa Kỹ Thuật
Máy Tính và thất cả các thầy cô trường Đại Học CNTT đã nhiệt tình truyền đạt cho chúng em những kiến thức trong những năm học vừa qua Chân thành cảm ơn các bạn sinh viên lớp KTMT2017 đã giúp đỡ trong những năm học vừa qua đã luôn bên
cạnh và giúp đỡ trong quá trình học tập và khó khăn trong cuộc sống.
Em xin gửi lời chúc sức khỏe đến tất cả quý thầy cô dé mãi là những người
thầy người hướng dẫn, giúp đỡ, nuôi ước mơ cho các thế hệ sinh viên ngày một
trưởng thành và vững vàng hơn trong quá trình học tập và rèn luyện trong trường
cũng như cuộc sông sau này.
Sinh viên thực hiện
Phạm Đặng Minh Huy
Thân Thế Tùng
Trang 5MỤC LỤC
Chương 1 GIGI THIỆU DE TÀI HUMANOID ROBOT DONG HANH CUNG b(69/989.1900990001011 2 1.1 Giới thiệu để tài che 2 1.2 Robot đồng hành và chăm sóc người cao tuổi - -: -225cccccc-+z 3
1.3 Humanoid robot đồng hành cùng người cao tuổi - -:-©s+2 3 Chuong2 | MOT SO NGHIÊN CỨU LIÊN QUAN . -cc-c Š
2.1 OpenBO( - <5: tt THỰ HH2 0.1110.111 0 1 rư 5
2.2 Person following TObOL - ¿+6 2S SE Sk2k4 E12 21121 11111101 1 6
2.3 Sơ lược về các mô hình phát hiện đối tượng theo thời gian thực § 2.4 Xác định đối tượng dựa trên đặc điểm khuôn mặt s s 5e 0 2.4.1 Eigemface Qh f s% 0
2.4.2 Fishemfa@e MP ace A WR , ice 1
2.4.3 SVM (Support vector machine) ¿- - s<<c++x+c+c+es++ 1
2.4.4 Deep learning CNN - che 2
2.4.5 Ưu nhược điểm của non-deep learning và deep learning 2 2.5 Mô hình xác định đối tượng là người với SSD_MobileNet 3
2.5.1 Mạng nơ-ron nhân ta0 + c5 S1 StEkerkerrrrrrrkrkek 3
2.5.2 Mô hình mạng nơ-ron tích chập CNN (Convolution Neural Network)
17 2.5.3 Mô hình mạng MobileNet, SSD và SSDMobileNet 21
2.5.4 Kiến trúc mang MobileNet -cccc+22cvvvvecrerrrrrr 22 2.5.5 Kién tric SSD (Single Shot Multibox Detector) + 26 2.5.6 SSD MobileNet cccssecceseesesseseesesnesesessessenesseseseessseseessseeseesesenses 27
Trang 62.5.7 Kiến trúc SSD MobileNet 5222cccvcrsrrrrrrrrrerrerrrer 28 2.6 Phát hiện và nhận diện khuôn mặt với Retinaface và MobileFacenet
2.6.1 MobileFacelNet che 30
2.6.2 RetinaFace
2.7 Thuật toán theo dõi KCF — DSSTT - ¿5-55 ssxseeeessesesreesrseeserr.e 24
2.7.1 Thuật toán KCF (Kernelized Correlation Filter)
2.7.2 Thuật toán DSST (Discriminative Scale Space Tracker) 37
2.8 Thuật toán streaming video sử dụng WebRTC - + 5<++ 37
2.8.1 Ngăn xếp giao thức WebRTC -cccccesccrrrrrreerrrrrrer 38
2.8.2 Khái niệm WeblRTTC ¿+ St HH1 v vưy 39
2.8.3 Ưu, nhược điểm của WebRTC -¿- ccsc2cx+ccExxtrrxerrrkrrrrrrrer 39
2.8.4 Khái niệm khác ccccerrerkerrirrrrrirrrerer 40
Chương3 THIET KE HE THÓNG -2ccczz+2cccvsez 42
3.1 Tổng quan về hệ thong -::-:¿+22V2++++2EE+++etEEE++rettrvvrrerrrsrrrrrg 42 3.2 Hệ thống phần cứng và linh kiện sử dụng .:-zscz+2 43 3.2.1 Tổng quan hệ thống phan cứng -c:¿+2vvvccz+rrr 43 3.2.2 Mô hình thiết kế Humanoid Robot -i::iiic:c++eecce2 44 3.2.3 Bộ bánh xích -cc sec AT
3.2.4 Driver Motor L298N 0 c.csceccsecscsseseseseeseseseeeeeseseseeeeseseecseeneneseseeaees 48
3.2.5 Động co DC Servo JGB37-520 ceeeeescces se eeseseseseeeeeeseseseseeseseseeeeees 49
3.2.6 Mạch nguồn giảm áp XL4015 : -c¿222v+c++ecvvrrrrrrrrvee 50
3.2.7 Pin Li-ion 7.4V sàtt kề HH ghưn 51 3.2.8 USB Wifi N150USM - - - 5c Sàn hư 52
3.2.9 | Máy Tinh AI NVIDIA Jetson Nano Developer Kít 52
Trang 73.2.10 Webcam Logitech HD C31 -¿ ¿5< <‡+‡+ssrkskekreree 53
3.3 Hệ thống phần mềm.
3.3.1 Tổng quan hệ thống phan mêềm ¿-©+z++22++z++czxvcee 54
3.3.2 Giải thuật streaming video sử dung WebRTC
3.3.3 Ứng dụng kết hợp RetinFace và MobileFaceNet trong nhận dạng
KUO MAE oe 58
3.3.4 Mô hình SSD_MobileNet phát hiện người
3.3.5 Giải thuật tracking KCF - DSST theo dõi chuyền động vật thé 60 3.3.6 Giải thuật điều khiển Robot di chuyền theo doi đối tượng
3.3.7 Tối ưu hóa với NCNN và chạy với GPU -: s-2 64
Chuong 4 THỰC NGHIEM VÀ ĐÁNH GIA KET QUẢ 66
4.1 Thực nghiệm mô hình phát hiện đối tượng người - 66
4.2 Thực nghiệm mô hình nhận dạng khuôn mặt - ¿+ eens 67
4.3 Thực nghiệm thuật toán tracking — theo dõi đối TƯỢNE ccccccee 71
4.4 Thực nghiệm thuật toán streaming video ‹ - + ++s+s*£v+veexexseex 74
4.4.1 Streaming video trên mạng nội bộ . - + + s++s++<++ 75
4.4.2 Streaming video ra ngoài mạng internet -5-s+ 77
4.5 Thực nghiệm Robot va quá trình đồng hành cùng đối tượng người gia 78 4.6 Thực nghiệm đánh giá mức độ tiêu thụ năng lượng - 85
Chương 5 KÉT LUẬN VÀ HƯỚNG PHÁT TRIÊN -: - 86
5.1 Kếtluận Hee 86 5.2 Hướng phát triển trong tương lai -¿-522+z++22Ex+eerrrrxeererrrrecrrer 88
TAI LIEU THAM KHAO\ sscsscsssssessssssseccsssscscssssscscsssssceessuseecsssisesssiieesssseseessneeeee 90
Trang 8DANH MỤC HÌNH
Hình 2.1: OpenBot [] ¿+ + 11k ng TT HH TH rệt 5
Hình 2.2: Kiến trúc mô hình Yolo [16] - :¿ ¿¿©++z222++z+222++++tzvscee+rrx 8 Hình 2.3: Kiến trúc mô hình SSD [8] escsescsssssssesssesssessseessessseessesssesssesssessseesseesseessees 9 Hình 2.4: Phương pháp SVM [ [|] 65+ + #EvEvkerrkekrrrrrererrrevee 1
Hình 2.5: Mô hình của perception [ Ï3] -¿-¿-¿ + + 2k‡x‡‡Ekkskekererrrrrrree 4
Hình 2.6: Đồ thị hàm số sigmoid [13]
n +
Hình 2.7: Kiến trúc cơ bản của mạng nơ-ron [13]
Hình 2.8: Mang ma trận RGB 6x6x3 (3 ở đây là giá trị RGB) [12] 7
Hình 2.9: Các lớp trong CNN [12] 18
Hình 2.10: Input va filter map [12] - - - ¿5+ ‡£2E‡EEk+kEkeEeEkrkekerrkrkrkrkekee 9
Hình 2.11: Tính toán và feature map [ L2] - - ¿+5 ++s£s£e>xz++zexererezxsrsr 9
Hình 2.12: Pooling layer [ Í2] - -¿-¿-¿- + +2 StS*E£E#E2kEk+kEEEEEESEEkEkrkrkrrrrkrkrkek 20
Hình 2.13: Tính toán cho Convolution [ 144] - ¿+ +sss+sssx+e£eeexszexeezeseexssz 22
Hình 2.14: Các bước thực hiện Depthwise Convolution [14] - 23
Hình 2.15: Pointwise convolution [14] - s:sccs++stsxseexexeereveerserererrererrree 24
Hình 2.16: Convolution cũ (trái), Depthwise separable Convolution(phải) [14] 25
Hình 2.17: Kiến trúc CNN với bộ đò SSD [§] -¿¿- 2cz+222vsc+ccvsccesrr 26
Hình 2.18: Ví dụ về ô lưới SSD [8] -2cccc22222vvvvrrrrrrrrrrrrerrrrrrrrrrrree 27
Hình 2.19: Kiến trúc mạng SSDmobileNet [ [] ¿+55 + +<+cceeererersee 28 Hình 2.20: Mô hình RetinaFace [4] ¿- ¿+52 + S2 *+t££E££E+tEexeeEeterxetrrserreresxer 33
Hình 2.21: Kiến trúc của Retinaface [4], à ào
Hình 2.22: Sơ đồ nguyên lý thuật toán KCF [7]
Hình 2.23: So đồ thuật toán theo dõi DSST với tỷ lệ thay đổi [7 - 37
Hình 2.24: WebRTC protocol stack [ 1©], - - ¿5c +++++Ev£kekekekekrrkrkekerrree 38
I0) 515990068 5.0010 7 4I
Hình 3.1: Tổng quan về hệ thống -22+++2222EEE+2vrrrttEEEEkrrrrrrrrrrrrrrev 42 Hình 3.2: Hệ thống phần cứng 2 ©22++22E+++tEEE+++ttEEEEvretrrrvrrrrrrrrrrrrr 43 Hình 3.3: Vi trí các linh kiện trên rObotL -.- ¿52+ s+*+vx+e+vx+evexerxetrrsrrrerrsser 44
Trang 9Hình 3.4: Thiết kế ban đầu của robot [ 1 5] -¿-s- + + x+s+EeEk+E+EeEE+x+EeEezksxerezezxee 45Hình 3.5: Thiết kế khi thay đổi phần bụng -¿ 2¿5¿©2++2x+2cx+rxrrxecree 45Hình 3.6: Thiết kế thay đổi phan thân dưới 2-2 2 2 2+E£+Ee£E+£x+rxzrszxez 46Hình 3.7: Thiết kế phan thân dưới (phần bánh xe), 2-2 ©z+++x+zxzsz 46
Hình 3.8: Hướng di chuyển của rObOI - 2-2: 52 2+E+EE+£E£2EE+EEtEEerEerEkerkerxerex 46
Hình 3.9: Bộ bánh xích — phần chân của Robot - 2 2 2+s2+x+x+zx+zs+zsse2 48Hình 3.10: Module điều khiển động cơ L298N -2222 ++2xccx++zzzxerxcrez 49
Hình 3.11: Động co DC Servo JGB37-520 - 1 1S SH Hy 50
Hình 3.12: Mạch nguồn giảm áp XLAOI5 2-2 2£+E£+£E+£EezEzEesrxerxzex 51
Hình 3.13: Pin Li-IOn 7.4V c1 HH TH TH TH HH TH HH, 51 Hình 3.14: NISOUSM ue eeesessesseesecsecsecsecsececseceseesesseesessessessessessesseesaseessaseneeaeeas 52 Hình 3.15: Jetson nañO G0 1 01 2301991191 930v gu nh HH như 53
Hình 3.16: Lưu đồ hệ thống phần mềm ¿2 2 2£ ££2££+E£+E+£E+£++£x+z+zs+2 55
Hình 3.17: Giải thuật streaming video sử dụng WebR”TC -5 55s << s+s<ss+ 56
Hình 3.18: Lưu đồ xác minh khuôn mặt - 2 2 22+ £++z++zE£+£++rxerxzzsz 59
Hình 3.19: Sơ đồ thuật toán tìm đối tượng ngườii - 2 2 s+x+zse+ze+rxerxcrez 60
Hình 3.20: Lưu đồ theo dõi đối tượng -¿- 2 + E+2E£+EE+EEtEEerEerrksrkerrrex 61Hình 3.21: Sơ đồ của Pinhole camera model [17] -==szszszszszszszx+z+zszsssz 62Hình 3.22: Lưu đồ điều khiển Robot theo dõi mục tiêu -c -:-: 63
Hình 4.1: Mô ta cách thực nghiệm mô hình phát hiện người - ‹ 66
Hình 4.2: Mô tả cách thực nghiệm mô hình nhận dạng khuôn mặt 67
Hình 4.3: Tập dữ liệu thực nghiệm cho trường hợp 1,2,3 -. -++-x+<+ 68 Hình 4.4: So sánh khả năng nhận diện khoảng cach 2.5m (trái) và 2m (phải) 69
Hình 4.5: Thực nghiệm mô hình với tình trạng thiếu sáng - s2 70Hình 4.6: Kết quả thực nghiệm nhận dạng khuôn mặt góc trên 45 độ 70
Hình 4.7: Tập dữ liệu thực nghiệm cho trường hop 4 - -. 5 «<< c+scesxe 71
Hình 4.8: Thực nghiệm tracking đối tượng trong VideO c.ccccseessesssecsesstesseesseesseens 72Hình 4.9: Thực nghiệm tracking object ngoài thực tẾ -¿-z+s+cs+zxzsz 72Hình 4.10: Thực nghiệm tracking người cao tuổi - 2-2 2+ szxezxsrerszsez 73
Trang 10Thực nghiệm tracking con người di chuyền thực tế -: 73
Thực nghiệm đo độ trễ streaming video với 1 client trên mạng nội bộ 75
Kịch bản trên lý thuyết của kịch bản l -2¿©5¿©5z+csccxzsz 79Kết quả thực nghiệm của kịch bản l .¿- ¿5c ©5++cs+2cxzssee: 80
Kịch bản 2 trên lý thuyẾT - 2-52 ©522S2+EESEEtEEEEEEEEEEEEEEEErrkerrrrex 81
Két quả thực nghiệm của kịch ban 2.00 ec eeccesseceseeeeneeeeneeeseeseaeeeeaeeees 82Kịch ban 3 trên lý thuyẾt ¿- 2-52 c SeEkeEESEESEEEEEEEEEEEEEEEerkrrkrrkee 83Kết quả thực nghiệm kịch bản 3 5 <6 1+ EskEseessessrse 84
Trang 11DANH MỤC BANG
Bang 2.1: Các kỹ thuật theo dõi con người [2] - -¿- sec ssssssssersersrrse 6
Bảng 2.2: So sánh các mô hình xử lý thời gian thực [6] - « «<<s<«++ 10
Bảng 2.3: So sánh tỉ lệ nhận dạng và phức tạp của học sâu với không học sâu [10]13
Bảng 2.4: Kiến trúc các lớp của MobileNet [ 14] - 2-2 z+secxezxezxzrszrssez 24
Bảng 2.5: So sánh Conv MobileNet và MobileNet [14] -<<<<<<52 26
Bang 2.6: Lớp và tham số của kiến trúc SSD mobileNet [ 1] - 5-52 28
Bang 2.7: Bảng so sánh hiệu năng MobileFaceNets [3] - - - <<+<<<<+<+2 30
Bang 2.8: So sánh hiệu suất của các ứng dụng xác minh khuôn mặt trên LFW [3].31
Bảng 2.9: Kiến trúc mạng dé trích xuất đặc trưng nhúng [3] - + 31
Bang 2.10: So sánh hiệu suất giữa MTCNN va RetinFace trong Arcface [4] 33Bảng 2.11: So sánh KCF với một số thuật toán khác [ 5] s- - s+secx+x+zxez 36Bang 3.1: Ưu, nhược điểm của bánh xe và bánh xích ¿- c s+x+x+zetezx+xers 46Bảng 4.1: Kết quả thực nghiệm phát hiện người bất động theo tư thế đứng — ngồi 66Bảng 4.2: Kết quả thực nghiệm từ webeam Logitech HD C310 HD 720p 68Bảng 4.3: Kết quả thực nghiệm từ camera điện thoại độ phân giải FHD 1080p 68Bang 4.4: Thực nghiệm với nhiều khuôn mặt cùng xuất hiện trong khung hình 71
Bang 4.5: So sánh giữa các kịch bản - - c5 + xxx ng HH ng rưệt 74
Bảng 4.6: Kết quả đo độ trễ khi streaming video với 2 client trên mạng nội bộ 75Bảng 4.7: Kết quả đo độ trễ khi streaming video với 4 client trên mạng nội bộ 76
Bảng 4.8: Kết quả đo độ trễ trên khác trình duyệt khác nhau trên mạng nội bộ 76Bảng 4.9: Kết quả đo độ trễ khi streaming video với 2 client ngoài mạng internet 77
Bảng 4.10: Kết quả đo độ trễ khi streaming video với 4 client ngoài mạng internet
Bảng 4.11: Kết quả đo độ trễ trên khác trình duyệt khác nhau ngoài mạng internet78
Bảng 4.12: So sánh kết quả các kịch bản thực nghiệm Robot theo dõi đối tượng 84
Bảng 4.13: Mức độ tiêu thụ điện điện năng của các thiết bị trong Robot 85
Bang 5.1: So sánh robot của chúng tôi với một số robot khác - . - 86
Bang 5.2: So sánh Robot của chúng tôi với một số Robot đồng hành khác 87
Trang 12DANH MỤC TU VIET TAT
STT | Kí hiệu chữ viết tắt Chữ viết đầy đủ
1 | API Application Programming Interface
2 | CNN Convolution Neural Network
3 | DSST Discriminative Scale Space Tracker
4 |ICE Interactive Communication Establishment
5 | IP Internet Protocol
6 | KCF Kernelized Correlation Filters
7 | LFW Labeled Faces in the Wild
8 | NAT Network Address Translation
9 | P2P Peer to Peer
10 | RTCPeerConnection | Real Time Control Peer Connection
11 |SDP Session Description Protocol
12 |SSD Single Shot Detector
13 | STUN Simple Traversal of User Datagram Protocol [UDP]
Through Network Address Translators [NATs]
14 | SVM Support Vector Machine
15 | TURN Traversal Using NAT Relay
16 | WebRTC Web Real-Time Communication
Trang 13TÓM TÁT KHÓA LUẬN
Những robot cần thiết trong tương lai gần là những robot thân thiện với con người, có thể cùng tồn tại và hỗ trợ con người một cách hiệu quả đặc biệt là người
cao tuổi Đề có thể chăm sóc họ, robot cần thiết phải thực hiện theo dõi con người
dựa vào chuyên động của người đó cũng như phải xác định đâu là người mà robot cần theo dõi Trong nghiên cứu này, một robot có tác vụ nhận diện và theo dõi một
đối tượng được xem là người cao tuổi được tạo ra Robot thực hiện các chức năng
như nhận dạng khuôn mặt đối tượng bằng RetinaFace và MobileFaceNet để theo xác định đâu là đối tượng cần theo dõi, nhận dạng thân hình bằng SSD_MobileNet
dé tiến hành theo dõi, điều này giúp có thé theo dõi đối tượng trong những trường
hợp không thể xác định khuôn mặt, theo dõi đối tượng bằng thuật toán KCF
(Kernelized Correlation Filters) - DSST (Discriminative Scale Space Tracker)
tracker, cuối cùng là điều khién robot di chuyên dé giữ một khoảng cách nhất định
từ robot tới đối tượng theo đõi Đồng thời tiến hành phát video theo doi lên mạng hỗ trợ người nhà có thé theo dõi người thân Robot đến nay đã có thé thực hiện một số
tác vụ như xác định người cần theo dõi, nhận dạng thân người và điều khiển theo doi đối tượng theo khoảng cách cũng như phát video theo doi ở mạng nội bộ.
Trang 14Chương 1 GIỚI THIỆU DE TÀI HUMANOID ROBOT DONG HANH
CUNG NGUOI CAO TUOI
1.1 Giới thiệu đề tai
Tiến bộ công nghệ là một xu hướng phổ biến có ảnh hưởng đáng kẻ đến cuộc sống của con người Robot là một trong những phát minh công nghệ vĩ đại nhất.
Ứng dụng của người máy đã dẫn đến sự cải thiện đáng ké trong đời sống con người
và ngành công nghiệp Ngày nay, robot là một phần quan trọng trong các lĩnh vực khác nhau bao gồm: sản xuất, dịch vụ y tế và gia dụng, hoạt động quân sự và giải
Cũng theo báo cáo, năm 2018, lần đầu tiên trong lịch sử nhân loại, những người từ
65 tuổi trở lên có số lượng đông hơn trẻ em dưới 5 tuổi trên thế giới Những người
cao tuổi từ 80 tuổi trở lên dự kiến có thé tăng gấp gan 3 lần, từ 143 triệu người năm
2019 lên 426 triệu người vào năm 2050.
Dân số già đang gia tăng trên toàn thế giới, điều này cho thấy nhu cầu sức khỏe của họ là một van dé quan trọng đối với các cơ quan cung cấp dich vụ y tế, các
chính phủ, nhân viên chăm sóc và gia đình của họ Điều này dẫn đến sự xuất hiện của các robot chăm sóc sức khỏe có vai trò có trong việc hỗ trợ người lớn tuổi hoàn thành các hoạt động thường ngày, giúp theo dõi hành vi, sức khỏe người già và là
bạn đồng hành khi họ một mình Trong tương lai gần, thế giới sẽ thiếu hụt trầm
trọng nhân viên chăm sóc người cao tuổi, đây là nguyên nhân khiến chỉ phí chăm sóc người cao tuôi tăng cao và tạo ra gánh nặng cho gia đình và người chăm sóc Vì
vậy Robot là sự bù đắp thích đáng cho sự thiếu hụt đó (WHO, 2016).
Trang 151.2 Robot đồng hành và chăm sóc người cao tudi
Với sự tiến bộ của robot và trí tuệ nhân tạo, các robot đồng hành trong xã hội bắt
đầu được hình thành: những sinh vật cơ khí có hình dạng con người hoặc động vật,
nhỏ hơn hoặc lớn hơn có thể thực hiện các nhiệm vụ khác nhau và có thể tương tác với con người và môi trường xung quanh chúng Qua đó có thê thực hiện các chức
năng theo dõi chăm sóc người già yếu hoặc bệnh tật.
Có thé nhắc tới một số robot phục vụ cho van dé trên như:
- Ri-man từ các nhà khoa học thuộc viện nghiên cứu Riken (Nhật Bản): Robot có
thé di chuyển theo đối và thực hiện một số chức năng như ẫm người, nghe nhịp
thở và phân biệt được một số mùi vị.
- Buddy The Emotion Robot từ Blue Frog Robotics cung cấp một robot thông
minh da năng sử dụng trong gia đình, nó hỗ trợ theo dõi, giám sát phát hiện tình huống bat thường, điều khiển thiết bị trong nhà, theo dõi chăm sóc người cao tuổi nhắc nhở tư thế và lịch trình, cung cấp đa phương tiện tương tác xã hội trên môi trường mang,
1.3 Humanoid robot đồng hành cùng người cao tuổi
Humanoid robot: là một robot có hình dạng cơ thé được xây dựng dựa trên hình
dáng của con người Có thể tự điều khiển, nghĩa là có thể thích ứng với các điều kiện khác nhau của môi trường và sự thay đổi của chính nó để thực hiện mục đích
đặt ra.
- Bài toán cần phải giải quyết các van dé như:
e Làm thé nao để xác định đối tượng cần theo dõi.
© Sau khi xác định đối tượng phải làm sao dé theo dõi đối tượng khi đối tượng
di chuyên và môi trường thay đổi.
e _ Xử lý dé điều khiển robot có thể đi cùng đối tượng.
© Xt lý như thé nào khi bị mat đối tượng.
Trang 16e Phat hiện bat thường, ứng dung IoT (Internet of Things) vào robot.
- Gidi han dé tài:
e Đề tài chúng tôi được thực hiện với điều kiện phát hiện và theo dõi đối tượng
trong không gian phòng với diện tích 30m2 và không có vật cản.
© Robot can thay trên 3⁄4 diện tích khuôn mặt của người cao tuổi để xác định đối
tượng cần đồng hành.
- Mục tiêu đề tài: Chúng tôi muốn tạo ra một Humanoid Robot sử dụng, tích hợp
các thuật toán xử lý ảnh đề tiến hành nhận diện, theo dõi và điều khiển robot đồng hành cùng người cao tuổi, đồng thời cung cấp thông tin đối tượng cho
người thân đề họ có thể quan sát từ xa thông qua việc phát video trực tuyến.
Trang 17Chương 2 MỘT SO NGHIÊN CỨU LIEN QUAN
e _ Tốc độ chưa thực sự nhanh chỉ khoảng 10 fps.
¢ St dụng cảm biến thay vì máy quay dé theo dõi đối tượng theo khoảng cách.
© Chỉ có thé theo dõi đối tượng là người, không xác định được người cần theo
dõi, chi lấy đối tượng giống người nhất.
Trang 182.2 Person following robot
Dưới day là bảng một số dự án Robot sử dụng trong việc theo dõi con người [2]:
Bảng 2.1: Các kỹ thuật theo dõi con người [2]
STT Device for Unique feature What is being detected on
detection and the target person
tracking
1 Laser range Fuzzy inference system, Target person’s leg
finder leg detection algorithm
2 2 stereo cameras Lucas Kanade approach,
BSFS algorithm,
RANSAC, face detection
Disparity and feature points
between 2 images by 2
stereo cameras
algorithm
3 Stereo camera SVM based verifier Human upper body in dept
and EKF tracker images
4 Stereo camera, | SVM based verifier, color | Human upper body in dept
EKF tracker and | information, SIFT feature, images, SIFT feature to
laser range finder RANSAC differentiate 2 person with
similar clothing
5 Kinect high
speed sensor
Processing.org software,
human skeleton method
Human skeleton need to
raise hands
Nhìn chung tat cả các thuật toán trong bảng 2.1 sử dung nhiều cách khác nhau
trong việc xác định đối tượng để theo déi (phần chân, so sánh thay đổi của 2 khung
hình, thân hình con người).
Ưu, nhược điểm của các kỹ thuật trong Bang 2.1:
- Uudiém:
Trang 19© Kỹ thuật 1 cho phép theo dõi một đối tượng duy nhất và điều chỉnh tốc độ
với độ chính xác cao dựa trên cảm biến laser range finder.
e Kỹ thuật 2 dựa vào 2 camera âm thanh để tìm kiếm đối tượng thuật toán so
sánh hành động trong không gian.
e Kỹ thuật 3 tương tự như kỹ thuật 2 kết hợp với thuật toán tracker EKF
(Extended Kalman Filter) hỗ trợ quá trình theo dõi.
© Ky thuật 4 là sự kết hợp của kỹ thuật 1 và 3 có thé nhận diện người cần theo
dõi dựa trên cách mặc của đối tượng.
© Ky thuật cuối cùng sử dụng cảm biến Kinect High speed sử dụng bộ xương
người làm tính năng theo dõi, người cần theo dõi phải dơ tay.
- Nhược điểm:
e Nhin chung kỹ thuật 1, 2, 3 chỉ có thé áp dụng khi có 1 đối tượng duy nhất
cũng như khi có trên hai người chúng sẽ không hoạt động.
© Ky thuật 4 lại có chi phí lớn do cần quá nhiều thiết bị phụ trợ cũng như sẽ bị
nhằm lẫn khi có hơn 2 người mặc đồ giống nhau.
© Ky thuật 5 lại yêu cầu đối tượng phải hành động một thao tác nhất định điều
này là không thể trong thực tế.
Ngoài ra còn một sé ứng dụng trong theo dõi con người khi sử dụng camera tinh
trong phòng nhưng do dự án chúng tôi chỉ dựa vào camera từ robot nên không đề
cập tại đây.
-_ Từ các đề tài của các nhóm tác giả trên nhóm chúng tôi tập trung vào việc theo
đõi đối tượng và xác minh đối tượng cần theo dõi sao cho:
e _ Tìm kiếm đối tượng khi đối tượng biến mat.
© _ Xác định các đối tượng xuất hiện trong khung hình.
¢ Xác minh đối tượng cần theo dõi thông qua đặc điểm riêng mà chỉ mình đối
tượng có.
¢ Tracking đối tượng khi đối tượng di chuyền.
Trang 20e_ Thiết kế robot cùng với xác định khi nào cần di chuyên và di chuyên như thé
nào.
2.3 Sơ lược về các mô hình phát hiện đối tượng theo thời gian thực
Mô hình Yolo:
Yolo là một mô hình mang CNN (Convolution Neural Network) cho việc phát
hiện, nhận dạng và phân loại đối tượng Yolo được tạo ra từ việc kết hợp giữa
các convolutional layers và connected layers Trong đó convolution layers sẽ
trích xuất các feature của ảnh, còn full-connected sẽ dự đoán ra xác suất và vị trí
của đôi tượng.
2x2-+2 2x2+2
Hình 2.2: Kiến trúc mô hình Yolo [16]
Đầu vào của mô hình là một ảnh, mô hình sẽ nhận dạng ảnh đó có đối tượng hay
không sau đó sẽ xác định vi trí đối tượng trong ảnh Ảnh đầu vào được chia
thành S x S 6, thường là 3 x 3, 7 x 7, 9 x 9, việc chia 6 này có ảnh hưởng tới
việc phát hiện đối tượng
Yolo sẽ dự đoán xem trong mỗi ô liệu có đối tượng mà điểm trung tâm rơi vào ô
đó và dự đoán điểm trung tâm, kích thước và xác suất của đối tượng đó so vớiđối tượng cần xác định
Mô hình Faster R-CNN:
Trang 21- Faster R-CNN không dùng thuật toán selective search để lấy ra các region
proposal như R-CNN mà nó thêm một mạng CNN mới gọi là Region Proposal
NetWork (RPN) dé tìm các region proposal.
Mô Hình SSD (Single Shot Detector):
- Là một thuật toán mà chúng ta chi cần thực hiện một lần dé dự đoán nhiều đối
tượng trong một hình ảnh, trong khi các thuật toán sử dụng Mạng đề xuất khu
vực (RPN), chang hạn như R-CNN, phải thực hiện 2 lần, một lần để tìm các dé
xuất khu vực, một lần đề phát hiện đối tượng khuyến nghị mỗi khu vực.
- Khảo sát về các mô hình hoạt động trong việc phát hiện đối tượng theo thời gian
thực và so sánh kết quả với nhau [6]:
e Faster R-CNN bằng cách sử dụng Inception Resnet với 300 đề xuất
(proposals) mang lại độ chính xác cao nhất ở 1 FPS cho tất cả các trường
hợp thử nghiệm.
¢ SSD trên MobileNet có mAP cao nhất trong số các mô hình được nhắm
tới để xử lý ảnh theo thời gian thực, Nó cũng đem lại sự cân bằng tốt nhất
giữa độ chính xác và tốc độ.
© SSD hoạt động kém với các đối tượng nhỏ nhưng với đối tượng lớn lại
cho kết quả vượt trội hơn với các mô hình khác.
Trang 22Bảng 2.2: So sánh các mô hình xử lý thời gian thực [6]
Minival Test-dev
Model summary
mAP mAP
(Fastest) SSD w/MobileNet (Low Resolution) 19.3 18.8
(Fastest) SSD w/inception V2 (Low Resolution) 22 21.6
(Sweet Spot) Faster R-CNN w/Resnet 101, 100
32 31.9
Proposals
(Sweet Spot) R-FCN w/Resnet 101, 300 Proposals 30.4 30.3
(Most Accurate) Faster R-CNN w/Inception Resnet
35.7 35.6 V2, 300 Proposals
2.4 Xác định đối tượng dựa trên đặc điểm khuôn mặt
2.4.1 Eigenface
- Mục đích của nhận dạng khuôn mặt là dé phân biệt tín hiệu đầu vào dưới
dạng dữ liệu hình ảnh của một số lớp là khuôn mặt người Tín hiệu đầu vào có
độ nhiễu cao bởi ánh sáng, tư thế, Mỗi khuôn mặt lại có điểm khác nhau
nhưng có một kiểu tương tự có thể phát hiện được như: mắt, miệng, mũi và
khoảng cách giữa đối tượng Nhận dạng khuôn mặt dựa trên các đặc điểm này được gọi là Eigenface.
- Các đối tượng có thể được trích xuất bằng toán học sử dụng phân tích thành
phần chính (PCA — Principal Component Analysis) PCA có nhiệm vụ chuyển đổi từng ảnh gốc thành Eigenface tương ứng của nó.
- Eigenface là một phương pháp được bao gồm trong cách tiếp cận dựa trên
ngoại hình, nó sẽ trích dẫn thông tin duy nhất từ khuôn mặt sau đó mã hóa và
so sánh với các kết quả đã giải mã trước đó.
- _ Việc giải mã khuôn mặt được thực hiện bằng các eigenvector và được biểu
diễn bằng một ma trận lớn.
10
Trang 232.4.2 Fisherface
- Fisherface đặc biệt hữu ích khi hình ảnh khuôn mặt có sự thay đổi lớn về độ
sáng và biểu cảm Phương pháp này là một cải tiến của Eigenface sử dụng phân tích phân biệt tuyến tính của FLDA (Fisher’s Linear Discriminant
Analysis) hoặc LDA dé giảm kích thước.
- Fisherface là một phương pháp tổng thé được sử dụng trong giai đoạn nhận
dạng khuôn mặt Giai đoạn tổng thể là xác định dựa trên các đặc điểm cục bộ của khuôn mặt (mắt, mũi, miệng) Phương pháp tiếp cận Fisherface là một phương pháp được sử dụng rộng rãi dé trích xuất đặc điểm trong ảnh khuôn
mặt Phương pháp này cố ging tìm hướng chiếu trong đó các hình ảnh thuộc
lớp khác nhau được tách ta một cách tối đa.
2.4.3 SVM (Support vector machine)
- SVM là một phương pháp học tập phân tích dữ liệu cho mục dich phân loại
và phân tích hồi quy Nó là sự tách biệt hoặc phân biệt giữa 2 lớp.
- SVM phân loại bằng cách tìm một hyperplane tối đa hóa lề giữa 2 lớp Các
giai đoạn của thuật toán SVM có thé xem trong hình 2.5.
Training Process Testing Process
Hyperplane dan.
Hình 2.4: Phương pháp SVM [10]
‘SVM classification
11
Trang 242.4.4 Deep learning CNN
- Deep learning là một lĩnh vực nghiên cứu thi giác máy tinh và máy hoc trong
việc xử lý và xác định kích thước ảnh Học sâu tạo ra độ chính xác cao nhất
khi áp dụng mạng thần kinh nhân tạo Dựa trên một số nghiên cứu, kiến trúc deep learning tốt hơn các phương pháp truyền thống để áp dụng trong các
trường hợp hiện đại với các vấn đề phức tạp như thị giác máy tính và ngôn
ngữ con người.
- Deep learning rất hiệu quả để sử dụng trong việc dự đoán dữ liệu đã biết hoặc
chưa biết Học sâu hoạt động tốt trên một loạt đữ liệu lớn và đã được triển
khai trong các vấn dé như: nhận dạng giọng nói, nhận dạng khuôn mặt, vân
tay, Nhận dạng khuôn mặt có thể được phát triển bằng phương pháp học sâu, một số sử dụng mạng CNN Phương pháp này dùng để xác định đặc điểm
về bản chất của ảnh đầu vào qua đó trích xuất ảnh thô thành hình ảnh đã được
phân loại.
2.4.5 Ưu nhược điểm của non-deep learning va deep learning
- Ưu điểm của non-deep learning:
¢ Eigenface va fisherface khá đơn giản và hiệu qua dé dang triển khai.
© C6 thé mang lại tỉ lệ nhận dạng tương đối như SVM.
e D6 phức tạp khi tính toán thấp mang lại tốc độ trong nhận dang cao.
- Nhược điểm non-deep learning:
e Trong những trường hợp phức tạp, các phương pháp truyền thống lại có
độ phức tạp cao, tốn nhiều thời gian tính toán.
e Cai đặt thông số không đơn giản.
¢ _ Ti lệ nhận dạng giảm đối với nhiều tư thé và độ chiêu sáng khác nhau.
e Mite độ nhận biết của Eigenface và Fisherface rất hạn chế.
e SVM hoạt động với tập dữ liệu nhỏ.
- Ưu điểm khi sử dụng deep learning:
© C6 thể thực hiện ở độ phân giải hình ảnh khác nhau.
12
Trang 25e May tính quá chỉ tiết nên độ sai sót có thể nhỏ.
e CNN có thể giải quyết các bài toán có độ phức tạp tính toán cao cần
nhiều tham số.
© C6 thể phân loại hình dang khuôn mặt của dữ liệu đã biết và chưa biết.
- Nhược điểm deep learning:
e D6 phức tạp lớn.
© _ Có thể kéo đến tốn thời gian với một số mô hình lớn.
Bảng 2.3: So sánh tỉ lệ nhận dạng và phức tạp của học sâu với không học sâu [10]
Method | Rate of Recognition (%)
Complexity ORL YALE
- Có thé thay rang deep learning cho ra kết quả với độ chính xác cao nhất trong
số những phương pháp khác nhưng độ phức tạp cũng tương đối cao.
2.5 Mô hình xác định đối tượng là người với SSD_MobileNet
2.5.1 Mang nơ-ron nhân tạo
- Mạng nơ-ron nhân tao (Neural Network - NN) là một mô hình lập trình lấy
cảm hứng từ mạng nơ-ron thần kinh Kết hợp với các kĩ thuật học sâu (Deep Learning - DL), NN để trở thành một công cụ mạnh mẽ và mang lại hiệu quả
tốt cho nhiều bài toán như nhận dạng ảnh, giọng nói hay sử lý ngôn ngữ tự nhiên.
13
Trang 26Mạng nơ-ron là một nhóm các nơ-ron nhân tạo (nút) nối với nhau và xử lý
thông tin bằng cách truyền tín hiệu theo các kết nối và tính giá trị mới tại các
nút.
Kiến trúc và cách hoạt động:
e Perception cơ bản: Một mạng nơ-ron được cau thành bởi các nơ-ron đơn lẻ
được gọi là các perceptron.
Hinh 2.5: M6 hinh cua perception [13]
e Mot perceptron sẽ nhận một hoặc nhiều đầu vào X dạng nhị phân và cho ra
một kết quả output dạng nhị phân duy nhất Các đầu vào được điều phối tầm
ảnh hưởng bởi các tham số trọng lượng tương ứng w của nó, còn kết quả đầu
ra được quyết định dựa vào một ngưỡng quyết định b nào đó
e Sigmoid nơ-ron: Với đầu vào và đầu ra dạng nhị phân, ta rất khó có thê điều
chỉnh một lượng nhỏ đầu vào dé đầu ra thay đôi chút ít, nên đề linh động, ta
có thé mở rộng chúng ra ở khoảng [0, 1] Lúc này đầu ra được quyết định bởi
một hàm o(w'x).
1 T T 0.9}
0.8P
0.7F
0.6 0.5
ũ.4
ũ.3P
Hình 2.6: Đồ thị hàm số sigmoid [13]
14
Trang 27e Ta còn có thé một số hàm khác như Tanh, ReLU dé thay thé ham sigmoid
bởi dạng đồ thị của nó cũng tương tự như sigmoid
e _ Ta có thể thấy rằng mỗi sigmoid neuron cũng tương tự như một bộ phân loại
tuyến tính (logistic regression) bởi xác suất P(yi=l lxi;Ww)= o(w'x)
e Mang NN là sự kết hợp của các tang perceptron hay còn được gọi là
perceptron đa tầng như hình vẽ bên dưới:
Hidden layer
Input layer
Hình 2.7: Kiến trúc co ban của mạng nơ-ron [13]
e Một mang NN sẽ có 3 kiểu tầng:
o Tầng vào (input layer): Là tầng bên trái cùng của mang thé hiện cho các
đầu vào của mạng
o Tầng 4n (hidden layer): Là tầng nằm giữa tang vào và tầng ra thé hiện
cho việc suy luận logic của mạng.
o Tầng ra (output layer): Là tang bên phải cùng của mạng thé hiện cho các
đầu ra của mạng
© Ở mỗi tang, số lượng các nút mạng (no-ron) có thê khác nhau tùy thuộc vào
bài toán và cách giải quyết Nhưng thường khi làm việc, người ta để các tầng
ân có số lượng no-ron bằng nhau Ngoài ra, các nơ-ron ở các tang thường
được liên kết đôi một với nhau tạo thành mạng kết nối đầy đủ
(fully-15
Trang 28connected nefwork) Khi đó ta có thê tính được kích cỡ của mạng dựa vào sỐtầng và số nơ-ron.
VD: Từ hình 3 có thể tính số tham số cần có như sau:
o_ Số nút mạng: 12
o_ Số tham số: (4*6 +6*2)+(6+2)=44 tham số
Lan truyền tiến: tất cả các nốt mạng (nơ-ron) được kết hợp đôi một với nhau
theo một chiều duy nhất từ tầng vào tới tầng ra Tức là mỗi nốt ở một tầng
nào đó sẽ nhận đầu vào là tất cả các nốt ở tầng trước đó mà không suy luận
ngược lại Hay nói cách khác, việc suy luận trong mạng NN là suy luận
fe) bN là độ lệch (bias) của nút mạng thứ I của tầng I+1.
fe) allt): Đầu ra của nút mang ứng với ham kích hoạt f (z, ) tương ứng.
Lan truyền ngược: Phương pháp truyền ngược sử dụng một tập hợp các giá
trị đầu vào và đầu ra dé tìm ra nơ-ron thần kinh mong muốn Một dau tập hợp
được đưa vào một hệ thống giả định trước đó dé tính toán đầu giá trị, sau đóđầu giá trị đó được so sánh với việc đo lường giá trị Nếu không có sự khácbiệt nào, thì không cần thực hiện một quá trình kiểm tra nào, ngược lại các sé
quan trong sé được thay đổi trong quá trình truyền tải ngược trong mang thần
kinh để giảm bớt sự khác biệt đó
16
Trang 29Quá trình suy luận từ tầng vào tới tầng ra của mạng NN là quá trình lantruyền tiến (feedforward), tức là đầu vào các nơ-ron tại 1 tầng đều lấy từ kếtquả các nơ-ron tầng trước đó mà không có quá trình suy luận ngược lại
Hàm lỗi của mạng cũng tương tự như logistic regression có dạng
cross-entropy, tuy nhiên khác logistic regression ở chỗ mang NN có nhiều dau ra
nên hàm lỗi cũng phải lay tổng lỗi của tat cả các đầu ra này
Đề tối ưu được hàm lỗi J(W) này người ta sử dụng giải thuật lan truyềnngược (backpropagation) dé tính được đạo hàm của hàm lỗi này
Mô hình mạng nơ-ron tích chập CNN (Convolution Neural Network)
- Khai nệm
Mô hình mạng nơ-ron tích chap (CNN) là 1 trong những mô hình dé nhậndạng và phân loại hình ảnh Trong đó, xác định đối tượng và nhận dạngkhuôn mặt là | trong số những lĩnh vực mà CNN được sử dụng rộng rãi
CNN phân loại hình ảnh bằng cách lấy 1 hình ảnh đầu vào, xử lý và phânloại nó theo các hạng mục nhất định (Vi dụ: Chó, Mèo, Hỏ, ) Máy tínhcoi hình anh đầu vào là 1 mảng pixel và nó phụ thuộc vào độ phân giảicủa hình ảnh Dựa trên độ phân giải hình ảnh, máy tính sẽ thấy H x W x
D (H: Chiều cao, W: Chiều rộng, D: Độ dày)
Hình 2.8: Mang ma tran RGB 6x6x3 (3 ở đây là giá tri RGB) [12]
17
Trang 30e Về mặt kỹ thuật, mô hình CNN dé đào tạo và thử nghiệm, mỗi đầu hình
ảnh sẽ đưa nó qua một loạt các lớp chuyên động với bộ lọc (Kernels), tậphợp các lớp kết nối đầy đủ (Full Connected) và áp dụng chức năng
Softmax dé phân loại các đối tượng có giá trị từ 0 đến 1 Hình dưới đây làtoàn bộ luồng CNN xử lý hình ảnh đầu vào và phân loại các đối tượng
dựa trên giá tri.
- Thanh phan các lớp co ban của CNN
e Lớp tích chap (Convolution layer): Tích chap là lớp đầu tiên dé trích xuất
các tính năng từ hình ảnh đầu vào Tích chập duy trì mối quan hệ giữa cácpixel bằng cách tìm hiểu các tính năng hình ảnh bằng cách sử dụng các ô
vuông nhỏ của dữ liệu đầu vào Nó là một phép toán có 2 đầu vào như ma
trận hình ảnh và 1 bộ lọc hoặc kernel Một số khái niệm cần nhắc đến ở
lớp này là filter map, stride, padding, feature map.
o Filter map là một ma trận 3 chiều trong đó bao gồm những con số hay
còn gọi là các parameter.
o_ Stride ở đây có thê hiểu là khoảng dịch chuyền filter map từ trái sang
phải theo pIxel.
o Padding: những giá trị 0 được thêm vào input.
o Feature map thé hiện kết quả mỗi lần filter quét qua input Mỗi lần
quét như thế xảy ra quá trình tính toán
18
Trang 310 1 0
= as
-1 8 -1 -1 -1 -1l
Input x Filter Feature Map
Hình 2.11: Tinh toán va feature map [12]
e Pooling layer: nêu như dau vào quá lớn các lớp pooling layer sẽ được xêp
vào giữa các lớp convolutional layer đê giảm các parameter có 2 loại phô
biên là max pooling và average pooling.
19
Trang 32Single depth slice
max pool with 2x2 filters and stride 2
Hình 2.12: Pooling layer [12]
e Relu layer: là một hàm kích hoạt trong mạng nơ-ron Tác dụng chính cua
hàm kích hoạt này chính là việc mô phỏng các nơ-ron có tỉ lệ truyền xung
qua axon Trong hàm kích hoạt có các hàm cơ bản như: Sigmoid, Tanh,
Relu, leaky relu, Maxout.
e Hiện nay hàm Relu được sử dụng khá phô biến và thông dụng đặc biệt
trong huấn luyện các mạng nơ-ron do hiệu suất của nó khá tốt
e Fully connected layer: dùng dé đưa ra kết quả Sau khi Convolution layer
va pooling layer nhận được các ảnh truyền qua thì lúc đó ta sẽ thu đượckết quả là model đã đọc được thông tin về ảnh Vì vậy, dé liên kết các đặcđiểm đó lại và cho ta output chúng ta dùng fully connected layer
- _ Kiến trúc của CNN
e Mạng CNN bao gồm nhiều lớp Convolution chồng lên nhau, sử dụng các
hàm kích hoạt dé kích hoạt các trọng số Mỗi lớp sau khi được kích hoạt
sẽ cho ra kết quả trừu tượng cho các lớp tiếp theo Mỗi lớp kế tiếp chính
là thể hiện kết quả của lớp trước đó
e Thông qua quá trình training, các lớp CNN tự động học các giá tri được
thể hiện qua các lớp filter
e_ Có 2 điều cần quan tâm ở mô hình CNN là tính bat biến và tính kết hợp
Trong trường hợp, cùng một đối tượng mà chiếu theo những góc khác
nhau sẽ cho độ chính xác có sự ảnh hưởng.
20
Trang 33e_ Đối với phép dịch, quay và co dan sẽ sử dung pooling để sử dụng làm bat
biến các tính chất kia Vì vậy mà CNN đưa ra kết quả có độ chính xác
cao.
e Cấu trúc cơ bản của CNN gồm 3 phan chính: Local receptive field,
shared weights va bias, pooling.
o Local receptive field (trường cục bộ): tac dụng của lớp nay chính là
giúp tách lọc dữ liệu, thông tin của ảnh và chon vùng ảnh có giá tri sử
dụng nhất
o Shared weights va bias (trọng số và chia sẻ): làm giảm tối đa đối
tượng các tham số Bởi trong mỗi Convolution có những feature map
khác nhau, mỗi feature lại giúp xác định một vài feature trong ảnh.
o_ Pooling layer: lớp tổng hợp, gần như là lớp cuối trước khi cho ra kết
qua Vì vậy, dé có được kết quả dé hiéu va sử dụng nhất thì pooling
sẽ có tác dụng làm đơn giản hóa thông tin đầu nghĩa là lược bớt thông
tin không cần thiết và cho ra kết quả ta mong muốn
e Chọn tham số cho CNN: ta cần dé ý những mục như số convolution layer,
filter s1ze, pooling s1ze và việc train test.
o Càng nhiều convolution layer thì chương trình càng được cải thiện
Tuy nhiên việc sử dụng quá nhiều sẽ dẫn đến tốc độ của bài toán, đôikhi chỉ sau 3 đến 4 lớp có thé cho ra kết quả phù hợp
o Filter size: thông thường, các filter size thường có kích thước 3x3
hoặc 5x5.
o Pooling size: nếu hình ảnh thông thường thi sẽ sử dụng kích thước
2x2 còn với ảnh lớn ta có thể sử dụng 4x4
o Train test: việc train test nên được thực hiện nhiều lần Như vậy sẽ
cho ra được tham số tốt nhất
2.5.3 Mô hình mạng MobileNet, SSD và SSDMobileNet
- Khai nệm MobileNet và SSD
21
Trang 34e MobileNet: được phát triển bởi đội ngũ Google, mô hình sử dung cách
2.5.4.
tính tích chập mang tên DSC (Depthwise Separable Convolution) nhằm
giảm kích thước mô hình và giảm độ phức tạp tính toán Do đó,
MobileNet thường được sử dụng cho các ứng dụng computer vision trên
các thiết bị nhỏ gọn như điện thoại thông minh hay các thiết bị nhúng
SSD (Single Shot Detector): là một thuật toán ma chúng ta chi can thuc
hiện một lần dé dự đoán nhiều đối tượng trong một hình ảnh, trong khi
các thuật toán sử dụng Mạng đề xuất khu vực (RPN), chăng hạn như
R-CNN, phải thực hiện 2 lần, một lần dé tìm các đề xuất khu vực, một lần
dé phát hiện đối tượng khuyến nghị mỗi khu vực Do đó SSD có thể được
sử dung dé xử lý các van dé yêu cau độ trễ thấp.
Hình 2.13: Tinh toán cho Convolution [14]
- Tac6 một kernel và một hình ảnh bình thường (2D) có 3 chiều tương ứng với
các thông sô (H,W,N) lân lượt là các thông sô chiêu cao, chiêu dài và chiêu
sâu của ảnh Một kernel bình thường gồm (K,K,N) lần lượt là độ lớn và chiều
sâu ảnh.
- Xét trên một kernel, độ phức tạp khi tính toán sẽ là Dx Dx KxKxN (với D
là chiều của feature map sau khi quét qua tất cả H và W) Vì thực tế chúng ta
có nhiêu kernel nên độ phức tạp sẽ là:
22
Trang 35DxDxKxKxN xM (với M là số kernel)
Depthwise Separable Convolution: là một loại tích chập trong đó chúng ta áp
dụng một bộ lọc tích chập duy nhất cho mỗi kênh đầu vào Phép tích chập 2Dthông thường được thực hiện trên nhiều kênh đầu vào, bộ lọc cũng như đầu
vào cho phép chúng ta tự do trộn các kênh lại để tạo ra từng phần tử đầu ra
Ngược lại sự biến đồi theo chiều sâu giữ cho mỗi kênh riêng biệt, các bước
thực hiện:
e Tach đầu vào và lọc thành các kênh
e - Chuyên đổi từng đầu vào với bộ lọc tương ứng
e _ Xếp chồng các kết quả đầu ra được biến đổi với nhau
Ý tưởng của Depthwise Separable Convolution là phép chia convolutionthành 2 phan: Depthwise convolution va pointwise convolution
Thay vi sử dung một Convolution layer cho 3 kênh RGB, thì ta sử dung 1 bộ
loc cho méi kénh riêng biệt Sau khi thực hiện ra sẽ có một kết quả như
Convolution layer cũ với số lượng layer là NxN là số chiều của ảnh
Trang 36Hình 2.15: Pointwise convolution [14]
Sau khi thực hiện Depthwise Convolution, ta thực hiện Convolution 1x1 dé
trích M đặc trưng từ N Convolution layer đã tính ở trên Thực chat quá trình
là duyệt tất cả các ô trong ma trận
e Độ phức tap bài oán: Dx Dx Nx M
Tổng độ phức tap của Depthwise Separable Convolution là:
Bang 2.4: Kiến trúc các lớp của MobileNet [14]
Conv / s2 3x3x3x32 224x224x3
Conv dw/sl 3x3 x32 dw 112 x 112 x 32
Conv /sl 1x1x32~x 64 112 x 112 x 32 Conv dw / s2 3x3x64dw 112 x 112 x 64
Conv /s1 1x1x 64x 128 56 x 56 x 64 Conv dw /sĨ 3x3 x 128 dw 56 x 56 x 128 Conv /sĨ 1x1x128x 128 | 56x56 x 128
24
(2.3)
Trang 37Conv dw / s2 3x3 x 128 dw 56 x 56 x 128 Conv /sĨ 1x1x128x256 | 28x 28x 128 Conv dw/sl 3 x3 x 256 dw 28 x 28 x 256 Conv /sĨ 1x 1x 256x256 | 28 x 28 x 256 Conv dw / s2 3x3x 256 dw 28x28x256 Conv /sl 1x1x256x512 | 14x 14x 256
5 x Conv dw/sl 3x3x512 dw 14x 14x 512
5 x Conv/s1 1x1x512x512 | 14x 14x512 Conv dw / s2 3x3x512dw 14x 14x 512 Conv /sl 1x1x512 x 1024 7x7x512 Conv dw / s2 3x3 x 1024 dw 7x7x 1024 Conv /sĨ 1x1x1024x1024| 7x7x 1024 AVG Pool /s1 Pool 7 x 7 7x 7x 1024
FC/s1 1024 x 1000 1x1x 1024
Softmax / sl Classifier 1 x 1 x 1000
- Kiến trúc MobileNet gồm 30 lớp trong đó có rất nhiều lớp Depthwise
Separable Convolution dé giảm số lượng parameter
- Sau mỗi Convolution MobileNet sẽ sử dụng một Batch Normalization (BN)
va ReLu.
Hình 2.16: Convolution cũ (trai), Depthwise separable Convolution(phai) [14]
25
Trang 38- So sánh giữa việc sử dụng mạng 30 lớp Convolution truyền thống với mang
30 lớp Depthwise separable Convolution (MobileNet) trên tập dữ liệu
ImegaNet.
Bảng 2.5: So sánh Conv MobileNet va MobileNet [14]
Model ImageNet Accuracy | Million Mult-Adds | Million Parameters
Conv MobileNet 71.7% 4866 29.3
MobileNet 70.6% 569 4.2
- MobileNet chỉ giảm 1% độ chính xác nhưng đã giảm lượng parameter của mô
hình và lượng tính toán đi rất nhiều lần
2.5.5. Kiến trúc SSD (Single Shot Multibox Detector)
- _ Gồm 2 thành phan: backbone model va SSD head:
Backbone là một mang phân loại hình anh được dao tạo trước như một bộ
trích xuất đặc trưng Đây thường là một mạng được đào tạo có thể phân
loại.
SSD head là một hoặc nhiều lớp phức hợp được thêm vào backbone dé
trích xuât kêt quả đâu ra là các hộp giới hạn và các lớp của đôi tượng
trong không gian của lớp kích hoạt cuối cùng
Hình 2.17: Kiến trúc CNN với bộ dò SSD [8]
- © lưới (Grid Cell): thay vì sử dụng cửa sé trượt, SSD chia hình ảnh bằng cách
sử dụng lưới và mỗi ô lưới chịu trách nhiệm phát hiện các đối tượng trong
vùng đó của hình ảnh Các đối tượng phát hiện chỉ đơn giản có nghĩa là dự
26
Trang 39đoán lớp và vị trí của đối tượng trong vùng đó Khi không có đối tượng đượcphát hiện ta coi đó là lớp nền và bỏ qua.
Anchor box: mỗi lô lưới trong SSD có thể được gán với nhiều anchor box
Các anchor box này được xác định trước và mỗi hộp chịu trách nhiệm về kích
thước và hình dạng trong một ô lưới.
SSD sử dụng một giai đoạn đối sánh trong khi đảo tạo, dé khớp với anchor
box thích hợp với các hộp giới hạn của từng đối tượng thực trong ảnh Về cơbản, anchor box có độ chồng chéo cao nhất với mỗi đối tượng có nhiệm vụ
đoán lớp và vi trí của nó.
Ti lệ khung hình: không phải tat cả các đồ vật đều có hình dang là hình
vuông Một số đài hơn và một số rộng hơn theo các mức độ khác nhau Kiến
trúc SSD cho phép tỉ lệ khung hình được xác định trước của các anchor box
dé giải quyết điều này
2.5.6 SSD MobileNet
MobileNet được sử dụng như một mang cơ sở va SSD như một mang phát
hiện Mạng cơ sở đóng vai trò cung cấp các tính năng cấp cao đề phân loại
hoặc phát hiện Ta sử dụng mô hình SSD để thêm ở cuối cùng như là một
mạng phát hiện.
27
Trang 40- Theo thực nghiệm của Jonathan Huang cùng cộng sự [6] Cho ra kết quả so
sánh giữa một số mô hình phát hiện đối tượng về tốc độ và độ chính xác thì:
e SSD có kết quả ấn tượng về lượng frame per seconds (FPS) sử dụng hình
ảnh có độ phân giải thấp hơn nhưng vẫn có độ chính xác cao
e MobileNet lại đạt được độ chính xác cao với độ phức tạp thấp hơn nhiều
so với các thuật toán khác.
e SSD trên mobileNet có mAP cao nhất trong số các mô hình được nhắm
mục tiêu dé xử lý theo thời gian thực
e SSD với MobileNet cung cấp sự cân bằng độ chính xác tốt nhất trong các
mô hình nhanh nhất phục vụ trong môi trường có độ trễ thấp
Hinh 2.19: Kién tric mang SSDmobileNet [1]
Bang 2.6: Lớp và tham số của kiến trúc SSD mobileNet [1]
Type / Stride Filter Shape Input Size
Conv / s2 3x3x3x32 300 x 300 x 3
Convdw/sl |3x3x32 150 x 150 x 32
Conv /sl 1x1x32~x 64 150 x 150 x 32
Convdw/s2 |3x3x 64 150 x 150 x 64 Conv /s1 1x 1x 64x 128 75 x 75 x 64
Conv dw /s1 3x3 x 128 75 x 75 x 128
28