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

Luận văn thạc sĩ Kỹ thuật điều khiển và tự động hóa: Hệ thống thị giác máy tính phục vụ thanh toán tự động

140 1 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

Nội dung

Trang 1

PHẠM VĂN HUY

HỆ THỐNG THỊ GIÁC MÁY TÍNH PHỤC VỤ THANH TOÁN TỰ ĐỘNG

COMPUTER VISION SYSTEM FOR AUTONOMOUS CHECKOUT

Chuyên ngành: Kỹ thuật điều khiển & tự động hóa Mã số: 8520216

LUẬN VĂN THẠC SĨ

TP HỒ CHÍ MINH, tháng 06 năm 2023

Trang 2

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM Cán bộ hướng dẫn khoa học : TS Phạm Việt Cường

Cán bộ chấm nhận xét 1 : PGS.TS Huỳnh Thái Hoàng

Cán bộ chấm nhận xét 2 : PGS.TS Lê Mỹ Hà

Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp.HCM ngày 15 tháng 06 năm 2023

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:

(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ khóa luận tốt nghiệp)

1 GS.TS Hồ Phạm Huy Ánh - Chủ tịch 2 TS Nguyễn Trọng Tài - Thư ký 3 PGS.TS Huỳnh Thái Hoàng - Phản biện 1 4 PGS.TS Lê Mỹ Hà - Phản biện 2 5 TS Ngô Thanh Quyền - Uỷ viên

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)

CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA ĐIỆN – ĐIỆN TỬ

Trang 3

ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Chuyên ngành: Kỹ Thuật Điều Khiển và Tự Động Hoá Mã số: 8520216

I TÊN ĐỀ TÀI:

HỆ THỐNG THỊ GIÁC MÁY TÍNH PHỤC VỤ THANH TOÁN TỰ ĐỘNG COMPUTER VISION SYSTEM FOR AUTONOMOUS CHECKOUT

NHIỆM VỤ VÀ NỘI DUNG:

Huấn luyện mô hình Deep Learning (DL) để phát hiện được các sản phẩm trên kệ hàng với độ chính xác cao Đề xuất ra quy trình xử lý phát hiện sản phẩm được lấy đi hay trả lại kệ hàng, liên kết sản phẩm được chuyển giao với khách hàng tương tác Tối ưu để chương trình có thể xử lý thời gian thực

II NGÀY GIAO NHIỆM VỤ: 06/02/2023

III NGÀY HOÀN THÀNH NHIỆM VỤ: 11/06/2023IV.CÁN BỘ HƯỚNG DẪN: TS Phạm Việt Cường

TP HCM, ngày 15 tháng 06 năm 2023

CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM BỘ MÔN ĐÀO TẠO

TRƯỞNG KHOA ĐIỆN - ĐIỆN TỬ

Trang 4

LỜI CẢM ƠN

Đầu tiên, tôi xin gửi lời cảm ơn đến gia đình, người thân đã luôn động viên, hỗ trợ và thúc đẩy tôi trong suốt quá trình thực hiện luận văn này Những lời khuyên và giúp đỡ của gia đình đã giúp tôi vượt qua khó khăn và tiếp tục trong quá trình triển khai luận văn này

Tiếp đến, tôi muốn gửi lời cảm ơn chân thành đến thầy Phạm Việt Cường, người đã dành thời gian và giúp đỡ tôi về mặt ý tưởng giải quyết bài toán Thầy đã cung cấp cho tôi định hướng và kiến thức cần thiết để hoàn thành đề tài này Tôi đã học hỏi được thêm từ sự chỉ dẫn của thầy

Tôi cũng muốn bày tỏ lời cảm ơn đến những người bạn và đồng nghiệp của tôi, trong đó có anh Nguyễn Hoàng Phi Long, là người đã dành thời gian giải đáp một số thắc mắc và gợi ý cho tôi ý tưởng tối ưu hóa mô hình, anh Nguyễn Văn Anh, đang theo học nghiên cứu sinh tại trường Đại học Soonchunhyang, đã hỗ trợ tôi phần cứng máy tính trong phòng nghiên cứu của anh cho tôi thử nghiệm để kiểm tra tốc độ xử lý bài toán Cũng biết ơn bạn Võ Thị Thanh Ngân giúp đỡ tôi quay cảnh thử nghiệm bài toán trường hợp hai khách hàng cùng lấy sản phẩm Ngoài ra còn cho tôi những lời khuyên hỗ trợ về mặt tinh thần trong khoảng thời gian thực hiện

Một lần nữa, tôi muốn gửi lời cảm ơn chân thành đến những người anh, người bạn, những đóng góp của họ đã đóng vai trò không thể thiếu trong việc hoàn thành nghiên cứu này

TP Hồ Chí Minh, ngày 11 tháng 06 năm 2023

Học viên Phạm Văn Huy

Trang 5

TÓM TẮT LUẬN VĂN BẰNG TIẾNG VIỆT

Trong ngành bán lẻ, đã xuất hiện nhiều công nghệ có tác động đáng kể đến quy trình thanh toán Các ví dụ bao gồm thanh toán tự quét, nơi khách hàng sử dụng điện thoại để quét mã QR và tự thanh toán, cũng như hệ thống cửa quét tự động ở Trung Quốc Đặt hàng trực tuyến trên các trang thương mại điện tử và thanh toán không tiếp xúc là những công nghệ khác nhằm thay thế tương tác con người

Trong những năm gần đây, công ty bán lẻ lớn nhất thế giới Amazon ra mắt công chúng công nghệ "Just Walk Out", đã thành công trong việc loại bỏ bước cuối cùng trong quy trình mua hàng thực tế - quy trình thanh toán Điều này đáp ứng yêu cầu của người tiêu dùng hiện đại với hạn chế thời gian Người mua hàng không muốn phải đứng xếp hàng trong 10 phút, tháo rời sản phẩm từ giỏ hàng và đặt lên băng chuyền, vì thời gian của mỗi người rất quý giá Công nghệ "Just Walk Out" của Amazon đã thực hiện thành công việc loại bỏ yếu tố cuối cùng này, giúp người mua hàng tiết kiệm thời gian trong quá trình mua sắm

Dựa trên vấn đề thực tiễn đó, đề tài Luận Văn này nhằm tìm hiểu và triển khai một hệ thống sử dụng thị giác máy tính để phục vụ tự động hoá quá trình thanh toán Trong hệ thống này, các mô hình Deep Learning được huấn luyện để nhận dạng và phân loại các sản phẩm, cũng như mô hình ước tính tư thế con người

Với mục tiêu tăng tính hiệu quả và tiện lợi trong việc thanh toán, đề tài tập trung vào hai khía cạnh chính Thứ nhất, xây dựng được một hệ thống giúp phát hiện sản phẩm nào được lấy ra hay đặt trở lại kệ hàng, thêm nữa cần phải kết hợp mặt hàng được lấy hay trả lại đó tương ứng với khách hàng để phục vụ thanh toán tự động Thứ hai, nghiên cứu tối ưu hóa mô hình Deep Learning đã được huấn luyện để đảm bảo tích hợp dễ dàng với phần cứng và tăng tốc độ xử lý dữ liệu Các hành động trong môi trường mua sắm diễn ra rất nhanh, do đó yêu cầu đòi hỏi cần phải có hệ thống thực hiện trên thời gian thực

Trang 6

ABSTRACT

In the retail industry, several technologies have significantly impacted the payment process Examples include self-scanning payment, where customers use their phones to scan QR codes and make self-payments, as well as automated checkout systems in China Online ordering on e-commerce platforms and contactless payments are other technologies aimed at replacing human interaction

In recent years, the world's largest retail company, Amazon, introduced the "Just Walk Out" technology, successfully eliminating the final step in the actual shopping process - the payment process This meets the requirements of modern consumers who value time Shoppers don't want to wait in line for 10 minutes, to unload products from their carts or baskets onto conveyor belts, as each person's time is valuable Amazon's "Just Walk Out" technology has successfully removed this final element, saving shoppers time during the shopping process

