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: Thiết kế và tích hợp thuật toán theo dõi để đồng hành cùng người cao tuổi

104 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 đề Thiết kế và tích hợp thuật toán theo dõi để đồng hành cùng người cao tuổi
Tác giả Pham Dang Minh Huy, Than The Tung
Người hướng dẫn TS. Doan Duy
Trường học Trường Đại học Công nghệ Thông tin
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 104
Dung lượng 46,35 MB

Nội dung

Đề 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 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é 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 4

lò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 5

MỤ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 6

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

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

DANH 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 9

Hì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 10

Thự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 11

DANH 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 12

DANH 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 13

TÓ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 14

Chươ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 15

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

e 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 17

Chươ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 18

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

e_ 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 22

Bả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 23

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

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

e 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 26

Mạ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 27

e 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 28

connected 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 29

Quá 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 30

e 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 31

0 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 32

Single 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 33

e_ Đố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 34

e 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 35

DxDxKxKxN 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 36

Hì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 37

Conv 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

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

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

TÀI LIỆU LIÊN QUAN