Bối cảnh và vấn đề nghiên cứu
Sự phát triển mạnh mẽ của thương mại điện tử trong những năm gần đây đã làm thay đổi căn bản vai trò và chức năng của các cửa hàng bán lẻ truyền thống. Các cửa hàng thực tế phải đối mặt với áp lực cạnh tranh gay gắt và kỳ vọng ngày càng khắt khe của khách hàng về tốc độ và sự tiện lợi. Trong trải nghiệm mua sắm thực tế, tình trạng xếp hàng chờ thanh toán kéo dài luôn là một trong những điểm nghẽn lớn nhất gây suy giảm trải nghiệm của người tiêu dùng. Bối cảnh đại dịch Covid-19 bùng phát đã làm nổi bật nguy cơ lây nhiễm dịch bệnh tại các khu vực công cộng đông đúc khi người dân tập trung mua sắm và xếp hàng chờ thanh toán. Tình trạng này thúc đẩy các nhà bán lẻ chuyển dịch sang ứng dụng công nghệ kỹ thuật số nhằm cung cấp dịch vụ thanh toán tự động, giảm thiểu tiếp xúc vật lý và tối ưu hóa chi phí nhân lực.
Trước yêu cầu thực tiễn đó, khóa luận tốt nghiệp ngành Công nghệ Phần mềm của tác giả Lê Quang Trung và Hà Phi Hùng (dưới sự hướng dẫn của TS. Nguyễn Duy Khánh tại Trường Đại học Công nghệ Thông tin, Đại học Quốc gia Thành phố Hồ Chí Minh, năm 2024) đã thực hiện đề tài "Nghiên cứu các kỹ thuật dựa trên thị giác máy tính và máy học để xây dựng ứng dụng 'Just Walk Out Shopping'".
Mục tiêu nghiên cứu:
- Xây dựng thành công hệ thống sử dụng camera để nhận diện hành động lấy và trả sản phẩm của khách hàng, đồng thời tự động ghi nhận số lượng sản phẩm sau mỗi hành động.
- Xây dựng một trang web phục vụ công tác kiểm tra, giám sát và đánh giá trạng thái giỏ hàng theo thời gian thực của hệ thống trên.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Hệ thống phần mềm dành cho mô hình cửa hàng không thu ngân hoạt động theo cơ chế Just Walk Out (JWO).
- Phạm vi nghiên cứu:
- Khảo sát khái niệm, luồng vận hành và các đặc điểm kỹ thuật cơ bản của mô hình mua sắm Just Walk Out.
- Nghiên cứu và hiện thực hóa các công nghệ, kỹ thuật cần thiết để xây dựng một hệ thống Just Walk Out thu nhỏ với các tính năng nhận diện hành động lấy và trả hàng, áp dụng cho phạm vi một người mua sắm duy nhất tại một thời điểm, sử dụng dữ liệu video từ một camera giám sát duy nhất và đồng bộ dữ liệu giỏ hàng lên giao diện web theo thời gian thực.
Cơ sở lý thuyết và phương pháp
Khóa luận thiết lập nền tảng lý luận và kỹ thuật dựa trên các công nghệ thị giác máy tính, học sâu và kiến trúc phần mềm phân tán:
-
Khung lý thuyết và mô hình thị giác máy tính:
- Mạng nơ-ron tích chập (Convolutional Neural Networks - CNN): Tác giả sử dụng nguyên lý trích xuất đặc trưng không gian qua các lớp tích chập 2 chiều (2D Convolution) kết hợp các lớp gộp (Max Pooling) để phát hiện và phân loại vật thể trong ảnh tĩnh.
- Mô hình phát hiện vật thể YOLO (You Only Look Once): Khóa luận ứng dụng kiến trúc mạng phát hiện một giai đoạn (one-stage detector), chia khung hình thành dạng lưới và dự đoán đồng thời tọa độ hộp giới hạn (bounding box) cùng phân phối xác suất lớp. Phiên bản được triển khai thực tế là YOLOv8n (thông qua thư viện Ultralytics), tối ưu hóa tốc độ suy luận nhanh để nhận diện mặt hàng và vị trí bàn tay người mua sắm.
- Mạng tích chập 3 chiều (3D Convolution) và Tích chập nhân quả (Causal Convolution): Để phân loại chuỗi khung hình video theo thời gian mà không phụ thuộc vào các khung hình tương lai, mô hình sử dụng phép tích chập chỉ dựa trên dữ liệu quá khứ.
- Mô hình nhận diện hành động MoViNet (Mobile Video Networks): Tác giả triển khai kiến trúc MoViNet-A1-Stream dựa trên nền tảng MobileNet. Mô hình này tích hợp cơ chế bộ đệm stream ($B$) lưu trữ $b$ khung hình hoặc trạng thái kích hoạt quá khứ và hàm gộp trung bình toàn cục tích lũy (Cumulative Global Average Pooling - CGAP). Nhờ đó, mô hình hoạt động tương tự mạng nơ-ron hồi quy, xử lý tuần tự từng khung hình mới nhận được từ video stream với mức tiêu thụ bộ nhớ thấp, phù hợp cho phân loại hành động mua sắm thời gian thực.
- Bộ chỉ số đánh giá học máy: Tác giả sử dụng các độ đo tiêu chuẩn gồm Độ chính xác (Precision), Độ đầy đủ (Recall), Đường cong chính xác - đầy đủ (PR curve), Độ chính xác trung bình (Average Precision - AP), Điểm trung bình các AP (Mean Average Precision - mAP), mAP50 (tính ở ngưỡng IoU trên 0.5) và mAP50-95 (tính trong dải ngưỡng IoU từ 0.5 đến 0.95), cùng chỉ số tỷ lệ diện tích giao trên diện tích hợp (Intersection over Union - IoU).
-
Khung đối sánh mô hình thực tế:
- Khóa luận tham chiếu kiến trúc chuỗi cửa hàng Amazon Go (sử dụng hàng trăm camera gắn trần kết hợp cảm biến trọng lượng load-cell, thiết bị nhận dạng sinh trắc học Amazon One và mô hình AI tạo sinh đối nghịch để sinh dữ liệu huấn luyện).
- Tham chiếu khung nghiên cứu FAIM (Fusion Framework for Autonomous Inventory Management của Falcao et al.) về kỹ thuật tổng hợp cảm biến (sensor fusion), kết hợp dữ liệu thay đổi tải trọng trên kệ hàng để định tuyến và kích hoạt các thuật toán thị giác máy tính.
-
Phương pháp nghiên cứu và nguồn dữ liệu:
- Phương pháp nghiên cứu: Phương pháp thực nghiệm kết hợp thiết kế phần mềm hướng dịch vụ. Nghiên cứu tập trung vào việc tiền xử lý luồng video trực tiếp, trích xuất khung hình, phối hợp mô hình nhận diện hành động và mô hình phát hiện vật thể để xác định sự kiện mua sắm, sau đó chuyển phát tín hiệu cập nhật trạng thái qua hàng đợi thông điệp.
- Nguồn dữ liệu:
- Bộ dữ liệu mặt hàng tùy chỉnh (Custom dataset) được tác giả thu thập và gán nhãn để huấn luyện mô hình nhận diện sản phẩm.
- Bộ dữ liệu bàn tay người EgoHands (kết hợp các mẫu từ tập dữ liệu COCO / COCO-Hand) dùng để huấn luyện mô hình phát hiện vị trí bàn tay (
HandDetector).
- Bộ dữ liệu video hành động mua sắm tùy chỉnh (chứa các chuỗi hành động lấy hàng và trả hàng) dùng để huấn luyện mô hình nhận diện hành động MoViNet-A1-Stream.
Thiết kế và triển khai
Do khóa luận thuộc nhóm đề tài xây dựng phần mềm và hệ thống kỹ thuật, phần thiết kế và triển khai hệ thống được tác giả xây dựng chi tiết theo kiến trúc hướng sự kiện (Event-driven Architecture) gồm các dịch vụ độc lập:
| Thành phần |
Công nghệ / Thư viện nền tảng |
Vai trò và chức năng chính |
| Camera Client |
Python, WebRTC |
Thu nhận tín hiệu hình ảnh trực tiếp tại hiện trường và truyền phát luồng video (video stream) tới dịch vụ thị giác máy tính. |
| Computer Vision Service |
Python, PyTorch, Ultralytics, aiortc, aiohttp |
Tiếp nhận luồng WebRTC; chạy song song mô hình MoViNet-A1-Stream để nhận diện hành động và YOLOv8n để phát hiện sản phẩm cùng vị trí tay; đóng gói thành ShoppingEvent và gửi thông điệp vào Kafka. |
| Message Broker |
Apache Kafka |
Đảm bảo truyền tải thông điệp bất đồng bộ, chịu lỗi và mở rộng thông qua topic cart-updates. |
| Business Service |
NestJS (Node.js, TypeScript), Prisma ORM |
Nhận thông điệp từ Kafka qua CartController; thực thi logic cập nhật giỏ hàng qua CartService; phát dữ liệu giỏ hàng mới nhất đến client qua WebSocket CartGateway (Socket.IO). |
| Database |
PostgreSQL |
Lưu trữ dữ liệu cấu trúc gồm bảng sản phẩm (Product) và bảng chi tiết giỏ hàng (Cart). |
| Web Frontend Service |
Next.js (React, TypeScript) |
Cung cấp giao diện web cho khách hàng; kết nối Socket.IO với Business Service để tự động cập nhật giỏ hàng trực quan theo thời gian thực mà không cần tải lại trang. |
Thiết kế hướng đối tượng và cấu trúc module:
- Dịch vụ
jwo-cv-service được chia thành các gói chức năng: action_detector (nhận diện hành động), item_detector (phát hiện mặt hàng và bàn tay), video_conn (quản lý kết nối và tín hiệu WebRTC qua ProcessPoolExecutor), vision (kết hợp phát hiện hành động và mặt hàng), message_emitter (Kafka Producer) và utils. Các lớp nòng cốt bao gồm ShoppingEvent, ActionDetector, ItemDetector, HandDetector, VideoVisionTrack và VideoConnSignalApiServer.
- Dịch vụ
jwo-business-service được tổ chức theo mô hình MVC của framework NestJS, gồm các module: CartController (nhận message từ Kafka), CartGateway (WebSocket gateway giao tiếp qua đường dẫn /cart), CartService (xử lý logic tính toán giá trị linePrice = unitPrice * quantity và điều chỉnh số lượng), DbClient (truy cập cơ sở dữ liệu qua Prisma) và ValidationPipe.
- Quy trình nghiệp vụ: Khi camera truyền luồng video qua WebRTC,
VideoVisionTrack trích xuất khung hình. ActionDetector xác định trạng thái Pick (lấy) hoặc Return (trả). Đồng thời, HandDetector và ItemDetector xác định tọa độ bàn tay và nhận diện sản phẩm nằm trong vùng tương tác. Khi sự kiện hoàn tất, một thông điệp CartUpdateDto chứa danh sách mã sản phẩm và lượng thay đổi (quantityChange) được đẩy lên Kafka topic cart-updates. Business Service tiêu thụ thông điệp, cập nhật cơ sở dữ liệu PostgreSQL, sau đó thông qua Socket.IO gửi giỏ hàng mới tới Web Frontend của người dùng.
Nội dung chính theo từng chương
Chương 1: Mở đầu
Chương này nêu rõ tính cấp thiết của việc tự động hóa khâu thu ngân trong ngành bán lẻ trước xu thế cạnh tranh của thương mại điện tử và những bất cập từ việc khách hàng phải xếp hàng dài, đặc biệt trong các tình huống khủng hoảng y tế như Covid-19. Tác giả xác định mục tiêu của đề tài là xây dựng nguyên mẫu hệ thống camera nhận diện tự động hành vi lấy/trả hàng và đồng bộ giỏ hàng lên giao diện web. Phạm vi khóa luận được giới hạn trong kịch bản một người mua sắm, sử dụng dữ liệu từ một camera quan sát duy nhất.
Chương 2: Kiến thức cơ bản
Chương 2 tổng hợp cơ sở lý thuyết về các công nghệ, thư viện và giao thức được sử dụng trong toàn bộ hệ thống. Các nội dung được trình bày gồm có: giao thức truyền thông thời gian thực ngang hàng WebRTC (hỗ trợ mã hóa DTLS/SRTP và truyền tải âm thanh/video không cần plugin); thư viện xử lý ảnh và thị giác máy tính OpenCV; nền tảng hàng đợi thông điệp phân tán Apache Kafka; thư viện học sâu PyTorch với cơ chế đồ thị tính toán động (dynamic computation graph); framework backend NestJS dựa trên TypeScript với cơ chế Dependency Injection; framework Next.js hỗ trợ kết xuất phía máy chủ (SSR) và phân tách mã tự động; và thư viện Socket.IO hỗ trợ giao tiếp hai chiều thời gian thực dựa trên sự kiện.
Chương 3: Mô hình mua sắm Just-Walk-Out
Tác giả phân tích tổng quan kiến trúc vận hành tiêu chuẩn của một cửa hàng Just Walk Out (JWO), bao gồm các khâu: nhận diện khách hàng khi vào cửa (qua thẻ, ứng dụng hoặc sinh trắc học lòng bàn tay), tạo phiên mua sắm ảo, nhận diện tương tác lấy/trả hàng, xác định mặt hàng, duy trì trạng thái giỏ hàng và tự động trừ tiền khi khách hàng bước ra khỏi cửa hàng. Chương này phân tích mô hình chuỗi cửa hàng Amazon Go và khung FAIM của Falcao et al. về giải pháp tổng hợp cảm biến (sensor fusion kết hợp camera và cảm biến tải trọng). Đồng thời, tác giả chỉ ra các thách thức kỹ thuật cốt lõi của mô hình JWO: hiện tượng che khuất (occlusion), khách hàng thay đổi diện mạo hoặc đeo khẩu trang, điều kiện ánh sáng biến động, các sản phẩm có bao bì giống nhau, nguy cơ gian lận và chi phí đầu tư phần cứng cao.
Chương 4: Phát hiện vật thể và hành động trong thị giác máy tính
Chương 4 tập trung vào cơ sở toán học và kiến trúc học sâu cho xử lý ảnh và video. Tác giả trình bày nguyên lý của mạng nơ-ron tích chập 2D (phép nhân ma trận kernel trên các vùng lân cận điểm ảnh, hàm kích hoạt và pooling). Chương này định nghĩa chi tiết các phương pháp đánh giá mô hình phân loại (Precision, Recall, IoU, AP, mAP, mAP50, mAP50-95). Tác giả phân tích chuyên sâu mô hình YOLO (kiến trúc tiêu chuẩn với 24 lớp tích chập, đầu vào $448 \times 448$, chia lưới dự đoán bounding box và class probability map, đạt tốc độ 45 FPS trên GPU Tesla X). Đối với bài toán phân loại chuỗi hành động trên video thời gian thực, chương phân tích nguyên lý tích chập 3 chiều và tích chập nhân quả (causal convolution). Trọng tâm là mô hình MoViNet (Kondratyuk et al., 2021) với cơ chế bộ đệm stream và phương pháp gộp CGAP, cho phép xử lý luồng khung hình tuần tự với mức tiêu thụ tài nguyên bộ nhớ tối ưu.
Chương 5: Phân tích và thiết kế hệ thống
Chương 5 là nội dung trọng tâm của khóa luận, trình bày chi tiết toàn bộ thiết kế kỹ thuật của hệ thống. Tác giả xây dựng sơ đồ use case gồm 1 tác nhân (Người mua sắm) và 3 ca sử dụng: "Lấy hàng", "Trả hàng", "Xem giỏ hàng", đi kèm sơ đồ hoạt động (activity diagram) và đặc tả luồng xử lý chi tiết. Kiến trúc hệ thống tổng thể gồm 6 thành phần được thiết kế theo mô hình vi dịch vụ phân tán. Chương này đặc tả chi tiết sơ đồ gói, sơ đồ lớp của dịch vụ xử lý thị giác (jwo-cv-service) và dịch vụ nghiệp vụ (jwo-business-service), cấu trúc cơ sở dữ liệu PostgreSQL (Product và Cart), thiết kế đồng bộ dữ liệu qua Kafka và Socket.IO, các tham số cấu hình huấn luyện của ba mô hình học máy (nhận diện mặt hàng, nhận diện bàn tay và nhận diện hành động), cùng sơ đồ triển khai hệ thống vật lý.
Chương 6: Thực nghiệm và đánh giá
Chương 6 trình bày phương pháp và kết quả đánh giá thực nghiệm hệ thống trong môi trường phòng thí nghiệm. Tác giả mô tả cách bố trí môi trường thử nghiệm thực tế với vị trí đặt camera góc rộng quan sát kệ hàng, thiết lập các kịch bản kiểm thử hành vi mua sắm (lấy sản phẩm đơn lẻ, lấy nhiều sản phẩm, thao tác trả lại sản phẩm lên kệ). Chương này công bố các bảng số liệu đo lường hiệu năng của từng mô hình thành phần trên tập kiểm thử (độ chính xác, ma trận nhầm lẫn - confusion matrix, đường cong PR, hàm mất mát - loss curve) và kết quả kiểm thử toàn diện của hệ thống từ khâu ghi hình đến hiển thị cập nhật trên trang web.
Chương 7: Kết luận và hướng phát triển
Chương cuối tổng kết những kết quả nghiên cứu và triển khai mà nhóm sinh viên đã đạt được, phân tích các điểm thuận lợi cũng như khó khăn gặp phải trong quá trình thực hiện đề tài. Trên cơ sở đó, tác giả đề xuất các định hướng nghiên cứu và nâng cấp hệ thống trong tương lai nhằm đưa mô hình tiến gần hơn tới khả năng ứng dụng trong môi trường bán lẻ thực tế.
Kết quả và đóng góp
Hệ thống đã hiện thực hóa thành công một mô hình Just Walk Out thu nhỏ hoàn chỉnh, tích hợp chuỗi xử lý đầu - cuối (end-to-end) từ camera vật lý đến giao diện người dùng web:
- Kết quả huấn luyện và kiểm thử mô hình học máy:
- Triển khai thành công mô hình YOLOv8n để phát hiện các lớp mặt hàng trên kệ và nhận diện chính xác vị trí bàn tay người thao tác (sử dụng tập dữ liệu huấn luyện EgoHands và nhãn sản phẩm tùy chỉnh). Kết quả được xác thực thông qua ma trận nhầm lẫn và đường cong chính xác - đầy đủ (PR curve).
- Tích hợp thành công mô hình MoViNet-A1-Stream để nhận diện chính xác hai loại hành động cốt lõi là lấy hàng (
Pick) và trả hàng (Return) từ luồng video thời gian thực, đạt được sự hội tụ hàm mất mát (loss) qua các epoch huấn luyện.
- Kết quả tích hợp hệ thống phần mềm:
- Thiết lập thành công đường truyền video độ trễ thấp thông qua WebRTC giữa client camera và dịch vụ xử lý thị giác máy tính viết bằng Python.
- Xây dựng thành công cơ chế giao tiếp hướng sự kiện qua Apache Kafka, đảm bảo quá trình phát thông điệp cập nhật giỏ hàng từ dịch vụ xử lý ảnh sang dịch vụ nghiệp vụ NestJS diễn ra độc lập, ổn định và không làm nghẽn luồng xử lý video.
- Đồng bộ hóa dữ liệu thời gian thực xuống giao diện người dùng bằng Next.js qua giao thức WebSocket (Socket.IO), cho phép trang web tự động phản ánh sự thay đổi số lượng mặt hàng và tổng giá trị đơn hàng ngay sau khi hành vi lấy/trả hàng diễn ra.
- Đóng góp kỹ thuật tự nêu:
- Đề xuất giải pháp kiến trúc phần mềm kết hợp giữa thị giác máy tính và hệ thống phân tán, giải quyết bài toán mua sắm tự động không cần quầy thu ngân ở quy mô nguyên mẫu.
- Ứng dụng thành công kỹ thuật tích chập nhân quả và bộ đệm stream của MoViNet trong việc phân loại hành động mua sắm thời gian thực, giúp giảm đáng kể lượng bộ nhớ sử dụng trên máy chủ xử lý so với các mạng tích chập 3D thông thường.
- Cung cấp tài liệu thiết kế chi tiết về sơ đồ lớp, thiết kế giao thức và mô hình dữ liệu phục vụ nghiên cứu và phát triển các hệ thống cửa hàng thông minh.
Hạn chế và hướng nghiên cứu tiếp
Khóa luận ghi nhận một số hạn chế kỹ thuật xuất phát từ phạm vi và điều kiện thực hiện đề tài:
-
Hạn chế:
- Hệ thống mới chỉ hỗ trợ theo dõi và xử lý dữ liệu cho một người mua sắm duy nhất trong cùng một thời điểm; chưa giải quyết bài toán định danh và phân tách nhiều khách hàng tương tác đồng thời.
- Sử dụng duy nhất một góc nhìn camera khiến hệ thống dễ bị ảnh hưởng bởi hiện tượng che khuất (vật thể hoặc bàn tay bị cơ thể người mua sắm che khuất khỏi tầm nhìn của camera).
- Chưa tích hợp các cảm biến phần cứng bổ trợ như cảm biến trọng lượng (load-cell sensor) trên kệ hàng hoặc thẻ RFID, dẫn đến việc nhận diện các mặt hàng có kích thước nhỏ hoặc các mặt hàng có bao bì tương đồng hoàn toàn phụ thuộc vào thị giác máy tính.
- Chưa xây dựng module xác thực danh tính khách hàng ở cửa vào (như quét thẻ hay sinh trắc học) và chưa tích hợp cổng thanh toán tự động thực tế khi khách hàng rời cửa hàng.
- Hệ thống chưa có cơ chế phát hiện và cảnh báo các hành vi gian lận hoặc trộm cắp tại điểm bán.
-
Hướng nghiên cứu tiếp:
- Mở rộng kiến trúc để theo dõi nhiều khách hàng cùng lúc (Multi-object Tracking) và duy trì nhiều giỏ hàng ảo độc lập tương ứng với từng khách hàng.
- Bố trí hệ thống đa camera (Multi-camera setup) từ nhiều góc nhìn khác nhau (trần nhà, góc nghiêng, trong kệ hàng) để triệt tiêu các điểm mù và xử lý triệt để hiện tượng che khuất.
- Ứng dụng kỹ thuật tổng hợp cảm biến (Sensor Fusion), tích hợp cảm biến tải trọng trên kệ hàng tương tự kiến trúc FAIM nhằm nâng cao độ chính xác khi phát hiện sự thay đổi số lượng hàng hóa.
- Phát triển ứng dụng di động hoặc cổng nhận diện sinh trắc học để quản lý phiên mua sắm từ lúc khách hàng bước vào đến khi kích hoạt thanh toán tự động lúc rời cửa hàng.
Giá trị tham khảo
Báo cáo khóa luận là tài liệu tham khảo có giá trị học thuật và ứng dụng thực tiễn dành cho:
- Đối tượng tham khảo: Sinh viên, học viên cao học và kỹ sư thuộc các ngành Công nghệ Phần mềm, Khoa học Máy tính, Hệ thống Thông tin và Trí tuệ Nhân tạo có định hướng nghiên cứu về hệ thống bán lẻ thông minh (Smart Retail), thị giác máy tính ứng dụng và kiến trúc phần mềm hướng sự kiện.
- Các nội dung đáng tham khảo nhất:
- Phương pháp triển khai mạng tích chập nhân quả MoViNet-Stream kết hợp PyTorch để xử lý bài toán nhận diện hành động trên luồng video thời gian thực với tài nguyên bộ nhớ tối ưu.
- Thiết kế kiến trúc phân tán kết hợp Python (AI, xử lý ảnh, aiortc) và TypeScript/Node.js (NestJS, Next.js) thông qua hàng đợi thông điệp Apache Kafka.
- Cấu trúc thiết kế hướng đối tượng hoàn chỉnh của dịch vụ thị giác máy tính và dịch vụ nghiệp vụ, bao gồm mô hình hóa lớp, xử lý luồng sự kiện và thiết kế API thời gian thực qua WebSocket.
Câu hỏi thường gặp
1. Khóa luận này giải quyết bài toán mua sắm Just Walk Out trong phạm vi giới hạn nào?
Khóa luận giới hạn phạm vi nghiên cứu ở việc xây dựng một hệ thống nguyên mẫu phục vụ duy nhất một người mua sắm tại một thời điểm, sử dụng luồng hình ảnh từ một camera giám sát duy nhất để nhận diện hành vi lấy hoặc trả sản phẩm trên kệ và cập nhật giỏ hàng ảo lên website theo thời gian thực.
2. Mô hình nào được sử dụng để nhận diện hành động lấy và trả hàng, và ưu điểm kỹ thuật của mô hình đó là gì?
Tác giả sử dụng mô hình MoViNet-A1-Stream cài đặt bằng thư viện PyTorch. Ưu điểm cốt lõi của mô hình là sử dụng phép tích chập nhân quả (causal convolution) kết hợp cơ chế bộ đệm stream ($B$) và hàm gộp CGAP. Cơ chế này cho phép mô hình tích lũy thông tin và cập nhật phân phối xác suất hành động sau từng khung hình video mới mà không cần nạp toàn bộ đoạn video vào bộ nhớ, giúp giảm tiêu hao RAM và đạt tốc độ suy luận nhanh trên luồng stream trực tiếp.
3. Cơ chế giao tiếp giữa Dịch vụ Thị giác máy tính (CV Service) và Dịch vụ Nghiệp vụ (Business Service) được tổ chức như thế nào?
Hai dịch vụ giao tiếp bất đồng bộ qua hệ thống hàng đợi thông điệp Apache Kafka. Khi VideoVisionTrack xác định được hành vi mua sắm, thành phần MessageEmitter trong CV Service sẽ phát thông điệp cập nhật giỏ hàng (CartUpdateDto) lên topic cart-updates. Thành phần CartController phía Business Service (viết bằng NestJS) đăng ký lắng nghe topic này để tiếp nhận dữ liệu và thực hiện cập nhật giỏ hàng trong cơ sở dữ liệu.
4. Hệ thống phân biệt mặt hàng nào đang được khách hàng lấy hoặc trả bằng cách nào?
Trong dịch vụ xử lý thị giác, tác giả kết hợp hai bộ nhận diện: HandDetector (xác định tọa độ hộp giới hạn của bàn tay người mua sắm) và ItemDetector (xác định vị trí các mặt hàng), đều sử dụng kiến trúc YOLOv8n. Hệ thống tính toán khoảng cách không gian giữa bàn tay và các sản phẩm phát hiện được để xác định chính xác mặt hàng nằm trong tay người mua sắm khi hành động lấy hoặc trả diễn ra.
5. Cơ sở dữ liệu và công nghệ backend được lựa chọn trong khóa luận là gì?
Dịch vụ nghiệp vụ được xây dựng trên nền tảng Node.js sử dụng framework NestJS với ngôn ngữ TypeScript, tổ chức theo kiến trúc MVC. Hệ quản trị cơ sở dữ liệu được sử dụng là PostgreSQL, được truy xuất và thao tác thông qua công cụ Prisma ORM. Dịch vụ cung cấp API thời gian thực qua giao thức WebSocket (Socket.IO) để đồng bộ dữ liệu giỏ hàng với ứng dụng frontend Next.js.
Kết luận
Khóa luận tốt nghiệp của tác giả Lê Quang Trung và Hà Phi Hùng đã nghiên cứu và hiện thực hóa thành công mô hình cửa hàng không thu ngân Just Walk Out ở quy mô nguyên mẫu thực nghiệm, kết hợp hiệu quả giữa thị giác máy tính và kiến trúc phần mềm phân tán. Bằng việc ứng dụng mô hình MoViNet-A1-Stream cho bài toán phân loại hành động và YOLOv8n cho bài toán phát hiện sản phẩm cùng vị trí bàn tay, hệ thống đã tự động hóa được quy trình ghi nhận hành vi lấy/trả hàng và đồng bộ hóa giỏ hàng theo thời gian thực qua Apache Kafka, NestJS và Next.js. Dù còn một số hạn chế về phạm vi thử nghiệm đơn người dùng và phụ thuộc vào một góc quay camera duy nhất, đề tài đã đặt nền móng kỹ thuật vững chắc và cung cấp giải pháp tham khảo giá trị cho các nghiên cứu phát triển mô hình bán lẻ thông minh tự động hóa tại Việt Nam.