Based on this practical issue, this thesis aims to study and implement a computer vision system to automate the payment process In this system, Deep Learning models are trained to recognize and classify products, as well as human pose recognition models

With the goal of increasing efficiency and convenience in payment, the thesis focuses on two main aspects Firstly, developing a system to detect which products are taken from or returned to the shelves and associate them with corresponding customers for automatic payment Secondly, optimizing the trained Deep Learning models to ensure easy integration with hardware and improve data processing speed Actions in the shopping environment occur rapidly, therefore real-time execution is required for the system

Trang 7

LỜI CAM ĐOAN TÁC GIẢ

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi, dưới sự hướng dẫn của TS Phạm Việt Cường

Các số liệu, những kết quả nêu trong luận văn là hoàn toàn trung thực và chưa được công bố trong bất kỳ công trình nào khác Tôi xin chịu hoàn toàn trách nhiệm về lời cam đoan này

Tác giả luận văn

Phạm Văn Huy

Trang 8

MỤC LỤC

LỜI CẢM ƠN ii

TÓM TẮT LUẬN VĂN BẰNG TIẾNG VIỆT iii

LỜI CAM ĐOAN TÁC GIẢ v

MỤC LỤC vi

DANH MỤC HÌNH VẼ ix

DANH MỤC BẢNG xi

DANH MỤC TỪ VIẾT TẮT xii

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 1

2.2 Đánh giá mô hình nhận dạng đối tượng (Object Detection) 8

2.2.1 Intersection over Union (IoU) 9

2.2.2 Precison and Recall 10

2.2.3 Average Precision (AP) 10

2.3 Mô hình ước tính tư thế (Pose Estimation) 11

2.3.1 Ước tính tư thế một người 11

2.3.2 Ước tính tư thế nhiều người 12

2.3.3 Các mô hình ước tính tư thế 14

2.3.3.1.AlphaPose 14

2.3.3.2.OpenPose 14

Trang 9

2.3.3.3.OpenPifPaf 15

2.3.4 Chọn mô hình ước tính tư thế để triển khai 16

2.4 Phương pháp theo dõi đối tượng (Tracking Method) 17

2.5 Tối ưu hoá mô hình Deep Learning bằng TensorRT 21

2.5.1 TensorRT là gì 21

2.5.2 Các ưu điểm của TensorRT 21

2.5.3 Cơ chế tối ưu của TensorRT 22

3.6 Giải mã luồng camera (RTSP – Real Time Streaming Proctocol) 32

3.7 Nền tảng GPU đám mây hỗ trợ Deep Learning 33

CHƯƠNG 4 QUÁ TRÌNH THỰC HIỆN 35

4.1 Ý tưởng giải quyết đề tài 35

4.2 Quy trình chuyển giao sản phẩm trên kệ hàng sang khách hàng 42

4.3 Huấn luyện mô hình nhận dạng đối tượng 47

4.3.1 Chuẩn bị dữ liệu 47

4.3.2 Gán nhãn dữ liệu 50

4.3.3 Chọn mô hình huấn luyện 51

4.4 Tối ưu mô hình nhận dạng đối tượng 52

Trang 10

4.5 Mô hình ước tính tư thế con người 53

4.5.1 Chuẩn bị dữ liệu 54

4.5.2 Cấu trúc phần bổ trợ 57

4.5.2.1.Mô đun dữ liệu 57

4.5.2.2.Đăng ký phần bổ trợ 58

4.5.2.3.Mô đun Constants 59

4.5.3 Huấn luyện mô hình ước tính tư thế con người 60

CHƯƠNG 5 KẾT QUẢ VÀ ĐÁNH GIÁ 61

5.1 Kết quả huấn luyện mô hình nhận dạng đối tượng 61

5.2 Kết quả sau khi tối ưu mô hình nhận dạng đối tượng 64

5.2.1 Phương pháp đánh giá 64

5.2.2 Kết quả đánh giá 65

5.3 Kết quả huấn luyện mô hình ước tính tư thế con người 66

5.4 Kết quả thử nghiệm bài toán phục vụ thanh toán tự động 71

5.4.1 Phương pháp đánh giá 71

5.4.2 Các kịch bản kiểm thử 72

5.4.3 Kết quả đánh giá trên kịch bản kiểm thử 76

CHƯƠNG 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 80

6.1 Tóm tắt các công việc đã thực hiện 80

6.2 Kết luận 80

6.3 Hướng phát triển 82

TÀI LIỆU THAM KHẢO 85

PHỤ LỤC 92

Trang 11

DANH MỤC HÌNH VẼ

Hình 1.1 Vị trí lắp đặt camera theo dõi kệ hàng 3

Hình 2.1 Kiến trúc mạng YOLOv8 6

Hình 2.2 Trực quan hóa anchor box trong YOLO 7

Hình 2.3 Mosaic augmentation of chess board photos 8

Hình 2.4 Ground Truth và Predict bounding box 9

Hình 2.5 Đồ thị Precision – Recall 11

Hình 2.6 Quy trình của OpenPose (a) Toàn bộ hình ảnh được cung cấp dưới dạng đầu vào để cùng dự đoán cả (b) Bản đồ độ tin cậy của bộ phận cơ thể (c) Trường ái lực của bộ phận (d) Các phần được so khớp dựa trên PAF (e) Tư thế toàn thân Hình ảnh từ [34] 15

Hình 2.7 Minh họa về sự khác biệt giữa (a) Trường ái lực một phần và (b) Trường liên kết tổng hợp Các vòng tròn màu xám biểu thị các khớp (a) chỉ đơn giản chỉ ra hướng tới khớp nối tiếp theo (b) cả hai đều bắt nguồn từ khớp nguồn cũng như biểu thị khớp đích (b) cũng chỉ ra kích thước của mỗi khớp, như được thấy bởi các ô vuông màu xanh Các mô tả được lấy từ [35] 16

Hình 2.8 Luồng xử lý của SORT 18

Hình 2.9 Kết hợp các hộp giới hạn có ngưỡng tin cậy cao 19

Hình 2.10 Kết hợp các hộp giới hạn có ngưỡng tin cậy thấp còn lại 20

Hình 2.11 Tối ưu hoá model bằng TensorRT 21

Hình 2.12 Mô hình pinhole camera 23

Hình 3.1 Kích thước kệ 4 tầng 71x34x125 cm 26

Hình 3.2 Tấm bìa mô hình Formex 27

Hình 3.3 Vị trí bóng đèn được lắp đặt trong phòng 28

Hình 3.4 Camera IP HIKVISION DS-2CD1143G0-IUF 29

Hình 3.5 PoE Switch 4-Port Gigabit HIKVISION DS-3E0505P-E/M 30

Hình 3.6 Sơ đồ kết nối camera IP với laptop thông qua PoE switch 31

Hình 3.7 Real Time Streaming Protocol 32

Hình 3.8 Các GPU cho phép người dùng thuê trên Vast.ai 34

Trang 12

Hình 4.1 Sơ đồ lắp đặt camera trong công nghệ Just Walk Out của Amazon 37

Hình 4.2 Góc nhìn của camera trên kệ và hình ảnh dãy camera phía trên kệ 37

Hình 4.3 Góc nhìn camera giám sát trong cửa hàng Amazon Go [39] 38

Hình 4.4 Quy trình theo dõi sản phẩm trên kệ hàng 42

Hình 4.5 Quy trình con xác định các mặt hàng đã lấy ra hay trả lại 43

Hình 4.6 Sơ đồ chuyển giao giữa sản phẩm với khách hàng 45

Hình 4.7 Hình ảnh tổng hợp các trường hợp bối cảnh khác nhau khi lấy mẫu 49

Hình 4.8 Thực hiện gán nhãn dữ liệu ảnh bằng công cụ LabelImg 50

Hình 4.9 Số lượng hộp giới hạn chú thích tương ứng với mỗi lớp cần nhận dạng 51

