ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
TRẦN CƠ TÂM
ỨNG DỤNG THỊ GIÁC MÁY TÍNH TRONG TÍNH TIỀN TỰ ĐỘNG TRONG CỬA HÀNG
APPLICATION COMPUTER VISION FOR AUTOMATED CHECKOUT IN STORE
Chuyên ngành: Kỹ thuật Điều khiển và Tự động hóa Mã số:8520216
LUẬN VĂN THẠC SĨ
Trang 2CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM Cán bộ hướng dẫn Khóa luận tốt nghiệp : TS Phạm Việt Cường
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Cán bộ chấm nhận xét 1 : PGS.TS Huỳnh Thái Hoàng (Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Cán bộ chấm nhận xét 2 : PGS.TS Lê Mỹ Hà
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Khóa luận tốt nghiệp đượ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á khoá luận tốt nghiệp 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 PGS.TS Huỳnh Thái Hoàng - Phản biện 1 3 PGS.TS Lê Mỹ Hà - Phản biện 2
4 TS Nguyễn Trọng Tài - Thư ký 5 TS Ngô Thanh Quyền - Ủy viên
Xác nhận của Chủ tịch Hội đồng đánh giá khóa luận tốt nghiệp và Chủ nhiệm Bộ môn sau khi luận văn đã được sửa chữa (nếu có)
Trang 3
i
TRƯỜNG ĐẠI HỌC BÁCH KHOA TP HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN: ĐIỀU KHIỂN TỰ ĐỘNG
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc
TP HCM, ngày….tháng… năm……
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: TRẦN CƠ TÂM MSHV: 2170718
Ngày, tháng, năm sinh: 07/01/1999 Nơi sinh: Đồng Nai
Chuyên ngành: Kỹ thuật Điều khiển và Tự động hóa
Mã số: 8520216
I TÊN ĐỀ TÀI:
Ứng dụng thị giác máy tính tính tiền tự động trong cửa hàng Application computer vision for automated checkout in store
II NHIỆM VỤ VÀ NỘI DUNG:
Sử dụng mạng YOLOv7 để có thể phát hiện các sản phẩm có trong danh mục sản phẩm Và mạng YOLOv7-tiny để phát hiện giỏ hàng và tay cầm sản phẩm
Sử dụng mơ hình thêo dõi đối tượng DeepSORT thêo dõi các đối tượng và gán ID cho chúng Những ID này phục vụ cho mục đích quản lý các đối tượng được nhận diện qua các khung ảnh theo thời gian
Xây dựng giải thuật quản lý kệ hàng và giỏ hàng từ đó phát hiện được đối tượng được bỏ vào và ra khỏi giỏ, đảm bảo đúng số lượng và chủng loại các sản phẩm đang có trong giỏ
Đồng bộ hóa thơng tin của đối tượng được quan sát bởi các camera Thực hiện phép biến đổi homography cho từng đầu vào Từ đó, tơi tổng qt hóa tọa độ của giỏ hàng, tay cầm sản phẩm trên một view duy nhất, và liên kết ID cục bộ của giỏ hàng và tay cầm sản phẩm ở từng camera thành một ID toàn cục
Trang 4
ii
III NGÀY GIAO NHIỆM VỤ: 06/02/2023
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 28/05/2023 V CÁN BỘ HƯỚNG DẪN: TS Phạm Việt Cường
CÁN BỘ HƯỚNG DẪN
(Họ tên và chữ ký)
Tp HCM, ngày tháng năm 20
CHỦ NHIỆM BỘ MÔN ĐÀO TẠO
(Họ tên và chữ ký)
TRƯỞNG KHOA ĐIỆN – ĐIỆN TỬ
Trang 5
iii
LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành và sâu sắc nhất đến Thầy Tiến sĩ Phạm
Việt Cường đã trực tiếp hướng dẫn và đồng hành cùng tơi trong q trình nghiên cứu và hồn thành luận văn Sự kiên nhẫn, chỉ dạy tận tâm cùng với những góp ý quý báu của Thầy đã giúp tơi khơng chỉ hồn thiện luận văn mà cịn phát triển khả năng nghiên cứu và sự sáng tạo của bản thân
Tôi cũng xin gửi lời cảm ơn đến các thầy cô trong bộ môn Điều khiển và tự động hóa cũng như các giảng viên trong trường Đại học Bách Khoa Thành phố Hồ Chí Minh Những kiến thức và kỹ năng mà tôi đã được học từ quý thầy cô là nền tảng quan trọng giúp tôi hiểu sâu hơn về ngành và thực hiện tốt luận văn của mình Sự tận tâm và chia sẻ khơng tiếc của thầy cơ đã góp phần quan trọng vào phát triển và thành công của tôi
Cuối cùng, tôi muốn gửi lời cảm ơn chân thành đến gia đình, người thân và bạn bè đã luôn ủng hộ, động viên và giúp đỡ tơi trong suốt q trình học tập và nghiên cứu Sự ấm áp và yêu thương của các bạn đã là động lực lớn giúp tôi vượt qua khó khăn và đạt được thành quả
Tơi rất biết ơn và mong rằng sẽ tiếp tục nhận được sự hỗ trợ và khích lệ của thầy cơ, gia đình và bạn bè trong những bước tiếp theo của cuộc sống và sự nghiệp
Xin chân thành cảm ơn và kính chúc thầy, cơ, bạn bè ln dồi dào sức khỏe và thành công trong công việc
TP Hồ Chí Minh, ngày 24 tháng 05 năm 2023 Học viên thực hiện
Trang 6
iv
TÓM TẮT
Nhu cầu tiêu dùng của con người với các loại hàng hóa ngày càng lớn, ngành dịch vụ bán lẻ trở nên phát triển nhanh chóng và trở thành một trong những mũi nhọn của nền kinh tế Cùng với sự phát triển của ngành bán lẻ, những nhà bán lẻ cần phải thích ứng để phát triển Điều này thơi thúc cần phải tạo ra những trải nghiệm tiêu dùng sáng tạo, thú vị cũng như phải có những cách thức mới thu hút sự chú ý của khách hàng Ngày nay, cơng nghiệp hóa càng phát triển, rất nhiều kỹ thuật được ứng dụng vào trong đời sống để nâng cao chất lượng cuộc sống của người dân, cũng như giúp nâng cao hiệu suất trong công việc Một hệ thống có thể giúp phát hiện các đối tượng và phân loại sản phẩm trong cửa hàng là rất quan trọng để giúp nhân viên có thể xác định được các sản phẩm thuộc loại hàng khác nhau và nhanh chóng biết được giỏ
hàng của khách hàng đang có gì để tiến hành thanh tốn, và do đó có thể nâng
cao hiệu suất làm việc của nhân viên
Luận văn dùng camera phát hiện và theo dõi khi khách hàng chọn bất kỳ sản phẩm nào từ kệ và khi họ rời đi với các sản phẩm trong giỏ hàng Hệ thống sẽ phát hiện khách hàng bỏ và lấy sản phẩm vào giỏ ở nhiều góc nhìn camera Hệ thống có thể phát hiện các sản phẩm có trên kệ, thực hiện theo dõi các sản phẩm qua nhiều khung hình theo thời gian, phát hiện được sản phẩm được bỏ vào và lấy ra khỏi giỏ Tối ưu hệ thống thanh tốn tự động để có thể chạy ổn định, đảm bảo có thể chạy trên thời gian thực
Trang 7
v
ABSTRACT
With the increasing consumer demand for various goods, the retail industry has been rapidly developing and has become one of the key drivers of the economy Along with the growth of the retail sector, retailers need to adapt and innovate This prompts the need to create innovative and engaging consumer experiences and employ new ways to attract customers' attention Today, as industrialization advances, many technologies are being applied to enhance people's quality of life and improve work efficiency Having a system that can detect objects and categorize products in a store is crucial to enable employees to identify different types of items quickly and accurately determine the contents of a customer's shopping cart for efficient checkout Therefore, it can significantly enhance the productivity of employees
A thesis utilizing camera-based detection and tracking when customers select any product from the shelves and leave with the items in their shopping carts can be proposed The system would detect when customers pick up or put back products from various camera angles It would be capable of recognizing the products on the shelves, tracking them across multiple frames over time, and detecting when products are added to or removed from the cart Optimizing an automatic payment system to ensure stable real-time operation would also be essential
Trang 8
vi
LỜI CAM ĐOAN
Tôi xin cam đoan rằng đề tài "Ứng dụng thị giác máy tính tiền tự động trong cửa hàng" là cơng trình nghiên cứu của bản thân Tất cả các nội dung, phân tích, và kết quả được trình bày trong đề tài này đều là thành quả của công việc nghiên cứu cá nhân của tôi
Tất cả các thông tin, số liệu, và hình ảnh từ các nguồn tài liệu tham khảo đều được trích dẫn và thể hiện rõ ràng trong đề tài Tơi cam đoan rằng khơng có sự vi phạm bản quyền hoặc vi phạm quyền sở hữu trí tuệ nào trong quá trình thực hiện nghiên cứu và viết luận văn này
Tơi chịu trách nhiệm hồn tồn trước bộ môn, khoa, và nhà trường về sự cam đoan này Nếu có bất kỳ sự khơng trung thực nào trong luận văn này, tơi sẵn sàng chịu hồn tồn trách nhiệm và chấp nhận mọi kỷ luật và hình phạt thêo quy định của bộ môn và nhà trường
HỌ TÊ N HỌC VIÊ N
Trang 9
vii
MỤC LỤC
CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI 1
1.1 Lý do chọn đề tài 1
1.2 Những cơng trình nghiên cứu gần đây 1
1.3 Mục tiêu đề tài 4
1.4 Nhiệm vụ đề tài 4
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 6
2.1 Nhận dạng đối tượng 6
2.1.1 Giới thiệu YOLOv7 6
2.1.2 Kiến trúc YOLOv7 6
2.1.3 Những trainable Bag-of-freebies của YOLOv7: 9
2.1.4 Training trên Google Colab 12
2.2 Thuật toán theo dõi Deep SORT 13
2.2.1 Giới thiệu Deep SORT 13
2.2.2 Liên kết dữ liệu trong Deep SORT 14
2.2.3 Quản lý vòng đời 1 track 17
2.3 Chuyển đổi góc nhìn của hai camera quan sát cùng một bề mặt phẳng 17
2.3.1 Chuyển đổi từ mặt phẳng cảnh sang điểm ảnh trên ảnh 18
2.3.2 Homography với hai camera và một bề mặt quan sát 19
2.3.3 Tìm ma trận homography giữa hai ảnh 20
2.4 Thêo dõi đối tượng trên nhiều camera sử dụng Homography 23
CHƯƠNG 3 THỰC HIỆN HỆ THỐNG 27
3.1 Hệ thống giám sát kệ hàng 27
Trang 10
viii
3.2.2 Thu thập data 32
3.3 Thêo dõi đối tượng 39
3.4 Quản lý kệ hàng và giỏ hàng 40
CHƯƠNG 4 KẾT QUẢ 48
4.1 Mơ hình phát hiện đối tượng: .48
4.1.1 Đánh giá kết quả huấn luyện mơ hình nhận dạng giỏ hàng và tay cầm sản phẩm (YOLOv7-tiny) 48
4.1.2 Đánh giá kết quả huấn luyện mơ hình phát hiện sản phẩm (YOLOv7) 52
4.2 Phát hiện lấy và trả sản phẩm: 57
4.2.1 Khảo sát tốc độ xử lý 57
4.2.2 Khảo sát tỷ lệ theo dõi và nhận dạng sản phẩm của hệ thống với một khách hàng 58
4.2.3 Khảo sát tỷ lệ theo dõi và nhận dạng sản phẩm của hệ thống với hai khách hàng 60
4.2.4 Khảo sát tỷ lệ lấy và trả sản phẩm: 63
4.2.5 Khảo sát tỷ lệ lấy và trả những sản phẩm được nhận dạng tốt 64
CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 67
5.1 Những kết quả đạt được .67
5.2 Những hạn chế còn tồn tại 67
5.3 Hướng phát triển 68
Trang 11
ix
DANH MỤC HÌNH VẼ
Hình 1.1 Mơ hình giỏ hàng thơng minh 2
Hình 1.2 Các cảm biến cộng tác theo dõi hàng và sản phẩm của Amazon [3] 3Hình 2.1 Kiến trúc của YOLO 6
Hình 2.2 Cấu trúc Backbone của YOLOv7 7
Hình 2.3 Cấu trúc Neck của YOLOv7 8
Hình 2.4 Cấu trúc Head của YOLOv7 8
Hình 2.5 Cấu trúc của khối ELAN 9
Hình 2.6 Cấu trúc mơ hình đơn nhánh 10
Hình 2.7 Cấu trúc mơ hình đa nhánh .11
Hình 2.8 Compund model scaling trong YOLOv7 .11
Hình 2.9 Minh họa vị trí Auxiliary head 12
Hình 2.10 Logo của Google Colaboratory 13
Hình 2.11 Mơ hình tổng qt thuật tốn Deep SORT 14
Hình 2.12 Minh hoạ cho phép biến đổi homography .19
Hình 2.13 Minh hoạ hai camera và một bề mặt quan sát 19
Hình 2.14 Thực hiện phép biến đổi homography bằng chessboard 20
Hình 2.15 Hình bên trái được quan sát bằng camera bên trái, hình ở giữa là góc nhìn tham chiếu của kệ hàng mong muốn chuyển đổi, hình bên phải được quan sát bằng camera phải 21
Hình 2.16 Kết quả camera trái và phải sau khi được chuyển đổi về mặt phẳng tham chiếu kệ hàng 21
Hình 2.17 Hình bên trái được quan sát bằng camera bên trái, hình ở giữa là góc nhìn tham chiếu của giỏ hàng mong muốn chuyển đổi, hình bên phải được quan sát bằng camera phải 22
Hình 2.18 Kết quả camera trái và phải sau khi được chuyển đổi về mặt phẳng tham chiếu giỏ hàng 22
Hình 2.19 Sơ đồ theo dõi toàn cục sử dụng homography .23
Trang 12
x
Hình 3.1 Sơ đồ hệ thống 27
Hình 3.2 Quá trình lấy sản phẩm trên kệ hàng 28
Hình 3.3 Quá trình đặt sản phẩm vào kệ hàng .29
Hình 3.4 Kệ hàng sử dụng trong luận văn 30
Hình 3.5 Giỏ hàng được sử dụng trong luận văn 30
Hình 3.6 Bố trí camera trong luận văn 31
Hình 3.7 Ảnh quan sát từ hai camera .31
Hình 3.8 Mơ hình phát hiện sản phẩm 32
Hình 3.9 Một số hình chụp sản phẩm nhận dạng bằng YOLOv7 33
Hình 3.10 Một số hình chụp sản phẩm nhận dạng bằng YOLOv7-tiny .34
Hình 3.11 Gán nhãn bằng phần mềm labelimg 35
Hình 3.12 File ảnh và filê.txt sau khi được gán nhãn 35
Hình 3.13 Thơng số được lưu trong filê.txt 36
Hình 3.14 Website roboflow.com 36
Hình 3.15 Các file cần cho việc huấn luyện 37
Hình 3.16 Quá trình huấn luyện 39
Hình 3.17 Kết quả nhận diện và theo dõi sản phẩm của YOLOv7 và DeepSORT 40
Hình 3.18 Sơ đồ quản lý ở mỗi kệ hàng ở mỗi camera 41
Hình 3.19 Kệ hàng trước khi có tay khách hàng lấy vật 43
Hình 3.20 Kệ hàng có tay khách hàng lấy vật .43
Hình 3.21 Kệ hàng sau khi có tay khách hàng lấy vật .44
Hình 3.22 Kệ hàng trước khi có tay khách hàng trả vật 44
Hình 3.23 Kệ hàng có tay khách hàng trả vật .45
Hình 3.24 Kệ hàng sau khi có tay khách hàng trả vật .45
Hình 3.25 Sơ đồ quản lý ở mỗi giỏ hàng 46
Hình 3.26 Sản phẩm được quản lý ở mỗi giỏ hàng 47
Trang 13
xi
Hình 4.2 Kết quả confusion matrix nhận diện tay người có cầm sản phẩm và
giỏ hàng 49
Hình 4.3 Kết quả nhận diện tay người có cầm sản phẩm, tay khơng cầm sản phẩm và giỏ hàng 50
Hình 4.4 Kết quả nhận diện hai tay người có cầm sản phẩm 51
Hình 4.5 Kết quả nhận diện nhiều tay có cầm sản phẩm và giỏ hàng .51
Hình 4.6 Kết quả nhận diện nhiều tay có cầm sản phẩm và nhiều giỏ hàng 52
Hình 4.7 Đồ thị quá trình huấn luyện nhận diện tay người có cầm sản phẩm và giỏ hàng 53
Hình 4.8 Kết quả confusion matrix nhận diện sản phẩm có trên kệ 54
Hình 4.9 Kết quả nhận diện các sản phẩm có trên kệ hàng 1 56
Hình 4.10 Kết quả nhận diện các sản phẩm có trên kệ hàng 2 .56
Hình 4.11 Kết quả nhận diện các sản phẩm có trên kệ hàng 3 .57
Hình 4.12 Trước khi lấy sản phẩm 58
Hình 4.13 Sau khi lấy sản phẩm bỏ vào giỏ hàng .59
Hình 4.14 Hai người lấy sản phẩm cùng thời điểm 61
Trang 14
xii
DANH MỤC BẢNG
Bảng 2.1 Tóm tắt bộ lọc Kalman 15
Bảng 2.2 Ví dụ về tìm ánh xạ của các track ID của mỗi camêra 24
Bảng 3.1 Danh sách loại sản phẩm nhận dạng bằng YOLOv7 .32
Bảng 3.2 Danh sách loại sản phẩm nhận dạng bằng YOLOv7-tiny .33
Bảng 3.3 Các phương pháp augmêntation sử dụng 36
Bảng 4.1 Kết quả sau khi huấn luyện nhận diện tay người có cầm sản phẩm và giỏ hàng với tập validation 48
Bảng 4.2 Kết quả nhận diện tay người có cầm sản phẩm và giỏ hàng với tập test 50
Bảng 4.3 Kết quả sau khi huấn luyện sản phẩm có trên kệ với tập validation 52
Bảng 4.4 Kết quả sau khi huấn luyện sản phẩm có trên kệ với tập test 55
Bảng 4.5 Thời gian và tốc độ thực thi của hệ thống 57
Bảng 4.6 Kết quả khảo sát với việc lấy trả hàng với một người 59
Bảng 4.7 Kết quả khảo sát với việc lấy trả hàng với hai người .62
Bảng 4.8 Kết quả khảo sát với việc lấy trả hàng với hai người .63
Bảng 4.9 Kết quả khảo sát với việc lấy trả hàng với một người và sản phẩm tốt 65
Trang 15
xiii
DANH MỤC TỪ VIẾT TẮT
Số thứ tự Tên viết tắt Tên đầy đủ
1 IOU Intersection Over Union
2 ID identification
3 WRN Wide Residual Network
4 Colab Colaboratory
5 GPU Graphics Processing Unit
6 CPU Central Processing Unit
Trang 16
1
CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI
1.1 Lý do chọn đề tài
Nhu cầu tiêu dùng của con người với các loại hàng hóa ngày càng lớn, ngành dịch vụ bán lẻ trở nên phát triển nhanh chóng và trở thành một trong những mũi nhọn của nền kinh tế Cùng với sự phát triển của ngành bán lẻ, những nhà bán lẻ cần phải thích ứng để phát triển Điều này thôi thúc cần phải tạo ra những trải nghiệm tiêu dùng sáng tạo, thú vị cũng như phải có những cách thức mới thu hút sự chú ý của khách hàng Trong đó, giai đoạn thanh tốn là rào cản rất lớn, gây nên sự khó chịu, trải nghiệm không tốt với khách hàng Việc phải chờ đợi thanh toán quá lâu khi mua hàng sẽ khiến khách hàng rời đi, chọn những cửa hàng khác thay thế Kết quả là lợi nhuận bị mất, sự hài lòng của người tiêu dùng giảm và trải nghiệm của khách hàng bị ảnh hưởng
Ngày nay, cơng nghiệp hóa ngày càng phát triển, rất nhiều kỹ thuật được ứng dụng vào trong đời sống để nâng cao chất lượng cuộc sống của người dân, cũng như giúp nâng cao hiệu suất trong cơng việc Một hệ thống có thể giúp phát hiện các đối tượng và phân loại sản phẩm trong cửa hàng là rất quan trọng để giúp nhân viên có thể xác định được các sản phẩm thuộc loại hàng khác nhau và nhanh chóng biết được giỏ hàng của khách hàng đang có gì để
tiến hành thanh tốn, và do đó có thể nâng cao hiệu suất làm việc của nhân
viên
1.2 Những cơng trình nghiên cứu gần đây
Bài viết Automated Checkout for Stores: A Computer Vision Approach
[1] đề cập đến phương pháp tính tiền tự động ở quầy thu ngân, hệ thống sẽ
Trang 17
2
phẩm chạy trên băng chuyền, các đối tượng nhận diện được đều có confidence
scorelớn hơn 50%
Kết quả của tác giả đưa ra là khá tốt và ý tưởng của tác giả rất hay Tuy nhiên khách hàng vẫn phải mất thời gian xếp hàng hóa, đóng gói, tính tiền tại quầy Cửa hàng vẫn phải tốn nhân sự cho việc thu ngân Cùng với đó các loại sản phẩm ở trong siêu thị rất nhiều, khó có mơ hình nhận dạng nào có thể nhận diện được chính xác tất cả
Bài viết Smart Shopping Cart using Machine Vision along with
Machine Learning [2] đề cập đến phương án tính tiền tự động đó là một giỏ
hàng thông minh Bằng cách sử dụng Thị giác máy để xác định các mặt hàng được đặt trong giỏ hàng, một mô-đun Raspbêrry Pi để xử lý dữ liệu và cập nhật cơ sở dữ liệu và màn hình LCD để hiển thị thông tin về khách hàng và giỏ hàng của họ Ở cuối của quá trình mua sắm, một hóa đơn được tạo ra cho người tiêu dùng
Hình 1.1 Mơ hình giỏ hàng thơng minh
Việc áp dụng loại hệ thống mua sắm thông minh này sẽ là cách rất có lợi cho khách hàng để tránh sự bất tiện mà họ thường gặp phải trong khi mua sắm Khách hàng sẽ có thể giảm thiểu thời gian xếp hàng trong q trình thanh tốn trong thu ngân Tuy nhiên giá thành của mỗi giỏ hàng này sẽ rất cao, khó có thể triển khai cho một siêu thị hoặc một trung tâm mua sắm lớn
Bài viết Just Walk-Out Technology and its Challenges: A case of
Amazon Go [3] đề cập đến công nghệ mới tên là “Amazon Go” Đây là một cửa
Trang 18
3
những thứ mà họ muốn và bước ra ngoài, đơn đặt hàng được tính trực tiếp vào tài khoản Hình ảnh được chụp khi khách hàng bước vào cửa hàng, khi khách hàng chọn bất kỳ sản phẩm nào từ kệ và khi họ rời đi với các sản phẩm trong khi rời đi Nhận dạng khuôn mặt và thông tin khách hàng được theo dõi có thể bao gồm hình ảnh, thơng tin chi tiết như chiều cao, cân nặng và sinh
trắc học Điều đó cho phép hệ thống giám sát của cửa hàng xác định khách
hàng để nó có thể theo dõi họ khi họ di chuyển khắp cửa hàng Camera ghi lại hình ảnh của khách hàng khi họ đến trước kệ, những món đồ họ chọn được và liệu món đồ đã chọn có nằm trong tay khách hàng hay được giữ trở lại kệ Cảm biến đặt tại kệ tự động phát hiện khi sản phẩm được lấy từ kệ hoặc trả lại
Hình 1.2 Các cảm biến cộng tác theo dõi hàng và sản phẩm của Amazon [3]
Amazon Go hướng đến cuộc cách mạng mua sắm trong thời đại công nghệ tiên tiến bằng cách loại bỏ các quầy thanh toán mang lại sự hài lòng của người tiêu dùng và trải nghiệm của khách hàng Đây là một xu hướng mới cho ngành bán lẻ
Trang 19
4
Amazon Go Mơ hình này có thể sử dụng lại nền tảng các camera giám sát có sẵn ở các siêu thị và cửa hàng hiện tại Nó có thể chia nhỏ các mơ-đun kệ hàng,
khi đósố loại sản phẩm cần phải nhận dạng sẽ ít hơn, độ chính xác đảm bảo
hơn so với các phương án nhận diện tất cả loại sản phẩm trong cửa hàng
1.3 Mục tiêu đề tài
Sau khi tham khảo các bài báo và nghiên cứu, mục tiêu của đề tài là dựa trên ý tưởng của “Amazon Go” về việc dùng camera phát hiện và theo dõi khi khách hàng chọn bất kỳ sản phẩm nào từ kệ và khi họ rời đi với các sản phẩm trong khi rời đi
Hệ thống sẽ phát hiện khách hàng bỏ và lấy sản phẩm vào giỏ ở nhiều góc nhìn camera:
- Phát hiện các sản phẩm có trên kệ, thực hiện theo dõi các sản phẩm qua nhiều khung hình theo thời gian, phát hiện được sản phẩm được bỏ vào và lấy ra khỏi giỏ
- Đồng bộ các góc nhìn từ các camera về một góc nhìn tham chiếu duy nhất,
thực hiện định vị giỏ hàng và tay của khách hàng có cầm nắm sản phẩm trong
khơng gian quan sát đó
- Có được thông tin sản phẩm và khách hàng tiến hành tạo ra giỏ hàng ảo để quản lý khách hàng và các sản phẩm được chọn qua các khung hình
Tối ưu hệ thống thanh tốn tự động để có thể chạy ổn định, đảm bảo có thể chạy trên thời gian thực
1.4 Nhiệm vụ đề tài
Sử dụng mạng YOLOv7 để có thể phát hiện các sản phẩm có trong danh mục sản phẩm Và mạng YOLOv7-tiny để phát hiện giỏ hàng và tay của khách hàng có cầm vật Thu thập dữ liệu với nhiều góc độ điều kiện khác nhau cho việc huấn luyện
Trang 20
5
Xây dựng giải thuật quản lý kệ hàng và giỏ hàng từ đó phát hiện được đối tượng được bỏ vào và ra khỏi giỏ Đảm bảo đúng số lượng các loại sản phẩm đang có trong giỏ
Đồng bộ hóa từ các ảnh đầu vào Thực hiện phép biến đổi homography cho từng đầu vào Tổng quát hóa tọa độ của giỏ hàng và tay cầm sản phẩm ở nhiều camera trên một view duy nhất Cùng với đó liên kết ID của giỏ hàng và tay của khách hàng cầm sản phẩm ở từng camera thành một ID toàn cục
Triển khai phát hiện, thêo dõi đối tượng và phát hiện đối tượng được bỏ vào và ra giỏ trên nhiều camera
Trang 21
6
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Nhận dạng đối tượng
2.1.1 Giới thiệu YOLOv7
YOLO - You Only Look Once là một trong những mơ hình phát hiện vật tốt nhất ở thời điểm hiện tại Dù đều được gọi là YOLO, các phiên bản của mơ hình này đều có những cải tiến rất đáng kể sau mỗi phiên bản Sau 3 phiên bản của tác giả chính Josêph Rêdmon là YOLOv1 đến v3, tính đến thời điểm hiện tại đã có thêm những phiên bản khác như: YOLOv4 của Alexey Bochkovskiy, YOLOv5 của Glenn Jocher, YOLOv6 được của nhóm nghiên cứu Meituan, YOLOv7 Chien-Yao Wang, Alexey và Bochkovskiy
YOLOv7 là mơ hình one stage detectors (cùng lúc sẽ thực hiện cả việc tìm kiếm bounding box và classification cho một vật thể), chính vì đặc điểm này mà YOLO có tốc độ khá nhanh và độ chính xác cao
2.1.2 Kiến trúc YOLOv7
Kiến trúc của YOLO nói chung:
Hình 2.1 Kiến trúc của YOLO
Các khung hình ảnh đầu vào được trích xuất đặc trưng thơng qua một backbonê, sau đó được kết hợp và trộn lẫn trong neck Cuối cùng YOLO sẽ dự đoán các hộp giới hạn (bounding boxes), các class và các đối tượng của các hộp giới hạn
Trang 22
7
Backbone là một mạng nêural sâu được tạo thành chủ yếu từ các lớp tích chập Mục tiêu chính của backbone là trích xuất các đặc trưng cần thiết Lựa chọn backbone là một bước quan trọng vì nó sẽ cải thiện hiệu suất của việc phát hiện đối tượng Thường, các mạng neural tiền huấn luyện được sử dụng để huấn luyện backbone Một số mạng được sử dụng phổ biến là VGG-16, Imagênêt, Routinênêt, Rêsnêt50, vv Đối với YOLOv7 được sử dụng các trọng số tiền huấn luyện sau đây: VoVNêt, CSPVONêt, ÊLAN Backbone hoàn chỉnh của YOLOv7 là tập hợp của các ELAN Block và các Transition block
Hình 2.2 Cấu trúc Backbone của YOLOv7
Trang 23
8
Hình 2.3 Cấu trúc Neck của YOLOv7
Quá trình phát hiện đối tượng xảy ra trong phần hêad, còn được gọi là dênsê prêdiction, để phân tách nhiệm vụ định vị và phân loại đối tượng cho từng module Khi các module thực hiện dự đoán cho định vị và phân loại cùng một lúc, layer này chỉ xuất hiện ở một stage duy nhất sau các module phát hiện như yolo, ssd, rpn trong quá trình tự phát hiện YOLOv7 có nhiều head Phần head chịu trách nhiệm cho đầu ra gọi là Lead Head, phần hêad được dùng hỗ trợ cho việc training các lớp giữa gọi là Auxiliary Head
Hình 2.4 Cấu trúc Head của YOLOv7
Trang 24
9
trên các giá trị của các nêuron trong mơ hình, giúp xác định các vị trí quan trọng để dự đốn bounding box
2.1.3 Những trainable Bag-of-freebies của YOLOv7:
Bag-of-freebies (BoF) là một phương pháp tối ưu hiệu suất của mô hình mạng nơ-ron bằng cách áp dụng các kỹ thuật và công nghệ mới nhất mà không làm tăng thêm chi phí tính tốn hoặc số lượng tham số của mơ hình Từ đó, BoF có thể giúp cải thiện độ chính xác của mơ hình một cách đáng kể
Layer Aggregation Network:
Mạng tổng hợp (aggregation networks) có vai trò quan trọng trong việc tăng tốc độ xử lý của mạng YOLO bằng cách tối ưu hóa hiệu suất của các lớp tích chập trong backbone Trong YOLOv7, tác giả đã xây dựng và nghiên cứu các mạng liên kết chéo "cross stage partial" để tối ưu hóa mơ hình Đồng thời, họ cũng cố gắng giảm bớt lượng bộ nhớ cần thiết để lưu trữ các lớp trong bộ nhớ cùng với khoảng cách mà gradient phải lan truyền qua các lớp Việc gradient lan truyền ngắn hơn sẽ làm cho mạng học được hiệu quả hơn ở lớp cuối cùng Để tổng hợp các lớp cuối cùng, tác giả đã chọn phương pháp tổng hợp E-ELAN trong một phiên bản mở rộng của khối tính tốn ELAN
Trang 25
10
Trong khối ELAN, gồm ba phần chính: Cross Stage Partial, Computation Block và PointWiseConv Kỹ thuật CSP được áp dụng để thêm một nhánh "cross stage partial" cho khối, nhằm cải thiện khả năng nhận diện các đặc trưng của đối tượng mà không mất đi các đặc trưng này sau khi đi qua nhiều lớp Dênsê khác nhau, và đã được sử dụng trong YOLOv4 Computation Block bao gồm các lớp Conv được tính tốn để tạo ra các feature map mới thơng qua các lớp Conv kích thước 3x3 Cuối cùng, các fêaturê map được tổng hợp lại ở cuối sử dụng toán tử concatenate trên chiều chanel
Compund model scaling:
Được phân tích kỹ lần đầu tiên trong EfficientNet với kỹ thuật scale tổng hợp cả 3 chiều của mạng nơ-ron là: chiều sâu, chiều rộng và chiều độ phân giải
của ảnh đầu vào.Tối ưu hóa việc khuếch đại độ lớn của modêl để có được hiệu
năng tốt hơn
Re-parameterization:
Re-parameterization là một kỹ thuật được sử dụng sau khi training để cải thiện mơ hình Nó làm tăng thời gian training nhưng cải thiện kết quả inference
Trong mơ hình infêrêncê đơn nhánh, kiến trúc đơn nhánh cho phép giải phóng bộ nhớ ngay sau khi tính tốn xong, giúp tối ưu hóa chi phí sử dụng bộ nhớ Kiến trúc đơn nhánh cũng linh hoạt hơn trong thiết kế kiến trúc mơ hình
Trang 26
11
Với mơ hình training đa nhánh, dễ dàng hội tụ hơn cũng như đạt hiệu quả tốt hơn so với những mơ hình đơn nhánh bằng việc tăng cường việc học các đặc trưng và tránh được hiện tượng vanishing gradient Không phụ thuộc vào bất cứ lớp nào do có nhiều đường độc lập
Hình 2.7 Cấu trúc mơ hình đa nhánh
Phương pháp này cho phép chuyển đổi các tham số của mơ hình hiện tại sang mơ hình khác, nhằm sử dụng tất cả ưu điểm của cả hai kiến trúc Khi thực hiện quá trình training, ta sử dụng cấu trúc đa nhánh, sau đó thực hiện Re-paramêtêrization để tăng khả năng nhận diện
Trang 27
12
Deep Supervision (Auxiliary head):
Bằng cách thêm một auxiliary head từ các layer sớm trong mơ hình, ta có thể bắt model phải dự đốn từ những lớp nơng Việc này có thể ảnh hưởng tích cực lên quá trình học bằng cách giúp model học thêm các đặc trưng cần thiết từ các lớp sớm, thay vì phải dựa vào các lớp sâu hơn trong mơ hình Điều này có thể giúp q trình học của model trở nên nhanh chóng và hiệu quả hơn Trong q trình dự đốn, ta sẽ loại bỏ auxiliary head và chỉ sử dụng head chính để thực hiện dự đốn Việc này giúp giảm thời gian tính tốn và tối ưu hiệu suất của mơ hình
Hình 2.9 Minh họa vị trí Auxiliary head
2.1.4 Training trên Google Colab
Trang 28
13
giới hạn này, tôi tải dữ liệu lên Googlê Drivê để kết nối với Colab Với khả năng kết hợp với Googlê Drivê, Googlê Colab cho phép đọc và lưu dữ liệu nhanh chóng và tiện lợi hơn
Hình 2.10 Logo của Google Colaboratory
2.2 Thuật toán theo dõi Deep SORT
2.2.1 Giới thiệu Deep SORT
Trang 29
14
Hình 2.11 Mơ hình tổng quát thuật toán Deep SORT
Trong lớp thuật toán tracking-by-detection, việc theo dõi nhiều đối tượng đòi hỏi giải quyết hai yếu tố chính để đạt được hiệu suất tối ưu:
• Data Association: vấn đề liên kết dữ liệu, bao gồm các tiêu chí để liên
kết một detection mới với các track đã được lưu trữ trước đó
• Track Life Cycle Management: việc quản lý vòng đời của các track đã
được lưu trữ, từ việc khởi tạo track, thêo dõi đối tượng cho đến khi track bị ngừng và xóa khỏi bộ nhớ
Deep SORT giải quyết vấn đề data association bằng cách sử dụng thuật toán Hungary Tuy nhiên, phương pháp liên kết được thực hiện bằng cách sử dụng khoảng cách giữa dêtêction và track trong không gian vêctor, đồng thời cũng dựa vào khoảng cách cosine giữa hai vêctor đặc trưng được trích xuất từ detection và track Nếu hai vêctor đặc trưng được trích xuất từ cùng một đối tượng, chúng sẽ tương đồng hơn so với hai vêctor đặc trưng được trích xuất từ hai đối tượng khác nhau
2.2.2 Liên kết dữ liệu trong Deep SORT
Bộ lọc Kalman:
Trang 30
15
Mỗi track bao gồm 8 thành phần:
Với ở đây là tọa độ tâm của đối tượng (ở đây là tâm của bounding
box), γ là tỷ lệ khung hình, h là chiều cao của bounding box, và các vận tốc tương ứng
Trong theo dõi mục tiêu, hai trạng thái của mục tiêu ta cần ước lượng là: Giá trị trung bình (Mean): Nó chứa thơng tin về vị trí và tốc độ của mục tiêu
8 Vêctơ chiều Mỗi giá trị tốc độ được khởi tạo bằng 0
Hiệp phương sai (Covariancê) Biểu thị độ bất định của trạng thái ước lượng bằng: 8x8 con số trong ma trận càng lớn thì độ bất định càng lớn
Tóm tắt bộ lọc Kalman
Bảng 2.1 Tóm tắt bộ lọc Kalman
Dự đốn Hiệu chỉnh
Dự đốn:
Tính Kalman gain matrix K:
Tính Kalman gain matrix K:
Ước lượng giá trị x:
()
11
ˆk ˆkk ˆk
x =x− +K z −Hz−
Ước lượng covariance của bộ lọc Kalman:
Hungarian matching
Thuật toán matching Hungary được dùng giải quyết sự tương quan giữa trạng thái dự đoán và trạng thái đo được trong bộ lọc Kalman Thuật toán này sử dụng một cặp trạng thái: trạng thái dự đoán ước lượng bởi bộ lọc Kalman và trạng thái đo được từ bộ phát hiện
Trang 31
16
MatchingHungary - khoảng cách Mahalanobis tương quan chuyển động:
Khoảng cách Mahalanobis, còn được gọi là khoảng cách covariance, là một phương pháp hiệu quả để tính tốn độ tương quan giữa hai tập hợp mẫu chưa
biết, đo lường mức độ phù hợp của dự đoán và phát hiện:
Trong đó (yi,Si) là giá trị kỳ vọng và ma trận covariance của biến ngẫu nhiên track thứ i, và dj là giá trị của detection thứ j
Ngoài việc đo lường khoảng cách giữa track và detection, khoảng cách Mahalanobis còn được dùng để loại trừ các liên kết không chắc chắn bằng cách lập ngưỡng khoảng cách Mahalanobis t
MatchingHungary - khoảng cách Mahalanobis tương quan đặc điểm ngoại hình:
Deep SORT sử dụng một độ đo khác về đặc trưng của đối tượng, nhằm đảm bảo việc liên kết chuẩn xác dù đối tượng đã biến mất và sau đó xuất hiện trở lại trong khung hình Đó chính là các đặc trưng Với mỗi detection, các đặc trưng học được từ mạng ReID network Kiến trúc này được giới thiệu chỉ với số lớp rất nhỏ (16 lớp), vẫn có thể đạt pêrformancê vượt trội hơn các kiến trúc hàng nghìn lớp khác Đặc biệt là thời gian training và infêrêncê cũng nhanh hơn rất nhiều
Với mỗi dêtêction, đặc trưng rj được trích xuất với ||rj ||=1 Với mỗi track, một danh sách với độ dài khoảng 100 được sử dụng để lưu trữ đặc trưng của
100 track gần nhất: Khi đó, độ đo mới giữa track và
dêtêction được tính bằng khoảng cách cosine:
Nếu khoảng cách cosin nhỏ hơn mức ngưỡng t, nó được coi là khớp
Trang 32
17
Để thiết lập tương quan, Deep SORT sử dụng tổng có trọng số để kết hợp hai chỉ số:
Có thể sử dụng trọng số để kiểm soát tác động của từng chỉ số đối với chỉ số tổng
Cascade matching - tracking scene
Nhằm cải thiện độ chính xác của liên kết, chủ yếu là vì khi đối tượng biến mất trong thời gian dài, độ không chắc chắn của bộ lọc Kalman sẽ tăng lên rất nhiều và sẽ dẫn đến phân tán xác suất dự đoán liên tục Vì vậy, nếu dự đốn liên tục khơng được cập nhật, phương sai của phân phối chuẩn sẽ ngày càng lớn Khi đó, giá trị của khoảng cách Mahalanobis giữa các điểm xa giá trị kỳ vọng và các điểm gần giá trị kỳ vọng là như nhau
Chiến lược đối sánh theo tầng tiến hành lấy lần lượt từng track ở các frame trước đó, để tiến hành xây dựng ma trận chi phí và giải bài tốn phân cơng theo từng tầng
2.2.3 Quản lý vịng đời 1 track
Deep SORT sử dụng một biến trạng thái có ba giá trị (tentative, confirmed, dêlêtêd) để quản lý vịng đời của một track:
• Ban đầu, track sẽ được gán trạng thái têntativê để thăm dò
• Nếu track duy trì được trong ít nhất 3 frame tiếp theo, trạng thái sẽ
chuyển sang confirmed
• Các track có trạng thái confirmed sẽ được duy trì trong 30 frame tiếp
theo ngay cả khi mất dấu
• Nếu track bị mất dấu trước khi đạt được 3 frame, trạng thái sẽ chuyển
sang deleted và track sẽ bị xóa khỏi trình theo dõi
2.3 Chuyển đổi góc nhìn của hai camera quan sát cùng một bề mặt phẳng
Trang 33
18
2.3.1 Chuyển đổi từ mặt phẳng cảnh sang điểm ảnh trên ảnh
Giả sử chúng ta có một bề mặt phẳng trong thế giới thực (ví dụ như một bức tường, mặt đất) và ta quan sát nó bằng một máy ảnh với ma trận chiếu P Bề mặt phẳng đó là 2D và ta có thể định hệ tọa độ ( )s t cho nó Các điểm trên ,bề mặt phẳng đó nằm trong khơng gian 3D và vị trí của chúng trong khơng gian 3D có thể được biểu diễn bằng tọa độ camera XYZ Ta có thể chuyển từ hệ tọa độ ( )s t,
sang tọa độ camera XYZ bằng cách nhân (s t, ,1) với một ma trận 4 x 3 như sau: 00011 0 0 1xxyyzyXabXsYabYtZabZ =
Điểm ( )x y tương ứng với một điểm , ( )s t trên mặt phẳng của cảnh thu ,được bằng cách: 1XwxYwyPZw =
Hai ánh xạ này cùng định nghĩa một ma trận 3 × 3 H ánh xạ (s t, ,1)đến
(wx wy w trong không gian ảnh , , )
1wxswyH twz =
Ma trận H được gọi là ma trận homography
Đảo ngược của phép ánh xạ này là:
Trang 34
19
Hình 2.12 Minh hoạ cho phép biến đổi homography
2.3.2 Homography với hai camera và một bề mặt quan sát
Hai camêra cùng quan sát đến một bề mặt quan sát, nên chúng sẽ có hệ tọa độ XYZ khác nhau Bây giờ chúng ta có hai phép ánh xạ tuyến tính H1 và H2, được xác định bởi hai máy ảnh Mỗi máy ảnh định nghĩa một phép ánh xạ tuyến tính có dạng như sau:
11wxsHwytwz− =
Trang 35
20
2.3.3 Tìm ma trận homography giữa hai ảnh
Giả sử chúng ta có N cặp điểm tương ứng (x yi, i)và (x yi, i) giữa hai hình ảnh, gần như có mối quan hệ với một homography H không xác định
1112132122233132331iiiiwxHHHxwyHHHywHHH =
Sử dụng N điểm, để tìm ma trận H ta có thể viết lại cơng thức:
1112111 11 1113111 11 112122233132331 0 0 0 00 0 0 1 01 0 0 0 00 0 0 1 0NNNNNNNNNNNNNNHHxyx xx yxHxyy xy yyHHxyx xx yxHxyy xy yyHHH − − − − − − = − − − − − −
Ta có thể tìm ma trận H sử dụng nhiều điểm bằng bảng cờ vua (chess board) Bảng cờ vua xuất hiện thường xuyên trong lý thuyết và thực hành thị giác máy tính vì hình học có cấu trúc rất phù hợp cho việc phát hiện và xử lý thuật toán
Trang 36
21
Kết quả thực hiện chuyển đổi: Trên kệ hàng:
Hình 2.15 Hình bên trái được quan sát bằng camera bên trái, hình ở giữa là góc nhìn tham chiếu của kệ hàng mong muốn chuyển đổi, hình bên phải được
quan sát bằng camera phải
Sau khi thực hiện chuyển đổi homography về góc nhìn tham chiếu ta được kết quả:
Trang 37
22
Trên giỏ hàng:
Hình 2.17 Hình bên trái được quan sát bằng camera bên trái, hình ở giữa là góc nhìn tham chiếu của giỏ hàng mong muốn chuyển đổi, hình bên phải được
quan sát bằng camera phải
Sau khi thực hiện chuyển đổi homography về góc nhìn tham chiếu ta được kết quả:
Trang 38
23
2.4 Theo dõi đối tượng trên nhiều camera sử dụng Homography
Trường hợp của luận văn là các máy quay trùng nhau, tức là ghi lại cùng một cảnh nhưng từ góc nhìn khác Mơi trường gồm 2 camera quay từ các góc nhìn khác nhau nhìn chung một cảnh và sẽ có một đến hai khách hàng trong khung hình Đối tượng ta cần theo dõi, liên kết giữa các camera là tay của khách hàng có cầm sản phẩm và giỏ hàng Tôi quyết định sử dụng phương pháp Homography để liên kết các track tương ứng với mỗi đối tượng được nhận diện ở mỗi camera
Hình 2.19 Sơ đồ theo dõi toàn cục sử dụng homography
Ảnh từ camêra được đưa vào mơ hình YOLOv7 để xác định thơng tin về các đối tượng trong khung ảnh Kết quả này sẽ được đưa vào mơ hình DêêpSORT để gán ID cục bộ cho mỗi đối tượng và duy trì ID đó khi đối tượng có sự biến mất trong vài khung ảnh Sau đó, thơng tin về đối tượng được theo dõi ở hai camera sẽ được liên kết với nhau bằng homography khi các đối tượng nằm trong mặt phẳng tham chiếu để có được ID tồn cục
Liên kết các track ID ở các camera:
Trang 39
24
Hình 2.20 Các bounding box của đối tượng ở mỗi camera được chuyển đổi homography về mặt phẳng tham chiếu
Các track hiện tại bao gồm thông tin về bounding box đã được chuyển đổi sang cùng góc nhìn tham chiếu và ID Để liên kết ID giữa các camera, tôi sử dụng phương pháp xác định khu vực chồng lấn lớn nhất giữa các bounding box của đối tượng ở mỗi camêra được chuyển đổi homography về mặt phẳng tham chiếu
Đầu tiên, tôi xây dựng danh sách những bounding box được chuyển đổi
homography để đại diện cho vị trí của các đối tượng từ khung ảnh bên trái và bên phải Tôi tạo ma trận chồng lấn để biểu diễn việc chồng lấn giữa các đối tượng ở hai danh sách từ hai khung ảnh
Tiếp theo, xử lý ma trận chồng lấn bằng cách tìm các khu vực chồng lấn lớn nhất và gán các đối tượng từ khung ảnh bên trái với đối tượng tương ứng từ khung ảnh bên phải Quá trình này được tiếp tục cho đến khi khơng cịn khu vực chồng lấn lớn hơn
Cuối cùng, hàm trả về lêft_to_right và right_to_lêft, đại diện cho ánh xạ giữa các đối tượng từ khung ảnh bên trái sang khung ảnh bên phải và ngược lại
Ví dụ:
Bảng 2.2 Ví dụ về tìm ánh xạ của các track IDcủa mỗi camera
Trang 40
25
Với kết quả trên ta có được kết quả ID 1001 ở camera bên trái sẽ tương ứng với ID 1002 ở camera bên phải, tương tự 1004 tương ứng 1003 và 1005 tương ứng 1006 Ta được kết quả: left_to_right {{1001: 1002},{1004: 1003},{1005: 1006}} và right_to_left {{1002: 1001},{1003: 1004},{1006: 1005}}
Sau khi ánh xạ các đối tượng từ camera trái sang camera phải, để đảm bảo tính chính xác của liên kết này và tránh trường hợp đặt chồng chéo hai đối tượng khác nhau trong các góc nhìn, tơi sử dụng thuật tốn SIFT để trích xuất các đặc trưng từ bounding box có trong ánh xạ Nếu các đặc trưng này khơng có sự tương đồng đáng kể, tơi thực hiện xóa ánh xạ đó
Chiến lược gán ID tồn cục:
Để quản lý các track trong ID toàn cục, tôi sử dụng các tập hợp không chồng chéo, trong đó mỗi phần tử là ID cục bộ thuộc vào một tập hợp cụ thể Một track toàn cục bao gồm các ID cục bộ của các camera và một phần tử đại diện cho track tồn cục đó Ở đây tôi đánh dấu các ID của các track cục bộ bằng các ID độc nhất và đều lớn hơn 1000, cịn các phần tử đại diện của track tồn cục sẽ bắt đầu từ 0
Ví dụ: track tồn cục tơi có dạng {{1,1001,1003,1004}, {2,1005,1006,1008}} hiện track toàn cục đang thêo dõi 2 đối tượng có ID tồn cục là 1 và 2 Trong track tồn cục có ID là 1 bao gồm các ID cục bộ 1001,1003,1004, đây là các ID cục bộ ở các camera
Thực hiện việc gán các ID toàn cục cho các đối tượng theo dõi từ các khung ảnh bên trái và bên phải bao gồm: Gán ID tồn cục cho camera bên trái nếu nó khơng có trong ánh xạ giữa các đối tượng từ khung ảnh bên trái sang khung ảnh bên phải và ngược lại, gán ID toàn cục cho các camera giữa các đối tượng nó có trong ánh xạ giữa các camera
Trước tiên, kiểm tra và gán ID toàn cục cho các đối tượng trong khung ảnh bên trái Đối với các đối tượng khơng có ánh xạ với khung ảnh bên phải, chúng