CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI 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. 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ó. 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 - Phát hiện sản phẩm nào được lấy ra khỏi kệ hàng hoặc được đặt trở lại kệ. - Chuyển giao mặt hàng đó sang khách hàng để phục vụ thanh toán tự động.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.
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. 5 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@[.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 6 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: 7 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.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ó.