Hình 4.10 Biểu đồ tương quan giữa các mô hình YOLOv8 theo số lượng tham số của mô hình và tốc độ xử lý FP16 52

Hình 4.11 Quá trình tối ưu hóa YOLOv8 53

Hình 4.12 Minh họa kết quả các điểm chính trên hai bộ dữ liệu hiện tại (a) Điểm chính trên tập dữ liệu MPII (b) Điểm chính trên tập dữ liệu MSCOCO 55

Hình 4.13 Minh họa kết quả các điểm chính MPII sau khi đổi qua COCO format 56

Hình 5.1 Giá trị mAP50-95 của các mô hình sau khi tối ưu trên tập đánh giá 65

Hình 5.2 Tốc độ suy luận của các mô hình khi triển khai trên RTX3080 65

Hình 5.3 Biểu đồ hàm mất mát của tập huấn luyện và tập đánh giá qua các epoch 68Hình 5.4 So sánh kết quả ước tính tư thế con người của mô hình pretrained và mô hình sau khi huấn luyện 69

Hình 5.5 Trường hợp một khách hàng lấy sản phẩm 73

Hình 5.6 Trường hợp một khách hàng trả mặt hàng vào nơi có sản phẩm khác đang trưng bày trên kệ 74

Hình 5.7 Trường hợp một khách hàng đứng sát kệ giấu hành động lấy sản phẩm 74

Hình 5.8 Trường hợp hai người cùng mua hàng 75

Hình 6.1 Xử lý khi phát hiện tay người mua hàng đi qua vạch kẻ sẵn 83

Hình 6.2 Ảnh chụp khu vực xung quanh bàn tay khách hàng khi qua vạch 83

Trang 13

DANH MỤC BẢNG

Bảng 4-1 So sánh các thuật toán phát hiện chuyển động hay dùng 41

Bảng 5-1 So sánh keypoints left hand và right hand với hai model pretrained và mô hình được huấn luyện trên 10 clip ngắn ngẫu nhiên 70

Bảng 5-2 Các kịch bản kiểm thử bài toán phục vụ thanh toán tự động 72

Bảng 5-3 Các tình huống điển hình trong các kịch bản kiểm thử 76

Trang 14

DANH MỤC TỪ VIẾT TẮT

Trang 15

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI

1.1 Tổng quan đề tài

Chúng ta đã thấy những công nghệ khác ảnh hưởng tới nền công nghiệp bán lẻ, ví dụ như thanh toán tự quét, nơi mà khách hàng vào cửa hàng và dùng điện thoại của mình quét mã QR và tự thanh toán, hay như cửa quét tự động ở bên Trung Quốc, đặt hàng trực tuyến trên các trang thương mại điện tử và thanh toán không tiếp xúc là những công nghệ nhằm giúp thay thế tương tác con người

Tuy nhiên với các công nghệ kể trên thì chưa có một công nghệ nào thực sự loại bỏ được dòng người xếp hàng chờ thanh toán Một quảng cáo đáng nhớ của IBM vào đầu những năm 2000 đã cho người ta hình dung ra một cửa hàng bán lẻ trong tương lai, nơi người mua sắm chỉ cần bước vào, lấy thứ họ muốn và bước ra ngoài Không còn các hàng chờ thanh toán nữa

Vào năm 2018, Amazon đã khai trương cửa hàng bán lẻ tự động công khai đầu tiên tại Seattle Được mệnh danh là Amazon Go, người mua hàng có thể bước vào, lấy đồ và rời đi mà không cần đến quầy thanh toán Một hệ thống máy ảnh và AI trực quan sẽ xác định những gì họ đã mua và tính phí vào thẻ của họ Tới nay, khái niệm 'Just Walk Out' của Amazon đã được triển khai nhiều cửa hàng hơn và thậm chí còn cho phép khách hàng thanh toán bằng dấu vân tay của họ

Bên cạnh đó, với Amazon Go, bạn không phải đợi đến lượt xếp hàng, không phải đợi nhân viên thu ngân quét từng sản phẩm, không phải đợi quẹt thẻ ở máy quét RFID, và bạn cũng không' không đợi nhân viên hậu cần chất đầy túi hàng tạp hóa Bằng cách xóa tất cả các bước này, quy trình thanh toán mang lại hiệu quả và sự tiện lợi cho khách hàng ở mức cao nhất - tất cả những gì chúng tôi có thể nói, không xếp hàng, không đăng ký, không thanh toán

Không ai muốn đứng xếp hàng trong 10 phút, dỡ tất cả các sản phẩm từ xe đẩy hoặc giỏ của họ lên băng tải, vì thời gian của mỗi người là rất quý giá Công nghệ Just Walk Out của Amazon đã thành công trong việc loại bỏ chút vướng mắc cuối cùng trong quá trình mua hàng thực tế; hệ thống thanh toán - nghĩa là Amazon Go đã đáp ứng được yêu cầu của người tiêu dùng hiện đại hạn chế về thời gian

Trang 16

1.2 Tình hình nghiên cứu hiện nay

Đề tài này rất hay, tuy nhiên lại có rất ít những công bố liên quan đến ứng dụng của xử lý ảnh và học sâu trong việc phục vụ thanh toán tự động Sau đây là nội dung của một số bài báo liên quan mà em tìm hiểu được

Các đề tài em tìm hiểu được đều chỉ đang tập trung vào phát hiện hành động của người mua hàng trong môi trường mua sắm Có thể kể đến như bài báo A Multi-Stream Bi-Directional Recurrent Neural Network for Fine-Grained Action Detection, trong nghiên cứu này cố gắng giải quyết vấn đề phát hiện các hành động cụ thể xảy ra trong video sử dụng mạng thần kinh tích chập hai luồng, gồm một luồng là khung ảnh và luồng chuyển động bởi thuật toán optical flow Và một số bài báo khác như A Real-Time System for Shoppers’ Action Recognition và Follow the Attention: Combining Partial Pose and Object Motion for Fine-Grained Action Detection, thì họ sử dụng mô hình ước tính tư thế con người, và lấy đó làm đầu vào cho mạng LSTM để phần loại hành động

Cũng có một số các công ty tư nhân ở các nước khác nhau cũng đang nghiên cứu thử nghiệm và đưa ra thực tế mô hình giống với cửa hàng Amazon Go, tuy nhiên hiện tại thì họ cũng không hề có những tiết lộ nào về công nghệ mà họ đang sử dụng, vì lợi ích

Cho đến nay, Amazon chỉ tiết lộ rằng họ đã kết hợp học sâu, thị giác máy tính và kết hợp cảm biến (loadcells, RFID) mà không có bất kỳ chi tiết nào khác, khả năng bởi vì tiết lộ sẽ ảnh hưởng tới khả năng bản quyền của họ Và may mắn trong lúc thực hiện đề tài, em có tìm ra được bằng sáng chế của Amazon có liên quan tới công nghệ Just Walk Out này Tuy vậy, chúng ta cũng chỉ có thể đoán những gì đang được sử dụng, vì chưa từng có công ty nào tiết lộ công nghệ của mình trong các bằng sáng chế, để tránh bị các công ty khác nhân bản thành công như chính nó

Trang 17

Hình 1.1 Vị trí lắp đặt camera theo dõi kệ hàng

Những nhiệm vụ cần thực hiện bao gồm:

- Nhiệm vụ 1: Huấn luyện mô hình Deep Learning (DL) để phát hiện được các sản phẩm trên kệ hàng với độ chính xác cao

- Nhiệm vụ 2: Đề xuất ra quy trình xử lý dùng thị giác máy tính giúp phát hiện ra sản phẩm nào được lấy hay sản phẩm nào vừa được đặt trở lại kệ hàng - Nhiệm vụ 3: Huấn luyện mô hình ước tính tư thế con người trong môi trường

mua sắm, với góc máy camera giám sát cao từ trên nhìn xuống

