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 toá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 toán, và do đó có thể nâng cao hiệu suất làm việc của nhân viên.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ẽ nhận dạng các sản phẩm và xuất hóa đơn. Tác giả dựa trên thị giác máy bằng cách sử dụng YOLOv4 để nhận dạng 34 đối tượng trong tập dữ liệu MS COCO, những đối tượng này thường xuất hiện trong siêu thị, từ đó xác định xem những mặt hàng có trong một bức ảnh, sau đó đếm số lượng các mặt hàng tương tự có trong danh mục mặt hàng, xuất ra hóa đơn trên giao diện bằng Flask web framework. Sau khi thực hiện, tác giả tiến hành đánh giá các sản 1 phẩm chạy trên băng chuyền, các đối tượng nhận diện được đều có confidence score lớ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.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 quá trình thanh toá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 hàng bán lẻ không có quy trình thanh toán. Khách hàng đơn giản chỉ cần lấy 2 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.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ẻ. Ở trên là các phương pháp đang được áp dụng thực tế cho việc bán hàng tự động. Sau khi tìm hiểu, tôi nhận thấy các phương pháp trên đều có ưu và nhược điểm. Tuy nhiên mô hình nổi trội hơn cả là mô hình tính tiền tự động 3 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.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 toán tự động để có thể chạy ổn định, đảm bảo có thể chạy trên thời gian thực.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.
Sử dụng mô hình thêo dõi đối tượng DêêpSORT để thêo dõi các đối tượng đã phát hiện theo thời gian. Gán ID cho các đối tượng sản phẩm, ID của mỗi đối tượng cần đảm bảo luôn không đổi qua các frame, khi đối tượng biến mất hệ thống vẫn cần đảm bảo nhận diện được đúng ID đối tượng khi xuất hiện. 4 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. Khảo sát thực nghiệm và đánh giá.1 Nhận dạng đối tượng 2.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 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. Input layêr là đầu vào của ảnh. Nó có thể là một mảng hai chiều với ba kênh màu đỏ, xanh lá cây và xanh dương.
Nó cũng có thể là đầu vào video với mỗi khung hình của video. 6 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 Vai trò cần thiết của neck là thu thập các feature map từ các giai đoạn khác nhau.
Thông thường, neck bao gồm một số phần bottom-up và một số phần top-down để tăng cường tính năng. Chúng ta sử dụng FPN, RFB và PAN để tăng cường. Neck của Yolov7 chủ yếu bao gồm các khối: SPPCSPC, PANet, RepConv.