PHẠM VĂN HUY
HỆ THỐNG THỊ GIÁC MÁY TÍNH PHỤC VỤ THANH TỐ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Ĩ
Trang 2CƠ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ó)
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Ĩ
Họ tên học viên: Phạm Văn Huy MSSHV: 2070685
Ngày, tháng, năm sinh: 08/11/1998 Nơi sinh: BR-VT
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 TỐ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
Trang 4LỜI CẢM ƠN
Đầu tiên, tôi xin gửi lời cảm ơn đến gia đình, người thân đã ln động viên, hỗ trợ và thúc đẩy tơi trong suốt q 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 tố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
Trang 5TÓ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 tố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 tố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 tố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 hố q trình thanh tố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
Trang 6ABSTRACT
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
Trang 7LỜ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
Trang 8MỤ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
1.1 Tổng quan đề tài 1
1.2 Tình hình nghiên cứu hiện nay 2
1.3 Mục tiêu và nhiệm vụ 2
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 4
2.1 Mơ hình YOLOv8 4
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
Trang 92.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 hố 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
2.6 Phép chiếu 23
CHƯƠNG 3 CÁC THIẾT BỊ VÀ CÔNG CỤ THỰC HIỆN ĐỀ TÀI 26
3.1 Kệ hàng 26
3.2 Đèn chiếu sáng 27
3.3 Camera IP giám sát 29
3.4 Switch PoE HIKVISION 30
3.5 Kết nối phần cứng 31
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
Trang 104.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
Trang 11DANH 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) Tồ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ế tồ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 hố 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
Trang 12Hì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 Q 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
Trang 13DANH 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 14DANH MỤC TỪ VIẾT TẮT
AI Artificial Intelligence
DL Deep Learning
CLI Command Line Interface
YOLO You Only Look Once
IoU Intersect over Union
GPU Graphics Processing Unit
CPU Central Processing Unit
TP True Positive
TN True Negative
FP False Positive
FN False Negative
AP Average Precesion
mAP Mean Average Precesion
CUDA Compute Unified Device Architecture
FPS Frame per Second
RTSP Real Time Streaming Protocol
Trang 15CHƯƠ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 tố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 tố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 tố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 tố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 tốn
Trang 161.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ể đố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ó
1.3 Mục tiêu và nhiệm vụ
Mục tiêu chính của đề tài này là dựa vào hệ thống camera giám sát được gắn cố định trong cửa hàng bán lẻ, ta sẽ xây dựng một hệ thống giám sát giúp
Trang 17Hì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
Trang 18CHƯƠ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 tố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 19Sau đâ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
Trang 20Hì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
Trang 21YOLOv8 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ó
Trang 22Mộ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)
Trang 232.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ự đố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 tốn IoU (Intersection over Union) giữa hai đường bao
Hình 2.4 Ground Truth và Predict bounding box
Trang 24Cá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)
PrecisionRecall TPTPFPTPTPFN=+=+
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)
Trang 25Hì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 tố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
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
Trang 27Thờ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 tốn phân tích cú pháp hiệu quả (ví dụ: thuật tố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 đố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ư ln nhanh hơn, thay thế cho các phương pháp tiếp cận từ trên xuống
Trang 282.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
Trang 29Hình 2.6 Quy trình của OpenPose
(a) Tồ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ế tồn thân Hình ảnh từ [34]
2.3.3.3 OpenPifPaf
Trang 30chỉ đị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
Trang 31dụ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 tố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 tố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 tố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 q 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ự đốn để gán ID tương
ứng
Trang 32Hì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
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
Trang 34Hì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
Trang 352.5 Tối ưu hố mơ hình Deep Learning bằng TensorRT 2.5.1 TensorRT là gì
Hình 2.11 Tối ưu hố 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
Trang 36Tối ưu hiệu suất model: TensorRT được xây dựng tính tố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 tố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 tố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 tốn kết quả và tăng tốc độ tính tố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 tố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 tố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 tố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á
Trang 372.6 Phép chiếu
Ở đây em xin phép giải thích sơ bộ cơ sở tố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
11121312122232313233300 (1)1 0 0 11xxyyIEKXufcrrrtYs vfcrrrtZrrrt =
Ở phía bên tay trái, chúng ta thấy hệ số tỷ lệ s và một vectơ biểu thị tọa độ hình ảnh Lưu ý rằng chúng ta ln có thể phân tích vectơ này thành thừa số s sao cho phần tử thứ ba trở thành bằng 1 Chúng ta tính tốn s,u,v dựa trên các phép tính ở phía bên tay phải để ánh xạ tọa độ thế giới 3D thành tọa độ hình ảnh 2D
Ở 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
Trang 38Ma 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
x
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)
(2)xXyR YtzZ = +
Sau đó ta lấy nghịch đảo ma trận I và ma trận R kể trên để có được kết quả
11 (3)XxYRI s ytZz−− = −
Trang 39tì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
211121312212223123132331 (4)Hxhhhxyhhhyzhhhz =
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)
và 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 tố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 tố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
Trang 40CHƯƠ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