- Nhiệm vụ 4: Đề xuất quy trình chuyển giao mặt hàng đã phát hiện được lấy ra hay đặt trở lại kệ hàng sang khách hàng tương ứng

- Nhiệm vụ 5: Tối ưu để chương trình có thể xử lý thời gian thực

Trang 18

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

2.1 Mô hình YOLOv8

Mô hình YOLO (You Only Look Once) đã trở nên nổi tiếng trong thế giới thị giác máy tính Sự nổi tiếng của YOLO là do độ chính xác của nó trong khi vẫn duy trì kích thước mô hình nhỏ

YOLO được cộng đồng thị giác máy tính chú ý đến và phát triển kể từ lần ra mắt đầu tiên năm 2015 bởi Joseph Redmond Trong những ngày đầu (từ phiên bản YOLO v1 đến YOLO v4), YOLO được triển khai và giữ nguyên với framework deep learning được viết bởi Redmond bằng ngôn ngữ C, với tên gọi Darknet

Tác giả của YOLOv8, Glenn Jocher tại Ultralytics, đã phát triển âm thầm chuyển đổi toàn bộ YOLOv3 từ Darknet sang PyTorch (một khung học sâu từ Facebook) Sau khi xây dựng lại toàn bộ YOLOv3 từ DarkNet sang Pytorch, tác giả đã có nhiều cải tiến khi thêm vào PA-Net và CSP backbone giúp giảm thông số của mạng, tốc độ tính toán giảm đi đáng kể vả độ chính xác tăng Khi kết quả quá trình đào tạo trở nên tốt hơn, Ultralytics cuối cùng đã ra mắt mô hình của riêng mình: YOLOv5

YOLOv5 nhanh chóng trở thành repo hiện đại nhất (SOTA hay state-of-the-art) nhờ cấu trúc Pythonic linh hoạt của nó Cấu trúc này cho phép cộng đồng phát minh ra các cải tiến mô hình mới và nhanh chóng chia sẻ chúng trên khắp kho lưu trữ bằng các phương pháp PyTorch tương tự

Trong hai năm qua, nhiều mô hình phân nhánh từ repo YOLOv5 Pytorch, bao gồm Scaled-YOLOv4, YOLOR và cả YOLOv7 Các mô hình khác đã ra mắt toàn thể cộng đồng từ các triển khai dựa trên Pytorch của riêng họ, như YOLOX và YOLOv6 Đồng thời, mỗi mô hình YOLO đã mang đến các kỹ thuật mới để tiếp tục nâng cao độ chính xác và hiệu quả của mô hình

Trong sáu tháng qua, Ultralytics đã nghiên cứu phiên bản hiện đại nhất (SOTA) mới nhất của YOLO, YOLOv8 YOLOv8 được ra mắt vào ngày 10/01/2023

Trang 19

Sau đây là một vài lý do khiến cho em chọn YOLOv8 để thực hiện trong đề tài luận văn của mình, thay cho mô hình YOLOv4 đã thực hiện ở đề cương

- YOLOv8 có tỷ lệ chính xác cao được đo bằng thang đo COCO

- YOLOv88 đi kèm với nhiều tính năng thuận tiện cho người phát triển/ người dùng Từ CLI (command line interface) dễ sử dụng đến thư viện Python được cấu trúc tốt

- YOLOv8 đang được phát triển tích cực tại thời điểm này, trên repo Ultralytics hoạt động sôi nổi với các tính năng mới và phản hồi từ cộng đồng Tổ chức này làm việc với cộng đồng để làm cho mô hình của họ trở nên tốt nhất có thể - YOLOv8 đạt được độ chính xác cao trên thang đo COCO Có một thách thức liên quan đến MS COCO với chỉ số đánh giá mới, tính trung bình mAP trên các ngưỡng IoU khác nhau, từ 0,5 đến 0,95 (được viết là “0,5:0,95”) [1] Ví dụ, đối với YOLOv8m – mô hình trung bình (medium) – đạt được 50.2% mAP khi đo trên COCO (ký hiệu là mAP@[.5:.95])

- Hơn nữa, các tính năng tiện lợi dành cho nhà phát triển trong YOLOv8 rất quan trọng Trái ngược với các mô hình khác nơi các tác vụ được phân chia thành nhiều tệp Python khác nhau YOLOv8 đi kèm với CLI giúp đào tạo một mô hình trực quan hơn Đây là phần bổ sung cho gói Python cung cấp trải nghiệm viết mã liền mạch hơn so với các mô hình trước đó

Vậy điều gì khiến cho YOLOv8 khác biệt so với các mô hình YOLO trước đây? Chúng ta cần đi qua tìm hiểu những thay đổi trong kiến trúc của YOLOv8

Hình ảnh sau đây hiển thị trực quan chi tiết về kiến trúc của mạng

Trang 20

Hình 2.1 Kiến trúc mạng YOLOv8

Các điểm đổi mới và cải tiến trong YOLOv8 so với YOLOv5

- Thay thế lớp tích chập đầu 6x6 bằng tích chập 3x3 trong BackBone - Thay đổi mô đun C3 bằng C2f

- Phần BottleNeck cũng giống như phiên bản YOLOv5 nhưng kích thước kernel lớp tích chập đầu tiên được chuyển đổi từ 1x1 sang 3x3

- Xóa hai tích chập (convolution) số 10 và số 14 trong cấu hình YOLOv5 - Phát hiện không dùng Anchor:

Trang 21

YOLOv8 phát hiện không dùng anchor Điều này nghĩa là khi mô hình phát hiện đối tượng dự đoán trực tiếp tâm của đối tượng thay vì phần bù từ hộp neo đã biết

Hình 2.2 Trực quan hóa anchor box trong YOLO

Các hộp neo là một phần nổi tiếng phức tạp của các mô hình YOLO trước đó, vì chúng có thể đại diện cho việc phân phối các hộp của điểm chuẩn mục tiêu nhưng không phải là phân phối của tập dữ liệu tùy chỉnh

Tính năng phát hiện không neo làm giảm số lượng hộp dự đoán, giúp tăng tốc phần non-max suppression (NMS), một bước xử lý hậu kỳ phức tạp sàng lọc các phát hiện ứng viên sau khi suy luận

- Sự kết hợp làm giàu Mosaic:

Nghiên cứu học sâu có xu hướng tập trung vào kiến trúc mô hình, nhưng thói quen đào tạo trong YOLOv5 và YOLOv8 cũng là một phần thiết yếu trong thành công của chính nó

YOLOv8 tăng cường hình ảnh trong quá trình đào tạo Tại mỗi thời điểm, mô hình sẽ thấy một biến thể hơi khác nhau của hình ảnh mà nó đã được cung cấp

Trang 22

Một trong những phần làm giàu đó được gọi là mosaic augmentation Điều này liên quan đến việc ghép bốn hình ảnh lại với nhau, buộc mô hình tìm hiểu các đối tượng ở các vị trí mới, che khuất một phần và dựa trên các pixel xung quanh khác nhau

Hình 2.3 Mosaic augmentation of chess board photos

Tuy nhiên, sự gia tăng này được chứng minh bằng thực nghiệm là làm giảm hiệu suất nếu được thực hiện trong toàn bộ quá trình luyện tập Sẽ thuận lợi nếu bạn tắt nó đi trong 10 giai đoạn huấn luyện gần nhất

2.2 Đánh giá mô hình nhận dạng đối tượng (Object Detection)

Độ chính xác mAP là một độ đo thường dùng để đánh giá các mô hình nhận dạng đối tượng Để tìm hiểu về mAP, trước tiên ta cần hiểu một số khái niệm về IoU, Precision và Recall

Trang 23

2.2.1 Intersection over Union (IoU)

Intersection over Union là chỉ số đánh giá được sử dụng để đo độ chính xác của phát hiện đối tượng trên tập dữ liệu cụ thể Chỉ số này thường được gặp trong các Object Detection Challenge IOU thường được đánh giá hiệu năng của các bộ phát hiện đối tượng như HOG + Linear SVM và mạng nơ ron tích chập (R-CNN, FastR-CNN, YOLO,…)

