歐其勝 楊桂華
基于機器視覺的一種智能購物車
歐其勝楊桂華
(桂林理工大學機械與控制工程學院,廣西 桂林 541004)
為提升線下超市購物體驗和購物效率,研究設計了一種基于機器視覺的智能商品識別購物車。文章提出的智能購物車是主要基于計算機視覺、UWB超寬帶定位技術、重量傳感等技術,實現(xiàn)商品識別、定位導購、實時記賬、便捷支付等功能的智能識別購物車。文章介紹了該購物車的系統(tǒng)設計方案、硬件和軟件設計,測試結果顯示,該系統(tǒng)可實現(xiàn)商品識別、定位導購、便捷支付等功能。
商品識別;智能購物車;UWB定位;STM32
隨著中國“智慧城市4.0”時代的到來,以人工智能為主要技術,中國經(jīng)濟的飛速發(fā)展與智慧城市理念漸漸深入人心,人們開始追求更加智能、便捷的生活,無接觸經(jīng)濟興起。
目前我國人口基數(shù)大,傳統(tǒng)商場、超市購物流程繁瑣,時間花費長,傳統(tǒng)購物車只停留在放置商品的功能上,整體功能過于單一,沒有探索新零售技術在購物車中的其他應用[1]。而目前的其他智能購物車識別商品依然采用掃描條形碼進行識別商品,且需依靠人的自主認知及素質,結算效率低,未能提供自主定位導購服務,難以滿足大量市場需求和人們對更智能、便捷的線下購物體驗[2]。針對以上情況,本文提出一種集商品識別、定位導購、實時記賬、便捷支付和抗菌等功能的智能識別購物車。
本項目提出的智能購物車主要基于計算機視覺、UWB超寬帶定位技術、重量傳感等技術,實現(xiàn)商品識別、定位導購、實時記賬、便捷支付等功能。該智能購物車包括主控制模塊、商品識別跟蹤系統(tǒng)、定位導購模塊、交互系統(tǒng)及服務器,其主要功能如下。
(1)商品識別。攝像傳感單元實時獲取圖像數(shù)據(jù),識別模塊應用卷積神經(jīng)網(wǎng)絡算法(Convolutional Neural Networks,CNN)進行商品圖像識別,并根據(jù)商品重量比對,確保識別準確率。
(2)定位導購。定位模塊實現(xiàn)購物車位置實時定位,并將位置坐標發(fā)送至主控制器STM32F4,控制器將坐標發(fā)送至顯示模塊進行顯示,消費者可通過搜索某商品,同時控制器獲取該商品位置信息并顯示于LCD屏上。購物者通過對比購物車以及目標商品坐標信息確定最終的購買路線。
(3)便捷支付。消費者需要結賬時,通過智能購物車生成支付下單請求并發(fā)送至超市服務器,超市服務器發(fā)送支付二維碼信息經(jīng)過主控制器STM32F4傳輸?shù)絃CD屏幕顯示,消費者掃碼支付完成后,主控制器從服務器獲取支付狀態(tài)并傳輸至LCD顯示。
本項目以STM32F429處理器為控制核心,Kendryte K210為識別處理器。STM32F429借助Chrom?ART Accelerator?的優(yōu)勢,支持雙層圖形的新型LCD-TFT 控制器接口,使該圖形加速器創(chuàng)建內容的速度達到單獨使用內核時的兩倍,LCD顯示能力相對于STM32F407有非常大的提升,這也是本項目選用主控制器為STM32F429的主要原因之一。智能購物車硬件系統(tǒng)結構如圖1所示。
圖1 硬件系統(tǒng)結構圖
商品識別模塊將識別結果傳輸?shù)街骺刂谱鬟M一步處理。為了提高識別速率,本項目將主控制器與視覺識別模塊通過USART1(PA10/PA9引腳)連接,實現(xiàn)模塊之間的串口通信。購物車與超市后臺服務器之間的無線通信采用ESP8266模塊實現(xiàn),完成支付數(shù)據(jù)、支付狀態(tài)等信息的獲取,主控制器通過USART6(PC7/PC6引腳)與ESP8266 WIFI模塊的RXD、TXD連接。智能購物車的定位導購功能采用定位精度高(厘米級)、抗干擾能力強的UWB定位技術,UWB定位模塊將定位坐標信息傳輸至主控制器,通過控制器的USART2(PA3/ PA2)引腳與定位模塊進行連接,完成定位坐標信息的接收。LCD顯示模塊通過16個并口(D0~D15引腳)連接與主控制器GPIO相連實時顯示商品信息、定位信息以及支付信息。同時為了快速獲取商品的重量信息,本項目采用ZXZJ壓力傳感器,承重為10 kg,精度等級B級,滯后誤差±0.015%R.O.,由主控制器通過USART3(PB11/PB10引腳)與重量傳感器(通過AD轉換器)連接。
Kendryte K210是集成機器視覺的系統(tǒng)級芯片(SOC),具有RISC-V 64 位雙核處理器(CPU),擁有較好的穩(wěn)定性與可靠性,還有豐富的外設單元,如FPIOA、UART、DVP、SPI、GPIO、JTAG、PWM、OTP、I2S以及I2C等。K210每個核心內置獨立FPU,其包含一個國內自主研發(fā)的神經(jīng)網(wǎng)絡硬件加速器KPU,其AI算力高達0.8 TFLOPS,用于高性能計算卷積人工神經(jīng)網(wǎng)絡,集成卷積、歸一化、激活以及池化等神經(jīng)網(wǎng)絡運算單元[3]。
視覺識別模塊硬件連接圖如圖2所示。為實時捕獲視頻流中的圖像數(shù)據(jù),本模塊采用OV7740高清攝像頭CMOS傳感器,通過K210芯片的DVP(Digital Video Port)數(shù)字視頻接口與K210連接,K210芯片通過SCCB串行攝像控制總線協(xié)議配置攝像頭寄存器,DVP將OV7740(60FPS)捕獲的圖像數(shù)據(jù)輸出至KPU。為了存儲更大的 KMODEL 識別模型,本項目采用擴展MicroSD卡的形式,KendryteK210通過串行外設接口(SPI)連接擴展MicroSD卡。K210串行外設接口有4組SPI接口,本項目采用K210的串行外設接口3(SPI3)進行連接擴展MicroSD卡。K210作為識別模塊處理器,只負責商品的檢測識別,通過異步收發(fā)器UART3連接STM32F4進行串口通信,實現(xiàn)商品識別結果的發(fā)送,將識別信息傳輸至主控制器。K210的UART支持自由引腳映射功能,使用FM來對芯片引腳進行映射和管理,將PIN35設置為UART3的發(fā)送引腳,PIN35設置為UART3的接收引腳。
圖2 識別模塊硬件連接圖
定位模塊由MCU STM32F103和DWM1000模塊組成,應用于定位基站以及購物車定位標簽。DWM1000模塊是基于Decawave公司DW1000芯片設計的超寬帶收發(fā)模組。該模塊可用在TWR或TDOA定位系統(tǒng)中,定位目標精度小于10 cm;并且該模塊最高支持6.8 Mbps的數(shù)據(jù)傳輸率,DWM1000板上搭載的DW1000芯片,是基于CMOS的、低功耗的的無線收發(fā)集成電路,遵循802.15.4-2011[1]協(xié)議中的 UWB 標準的芯片,模塊上包含了天線、無線通訊模塊以及相關電路[4]。
STM32F103與DWM1000模塊通過SPI通信連接,DWM1000模塊的SPI_CLK、SPI_MISO、SPI_MISI、SPI_Csn、IRQ、RESET引腳分別于STM32F103的A5、A6、A7、A4、B5、B15引腳相連,基站采用單獨電源供電。
商品識別包括視覺識別、商品重量識別。第一步是商品的粗判斷,由視覺識別模塊進行商品圖像的識別。第二步是商品的精確判斷,視覺識別模塊將識別結果發(fā)送至STM32主控制模塊,STM32主控制模塊從車載SD卡獲取該商品重量信息并與重力傳感器所測重量進行誤差范圍比對,比對成功,則STM32主控模塊將最終的商品識別結果以及其信息發(fā)送至LCD顯示模塊。同理當商品從購物車內拿出,由識別模塊識別,再與重量傳感器減少的重量值進行比對,得到取出商品的具體信息,由STM32處理后,將結果發(fā)送給LCD顯示模塊。
本文提出的商品視覺識別是基于CNN算法的一種商品圖像識別系統(tǒng),利用圖像邊緣計算能帶來更快速的響應服務和更優(yōu)質的實時業(yè)務體驗[5]。商品識別系統(tǒng)流程圖如圖3所示。
圖3 商品識別系統(tǒng)流程圖
首先通過高清攝像頭采集每種商品上百張不同角度原始商品圖片數(shù)據(jù)作為數(shù)據(jù)集制作,預處理數(shù)據(jù)集為目標分辨率(將原始商品圖片轉換成224×224像素大小),圖像數(shù)據(jù)集依照TFRecord數(shù)據(jù)集格式構建,通過VOTT標記工具進行目標圖像區(qū)域標記,商品識別神經(jīng)網(wǎng)絡模型采用TensorFlow深度學習框架進行訓練,得到多次迭代后保存的訓練權重識別模型,最終導出可以被K210硬件平臺直接識別的Kmodel格式商品識別模型文件[6]。然后將訓練好的神經(jīng)網(wǎng)絡模型存放于SD文件系統(tǒng),K210控制芯片利用購物車上搭載的攝像頭(OV7740)進行實時捕獲并將捕獲的圖像數(shù)據(jù)直接傳輸至神經(jīng)網(wǎng)絡處理器KPU,KPU神經(jīng)網(wǎng)絡處理器通過加載并運行商品識別模型,進行快速卷積、批歸一化、激活以及池化等卷積神經(jīng)網(wǎng)絡運算,完成商品視覺識別任務。最后將識別結果通過串口發(fā)送至主控制器STM32。主控制器接收到識別模塊發(fā)送的識別結果時,等待重力傳感器發(fā)送新的重量信息進行差運算,得出此時放入的商品重量,將該商品理想的重量信息與計算得出的重量信息進行比對(指定誤差范圍內),判斷商品類別。同時主控制器獲取購物車內新總重量信息進行差運算,當放入新的商品,利用差值得出該商品重量為正值,同理當從購物車內取出商品,利用差值得到該商品的重量為負值,進而判斷商品是放入還是取出。
目標商品定位采用基于到達時間差TDOA算法的UWB定位技術。UWB定位模塊實獲取定位購物車位置,主控制器獲取目標商品位置并將購物車及目標商品位置坐標發(fā)送至顯示模塊。
UWB定位模塊包括MCU(STM32f103)和DWM1000射頻模塊。UWB室內定位系統(tǒng)組成包括標簽(購物車)、基站和定位服務器三部分[7]。UWB定位原理如圖4所示。標簽到達兩個傳感器的距離(傳輸速度與到達時間差之積為c×?t)之差可以確定一條雙曲線,四個傳感器就可以確定兩條雙曲線,這兩條雙曲線的交點就是待定位標簽的位置坐標。
式(1)中,(x, y)是待定位標簽的位置,(x1, y1)是已知基站1的位置,(x2, y2)是已知基站2的位置,同理通過基站3和基站4求出購物車位置,通過6組位置求均值,減少定位誤差。
本項目采用4基站布置在超市四個角落,有兩個基站分別布置在出入口(出口基站連接定位服務器),為提高定位精度,使基站與購物車于同一水平高度。UWB基站布置圖如圖5所示。
圖5 UWB基站布置圖
為從根本上解決超市排隊結帳購物結賬擁擠等問題,本項目采用購物車電子支付,實現(xiàn)快速結算功能。本項目的電子支付功能通過調用微信API進行訂單支付[8],購物車通過LCD顯示支付二維碼和支付狀態(tài)。具體過程如下。
當顧客在購物車上創(chuàng)建訂單后,購物車系統(tǒng)將創(chuàng)建訂單請求發(fā)送給超市后臺服務器,超市服務器通過當前系統(tǒng)時間生成1個唯一訂單號,并存儲至數(shù)據(jù)庫中。為防止訂單發(fā)生串單,設置1個設備在同一時間只能設置1個訂單。創(chuàng)建訂單后,超市服務器向微信發(fā)送下單支付請求,成功后微信將返回支付二維碼信息。支付系統(tǒng)記錄當前支付狀態(tài)后,發(fā)送結果和二維碼信息到購物車主控STM32,購物車通過LCD屏輸出支付二維碼顯示給顧客進行支付。在顯示二維碼后,購物車將不斷詢問服務器訂單是否完成支付,若訂單狀態(tài)為未完成時,將詢問支付平臺的支付狀態(tài),并將支付結果返回至購物車。同時支付平臺也會在顧客支付成功后將支付結果傳輸給超市服務器,服務器將處理數(shù)據(jù)寫入數(shù)據(jù)庫中。訂單創(chuàng)建及支付流程圖如圖6所示。
圖6 訂單創(chuàng)建及支付流程圖
人機交互模塊主要由LCD觸摸交互屏實現(xiàn),在購物車推手欄上安置一個電子式交互屏幕,輔助購物車實現(xiàn)商品導購、宣傳、商品結賬等一系列功能,人機交互界面如圖7所示。主控制器實時獲取購物車位置信息并顯示于LCD屏超市地圖中,當消費者通過搜索欄輸入類別或商品名稱查找某商品,主控制STM32獲取該商品的價格、位置、生產(chǎn)日期等信息。當消費者點擊該商品,STM32將該類商品的坐標信息發(fā)送至LCD顯示模塊的超市地圖中,消費者可以通過兩個位置坐標確定最終購買路線,當其到達指定商品位置附近,提示已到達指定位置附近等提示信息。當商品被放入至購物車中,主控制器將其價格、數(shù)量發(fā)送至LCD進行顯示,并顯示所購總價,購物者可以對消費數(shù)據(jù)一目了然[9]。當購物者點擊結賬時,STM32通過無線模塊發(fā)送下單請求和接收支付二維碼信息,并將支付二維碼發(fā)送至LCD顯示,當購物者通過微信付款后,顯示“支付成功”和“歡迎下次光臨”等問候語。
圖7 人機交互界面
經(jīng)過測試,該購物車可以實現(xiàn)商品識別、定位導購和便捷支付等功能。在商品識別方面本項目只采用100種商品分類檢測,在此條件下識別功能表現(xiàn)良好,雖識別效率稍有延遲,但識別準確率比較高。識別速度的快慢與訓練的識別模型和處理器運算能力有較大的聯(lián)系。在定位導購方面,因沒有過多物體阻擋,定位精度達到預期要求,若布置于商場中,定位精度會略有降低。在搜索某商品時,該購物車能成功顯示商品相關信息以及位置坐標于LCD上,定位精度良好。當商品處于購物車中上方,視覺識別模塊進行識別商品,在商品放入購物車底部,根據(jù)重力傳感器所測重量進行檢驗,并能將結果發(fā)送至LCD進行顯示。當點擊賬單結算后,LCD成功顯示微信支付二維碼,完成支付后顯示支付成功。
論文基于STM32和計算機視覺設計的智能購物車可以實現(xiàn)商品識別、定位、便捷支付功能,在理想的條件下可以實現(xiàn)一定速度的商品識別,系統(tǒng)整體功能表現(xiàn)良好。識別模塊處理器對識別速率有一定的影響,在后續(xù)的發(fā)展中,可根據(jù)需要采用AI算力更大的處理器,實現(xiàn)識別效率的提升。該型購物車具有功能豐富、功能模塊化、響應速度快、性價比高等優(yōu)勢,采用的模塊化方案便于實現(xiàn)模塊的更換,實現(xiàn)購物車各功能的升級。
[1]王博毅,張河,趙明偉,等. 基于單片機設計的Smart Buy 智能購物車[J]. 電子世界,2019(17): 175-176.
[2]劉雪,徐永進,秦雪雪. 基于單片機控制的智能購物車系統(tǒng)研究[J]. 河北農(nóng)機,2020(3): 35.
[3]蔣達央. 基于卷積神經(jīng)網(wǎng)絡的商品圖像識別系統(tǒng)設計[J]. 北京工業(yè)職業(yè)技術學院學報,2021,20(3): 28-31.
[4]張志山. 基于UWB的人員跟蹤定位系統(tǒng)的設計[J]. 電子世界,2020,10(3): 155-156.
[5]方梓鋒,張鋒. 基于K210和YOLOv2的智能垃圾分類平臺[J]. 自動化與儀表,2021,36(8): 102-106.
[6]王浩. 基于K210芯片的KPU硬件加速人臉檢測應用系統(tǒng)設計[J]. 辦公自動化,2021,26(11): 58-59,39.
[7]黃佳鑫,王民慧. 基于UWB技術的定位算法設計[J]. 智能計算機與應用,2020,10(11): 137-143.
[8]邵華梅,汪志成,徐麗琴,等. 基于STM32的散裝食品自動售貨機設計[J]. 機械制造與自動化,2021,50(3): 220-223.
[9]龍正江,劉麗華,林力,等. 基于物聯(lián)網(wǎng)可交互超市智能購物車設計[J]. 遼寧科技學院學報,2019,21(3): 17-18.
An Intelligent Shopping Cart Based on Machine Vision
In order to improve the shopping experience and shopping efficiency of offline supermarkets, an intelligent commodity recognition shopping cart based on machine vision is studied and designed. The intelligent shopping cart proposed in this paper is mainly based on computer vision, UWB ultra wideband positioning technology, weight sensing and other technologies to realize the intelligent identification shopping cart with the functions of commodity identification, positioning and shopping guide, real-time bookkeeping, convenient payment and so on. This paper introduces the system design scheme, hardware and software design of the shopping cart. The test results show that the system can realize the functions of commodity identification, positioning and shopping guide, convenient payment and so on.
commodity identification; smart shopping cart; UWB positioning; STM32
TP249
A
1008-1151(2022)02-0009-04
2021-09-15
廣西壯族自治區(qū)大學生創(chuàng)新創(chuàng)業(yè)訓練計劃項目(202110596194);廣西高等教育本科教學改革工程項目(2021JGA198)。
歐其勝,男,桂林理工大學機械與控制工程學院學生,研究方向為機械電子工程。
楊桂華,女,桂林理工大學機械與控制工程學院副教授,研究方向為計算機檢測與控制方向。