e _ Nghiên cứu các công nghệ và kỹ thuật cần thiết dé xây dựng một hệ thống mua sắm Just Walk Out với tính năng lấy trả hàng cho một người mua sắm duynhất dùng một camera và cập nhật giỏ
Trang 1ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHAN MEM
LE QUANG TRUNG - 20520333
HA PHI HUNG - 20520526
KHOA LUAN TOT NGHIEP
NGHIÊN CUU CÁC KY THUAT DỰA TREN THỊ GIÁC
MAY TINH VA MAY HỌC DE XÂY DỰNG UNG DUNG
“JUST WALK OUT SHOPPING”
Exploring machine learning and computer vision techniques to
develop the “Just Walk Out Shopping” application
CU NHAN NGANH CONG NGHE PHAN MEM
GIANG VIEN HUONG DAN
TS NGUYEN DUY KHANH
TP HO CHÍ MINH, 2024
Trang 2LOI CAM ON
Dé tai “Nghiên cứu các kỹ thuật dựa trên thị giác máy tinh và máy học dé
xây dựng ứng dụng Just Walk Out Shopping” là kết quả xây dung của nhóm em,
dưới sự hướng dẫn nhiệt tình của TS Nguyễn Duy Khánh, tại Khoa Công nghệ
phần mềm, trường Dai học Công nghệ Thông Tin, Thành phố Hồ Chi Minh
Em xin chân thành cam ơn Ban Giám hiệu Trường Đại học Công nghệ
Thông Tin, Dai học Quốc gia Thành phố Hồ Chí Minh, quý thay cô giáo Khoa
Công nghệ phần mềm đã giảng dạy, truyền đạt những kiến thức quý báu cho em
trong suốt thời gian học tập tại Trường Đặc biệt em xin chân thành cảm ơn thầy
Nguyễn Duy Khánh đã tận tâm hướng dẫn, đóng góp ý kiến giúp em hoàn thành
Khoá luận tốt nghiệp này
Em xin gửi lời cảm ơn đến đội ngũ cán bộ, nhân viên của Trường Đại họcCông nghệ Thông Tin, Đại học Quốc gia Thành phó Hồ Chí Minh đã luôn quan
tâm, hỗ trợ và tạo điều kiện thuận lợi cho em trong quá trình học tập và thực hiệnKhoá luận tốt nghiệp
Trong quá trình nghiên cứu và báo cáo không thể tránh khỏi những sai sót,
em rất mong nhận được những ý kiến đóng góp của thay, cô dé dé tai ngày càng
hoàn thiện, mở rộng và có thê áp dụng vảo thực tê.
Chúng em xin chân thành cảm ơn Xin chúc những điều tốt đẹp nhất sẽ luôn
đồng hành cùng qui Thay Cô.
Tp Hồ Chí Minh, 15 tháng 6 năm 2024
Sinh viên thực hiện
LÊ QUANG TRUNG
HÀ PHI HÙNG
Trang 3MỤC LỤC
Chương 1: MỞ ĐẦU 2 22 5< 52 ©se se se SseEsersersersessee 13
1.1 Ly do chọn đề tài ¿525225222 2E E111 ere, 13
1.2 Mục đích nghiên CỨu . -: + 22c 1S ESEEsrtrirerrrrerrrrrree 13
1.3 _ Đối tượng nghiên cứu 2-2 s+2E2E++EE£EEtZEEEEeEEerrrrrkerkee 13
1.4 Pham vi nghiÊn CỨU c2 32213231121 EEEEEEEESrrrrrrkrrrvee 14
Chương2: KIÊN THỨC CƠ BẢN -. -s-sccss©sscssecsscse 15
2.1 WebRTC 2cs k2 E22 2212221221111 errre 15 2.2 OpenCV ch HH TT TH TT HH KH TH kg 17 2.3 Apache Kafka - Ă 2Q SH HH HH re, 18 2.4 PYtOr Ch, Meee ecccscccsee Necesesccseee Messsecsecesenccsesessseesenerseeeees 19
2.5 Kién thức công ngh@ cicc.ceccecceccsscsseesessessessessessessessessessessessesesseaeess 21
2.5.2, Mm extis P GŒP 22
2.5.3 Socket.ÏO Ă Ăn T2 HH TH HT ng ng ng ng kg keo 24
Chương3: MO HÌNH MUA SAM JUST-WALK-OUT 26
3.1 Giới thiệu 7c 2E E221 eo 26
4.1 Giới thiỆU LH nH HT HT Hư 31
4.2 Đánh giá một mô hình nhận diện ¿ -++++<>+>++s>+ 33
Trang 44.3 Mô hình phát hiện vật thể YOLO 2-2 ccxeE2£zEzEzrerei 35
4.4 Mô hình nhận diện hành động Movinet - - + +++s+>+ 37
Chương5: PHAN TÍCH VÀ THIET KE HE THONG 40
5.l _ Yêu cẦu v nhe, 40
5.1.1 Phạm vi hệ thống VA CAC USC CAS€ ĂcSSSS S2, 40
5.1.2 Danh sách tac han cececeecceeceeseeeceesececeeeeeeaeeeeeeereeaeeeeees 40 5.1.3 Damnh sach use Case 40
5.1.4 Mô tả chi tiét use Case cecceccecessesssessessessessessessesessesseeseeseess 415.2 Kiến trúc hệ thong ooccecececcecccsscessessessesssessessessvessessessesssessessesssesseeses 44
5.2.1 Chỉ tiết các thành phan kiến trúc - 2s s+cs+cs+se¿ 455.2.2 Tổ chức gói va module - + + s+++£++£++z++x++xzzzzzzsez 46
53 Tổ chốế lớết Mr @ / 49
5.3.1 Computer VISIOT S€TVICC Sc 1S siEEeeirsrereeee 49
Ni ca 51
5.4 Cơ Sở dữ GU eee ecceeceeeeneeeeeeeeceeeeseeeeseeseeseeseeseeseeeeaeeaeeates 53
5.4.1 Sơ đồ logic - se s22 reo 53
5.4.2 Mô tả các bang đữ liỆu ceseeeceeeeeeeeeeeeeseeeeeeeeeeaeeeeees 53
Rose a © 5 110056 | (-) | re 54
5.6 Thiết kế xử lye ocecceccccccecccccscesessessessessessessessesesseesessessessessessesseseansaeees 55
5.6.1 Tổng quan xử ly lấy trả hàng - 5-5522 z+zxerxczrssrxered 55
5.6.2 Xử lý kết nối video và lấy trả hàng ở computer vision service 565.6.3 Xử lý lay trả hàng ở business service và web frontend service 595.7 Huấn luyện và sử dung các mô hình nhận diện - 61
5.7.1 M6 hình nhận diện mặt hàng 55+ +5 *++ss++ssxssss2 61
Trang 55.7.2 Mô hình nhận diện tay - c2 1211 ESvEseirsrrreses 65 5.7.3 Mô hình nhận diện hành động s5 55 522 *++s>+s++xsss 68
5.8 Triển khai hệ thống ¿- 2 £+S2+E2E£EESEEEEEEEEEEEEEEEErrrrrrei 72
5.8.1 Mô hình triển khai - 2-2252 +22+EE£EEt2E2EEEEEerErrrrrrkrred 725.8.2 Chỉ tiết triển khai -¿- +22 22222EEEE2E221221E2EEEerkrrei 72Chương 6: THỰC NGHIỆM VÀ ĐÁNH GIÁ -°-s 73
6.1 Phuong phap ne ằaa 73
6.2 K@t qUaceccecceccccccsccecsessesssessessessvessessessesssessessessusssessessessnessessesseeeseeses 76
Chuong 7: KET LUẬN VA HUONG PHAT TRIÉN 78
7.1 Kết UA dat G00(0/2 „5 777"" 6 ố.ắ 78
7.2 Thuan lợi và khó khăn . + 22+ +2 +22 E* +2 2EE++zeeeeseeeesreeee 78
7.3 Hướng phat triỂn - Set EEEEEEEEEEcterrrei 79
Trang 6DANH MỤC HÌNH
Hình 2.1: Logo của WeDRTC - - 6 cv TT TT Tnhh ng 15
Hình 2.2: Logo của OpenCV - ch 9 HH nh TT TT nh TT ng 17
Hình 2.3: Logo của Apache Kafka - c1 2 112111111111 11191111 111811 811 8x re, 18 Hình 2.4: Logo của Py TOFCH - cv vn nh TT TT TT TH 20 Hinh 2.5: Logo ctia NeStjs nư 21 Hinh 2.6: Logo ctia NeXtjs 1 Ồ 22
Hình 2.7: Logo của Soc ket [O - ác tk HH ng TT TT nghiệt 24
Hình 3.1: Luồng hoạt động của một cửa hàng sử dụng JWO - 27
Hình 3.2: Sơ đồ tổng quan của một hệ thống JWO có tông hợp cảm biến (Falcao et
1) 29
Hình 4.1: Áp dụng gộp tối da (max pooling) trên một ban đồ đặc trưng 32Hình 4.2: Kiến trúc cơ bản của mang neural tích chập 2D -: 52-5¿ 32
Hình 4.3: Nguyên lý phát hiện vật thé của YOLO -©2¿2+2c++cx++z+zxcrxez 36
Hình 4.4: Kiến trúc của YOLO 52222+2222 E1 EE.Erirrre 36
Hình 4.5: Nguyên lý tích chập 3 chiều ¿- 2: 5¿©5222++£x+2E+2EE+zxerxrzrrsrxerxee 37
Hình 4.6: Nguyên lý đệm stream trong mô hình Movinet ‹ + «+-+++ 38
Hình 4.7: Độ chính xác (top-1 acccuracy) và lượng bộ nhớ sử dụng của các mô hình Movinet cơ sở và có đệm sfream - c 1 2211122111112 1112 1111151111151 112k re, 39
Hình 5.2: So đồ hoạt động lấy hang e.cececeecesessessessessessessessesessessessessessesssseeseesseaees 42Hình 5.3: Sơ đồ hoạt động tra hàng -2-22- 2 t2EE2E2EEEEE22E211221 2712122 crxe 43Hình 5.4: Kiến trúc hệ thống JWO - 2-52 St2EE2EE2E1211212111111111 111111 44Hình 5.5: Sơ đồ gói của hệ thống JWO 2-52 ©E2E22EE2EE22E2E1221 2712222 crke 46
Hình 5.6: Sơ đồ lớp của computer Vision Service ¿2¿©cs2zscxsrxcsred 49
Hình 5.7: Sơ đồ lớp của business SeTViCe - 2 2 22522 2E£EEEEEEEEEEEEEEEErrrrrree 51
Hình 5.8: Sơ đồ logic cơ sở đữ LGU ceccecsccsscsssesssesssesssessesssesssecssessssssesssecssesssesseeens 53
Hình 5.9: Giao diện trang gid hàng -. 5c 32 31121 EESEEEsrxrrsrrrrerrkrrrke 54
Hình 5.10: Sơ đồ tuần tự lấy trả hàng -2- 2-52 t+E2ESEEEEEEEEEEEEEEEEEErrrrtees 55
Trang 7Hình 5.11: Ví dụ thông điệp cập nhật giỏ hàng gửi tới business ServIce 58
Hình 5.12: Sơ đồ tuần tự lấy tra hang ở business Service -cs-cs+¿ 59Hình 5.13: Sơ đồ tuần tự lay trả hang ở web frontend service - +: 60Hình 5.14: Một số mẫu từ bộ dit liệu mặt hàng - - 2 + ++S++£++EzzEzxeez 62
Hình 5.15: Confusion matrix của mô hình phát hiện mặt hàng trên tập đánh giá 64 Hình 5.16: Đường cong độ chính xác-đủ của mô hình phát hiện mặt hàng trên tập
Gam Bia 0 adddadadiI 1ä 64
Hình 5.17: Một số mẫu từ bộ dit liệu tay người EgoHands - +: 65
Hình 5.18: Confusion matrix của mô hình phát hiện tay trên tập đánh gia 67
Hình 5.19: Đường cong độ chính xác-đủ của mô hình phát hiện tay trên tập đánh gia
—— ÃẼÃ 67
Hình 5.20: Khung hình từ một mẫu trong bộ dữ liệu video hành động mua săm 60Hình 5.21: Độ mat mát trên tập đánh giá theo epoch 2- 2 s¿+sz+zz+zs+csz¿ 71Hình 5.22: Sơ đồ triển khai hệ thong JWO 2-2 2+ +E+EE+£E£EE+EE+EEzErrerreee 72
Hình 6.1: Hình ảnh môi trường thực nghiệm 5 5-5525 *++*£++v+serseeseersxe 73 Hình 6.2: VỊ trí camera trong môi trường thực nghiệm 55+ 5+ s+5s+2 74
Trang 8DANH MỤC BANG
Bảng 5.1: Danh sách tác nhân - 6 c1 1E 19 HT TT Hệ, 40
Bảng 5.2: Danh sách use Case - c0 2 2211121111119 1111111111111 11 1 11 11x rrke 41
Bang 5.3: Các thành phan trong hệ thống JWO ¿5c se eE2E2EzErreei 46
Bảng 5.4: Các gói trong JWO-CV-S€TVIC€ - cành nh nh nh ngàn ng 47 Bảng 5.5: Các gói trong JWO-DbuSIN©SS-S€TVIC€ c ng ng ren 48 Bảng 5.6: Mô tả các lớp trong computer VISION S€TVIC€ 5c 5325 +2 s+++s+ss 51
Bảng 5.7: Mô tả các lớp trong business S€TVIC€ - 2c vs sireierrerke 52
Bảng 5.8: Các cột trong bảng PTrOdÌUC G6 2 3211133311321 53 Bảng 5.9: Cac cột trong bang Cart ecccceesccceseceseeeeeeeseeesseeeeseceseeeeeeesseeneeens 53
Bang 5.10: Các đối tượng trên trang cececceecsessessesessesesssstssessessessessessesssssesteseeaees 54
Bảng 5.11: Cac lớp phân loại của bộ dữ liệu mặt hàng - 55-5 +5s52 61
Bảng 5.12: Các tham số huấn luyện mô hình phát hiện mặt hàng 62
Bảng 5.13: Kết quả của mô hình phát hiện mặt hàng trên tập đánh giá 63
Bang 5.14: Các tham số huấn luyện mô hình phát hiện tay - 2 +: 66 Bảng 5.15: Kết quả của mô hình phát hiện tay trên tập đánh giá - - 66
Bang 5.16: Các tham số huấn luyện mô hình nhận diện hành động 69
Bang 5.17: Kết quả của mô hình nhận diện hành động trên tập đánh giá 70
Bảng 5.18: Chỉ tiết triển khai hệ thống JWO 2-©2¿2+¿22x22xt2Exerxeerkesree 72 Bang 6.1: Các mặt hàng dùng dé đánh giá thực nghiệm hệ thống JWO 73
Bảng 6.2: Các mặt hàng dùng dé đánh giá thực nghiệm hệ thống JWO 74
Bảng 6.3: Các trường hợp kiêm thử dé đánh giá thực nghiệm hệ thống JWO 75
Bang 6.4: Kết quả các trường hợp kiểm thử thực nghiệm hệ thống JWO 76 Bảng 6.5: Kết quả đánh giá thực nghiệm hệ thống JWO -¿©7z+cscc5c2 77
Trang 9DANH MỤC TU VIET TAT
Trang 10TOM TAT KHÓA LUẬN
Hình ảnh người dân hoảng loạn mua sam, xếp hang dài để vào các trung tâm
thương mại mua đồ tạp hóa xuất hiện ngay khi đại dịch Covid-19 bùng phát như mộthiện tượng gây chan động Nói chung, việc mua sắm hoảng loạn gây căng thang chocác nhà bán lẻ trong siêu thị và dẫn đến việc đám đông phải xếp hàng chờ thanh toánchật cứng Việc xếp hàng dài chờ đợi tại các cửa hàng tạp hóa làm tăng thời gian ở
các khu vực công cộng đông đúc, làm giảm khả năng giữ khoảng cách vật lý và làm
tăng khả năng lây nhiễm vi rút.
Nhiều doanh nghiệp buộc phải nhờ đến sự hỗ trợ kỹ thuật số trong thời kỳ đạidịch Trong khi một số người mua hàng có đặc quyền mua sắm trực tuyến, nhiềungười khác lại cần và/hoặc thích mua hàng tạp hóa tại cửa hàng hơn Trên thực té,công nghệ bán lẻ trong những năm gan đây đã bat đầu cung cấp dich vu thanh toán
tự động và tự động nhằm giảm tương tác và nhân lực
Xuất phát từ yêu cầu thực tiễn, Đồ án đề tài “Nghiên cứu các kỹ thuật dựa trênthị giác máy tính và máy học dé xây dựng ứng dung Just Walk Out Shopping” nhằmnghiên cứu cách xây dựng mô hình Just Walk Out bằng các kỹ thuật thị giác máy tính
và máy học.
Do các yếu tố như phạm vi đề tài, thời gian hoàn thành khóa luận và năng lực
của nhóm nên mục tiêu cuối cùng của đồ án mà em hướng đến là xây dựng thành
công hệ thống dùng camera dé nhận diện hành động lay, trả sản pham của người muasắm đồng thời ghi lại số lượng sản phẩm sau mỗi hành động và 1 website dùng dé
kiểm tra đánh giá lại hệ thống trên.
12
Trang 11Chương 1: MỞ ĐẦU
1.1 Lý do chọn đề tài
Sự phát triển của Thương mại điện tử trong những năm gần đây đã hoàn toànđảo lộn lĩnh vực bán lẻ và thay đổi vai trò cũng như chức năng của cửa hàng thực tế.Các cửa hàng truyền thống hiện phải đối mặt với sự cạnh tranh lớn hơn cũng như kỳvọng của khách hang thay đổi nhanh chóng Ngày càng có nhiều cửa hàng đã ứngdụng các công nghệ kỹ thuật số dé nhấn mạnh đến sự tiện lợi và tốc độ dé đáp ứng
những kỳ vọng nay.
Công nghệ cửa hàng không thu ngân là tính năng trọng tâm của cuộc cách
mạng bán lẻ lấy cảm hứng từ kỹ thuật số này Xếp hàng chờ thanh toán dài luôn làmột trong những điểm khó khăn nhất của hoạt động bán lẻ thực tế và người mua hàngngày càng mat kiên nhẫn hơn về những xích mich tại cửa hàng
Nhận thức vấn đề thực tiễn này, nhóm em đã quyết định chọn đề tài “Nghiêncứu các kỹ thuật dựa trên thị giác máy tinh và máy học dé xây dựng ứng dung JustWalk Out Shopping” để nghiên cứu cho khóa luận và cũng là cơ hội để nhóm em ápdụng các kiến thức đã học ở trường
1.2 Mục đích nghiên cứu
e Xây dựng thành công hệ thống dùng camera dé nhận diện hành động lấy, trả
sản phẩm của khách hàng đồng thời ghi lại số lượng sản pham sau mỗi hành
động.
e Xây dựng website dùng để kiểm tra đánh giá lại hệ thống trên
1.3 Đối tượng nghiên cứu
e Hệ thống dành cho các cửa hàng không thu ngân sử dụng mô hình Just Walk
Out.
13
Trang 121.4 Phạm vi nghiên cứu
e Nghiên cứu khái niệm, luồng hoạt động và các đặc điểm cơ bản của mô hình
mua săm Just Walk Out
e _ Nghiên cứu các công nghệ và kỹ thuật cần thiết dé xây dựng một hệ thống mua
sắm Just Walk Out với tính năng lấy trả hàng cho một người mua sắm duynhất dùng một camera và cập nhật giỏ hàng lên một trang web trong thời gian
thực.
14
Trang 13Chương 2: KIÊN THỨC CƠ BẢN
Chương 2: Kiến thức cơ bản này sẽ trình bày các kiến thức tổng quát về các
kỹ thuật thị giác máy tính và máy học liên quan đến mô hình Just Walk Out Ngoài
ra, chương này cũng trình bày các kiến thức về công nghệ được sử dụng trong đồ ánbao gồm kiến trúc phần mềm, kiến thức về ngôn ngữ lập trình liên quan đến phần
Backend, Frontend và cơ sở dữ liệu cũng như các kiên thức liên quan.
2.1 WebRTC
WebRTC
Hình 2.1: Logo của WebRTC
WebRTC là viết tắt của Giao tiếp thời gian thực trên web Day là một dự ánnguồn mở cho phép giao tiếp ngang hàng trực tiếp trong trình duyệt web và ứng dụng
di động thông qua các API JavaScript đơn giản WebRTC cho phép chia sẻ âm thanh,
video và dữ liệu giữa các trình duyệt mà không cần plugin hoặc phần mềm của bên
thứ ba khác.
Các tính năng chính của WebRTC bao gồm:
e_ Giao tiếp ngang hàng: WebRTC cho phép giao tiếp trực tiếp giữa các trình
duyệt hoặc giữa trình duyệt và ứng dụng gốc mà không cần máy chủ trunggian (mặc dù máy chủ vẫn có thé được sử dụng dé báo hiệu và truyền tải NAT)
e Am thanh và video thời gian thực: Nó cung cấp các API dé thu và truyền
phát âm thanh và video trong thời gian thực, cho phép các ứng dụng như hội
nghị video, gọi thoại và phát trực tiếp
15
Trang 14e Kénh dữ liệu: Ngoài âm thanh và video, WebRTC còn hỗ trợ các kênh dữ liệu
ngang hàng cho phép trao đổi dữ liệu tùy ý giữa các thiết bị ngang hàng, khiến
kênh này phù hợp dé chơi trò chơi nhiều người chơi, chia sẻ tệp và các ứng
dụng sử dụng nhiều đữ liệu khác
e_ Mã hóa: WebRTC kết hợp các tính năng bảo mật như DTLS (Bảo mật lớp
truyền tải dữ liệu) và SRTP (Giao thức truyền tải thời gian thực an toàn) déđảm bảo rằng thông tin liên lạc được mã hóa và bảo mật
e Kha năng tương thích đa nền tảng: WebRTC được hỗ trợ bởi các trình duyệt
web chính bao gồm Google Chrome, Mozilla Firefox, Microsoft Edge và
Opera, cũng như các nền tảng như Android và iOS, khiến nó có khả năng
tương tác cao.
e Tiêu chuẩn mở: Nó được xây dựng trên các tiêu chuẩn và API mở, được phát
triển và duy trì bởi World Wide Web Consortium (W3C) và Lực lượng đặc
nhiệm kỹ thuật Internet (IETF), đảm bảo tính minh bach và khả năng tương
thích trong quá trình triển khai.
WebRTC có nhiều ứng dụng trong nhiều ngành khác nhau, bao gồm:
e Hội nghị truyền hình: Cho phép gọi video chất lượng cao trực tiếp trên trình
duyệt web mà không cần phần mềm chuyên dụng
e Voice Calling: Hỗ trợ các ứng dụng VoIP (Voice over IP) dé liên lạc thoại
theo thời gian thực.
e Phát trực tiếp: Cho phép các đài truyền hình truyền trực tiếp nội dung âm
thanh và video đến người xem
e Hỗ trợ từ xa: Tạo điều kiện chia sẻ màn hình và các phiên duyệt cộng tác.
e© IoT (Internet of Things): Hỗ trợ giao tiếp thời gian thực giữa các thiết bị
trong ứng dụng IoT.
Nhìn chung, WebRTC đơn giản hóa việc phát triển các ứng dụng giao tiếptheo thời gian thực bằng cách cung cấp các giao thức và API được tiêu chuẩn hóa,biến nó thành một công cụ mạnh mẽ cho các nhà phát triển muốn kết hợp khả nănggiao tiếp đa phương tiện vào ứng dụng web và di động của họ
16
Trang 152.2 OpenCV
a
Hinh 2.2: Logo cua OpenCV
OpenCV, viết tắt của Thư viện thị giác máy tính nguồn mở, là một thu việnphần mềm máy học và thị giác máy tính nguồn mở Nó được thiết kế để cung cấp cơ
sở hạ tầng chung cho các ứng dụng thị giác máy tính va day nhanh việc sử dụng nhậnthức máy trong các sản phâm thương mại Ban dau được phát triển bởi Intel, OpenCVhiện có một cộng đồng lớn và được OpenCV Foundation duy trì
Dưới đây là một số tính năng và cách sử dụng chính của OpenCV:
e Xử lý hình ảnh: OpenCV cung cấp nhiều chức năng cho các tác vụ xử lý hình
ảnh như lọc, chuyền đôi và trích xuất tinh năng
e_ Thuật toán thị giác máy tính: Nó bao gồm việc triển khai các thuật toán thị
giác máy tính khác nhau, bao gồm phát hiện đối tượng, nhận dạng khuôn mặt,
ghép ảnh, tam nhìn âm thanh nổi và theo dõi chuyển động.
e _ Tích hợp máy học: OpenCV tích hợp với các khung máy học như TensorFlow
và PyTorch, cho phép áp dụng các mô hình máy học phức tạp vao dữ liệu trực
quan.
e Đa nền tang: Nó hỗ trợ nhiều ngôn ngữ lập trình (C++, Python, Java, v.v.) và
nền tảng (Windows, Linux, macOS, Android, iOS), giúp nó linh hoạt cho các
ứng dụng khác nhau.
e Cộng đồng va Tài liệu: OpenCV có một cộng đồng người dùng và cộng tác
viên rộng lớn, cung cấp tài liệu, hướng dẫn và mã ví dụ phong phú dé hỗ trợcác nhà phát triên
17
Trang 16e Ứng dụng thương mại: Nó được sử dụng rộng rãi trong các ngành như robot,
ô tô, chăm sóc sức khỏe, giám sát và giải trí cho các nhiệm vụ từ lãi xe tự động
đến thực tế tăng cường
Nhìn chung, OpenCV là bộ công cụ mạnh mẽ dành cho bat ky ai lam viéc voi
dữ liệu trực quan và các ứng dụng thị giác máy tính, cung cấp cả thuật toán sẵn sàng
sử dụng và tính linh hoạt đề tùy chỉnh và phát triển các giải pháp mới
2.3 Apache Kafka
APACHE J
ka ka ø
Hình 2.3: Logo của Apache Kafka
Apache Kafka là một nền tảng phát trực tuyến phân tán được sử dụng dé xây
dựng các đường dẫn dữ liệu thời gian thực và các ứng dụng phát trực tuyến Ban đầu
nó được phát triển bởi LinkedIn và sau đó được cung cấp nguồn mở và duy trì bởiQuy phần mềm Apache
Dưới đây là một số tính năng và khía cạnh chính của Apache Kafka:
e _ Hệ thống nhắn tin phân tan: Kafka hoạt động như một hệ thống nhắn tin
phân tán, nơi nhà sản xuất có thé xuất bản tin nhắn đến các chủ đề và ngườitiêu dùng có thé đăng ký chủ đề dé nhận những tin nhắn đó trong thời gian
thực.
18
Trang 17Khả năng mở rộng: Kafka có khả năng mở rộng cao do tính chất phân táncủa nó Nó cho phép mở rộng quy mô theo chiều ngang bằng cách thêm nhiều
nhà môi giới (máy chủ) vào cụm Kafka.
Khả năng chịu lỗi: Kafka cung cấp khả năng chịu lỗi bằng cách sao chép cácphân vùng dữ liệu trên nhiều nhà môi giới Nếu bất kỳ nhà môi giới nào khôngthành công, dữ liệu vẫn có sẵn và hệ thống có thê tiếp tục hoạt động
Xử lý luồng: Kafka hỗ trợ xử lý luồng thông qua API Kafka Streams, cho phépcác nhà phát triển xây dựng các ứng dụng chuyền đổi luồng dữ liệu đầu vàothành luồng đầu ra
Lưu giữ: Kafka lưu trữ các luồng bản ghi (tin nhắn) trong các chủ đề Nó giữlại các bản ghi này trong một khoảng thời gian có thể định cấu hình, giúp có
thé phát lại hoặc xử lý lại dữ liệu.
Tích hợp: Nó tích hợp tốt với các dự án Apache khác như Apache Storm vàApache Hadoop, cũng như với các hệ thống bên ngoài khác nhau thông quacác trình kết nồi
Các trường hợp sử dung: Các trường hợp sử dụng phổ biến của Kafka baogồm phân tích thời gian thực, tông hợp nhật ký, tìm nguồn cung ứng sự kiện
và nhật ký cam kết cho các hệ thống phân tán
Tóm lại, Kafka được sử dụng rộng rãi trong các kiên trúc dữ liệu hiện đại nhờ
khả năng xử lý hiệu qua các nguồn cấp dit liệu thông lượng cao, có khả năng chịu lỗi
và dir liệu thời gian thực Nó đã trở thành một thành phan quan trọng dé xây dựng
các đường ống đữ liệu và ứng dụng phát trực tuyến có thể mở rộng, đáng tin cậy và
theo thời gian thực.
2.4 Pytorch
© PyTorch
19
Trang 18Hình 2.4: Logo của PyTorch
PyTorch là thư viện máy học mã nguồn mở được phát triển chủ yếu bởi phòngthí nghiệm Nghiên cứu AI (FAIR) của Facebook Nó được biết đến với tính linh hoạt
và dé sử dụng trong việc xây dựng các mô hình deep learning PyTorch được sử dụng
rộng rãi cho nhiều ứng dụng khác nhau bao gồm xử lý ngôn ngữ tự nhiên (NLP), thị
giác máy tính và học tăng cường.
Dưới đây là một số tính năng và khía cạnh chính của PyTorch:
e Tính toán Tensor: Về cốt lõi, PyTorch cung cấp tính toán Tensor (tương tự
như NumPy) với khả năng tăng tốc GPU mạnh mẽ thông qua CUDA, giúp nó
phù hợp với các tác vụ tính toán hiệu năng cao.
e_ Đồ thị tính toán động: PyTorch sử dụng đồ thị tính toán động, có nghĩa là đồ
thị được xây dựng nhanh chóng khi các hoạt động được thực hiện Bản chất
năng động này cho phép xây dựng mô hình linh hoạt và trực quan hơn so với
các biểu đồ tính toán tĩnh được sử dụng trong các khung như TensorFlow
e _ Khung học tập sâu: PyTorch cung cấp một bộ công cụ và thư viện phong phú
để xây dựng và đào tạo mạng lưới thần kinh sâu Nó bao gồm các mô-đun déxác định các lớp, thuật toán tối ưu hóa, hàm mất mát và tiện ich đữ liệu
e Pythonic: PyTorch được thiết kế theo Pythonic và tích hợp tốt với các gói và
thư viện Python, tận dụng tính đơn giản và dễ sử dụng của Python.
e _ Thư viện và Hệ sinh thái: Nó có một hệ sinh thái đang phát triển với các thư
viện như TorchVision (cho các tác vụ thị giác máy tính), TorchText (cho các
tác vụ NLP) và torchvision.transforms (dé chuyền đổi va tăng cường dit liệu)
e Nghiên cứu và Sản xuất: PyTorch phô biến trong cả nghiên cứu học thuật và
ứng dụng công nghiệp do tính linh hoạt của nó, cho phép các nhà nghiên cứu
thử nghiệm dễ dàng và các học viên triển khai các mô hình một cách hiệu quả
e Cộng đồng và Hỗ tro: PyTorch có một cộng đồng sôi động góp phần vào sự
phát triển của nó, duy trì tài liệu cũng như cung cấp hướng dẫn và ví dụ đểgiúp người dùng bắt đầu và giải quyết vấn đề
20
Trang 19Nhìn chung, PyTorch đã trở nên phô biến nhờ giao diện thân thiện với ngườidùng, tính năng động và hỗ trợ mạnh mẽ cho nghiên cứu deep learning Nó tiếp tụcphát triển với các tính năng và cải tiến mới, khiến nó trở thành lựa chọn ưu tiên của
nhiêu nhà nghiên cứu và thực hành máy học.
2.5 Kiến thức công nghệ
2.5.1 Nestjs
Hình 2.5: Logo của Nestjs
NestJS là một khung Node.js tiến bộ dé xây dung các ứng dụng phía máy chủ
hiệu quả, đáng tin cậy và có thê mở rộng Nó sử dụng TypeScript làm ngôn ngữ chính
và được xây dựng tập trung vào trải nghiệm của nhà phát triển và các tính năng cấpdoanh nghiệp Dưới đây là một số khía cạnh chính của NestJS:
e Tinh mô-đun: NestJS được xây dựng theo kiến trúc mô-đun, giúp người dùng
dễ dàng sắp xếp mã của mình thành các mô-đun Tính mô-đun này thúc đây
khả năng sử dụng lại và bảo trì.
e TypeScript: Nó được viết bằng TypeScript và tận dụng tối đa các tính năng
của nó như trang trí, giao điện và khái quát, cung cấp một cách tiếp cận có cautrúc hơn dé viết các ứng dụng JavaScript
e Tinh năng chèn phụ thuộc: NestJS sử dụng tinh năng chèn phụ thuộc (DI)
để quản lý việc tạo và luồng các phần phụ thuộc trong ứng dụng của người
dùng Điêu này thúc đây một cơ sở mã mô-đun hơn và có thê kiêm tra được.
21
Trang 20e Middleware và Pipes: Nó cung cấp phần mềm trung gian và các pipe dé xử
lý các yêu cầu, cho phép áp dụng logic có thé tái sử dụng cho các tuyến đường
một cách linh hoạt.
e_ Công cu CLI: NestJS cung cấp Giao diện dòng lệnh (CLI) giúp xây dựng các
ứng dụng vả tạo mô-đun, bộ điều khiển, dịch vụ, v.v., giúp tăng tốc độ phát
triển
e Hỗ trợ WebSockets: Nó có hỗ trợ tích hợp cho WebSockets, cho phép giao
tiếp theo thời gian thực giữa máy khách và máy chủ
e Tích hợp với các khung khác: NestJS có thể được tích hợp với các khung
khác như Express và Fastify, mang lại sự linh hoạt trong việc chọn máy chủ
HTTP cơ bản.
e_ Cộng đồng tích cực: Nó có một cộng đồng và hệ sinh thái đang phát triển với
nhiều plugin và tiện ich mở rộng có san dé mở rộng khả năng của mình
Nhìn chung, NestJS kết hợp các yếu tố từ nhiều khung và ngôn ngữ khác nhau
để cung cấp một khung có cấu trúc và mạnh mẽ dé xây dựng các ứng dụng phía may
Trang 21Nextjs là một web framework dựa trên ReactJS, cho phép xây dựng một trang
web một cách nhanh chong Next.js được phat triển dựa trên ReactJS, tức là mọi tinhnăng vả ưu điểm của ReactJS được luôn được tận dụng Ngoài ra, Next.Js bố sungthêm các tính năng khác cũng như khắc phục những nhược điểm của ReactJS Nếungười dùng đã quen với ReactJS thì việc chuyên sang Next.js cũng sẽ vô cùng đơngiản, đễ dàng Các tính năng chính của Nextjs bao gồm:
Sever-side rendering (SSR): Next.js cung cấp hỗ trợ tích hợp cho kết xuấtphía máy chủ, cho phép các trang được hiển thị trước trên máy chủ và cải thiệnhiệu suất cũng như SEO
Static site generation (SSG): Next.js hỗ trợ tạo trang tinh, trong đó các trangđược tạo tại thời điểm xây dựng và được phân phát dưới dạng tệp HTML tĩnh
để tải nhanh và giảm tải máy chủ
Tach code tự động: Next.Js tự động chia code JavaScript của người dùng
thành các phần nhỏ hon, dé quản lý hơn, tối ưu hóa hiệu suất và thời gian tải
Hỗ trợ CSS: Next.js hỗ trợ nhiều giải pháp CSS khác nhau, bao gồm các đun CSS, thư viện CSS-in-JS và CSS toàn cầu, mang lại sự linh hoạt cho việctạo kiểu
mô-Tìm nạp dữ liệu: Next.js cung cấp các phương thức tìm nạp dữ liệu khácnhau, chang hạn như getStaticProps và getServerSideProps, dé tìm nạp dữ liệutại thời điểm xây dựng hoặc thời gian yêu cầu
Định tuyến: Việc định tuyến được đơn giản hóa với Next.js vì nó tự động tạocác tuyến đường dựa trên cấu trúc tệp trong thư mục trang
Tối ưu hóa hình ảnh: Hình ảnh được tự động tối ưu hóa trong Next.Js, đảmbảo hiệu suất tải tối ưu bang cách thay đổi kích thước và nén hình ảnh
Gói CSS và JavaScript tích hợp: Next.js tối ưu hóa và tự động đóng gói CSS
va JavaScript dé tải hiệu quả
Ủy quyền API: Next.js cho phép người dùng tạo các tuyến API có thể đóngvai trò là proxy cho API của bên thứ ba, hỗ trợ tìm nạp đữ liệu và bảo mật.
23
Trang 22e H6 trợ quốc tế hóa (i18n): Next.js cung cấp các công cụ và thư viện dé thêm
hỗ trợ đa ngôn ngữ cho ứng dụng của người dùng.
họ trao đổi dé liệu một cách tự do
Dưới đây là một số tính năng và khái niệm chính liên quan đến Socket.IO:
e Thời gian thực: Socket.IO cho phép giao tiếp dựa trên sự kiện, theo thời gian
thực Nó tạo điều kiện trao đổi đữ liệu tức thời giữa máy khách và máy chủ mà
không cần yêu cầu HTTP liên tục
e WebSocket: Socket.IO chủ yếu sử dung giao thức WebSocket dé liên lac,
cung cấp các kênh liên lạc song công hoàn toàn qua một kết nối TCP Điềunày cho phép giao tiếp có độ trễ thấp giữa máy chủ và máy khách
e Tùy chon dự phòng: Socket.IO cung cấp cơ chế dự phòng cho các kỹ thuật
khác như bỏ phiếu dài nếu WebSocket không được máy khách hoặc máy chủ
hỗ trợ Điều này dam bảo khả năng tương thích với nhiều trình duyệt và môi
trường.
24
Trang 23e Kiến trúc hướng sự kiện: Socket.IO được xây dung xung quanh kiến trúc
hướng sự kiện trong đó cả máy khách và máy chủ đều có thé phát ra các sự
kiện và lắng nghe các sự kiện do bên kia gửi Điều này giúp việc xây dựng các
ứng dụng phản ứng theo thời gian thực với những thay đổi về đữ liệu hoặc
hành động của người dùng trở nên đơn giản.
e HO trợ ngôn ngữ rộng: Mặc dù Socket.IO thường được liên kết với JavaScript
và Node.js cho các ứng dụng phía máy chủ, nhưng nó có sẵn các thư viện máykhách cho các ngôn ngữ và nền tang lập trình khác, cho phép giao tiếp thời
gian thực đa nền tảng.
Socket.IO thường được sử dụng trong các ứng dụng yêu cầu tính năng thời
gian thực như ứng dụng trò chuyện, chơi trò chơi trực tuyến, chỉnh sửa cộng tác, cập
nhật trực tiếp, v.v Tính đơn giản và linh hoạt của nó khiến nó trở thành lựa chọn phổbiến cho các nhà phát triển muốn triển khai các chức năng thời gian thực trong ứng
dụng web của họ.
25
Trang 24Chương 3: MO HÌNH MUA SAM JUST-WALK-OUT
3.1 Giới thiệu
Just-Walk-Out (JWO) là một mô hình mua săm hiện đại sử dụng các côngnghệ và phương pháp về thị giác máy tính, cảm biến và ứng dung di động dé tự độngthanh toán các mặt hàng mua tại một cửa hàng thật mà hoàn toàn không cần quầy và
nhân viên thu ngân JWO được tiên phong bởi công ty thương mại điện tử Amazon
trong các cửa hàng Amazon Go.
Một hệ thông JWO điên hình sẽ có các yêu câu sơ lược sau:
e Đăng ký và ghi nhận diện mạo của người mua sắm khi họ vào cửa hàng và tạo
phiên mua sắm, giỏ hàng ảo cho họ
e Nhận diện hành động mua săm, thường là lấy hoặc trả hàng của người mua
sắm
e Phát hiện mặt hàng được thao tác Phải phát hiện được nhiều mặt hàng cùng
lúc và duy trì giỏ hàng ảo trong suốt thời gian người mua sắm đang trong cửa
hàng.
e Xác định người mua sim nào liên quan đến hành động và mặt hàng nao
e Phát hiện người mua sắm đã rời cửa hang và kích hoạt thanh toán.
26
Trang 25Khách hàng
J
Vào cửa hang va quet thé, quét
lòng tay, dung ứng dung
Rời cửa hàng Thanh toán và xóa phiên mua sắm
Hình 3.1: Luôồng hoạt động của một cửa hàng sử dụng JWO
Có nhiều đề xuất thiết kế khác nhau cho một hệ thống JWO bởi nhiều nhànghiên cứu và công ty đề hiện thực các yêu cầu trên Nhìn chung, mọi đề xuất đều sửdụng nhận diện và phân loại hình ảnh, video từ các camera giám sát dé nhận diệnngười mua sắm, mặt hàng và phát hiện hành động mua sắm Đề tăng độ chính xác vàlàm việc được với các mặt hàng nhỏ, nhiều đề xuất sử dụng các kỹ thuật tổng hợpcảm biến (sensor fusion), tức tích hợp thêm dir liệu từ các cảm biến trọng lượng,RFID, gắn trên các kệ hang dé làm các công việc trên Ngoài ra, trong các thiết kế
đã được triển khai thương mại, ứng dụng di động, máy cà thẻ, cảm biến sinh trắc học
(VD: Cảm biến lòng bàn tay) còn được dùng để nhận diện người mua sắm khi họ vào
Trang 263.2 Một số thiết kế
Có nhiều đề xuất dé hiện thực hóa các yêu cầu của một hệ thống JWO Phân
tích hình ảnh và video từ camera thường là trung tâm của hệ thống Các mô hìnhmạng neural phát hiện vật thể trong hình ảnh như các mạng convolution 2D được
dùng dé nhận diện người mua sắm và mặt hàng Việc nhận diện mặt hàng nào dang
được thao tác bởi người mua sắm có thể dùng vị trí tay hay ước tính tư thế để lọc ra
các mặt hàng không được thao tác trong kết quả nhận diện Việc phát hiện hành động
lay trả hàng có thé sử dụng các mô hình phân loại video, phân loại tư thé (Varadarajan
et al), hay đơn giản là giám sát khoảng cách từ người mua sắm đến mặt hàng (TuanNguyen et al) Nhiều camera thường được dùng dé xử lý che khuất
Ngoài sử dụng hình ảnh, hệ thong JWO hay dùng thêm dữ liệu từ các cảm biến
trọng lượng va RFID dé phát hiện các mặt hàng nhỏ và hành động trên chúng Day
gọi là tổng hợp cảm biến Hệ thống FAIM (Fusion Framework for AutonomousInventory Management) bởi Falcao et al hoàn toàn sử dụng cảm biến trọng lượng dé
phát hiện hành động và mặt hàng liên quan Nó sử dụng các sự kiện thay đổi trọng
lượng ghi nhận từ cảm biến để phát hiện hành động lấy trả hàng và kích hoạt cácthành phần thị giác máy tính liên quan để nhận diện mặt hàng Ngoài ra, kết hợp mứctrọng lượng thay đôi và dữ liệu có sẵn về vị trí của các mặt hàng trên kệ, nó có thểnhận diện các mặt hàng không thể xác định chính xác qua hình ảnh được
28
Trang 27Waiiiis. Weight change-based Item ^
Shelf Alm Prediction ?
DO ›-» ,Change | Item Layout | | Ttem Weight Model |
Mô hình JWO đã triển khai thương mại nồi bật nhất là chuỗi cửa hàng Amazon
Go Trong một cửa hang này, người mua sắm quet thẻ tin dụng hay quét lòng bàn tay
dùng thiết bi Amazon One dé vào cửa hàng và bắt đầu một phiên mua sắm Cáccamera sẽ chụp lại người mua săm và hệ thống sẽ tạo một số hiệu độc nhất dé theo
dõi người mua sắm đó trong suốt thời gian họ ở trong cửa hàng Khi trong cửa hàng,
hệ thống các camera trên trần nhà sẽ giám sát mọi hành động của người mua sắm và
sử dụng các công nghệ thị giác máy tinh và cảm biến trọng lượng (load-cell sensor)
dé phát hiện việc lay trả hàng, hàng nào được lay/tra, và người mua sắm nào đã làm
điều đó Các thông tin này được dùng để cập nhật giỏ hàng ảo của người mua sắm
trong suốt quá trình mua săm Khi người mua săm rời cửa hàng, số hiệu của họ được
xóa và giỏ hàng được thanh toán bằng phương thức thanh toán đã được cài đặt Hệ
thống còn có thé gom nhóm nhiều người mua sắm vào một giỏ hàng ảo và thanh toán
chung cho cả nhóm.
Amazon đảm bảo hiệu suất của hệ thống cho nhiều cửa hàng bằng cách tùychỉnh cấu hình hệ thống cho từng cửa hàng Ngoài ra, Amazon cũng dùng AI đối
29
Trang 28nghịch tạo sinh để sinh dữ liệu cho việc huấn luyện và kiểm tra hệ thống Amazon
đang dự kiến mở thêm các cửa hàng JWO trên toàn thế giới và phát huy tiềm năng
của khái niệm này.
3.4 Một sô van dé
Dù rất hữu ích, mô hình JWO vẫn còn nhiều van đề phải khắc phục như độchính xác, tính riêng tư và phòng chống trộm cắp JWO có những hạn chế và thửthách mà các hệ thống thị giác máy tính khác thường gặp như phát hiện sai vật thé,người hay không phát hiện được và quá tải Một số trường hợp hay gặp mà các côngnghệ thị giác máy tính khó xử lý bao gồm người mua sắm có đeo khâu trang, người
mua sắm thay đôi diện mạo (VD: Cởi áo) trong cửa hàng, vật thé, người bi che khuat,
các vật thé có điện mạo giống nhau và điều kiện ánh sáng không chuẩn Các van déliên quan đến phát hiện hành động và nhận diện người, vật thể có thể được khắc phụcbằng cách dùng rất nhiều camera (lên đến hàng trăm ở Amazon Go) ở nhiều nơi(không chỉ trần nhà mà trong các kệ hàng) và tổng hợp cảm biến tuy nhiên việc nàygây phát sinh chỉ phí cao Hiện nay, Amazon Go vẫn phải dùng người để giải quyếtcác bat định của hệ thống và dam bảo người mua sắm được thanh toán đúng Ngoài
ra, vì không có người tại cửa hàng, hệ thong sẽ phải có cách nhận diện va báo độngcác trường hợp gian lận (VD: Khui lon trước khi thanh toán) và trộm cắp
30
Trang 29Chương 4: PHÁT HIỆN VẬT THẺ VÀ HÀNH ĐỘNG TRONG THỊ
GIÁC MÁY TÍNH
4.1 Giới thiệu
Thị giác máy tính là lĩnh vực về thu thập, xử lý, phân tích hình ảnh số và rút
ra các hiểu biết về chúng Thị giác máy tính là cốt lõi của nhiều hệ thống như giámsát giao thông, mạng xã hội, robot và mua săm dùng mô hình Just-Walk-Out Các bàitoán trong thị giác máy tính là phát hiện và phân loại vật thể, người, khuôn mặt, khuvực, trong một hình ảnh hay video, ước tính tư thế người, Trong suốt 60 nămqua, đã có nhiều kỹ thuật được đề ra để giải quyết các bài toán trên như mô tả đặc
trưng (VD: SIFT, SURF), phát hiện cạnh, góc, ngưỡng, Cac kỹ thuật nay tập trung
chủ yếu vào trích xuất một số đặc trưng có liên quan tới phân loại và vi tri của vậtthể Vì đặc trưng nào cần lấy phải được khám phá thủ công, các kỹ thuật này thiếuhiệu quả với các bài toán có số lớp phân loại rất lớn (VD: Các mặt hàng trong cửahàng JWO) Trong 15 năm gan đây, các mô hình nhận diện, phân loại hình anh sửdụng học sâu (deep learning) đã lên ngôi trở thành các phương pháp chính để giảiquyết các bài toán thị giác máy tính Học sâu là một nhánh của học máy sử dụng cấutrúc dir liệu mang neural nhân tạo nhiều lớp dé dự đoán các giá trị thật (hồi quy) haylớp phân loại từ một dữ liệu đầu vào nào đó Đối với dữ liệu hình ảnh, các mạngneural nhân tạo trích xuất các đặc trưng từ hình ảnh và suy luận từ các đặc trưng đó
ra đầu ra mong muốn Các tham số phù hợp của mạng neural dé nó có thé trích xuấtđúng đặc trưng cần đề suy luận đầu ra sẽ được tìm kiếm hoàn toàn tự động thông quaquá trình huấn luyện bằng suy giảm độ dốc (gradient descent) Vì thế, các mô hình
này có khả năng làm việc được với số lượng lớp phân loại rất lớn và có độ chính xác
cao hơn các kỹ thuật truyền thống Bu lại, chúng cần yêu cầu xử lý cao và rất nhiều
dữ liệu dé huấn luyện
Mô hình mạng neural được dùng nhiều nhất trong thị giác máy tính hiện nay
là các mô hình tích chập (convolution) Các mô hình này có nhiều lớp tích chập vàgộp (pooling) đề từng bước trích xuất các đặc trưng cần dùng cho phân loại Các lớp
31
Trang 30tích chập dùng cho hình ảnh 2D (gồm chiều cao và rộng) thông thường dùng một
kernel o € R”** là một ma trận chứa các trọng số @„„ Ma trận này được nhân theo
phan tử với M x N các giá trị điểm anh x„; gần nhau rồi tính tổng các phan tử kết
quả, cộng thêm bias 6 và cho qua ham activation a(z) Quá trình này được lặp lại với
các nhóm điểm ảnh kế bên dé cho ra một bản đồ đặc trưng (feature map) { h; ph
Hình 4.1: Áp dụng gộp tối đa (max pooling) trên một bản đồ đặc trưng
Cuối cùng, một lớp neural có kết nối đầy đủ với lớp gộp cuối cùng và lớp đầu
ra sẽ phân loại hình ảnh dựa vào bản đồ đặc trưng từ lớp gộp cuối:
Fully
Convolution Connected
Pooling “ ””
Input 6
Feature Extraction Classification
Hình 4.2: Kiến trúc cơ bản của mạng neural tích chập 2D
32
Trang 31Các mạng tích chập được huấn luyện tương tự như các mang neural khác bằngcách dùng các thuật toán suy giảm độ đốc (VD: Stochastic, Adam) đề tối ưu hóa cáctham số mô hình nhằm giảm độ mất mát (VD: Categorical cross-entropy) Các kỹthuật như tiêu biến trọng số, dropout, tăng cường dữ liệu (VD: Xoay, thu phóng, ghépảnh) thường được dùng dé tăng độ chính xác khi huấn luyện.
Đề làm việc với video hay hình anh 3D (VD: Từ máy chụp MR]), các lớp tíchchập (bao gồm kernel) và lớp gộp sẽ có cấu trúc 3 chiều Đã có nhiều mô hình tíchchập được đề ra để giải quyết nhiều loại bài toán thị giác máy tính khác nhau Một số
mô hình hay dùng ngày nay là YOLO, MobileNet, ResNet cho phát hiện vật thể tronghình ảnh, I3D, MoviNet, TimeSformer cho nhận diện hành động trong video Mỗi
mô hình tích chập sẽ có các ưu nhược điểm riêng của nó về độ chính xác, tốc độ Suyluận và đầu ra Điều này có nghĩa mỗi ứng dụng sẽ có một nhóm các mô hình phùhợp nhất cho nó Đối với các ứng dụng thị giác máy tính thời gian thực như cửa hàngJWO, YOLO va Movinet là hai mô hình có thé sử dụng dé nhận diện mặt hang và
hành động mua sam.
4.2 Đánh giá một mô hình nhận diện
Các mô hình nhận diện trong thị giác máy tính như nhận diện vật thể, hành
động thực hiện bài toán phân loại nên các kỹ thuật đánh giá như precision, recall
thường được dùng dé đánh giá mô hình nhận diện Đối với bài toán dự đoán phân loại
2 lớp đúng/sai (True/False), ta có khái niệm:
True Positive: Dự đoán đúng khi thực tế đúng, False Positive (FP): Dự đoánđúng khi thực tế sai, True Negative (TN): Dự đoán sai khi thực tế sai, False Negative(FN): Dự đoán đúng khi thực tế sai
Trang 32Độ đầy đủ (Recall) là tỉ lệ các dự đoán đúng trong số các dự đoán đáng lẽ
phải đúng:
Ttirp R=—TF—
Trrp + Ney
Độ chính xác và day đủ sẽ thay đổi nếu ngưỡng xác suất dé coi một lớp là kết
quả thay đổi Ta có thé tạo một đồ thị về sự thay đôi của độ chính xác so với độ đầy
đủ (Đường cong chính xác-đầy đủ) khi thay đổi ngưỡng đó dé giúp khắc phục mấtcân bằng lớp trong bộ đữ liệu
Hình 4.8: Đường cong chính xac-day đủ dé đánh giá mô hình nhận diện
Diện tích dưới đường cong được gọi là độ chính xác trung bình (Average precision - AP):
AP = ) (R„— Rạ-)P,
n
Một mô hình nhận diện tốt sẽ có độ chính xác, độ day đủ va AP cao Đối với
các mô hình phân loại nhiều lớp, ta tính các độ đo này cho từng lớp rồi lấy trung bình
cộng Trung bình cộng các AP của moi lớp được gọi là Mean Average Precision
(mAP).
34
Trang 33Đối với các mô hình phát hiện hộp giới hạn của vật thê (bounding box), ta cóthêm khái niệm Intersection over Union (IoU) là tỉ lệ hộp dự đoán A tương đồng vớihộp thực tế B (nhãn):
— DiéntichANB
loU = ———————
0Ũ = Dien tichAUB
Nếu mAP chỉ được tinh cho các hộp có loU trên 0.5, nó được gọi là mAP50
(Và tương tự cho mAP50-95 cho IoU trong phạm vi 0.5-0.9)
Dựa vào các độ đo nay, ta đánh giá được hiệu suat của mô hình và biệt chỗ cân cải thiện khi xây dựng và huân luyện mô hình.
4.3 Mô hình phát hiện vật thể YOLO
YOLO (You Only Look Once) là mô hình phát hiện vật thé trong hình anhđược phát triển vào năm 2015 bởi Redmon et al YOLO có thể phát hiện được nhiều
loại vật thể cùng một lúc và nhận diện được hộp giới hạn (bounding box) và phân loại
chúng chỉ trong một giai đoạn (one-stage detector) YOLO chia hình ảnh thành một
lưới và dự đoán B hộp giới hạn (với các thông tin: tọa độ tam x, y, chiều dài rong w,
h, độ tin cay = Pr (vat) * JOU ` )) và xác suất các lớp phân loại trong từng ô lưới.
Độ tin cậy theo lớp từng hộp giới hạn được tính như sau:
Pr(Lớp;|Vật) * Pr(Vat) * 10U2%4, = Pr(Lớp,) * 10Ug 0
du bao
Một quá trình heuristic được dùng dé xóa các hộp giới han có độ tin cậy thấp
và các hộp trùng lặp dé đưa ra hộp có độ tin cậy cao nhất
35
Trang 34Class probability map
Hinh 4.3: Nguyén ly phat hién vat thé cia YOLO
Mô hình YOLO tiêu chuẩn có đầu vào là hình ảnh RGB với kích thước
448 x 448 24 lớp tích chập tạo ra một bản đồ đặc trưng có kích thước
7x 7 x 1024 Ban đồ này được kết nối đầy đủ tới một lớp 4096 neuron Lớp nàyđược kết nối đầy đủ tới lớp đầu ra có kích thước 7 x 7 x 30
2x2-+2 2x24-2 1x1x256 1xIx512 3x3x1024
3x3x512 3x3x1024 — 3x3x1024+2 Moxpool Layer Moxpool Layer
2x2+2 2x2+2
Hình 4.4: Kiến trúc của YOLO
Mô hình YOLO có tốc độ suy luận rất nhanh (45 khung hình/giây trên GPU
Tesla X), tích hợp cả dự đoán hộp giới hạn và lớp phân loại vào một mô hình, xem
xét toàn bộ hình ảnh chứ không chỉ vài vùng nên giảm thiểu nhằm lẫn nền và có độchính xác tương đối tốt so với các mô hình khác YOLO van còn hạn chế trong việcphát hiện các vật thể nhỏ, đặc biệt là với các mô hình phát hiện hai giai đoạn (two-
36
Trang 35stage detector) như ResNet Tuy nhiên vì tốc độ suy luận nhanh, nó rất phù hợp cho
các hệ thống thị giác máy tính thời gian thực trong giám sát giao thông và cửa hàng
JWO Đối với cửa hàng JWO, nó hữu ích cho việc phát hiện mặt hàng và người mua
săm.
4.4 Mô hình nhận diện hành động Movinet
Đề nhận diện hành động trong video, ta cần trích xuất đặc trưng từ không chỉmột hình ảnh mà nhiều hình ảnh Các đặc trưng này nằm trong 3 chiều, 2 chiều hìnhảnh (rộng, cao) và 1 chiều thời gian Đầu vào và các lớp tích chập, gộm của một mạng
neural tích chập dùng cho video sẽ có kích thước 3 chiều Nguyên tắc hoạt động của
các mang nay vẫn như trên, chỉ là nó có thêm một chiêu thời gian
hình hiện tại nên tích chập chỉ được thực hiện trên các khung hình quá khứ Đây được gọi là tích chập nhân qua (causal convolution) Movinet bởi Kondratyuk et al (2021)
là một trong số các mô hình phân loại video sử dụng kỹ thuật này Điều này khiến nó
thích hợp cho việc nhận diện hành động mua săm thời gian thực trong một cửa hàng
JWO Movinet có kiến trúc dựa trên mô hình phân loại hình ảnh MobileNet gọn nhẹđược thiết kế cho các ứng dụng nhúng và di động Movinet có đầu vào với kích thước
50 x 172 x 172 và có sử dụng một bộ đệm stream B chứa b khung hình (hoặc mức
kích hoạt neuron) quá khứ dé giảm lượng bộ nhớ sử dung và cho phép xử lý một hay
37
Trang 36nhiều khung hình mới x; trong một stream video Tích chập ƒ (z) được thực hiện trênx; và các khung hình trong B dé tạo bản đồ đặc trưng:
F, = ƒŒ;¡ *,)
Khi xử lý khung tiếp theo, B được cập nhật lại như sau:
Bis = (Bị ® %¡)[—p.]
[—b: ] tức là lấy b khung hình cuối của kết qua
Hình 4.6: Nguyên lý đệm stream trong mô hình Movinet
Mức kích hoạt neural đầu ra của Movinet được cập nhật sau mỗi khung hình
mới được đưa vào Mức kích hoạt hiện tại a là trung bình cộng các mức kích hoạt a;
của T khung hình trước (Cumulative Global Average Pooling — CGAP):
1 ¬r
CGAP(a,T) == » at
T =—:-1
Khi dùng trên từng khung video mới, Movinet hoạt động như một mang neural
hồi quy (recurrent neural network) Nó tích hợp thêm thông tin với từng khung hình
và cập nhật lại mức kích hoạt của các neuron đầu ra (xác suất của các lớp hành động).Với khả năng xử lý theo từng khung hình và tốc độ suy luận nhanh cùng việc sử dụng
ít bộ nhớ, Movinet là một ứng viên tiềm năng để nhận diện hành động trong một hệthống JWO thời gian thực
38
Trang 37FLOPs per Video
Hình 4.7: Độ chính xác (top-1 acccuracy) và lượng bộ nhớ sử dung của các mô hình
Movinet cơ sở và có đệm stream.
39
Trang 38Chương 5: PHAN TÍCH VÀ THIẾT KE HE THONG
5.1 Yêu cầu
5.1.1 Phạm vi hệ thống và các use case
Một hệ thống mua sắm JWO hoàn thiện cần giải quyết nhiều bài toán khác
nhau theo các yêu cầu đã đề cập ở chương 3 Riêng trong khóa luận này, ta sẽ xâydựng một hệ thống mua sắm JWO đơn giản với tính năng cập nhật giỏ hàng của duy
nhât một người mua săm dùng video từ một camera trong một cửa hàng.
CC Xem gid hang >
Hình 5.1: Sơ dé use case
5.1.2 Danh sach tac nhan
STT | Tén Chỉ tiết
1 Người mua săm Người mua săm trong cửa hàng Người này sẽ lây,
trả các mặt hàng từ các kệ trong cửa hàng và xem
giỏ hàng hiện tại qua website hệ thống.
Bang 5.1: Danh sách tác nhân 5.1.3 Danh sách use case
STT | Tên Chỉ tiết
1 Lay hang Lay một hay nhiều mặt hàng từ kệ.
40
Trang 392 Tra hang | Trả một hay nhiều mặt hàng lên kệ.
3 Xem giỏ hang Xem giỏ hang hiện tại.
Bảng 5.2: Danh sách use case
5.1.4 Mô tả chỉ tiết use case
STT |
Tên Lây hàng
Mô tả Lây một hay nhiều mặt hàng từ kệ
Tác nhân Người mua sắm
Điều kiện trước | Camera dang két nôi va gửi stream video.
Điêu kiện sau Không
Luong xử lý 1 Người mua săm lây hàng từ kệ ;
2 Hệ thông JWO nhận diện hành động lây và các mặt
hàng được lây.
3 Hệ thống JWO thêm vào giỏ hàng các mặt hàng được
lay với sô lượng đã lay và tăng số lượng các mặt hàng
đã có trong giỏ được lay thêm theo số lượng lay thêm
4 Cập nhật trang giỏ hàng với trang thái gio hàng mới
nhat.
M6 rộng Không
4]
Trang 40Người mua sắm Hệ thông JWO
3.1 Tang số lượng mat hang 3.2 Thém mat hang vao
theo số lượng đã lay gid hang với số lượng đã lay |
Mô tả Trả một hay nhiều mặt hàng lên kệ
Tác nhân Người mua sắm
Điêu kiện trước | Camera đang két nôi và gửi stream video.
Điều kiện sau Không
42