Để áp dụng được IoU để đánh giá cần:

- Đường bao thực (ground-truth bounding box): là đường bao mà chúng ta gán cho vật thể

- Đường bao dự đoán (predicted bouding box): là đường bao chúng ta sử dụng file trọng số (weights) sau khi huấn luyện để dự đoán

Dưới đây là ví dụ về đường bao thực (ground truth) và đường bao được dự đoán (predict bounding box) Đường bao được dự đoán được vẽ bằng màu vàng, trong khi đó đường bao thực được vẽ bằng màu xanh lá Mục tiêu ta là tính toán IoU (Intersection over Union) giữa hai đường bao

Hình 2.4 Ground Truth và Predict bounding box

Tỷ lệ này là IoU (Intersection over union) là tỉ lệ giữa đo lường mức độ giao nhau giữa hai đường bao (thường là đường bao dự đoán và đường bao thực) để nhằm xác định hai khung hình có bị đè chồng lên nhau không Tỷ lệ này được tính dựa trên phần diện tích giao nhau gữa 2 đường bao với phần tổng diện tích giao nhau và không giao nhau giữa chúng

Trang 24

Các tiêu chí được dùng để đánh giá:

- Đối tượng được nhận dạng đúng với tỉ lệ IOU> 0.5 (True positive: TP) - Đối tượng được nhận dạng sai với tỉ lệ IOU < 0.5 (False positive: FP) - Đối tượng không được nhận dạng (False negative: FN)

2.2.2 Precison and Recall

Precision được định nghĩa là tỉ lệ số điểm True Positive trong tổng số những điểm được phân loại là Positive (TP + FP) Còn Recall được định nghĩa là tỉ lệ số điểm True Positive trong số những điểm thật sự là Positive (TP +FN)

Precision cao đồng nghĩa với việc độ chính xác của các điểm tìm được là cao Recall cao đồng nghĩa với việc True Positive Rate cao, tức tỉ lệ bỏ sót các điểm thực sự positive là thấp

Khi Precision = 1, mọi điểm tìm được đều thực sự là positive, tức không có điểm negative nào lẫn vào kết quả Tuy nhiên, Precision = 1 không đảm bảo mô hình là tốt, vì liệu mô hình đã tìm được tất cả các điểm positive hay chưa? Nếu một mô hình chỉ tìm được đúng một điểm positive mà nó chắc chắn nhất thì ta không thể xem nó là một mô hình tốt

Khi Recall = 1, mọi điểm positive đều được tìm thấy Tuy nhiên, đại lượng này lại không đo liệu có bao nhiêu điểm negative bị lẫn trong đó Nếu mô hình phân loại mọi điểm là positive thì chắc chắn Recall = 1 Tuy nhiên, dễ nhận ra đây là một mô hình cực tồi

2.2.3 Average Precision (AP)

Giả sử có N ngưỡng để tính precision và recall, mỗi ngưỡng có 1 cặp giá trị (𝑃𝑛, 𝑅𝑛) với n = 1,2,…,N Precision-Recall curve được vẽ bằng cách vẽ từng điểm có toạ độ trên trục toạ độ (𝑃𝑛, 𝑅𝑛) và nối chúng với nhau

Trang 25

Hình 2.5 Đồ thị Precision – Recall

Average precision được định nghĩa là diện tích phần phía dưới đường biểu diễn mối quan hệ của precision và recall AP thường được tính xấp xỉ bằng công thức như sau:

𝐴𝑃 = ∑(𝑅𝑛− 𝑅𝑛−1)𝑃𝑛𝑛

Trong bài toán Object Detection ta có nhiều class khác nhau, mỗi class ta sẽ tiến hành tính giá trị AP và sau đó lấy trung bình của tất cả giá trị AP của các class để được chỉ số mAP của cả mô hình Trong tập data COCO, AP được tính với 101 điểm Interpolated Precision và sau đó tính AP trung bình với các ngưỡng IoU từ [0.5- 0.95]

2.3 Mô hình ước tính tư thế (Pose Estimation)

Các kỹ thuật ước tính tư thế hơi khác nhau dựa trên việc nhiệm vụ là ước tính các cá nhân hay nhiều người Dưới đây là tổng quan về các kỹ thuật được sử dụng để thực hiện cả hai nhiệm vụ vừa nêu

2.3.1 Ước tính tư thế một người

Ước lượng tư thế khi áp dụng cho các cá nhân hoạt động theo cách truyền thống bằng cách tìm các quan sát về các bộ phận cơ thể trong ảnh và sau đó mô hình hóa mối quan hệ giữa các chi dưới dạng biểu đồ cấu trúc cây (a tree-structured graph)[2][3][4][5][6][7], được gọi là các mô hình cấu trúc hình ảnh Mỗi nút trong biểu đồ đại diện cho một bộ phận và mỗi cạnh đại diện cho một phân bố xác suất có

Trang 26

điều kiện về vị trí và hướng tương đối của các bộ phận (tức là khả năng hai bộ phận là của cùng một người như thế nào) Mỗi phần được biểu diễn, trong trường hợp 2D, dưới dạng tọa độ cùng với hướng của nó, Parti = (xi,yi,θi) Các biến thể phi cây của mô hình cũng tồn tại, trong đó các cạnh bổ sung được tạo ra để mô hình hóa các mối quan hệ khi bị che lấp, đối xứng và tầm xa [8][9][10][11][12] Để có được các quan sát về các bộ phận cơ thể, CNN đã được sử dụng rất thành công [13][14][15] [16][17][18][19][20][21][22][23][24]

2.3.2 Ước tính tư thế nhiều người

Khi được áp dụng cho nhiều người cùng một lúc, các công cụ ước tính tư thế có thể hoạt động bằng cách sử dụng cách tiếp cận từ trên xuống hoặc từ dưới lên Theo truyền thống, hầu hết các cách tiếp cận đều là từ trên xuống [25][26][27][28][29][30][31][31] Từ trên xuống có nghĩa là mỗi người trong ảnh trước tiên được cắt thành một ảnh riêng biệt, trước khi ước tính tư thế thực tế Sau đó, mỗi hình ảnh được cắt ra sẽ được ước tính tư thế riêng lẻ, sử dụng công cụ ước tính tư thế cho từng người như mô tả ở trên Một lợi ích lớn của điều này là các công cụ ước tính tư thế được phát triển trước đây cho từng người có thể được sử dụng trực tiếp trong các tình huống nhiều người Quá trình này thường dẫn đến độ chính xác khá tốt, nhưng có một vài nhược điểm được nêu dưới đây:

Thời gian xử lý tỷ lệ thuận với số lượng người trong đầu vào Càng có nhiều người thì càng mất nhiều thời gian để ước tính tư thế Điều này bị cấm trong các hình ảnh có nhiều người

Mọi người chồng chéo lên nhau có thể ngăn cản các công cụ ước tính tư thế riêng lẻ xác định chính xác tư thế của các cá nhân, vì chúng có thể bị che một phần Điều này khiến họ bỏ qua hoàn toàn các cá nhân, do đó làm giảm khả năng thu hồi công cụ ước tính nhiều người

Cách tiếp cận khác, được gọi là cách tiếp cận từ dưới lên, hoạt động theo cách ngược lại Các công cụ ước tính tư thế này hoạt động bằng cách xác định các bộ phận quan tâm trong đầu vào, chẳng hạn như tay chân của người và sau đó ghép các bộ phận tìm được lại với nhau thành các ước tính tư thế thực tế Cách tiếp cận này có một vài ưu điểm so với cách tiếp cận từ trên xuống, cụ thể là:

Trang 27

