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

Khóa luận tốt nghiệp Công nghệ phần mềm: Nghiên cứu các kỹ thuật dựa trên thị giác máy tính và máy học để xây dựng ứng dụng "Just Walk Out Shopping"

80 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 đề Nghiên cứu các kỹ thuật dựa trên thị giác máy tính và máy học để xây dựng ứng dụng "Just Walk Out Shopping"
Tác giả Le Quang Trung, Ha Phi Hung
Người hướng dẫn TS. Nguyen Duy Khanh
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Công nghệ phần mềm
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 80
Dung lượng 74,64 MB

Nội dung

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 2

LOI 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 3

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

4.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 5

5.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 6

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

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

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

DANH MỤC TU VIET TAT

Trang 10

TOM 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 11

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

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

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

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

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

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

Khả 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 18

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

Nhì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 20

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

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

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

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

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

Khá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 26

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

Waiiiis. 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 28

nghị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 29

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

tí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 31

Cá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 34

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

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

nhiề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 37

FLOPs 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 38

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

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

Ngườ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

Ngày đăng: 08/12/2024, 15:41

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

TÀI LIỆU LIÊN QUAN

w