Thời gian xử lý được tách biệt với số lượng người trong đầu vào Điều này đạt được nhờ các thuật toán phân tích cú pháp hiệu quả (ví dụ: thuật toán tham lam) để ghép các phần đã xác định lại với nhau, nhanh hơn đáng kể so với việc đưa ra ước tính riêng cho từng cá nhân như được thực hiện trong các phương pháp tiếp cận từ trên xuống

Việc che phủ một số bộ phận của một người không gây trở ngại lớn đối với độ chính xác của các phương pháp tiếp cận từ dưới lên như đối với các phương pháp tiếp cận từ trên xuống, do khả năng của bước phân tích cú pháp đoán một cách đáng tin cậy các bộ phận được xác định thuộc về ai Thay vào đó, máy dò một người sẽ thất bại hoàn toàn với ước tính tư thế của nó khi không thể hoạt động do tay chân bị che phủ, vì nó không xem xét bối cảnh toàn cầu (tức là những người xung quanh)

Việc triển khai ban đầu các phương pháp tiếp cận từ dưới lên không thể ghép các phần đã xác định lại với nhau một cách hiệu quả và dựa vào suy luận toàn cầu tốn kém để ghép các phần riêng lẻ lại với nhau, khiến chúng mất nhiều phút thời gian xử lý cho mỗi hình ảnh [32][33]Các triển khai sau này đã giải quyết vấn đề này [34][35]bằng cách vừa cải thiện việc xác định các bộ phận, vừa bằng cách sử dụng phương pháp tham lam thay vì suy luận toàn cục để tập hợp các ước tính tư thế cuối cùng Với những cải tiến này, các thuật toán từ dưới lên trở nên có thể sử dụng được và hầu như luôn nhanh hơn, thay thế cho các phương pháp tiếp cận từ trên xuống

Một nhược điểm của phương pháp tiếp cận từ dưới lên trong một số trường hợp có thể ảnh hưởng tiêu cực đến độ chính xác là do toàn bộ hình ảnh được xử lý cùng một lúc nên độ phân giải của CNN trong bước phát hiện ban đầu bị ảnh hưởng so với phương pháp tiếp cận từ trên xuống Vì phương pháp tiếp cận từ trên xuống xử lý các phần bị cắt của hình ảnh nên mỗi khu vực được xử lý với độ phân giải cao hơn so với xử lý toàn bộ hình ảnh Hiệu ứng này có thể được giảm thiểu bằng cách tăng độ phân giải được sử dụng bởi các mạng từ dưới lên (và do đó sử dụng bộ nhớ của chúng), nhưng những thay đổi đó vẫn ảnh hưởng đến các phần khác của mạng cũng như tốc độ của mạng

Trang 28

2.3.3 Các mô hình ước tính tư thế 2.3.3.1 AlphaPose

AlphaPose là công cụ ước tính tư thế nhiều người 2D [25] Nó dựa trên cách tiếp cận từ trên xuống được mô tả ở trên Điều này có nghĩa là trước tiên nó áp dụng một trình phát hiện người để tìm các cá nhân trong ảnh, dẫn đến nhiều hộp giới hạn mà mỗi hộp ước tính vị trí của một cá nhân Mỗi hộp giới hạn sau đó được cắt ra và đặt ước tính riêng Một cạm bẫy phổ biến là các hộp giới hạn được tìm thấy không hoàn hảo Điều này thường có thể khiến công cụ ước tính tư thế thất bại hoàn toàn trong việc ước tính tư thế của cá nhân trong hộp giới hạn AlphaPose giải quyết vấn đề này bằng cách biến đổi từng hộp giới hạn bằng cách sử dụng một mạng thần kinh khác (mạng biến áp không gian [36]) trước khi cung cấp các hộp giới hạn cho công cụ ước tính tư thế người

2.3.3.2 OpenPose

OpenPose là công cụ ước tính tư thế nhiều người 2D [34] Nó dựa trên cách tiếp cận từ dưới lên và là cách triển khai đầu tiên có thể cung cấp cả độ chính xác tương đương với cách tiếp cận từ trên xuống cũng như tăng tốc độ lớn

Là một công cụ ước tính từ dưới lên, nó bắt đầu bằng cách tìm các bộ phận (ví dụ: tay chân) của những người trong ảnh Tuy nhiên, ngoài ra, nó cũng tìm thấy cái gọi là Trường ái lực một phần (PAF) Mặc dù tính năng phát hiện bộ phận thông thường chỉ cho biết vị trí của một bộ phận cụ thể trong hình ảnh, nhưng PAF là các vectơ 2D mã hóa hướng mà một bộ phận hướng tới Điều này có nghĩa là đối với mỗi pixel trong vùng của một phần cụ thể, PAF hiển thị mối quan hệ trên nhiều pixel OpenPose sử dụng quy trình lặp đi lặp lại trong đó họ tinh chỉnh các dự đoán PAF nhiều lần, cũng như dự đoán bộ phận cơ thể, trước khi lắp ráp các bộ phận cơ thể thành tư thế hoàn chỉnh, sử dụng thông tin của PAF để quyết định bộ phận nào được kết nối Xem hình dưới đây để biết quy trình tổng thể của OpenPose

Trang 29

Hình 2.6 Quy trình của OpenPose

(a) Toàn bộ hình ảnh được cung cấp dưới dạng đầu vào để cùng dự đoán cả (b) Bản đồ độ tin cậy của bộ phận cơ thể (c) Trường ái lực của bộ phận (d) Các phần được so khớp dựa trên PAF (e) Tư thế toàn thân Hình ảnh từ [34]

2.3.3.3 OpenPifPaf

OpenPifPaf cũng là một công cụ ước tính tư thế nhiều người 2D, nhưng được thiết kế đặc biệt dành cho các chuỗi video thay vì hình ảnh tĩnh [35] Nó được xây dựng dựa trên kết quả của OpenPose, cũng sử dụng cách tiếp cận từ dưới lên cùng với một loại Trường sở thích bộ phận khác OpenPifPaf sử dụng Trường kết hợp tổng hợp Chúng phục vụ mục đích tương tự như Part Affinity Fields của OpenPose, nhưng bao gồm nhiều thông tin hơn Trường liên kết tổng hợp biểu thị liên kết giữa hai phần và

Trang 30

chỉ định giá trị độ tin cậy, hướng đến từng phần trong số hai phần, giá trị trải rộng để biểu thị độ chính xác về không gian và hai kích thước khớp Xem Hình 2.2 để biết minh họa về sự khác biệt giữa hai loại trường Để cải thiện độ chính xác của video, OpenPifPaf cũng kết nối các tư thế trên nhiều hình ảnh

Hình 2.7 Minh họa về sự khác biệt giữa (a) Trường ái lực một phần và (b) Trường liên kết tổng hợp Các vòng tròn màu xám biểu thị các khớp (a) chỉ đơn giản chỉ ra hướng tới khớp nối tiếp theo (b) cả hai đều bắt nguồn từ khớp nguồn cũng như biểu

thị khớp đích (b) cũng chỉ ra kích thước của mỗi khớp, như được thấy bởi các ô vuông màu xanh Các mô tả được lấy từ [35]

2.3.4 Chọn mô hình ước tính tư thế để triển khai

Về hướng tiếp cận, trong luận văn này em sẽ tiếp cận theo hướng bottom-up, bởi vì theo em thấy việc sử dụng cách tiếp cận top-down sẽ cần phải sử dụng thêm 1 bộ object detection để mà phát hiện người, sau đó mỗi người trong ảnh trước tiên được cắt thành một ảnh riêng biệt, trước khi ước tính tư thế thực tế Thêm nữa hai nhược điểm sau không phù hợp với đề tài hiện tại trong môi trường bán lẻ, môi trường này đặc thù là có nhiều người Mà cách tiếp cận top-down thì thời gian xử lý tỷ lệ thuận với số lượng người trong ảnh đầu vào, làm giảm hiệu năng khi có nhiều người Tiếp đến là có thể góc nhìn camera từ cao nhìn xuống chéo có thể che đi 1 phần cơ thể khách hàng, có thể khiến nó bỏ qua các khách hàng đó, làm giảm khả năng thu hồi (recall) ước tính nhiều người

Đối với cách tiếp cận bottom-up thì hiện tại như em tìm hiểu có hai bộ ước tính phổ biến đó là OpenPose và OpenPifPaf Trong đó thì OpenPose được sử dụng khá phổ biến trong nhiều nghiên cứu, cụ thể trong bài báo Follow the Attention: Combining Partial Pose and Object Motion for Fine-Grained Action Detection họ sử

Trang 31

dụng OpenPose để từ đó ước tính tư thế Còn OpenPifPaf được ra mắt sau đó (vào năm 2019) nên hiện tại trợ giúp từ cộng đồng người dùng là ít, cũng chưa thấy nhiều bài báo sử dụng, đặc biệt là ở Việt Nam

Tuy nhiên sau một thời gian xem xét, em quyết định chọn OpenPifPaf làm công cụ ước tính tư thế cơ bản trong luận văn này, vì những điểm sau:

1 OpenPifPaf có độ tin cậy cao hơn OpenPose theo như trong nghiên cứu của tác giả [37]

2 OpenPifPaf cài đặt sử dụng dễ dàng hơn, vì nó được xây dựng dưới dạng gói cài đặt Python, người dùng chỉ cần cài đặt bằng câu lệnh pip, trong khi OpenPose được viết bằng ngôn ngữ lập trình C++, cần phải clone repository và build trước khi chạy Ngoài ra, OpenPifPaf còn có thêm CLI dễ sử dụng và thử nghiệm ngay

3 Cả hai đều hỗ trợ việc train lại model với bộ dữ liệu riêng

2.4 Phương pháp theo dõi đối tượng (Tracking Method)

Bài toán cần giải quyết trong luận văn này có một phần cần sử dụng tới tracking đó chính là tracking người trong cửa hàng Đó chính là bài toán multi-object tracking (MOT) Theo sự tìm hiểu của em, thì ByteTrack được cải tiến từ SORT (Simple Online and Realtime Tracking)

Simple Online Realtime Object Tracking (SORT), một thuật toán thuộc dạng Tracking-by-detection hay Detection based Tracking, nên nó cần có kết quả của bài toán object detection đó chính là bounding box bao quanh vật thể Công việc sau đó là tìm cách liên kết các bounding box thu được ở mỗi frame và gán ID cho từng đối tượng Do đó, chúng ta có một khung quá trình xử lí với mỗi frame mới như sau:

- Detect: phát hiện vị trí các đối tượng trong frame

- Predict: Dự đoán vị trí mới của các đối tượng dựa vào các frame trước đó - Associate: Liên kết các vị trí phát hiện với các vị trí dự đoán để gán ID tương

ứng

Hai thuật toán cốt lõi của SORT là Kalman Filter và giải thuật Hungary, sau đây là cách mà Kalman Filter và giải thuật Hungary được kết hợp với nhau

Trang 32

Hình 2.8 Luồng xử lý của SORT

- Bước 1: SORT tiến hành sử dụng Kalman Filter để dự đoán các trạng thái track mới dựa trên các track trong quá khứ

- Bước 2: Sử dụng những track vừa dự đoán được, kết hợp với các detection thu được từ detector, xây dựng ma trận chi phí cho Assignment Problem Chi phí được sử dụng để đánh giá ở đây là giá trị IOU giữa các bouding box của track và detection

- Bước 3: Sử dụng giải thuật Hungary giải bài toán Assignment Problem với ma trận chi phí vừa lập

- Bước 4: Xử lí, phân loại các detection và sử dụng Kalman filter để update những detection đã được liên kết với track

Những cải tiến của ByteTrack đối với SORT

Theo như tác giả, khi lựa chọn những đối tượng để bắt đầu theo dõi, hãy theo dõi những đối tượng có Confidence score cao, dựa vào ngưỡng confidence Sau đó, khi matching các bboxes của các đối tượng nằm trong danh sách được theo dõi với các bboxes được phát hiện trong các frame tiếp theo, kể cả những bboxes có Confidence score thấp cũng vẫn sẽ được xem xét

Trang 33

Đầu tiên, quá trình matching sẽ được thực hiện giữa bboxes của các đối tượng đã được track tại frame t1 và các bboxes được detect tại frame t2, những bboxes này có Confidence score cao (lớn hơn threshold: 0.5) và các bước cũng giống như SORT được nói ở trên

Hình 2.9 Kết hợp các hộp giới hạn có ngưỡng tin cậy cao

Sau khi match xong những bboxes mà có Confidence score cao, trong frame thứ 2 ta có thể thấy còn 2 bboxes nữa với Confidence score lần lượt là: 0.4 và 0.1 chưa được match (những bboxes có hình tam giác màu cam bên trong) Với 2 bboxes còn lại này, các tác giả lại cho nó đi qua quá trình matching một lần nữa để tính IoU giữa nó và các đối tượng được track ở các frame trước

Trang 34

Hình 2.10 Kết hợp các hộp giới hạn có ngưỡng tin cậy thấp còn lại

Từ đó có thể thấy bbox của người thứ 2 từ bên trái qua khi bị che khuất bây giờ đã được match Còn bbox được detect với Confidence score 0.1 thì được loại bỏ vì IoU giữa nó và bbox được track từ các frame phía trước là 0

Khi áp dụng kỹ thuật này vào các phương pháp theo dõi hiện có, các tác giả đã chỉ ra cho thấy rằng hiệu suất được cải thiện một cách nhất quán Đặc biệt có thể thấy rằng, số lượng IDs giảm đi rất nhiều (IDs càng ít càng tốt) Ở đây, số lượng chuyển đổi ID có nghĩa là số lần ID được thay đổi trong quá trình theo dõi đối với từng đối tượng

Trang 35

2.5 Tối ưu hoá mô hình Deep Learning bằng TensorRT 2.5.1 TensorRT là gì

Hình 2.11 Tối ưu hoá model bằng TensorRT

TensorRT là một thư viện tối ưu hóa mô hình mạng nơ-ron Nó được phát triển bởi NVIDIA và được thiết kế để giúp tăng tốc độ xử lý mạng nơ-ron trên GPU của NVIDIA

TensorRT hỗ trợ các kiến trúc mạng nơ-ron phổ biến như Convolutional Neural Networks (CNNs), Recurrent Neural Networks (RNNs) và mạng nơ-ron đầy đủ (fully connected neural networks) Nó cũng hỗ trợ các định dạng dữ liệu đầu vào phổ biến như TensorFlow, Pytorch, ONNX và Caffe

Với TensorRT, các mô hình mạng nơ-ron có thể được tối ưu hóa để chạy nhanh hơn trên GPU của NVIDIA, làm giảm thời gian xử lý và tiêu thụ năng lượng, cho phép các ứng dụng AI và Deep Learning chạy nhanh hơn và hiệu quả hơn

2.5.2 Các ưu điểm của TensorRT

Tăng tốc model lên đến 36 lần: TensorRT hoạt động nhanh hơn tới 36 lần so với việc sử dụng CPU trong quá trình suy luận, cho phép người dùng tối ưu hóa các mô hình mạng thần kinh được đào tạo trên tất cả các framework, triển khai cho máy chủ dữ liệu quy mô lớn hoặc các nền tảng thiết bị nhúng (edge device)

Trang 36

Tối ưu hiệu suất model: TensorRT được xây dựng tính toán song song NVIDIA CUDA, cho phép tối ưu hóa suy luận bằng cách tận dụng các thư viện, công nghệ trong NVIDIA AI

Tăng tốc với mọi workload: TensorRT cung cấp INT8, FP16, FP32 để tăng tốc độ xử lý và đánh đổi bởi độ chính xác

2.5.3 Cơ chế tối ưu của TensorRT

TensorRT cung cấp nhiều kỹ thuật tối ưu hóa để giảm thiểu số lượng phép tính cần thiết để tính toán kết quả và tăng tốc độ chạy mô hình Sau đây là một số kỹ thuật tối ưu hóa của TensorRT:

1 Lượng tử hóa (Quantization): Kỹ thuật này giảm kích thước của các tham số của mô hình bằng cách giảm số lượng bit được sử dụng để biểu diễn chúng Việc giảm kích thước này giúp giảm lượng dữ liệu được truyền qua mạng và tăng tốc độ tính toán trên GPU

2 Cắt tỉa (Pruning): Kỹ thuật này loại bỏ các trọng số không cần thiết trong mô hình bằng cách đặt chúng bằng 0 Các trọng số này có thể được xác định bằng cách sử dụng các thuật toán như L1 regularization hoặc Taylor approximation Việc loại bỏ các trọng số không cần thiết giảm số lượng phép tính cần thiết để tính toán kết quả và tăng tốc độ tính toán trên GPU

3 Kết hợp (Fusion): Kỹ thuật này kết hợp các phép tính nhỏ thành một phép tính lớn để giảm số lượng phép tính cần thiết để tính toán kết quả Các phép tính này có thể là convolution, pooling, activation function hoặc element-wise operations

4 Tự động tối ưu nhân (Kernel auto-tuning): Kỹ thuật này tìm kiếm kernel tốt nhất để tính toán các phép tính trên GPU bằng cách thử nghiệm nhiều kernel với các thông số khác nhau và chọn kernel có tốc độ tính toán nhanh nhất 5 Tinh chỉnh độ chính xác (Precision calibration): Kỹ thuật này tìm kiếm các giá

trị độ chính xác tốt nhất để tính toán kết quả Việc lựa chọn giá trị độ chính xác phù hợp giúp giảm số lượng phép tính cần thiết để tính toán kết quả và tăng tốc độ tính toán trên GPU

Trang 37

2.6 Phép chiếu

Ở đây em xin phép giải thích sơ bộ cơ sở toán học đằng sau việc chiếu một điểm từ cảnh 3D lên hình ảnh 2D Chúng ta sẽ giả định rằng chúng ta đang làm việc với một máy ảnh lỗ kim lý tưởng có khẩu độ được mô tả là một điểm

Hình 2.12 Mô hình pinhole camera

Mối quan hệ giữa tọa độ thế giới và tọa độ hình ảnh có thể được biểu thị bằng công thức dưới đây

Ở phía bên tay phải, chúng ta thấy hai ma trận, I, E và một vectơ K Vectơ chứa tọa độ thế giới (X, Y, Z) của điểm mà chúng ta đang cố gắng ánh xạ tới không gian 2D với điểm thứ tư phần tử đặt bằng 1

Mối quan hệ giữa tọa độ thế giới và tọa độ hình ảnh phụ thuộc vào cả đặc tính bên trong và bên ngoài của máy ảnh Do đó, hai ma trận I và E được đưa vào công thức để nắm bắt các đặc điểm này

Trang 38

Ma trận nội tại (Intrinsic Matrix):

Ma trận nội tại I mô tả các thông số kỹ thuật bên trong của máy ảnh, chẳng hạn như độ dài tiêu cự và tiêu điểm chính

- fx, fy: tiêu cự của máy ảnh (mét/pixel) Hai tham số được giới thiệu để mô tả máy ảnh có pixel hình chữ nhật Nếu máy ảnh sử dụng pixel vuông, hãy đặt

f = fy

- cx, cy: điểm chính hay tâm ảnh Tọa độ của điểm tại giao điểm của trục quang và mặt phẳng ảnh

Ma trận đặc tính bên ngoài (Extrinsic Matrix):

Ma trận đặc tính bên ngoài E xác định các thuộc tính bên ngoài của máy ảnh, tức là vị trí và góc quay của máy ảnh trong bối cảnh thế giới thực

- rij: ma trận xoay của camera mô tả góc quay của camera trong môi trường được cài đặt

- ti: độ lệch của máy ảnh so với gốc của hệ tọa độ thế giới

Nếu ta đo các tham số được đề cập, thì ta có thể đưa chúng vào công thức và thực hiện phép nhân ma trận đơn giản để có được tọa độ hình ảnh

Mô hình pinhole camera ánh xạ tọa độ thế giới 3D thành tọa độ hình ảnh 2D bằng cách tham số hóa các đặc điểm bên trong và bên ngoài của máy ảnh Nếu chúng ta muốn làm ngược lại và tìm tọa độ thế giới 3D từ tọa độ hình ảnh 2D, thì chúng ta sẽ cần thực hiện như sau, công thức chuyển đổi phía trên sẽ được viết thành (khi z 0)

Trang 39

tìm ra tọa độ thế giới thực thì ta có thể duy trì danh tính khách hàng thông qua vị trí ta biết được Tọa độ mặt phẳng mặt đất được biểu thị bằng (X, Y, Z = 0), vì lý do mặt phẳng mặt đất có chiều cao bằng 0 và ta sẽ xóa đi cột thứ ba trong [R] để có được tọa độ 3D

Theo cách tiếp cận này, chúng tôi sử dụng một ma trận được gọi là ma trận homography để ánh xạ các điểm nằm trên một mặt phẳng từ tọa độ thế giới sang tọa độ hình ảnh tương ứng Nếu có thể xác định các giá trị của h11 đến h33, chúng ta có thể sử dụng công thức sau để ánh xạ tọa độ thế giới thành tọa độ hình ảnh

Trong công thức này, (x y z2, 2, 2) là một vector được chuẩn hóa với z =2 1, và

(x y2, 2) là tọa độ của một điểm P trong hình ảnh Tương tự, (x y z1, 1, 1) là một vector được chuẩn hóa với z =1 1, và (x y1, 1) mô tả tọa độ của P trong hệ tọa độ thế giới

Vậy làm sao để chúng ta có thể tính toán được giá trị của h h11, 12, ,h33?

Giả sử rằng chúng ta có tọa độ thế giới của bốn điểm (p p p p1, 2, 3, 4) với ánh xạ tương ứng của nó (p' , ' , ' , '1 p 2 p3 p4) trong hệ tọa độ hình ảnh, trong đó pi =(x yi, i)

p'i =(x' , 'iyi) Sử dụng các cặp điểm này, chúng ta có thể viết một phương trình tuyến tính với tám phương trình và tám ẩn số mô tả h h11, 12, ,h32 và chuẩn hóa tham số cuối cùng bằng cách xem xét h =33 1

Bây giờ chúng ta có thể sử dụng các thuật toán đại số tuyến tính để giải hệ này tìm H Với ma trận H tính được, chúng ta có thể tìm được tọa độ thế giới bằng công thức (4) Nếu ta muốn ánh xạ theo hướng ngược lại, tức là từ tọa độ ảnh sang tọa độ thế giới, ta cần tính toán nghịch đảo của ma trận homography để có được 1

H− và nhân vectơ tọa độ hình ảnh với 1

H− để có được tọa độ thế giới tương ứng

Trang 40

CHƯƠNG 3 CÁC THIẾT BỊ VÀ CÔNG CỤ THỰC HIỆN ĐỀ TÀI

3.1 Kệ hàng

Để có thể thiết lập được môi trường mô phỏng lại môi trường bán lẻ thì yếu tố đầu tiên cần nghĩ đến đó chính là kệ hàng Ở đây em lựa chọn kệ để hàng 4 tầng mô phỏng lại kệ hàng trong các cửa hàng bán lẻ

Hình 3.1 Kích thước kệ 4 tầng 71x34x125 cm

Bởi vì kệ hàng này màu đen, nên rất dễ bị nhầm lẫn sản phẩm Sau khi đi khảo sát ở một vài cửa hàng bán lẻ, thấy trên kệ hàng mọi nơi đa phần là màu trắng nên em mua thêm tấm bìa mô hình màu trắng và để lên trên kệ hàng

Ngày đăng: 30/07/2024, 17:08

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

TÀI LIỆU LIÊN QUAN

w