蓋康豪,李隆基,鄭瑜
(河南科技大學(xué) 信息工程學(xué)院,河南 洛陽(yáng) 471023)
目前,計(jì)算機(jī)算力水平的提升、通信技術(shù)的發(fā)展、電子元件成本的降低使得A-IOT 的體系模式得以廣泛運(yùn)用。其中,在果蔬售賣機(jī)領(lǐng)域,有兩種形式的果蔬售賣一體機(jī),一種是帶有冷藏功能的柜體式的自助售賣機(jī),生鮮果蔬存放其中,用戶需要通過操作顯示屏選擇相應(yīng)果蔬并付款,這種形式的果蔬售賣機(jī)體積龐大,容納貨物有限,價(jià)格昂貴,傳感器節(jié)點(diǎn)多從而導(dǎo)致維護(hù)復(fù)雜。另一種利用計(jì)算機(jī)視覺等技術(shù)的果蔬收銀機(jī),生鮮果蔬不直接存放在機(jī)器里,而是存放在無人店鋪中,用戶可以將選好的果蔬放入識(shí)別臺(tái)并進(jìn)行付款,由于其免去了超市收銀員的勞動(dòng)成本同時(shí)生產(chǎn)成本較低、升級(jí)更新簡(jiǎn)單從而在一些無人水果店得以廣泛運(yùn)用。但是,目前市面上的果蔬收銀機(jī)只能一次性識(shí)別一類果蔬,在用戶挑選多類果蔬的情況下需要多次識(shí)別并支付操作,這樣既會(huì)降低效率也會(huì)使得用戶的體驗(yàn)感變差。
針對(duì)該問題,設(shè)計(jì)出一種果蔬收銀一體機(jī),該收銀機(jī)機(jī)利用一個(gè)識(shí)別攝像頭可以同時(shí)將識(shí)別區(qū)內(nèi)的不同稱重識(shí)別區(qū)上的果蔬同時(shí)識(shí)別出來,并計(jì)算出商品的價(jià)格信息以供顧客支付,提高了支付效率與用戶體驗(yàn)感。
該果蔬收銀一體機(jī)利用hx711 應(yīng)變片傳感器測(cè)量出相應(yīng)果蔬的重量,攝像頭傳感器搭配YOLO 目標(biāo)檢測(cè)模型識(shí)別果蔬的種類,通過NB-IoT 通信方式連接云端,開發(fā)板自帶的Wi-Fi 功能接入互聯(lián)網(wǎng),通信協(xié)議采用物聯(lián)網(wǎng)輕量級(jí)協(xié)議MQTT,采集到云端數(shù)據(jù)庫(kù)中果蔬種類售價(jià)信息后將數(shù)據(jù)保存到本地并且云端MQTT 主題更新時(shí)本體可以收到相應(yīng)的通知,該售價(jià)信息結(jié)合果蔬的重量可以計(jì)算出顧客需要支付的費(fèi)用,支付方式可以采用RFID 射頻磁卡支付或者借助百度AI 提供API 實(shí)現(xiàn)的人臉支付。此外,每個(gè)果蔬收銀機(jī)內(nèi)部設(shè)有GPS 定位模塊,可以將不同的收銀機(jī)所處售賣點(diǎn)的每日售賣信息發(fā)生至云端數(shù)據(jù)中心以方便統(tǒng)計(jì)與管理借助,借助已有的數(shù)據(jù)分析科學(xué)模型可以做出相應(yīng)的經(jīng)營(yíng)決策。
顧客使用時(shí),將選好的果蔬按類別放在不同的稱重臺(tái)上,待識(shí)別完畢后可以在交互屏幕上查看識(shí)別信息并完成支付操作。產(chǎn)品也可以通過MQTT 協(xié)議訂閱固件或視覺模型的更新主題,從而可以使得在遠(yuǎn)端發(fā)布更新的固件或視覺模型,在本地完成更新升級(jí)。
所設(shè)計(jì)的果蔬收銀一體機(jī)采用MaixSense 開發(fā)板。該開發(fā)板以全志R329 雙核Cortex-A53 處理器作為核心單元,帶有MaixPy3 固件,具有AI 處理單元,IO 口可以多功能擴(kuò)展,可以運(yùn)行Linux 系統(tǒng),開發(fā)者可以直接在開發(fā)板上跑通相關(guān)CV 等AI 模型。在該設(shè)計(jì)中,我們將Armbian 系統(tǒng)裝入該開發(fā)板中。采用攝像頭模塊來實(shí)時(shí)獲取識(shí)別臺(tái)上的商品信息,并使用YOLOv3 模型識(shí)別果蔬的種類,通過GPS 模塊獲取當(dāng)前所在地點(diǎn)經(jīng)緯度信息同時(shí)由NB-IoT 通信模組與云端服務(wù)器相連以實(shí)現(xiàn)云端信息的數(shù)據(jù)交互,網(wǎng)絡(luò)協(xié)議采用MQTT。果蔬一體機(jī)會(huì)將計(jì)算好的果蔬與價(jià)格信息顯示在交互式屏幕上,用戶據(jù)此可以采用磁卡進(jìn)行支付,借助現(xiàn)有百度AI 的API 接口還可以實(shí)現(xiàn)人臉支付、掃碼支付的功能。如圖1所示。
圖1 總體設(shè)計(jì)方案圖
以R329 作為核心單元的MaixSense 開發(fā)版,內(nèi)置多種硬件加速單元(KPU、FPU,F(xiàn)FT 等)與MaixPy3 固件,支持YOLOv3 等AI 模型,外設(shè)(FPIOA、UART、GPIO、SPI、I2C、I2S、TIMER)齊全,板載資源也十分豐富,包含Wi-Fi 模組可接入互聯(lián)網(wǎng),可裝載Linux 嵌入式系統(tǒng),體積十分小巧,支持MicroPython 進(jìn)行開發(fā),減小了開發(fā)難度。
在壓力傳感器模塊采用專門為電子秤設(shè)計(jì)hx711 芯片,搭配橋式應(yīng)變片傳感器從而具有精度靈敏度高且使用方便的優(yōu)點(diǎn)。采用帶有陶瓷天線的中科微芯片AT6558D 的GPS 模塊可以準(zhǔn)確獲取到當(dāng)前的經(jīng)緯度信息,攝像頭模塊采用廣角攝像頭傳感器OV5640 以錄入果蔬種類。在射頻模塊采用RFID 技術(shù)的MFRC-522,成本低且有足夠好的IC 感應(yīng)。
借助移遠(yuǎn)的BC260Y-CN 我們可以獨(dú)立使用NB-IoT,該芯片內(nèi)置的超級(jí)天線可以增強(qiáng)信號(hào),與中國(guó)移動(dòng)的物聯(lián)網(wǎng)卡相配合可以將采集的數(shù)據(jù)上報(bào)給云端,也可以從云端數(shù)據(jù)中心獲取想要的數(shù)據(jù)。但是NB-IoT 的通信方式具有一定的局限性,其下行時(shí)延高的缺點(diǎn)導(dǎo)致一些互聯(lián)網(wǎng)的API 調(diào)用與數(shù)據(jù)庫(kù)的交互出現(xiàn)差錯(cuò),MaixSense 的Wi-Fi 功能(搭配http協(xié)議)可以解決此問題。
用戶交互單元主要包括交互式顯示屏,該屏幕采用串口屏幕,由于串口屏幕內(nèi)置了STM32 處理器,可以分擔(dān)一定的計(jì)算任務(wù),所以利用它可以節(jié)約單片機(jī)的引腳資源以及內(nèi)存的計(jì)算消耗。
hx711 模塊本質(zhì)為一個(gè)AD 轉(zhuǎn)化芯片,滿量程輸出為輸入電源的激勵(lì)電壓×靈敏度(1 mV/V),在硬件連接時(shí)由A/B 兩個(gè)通道,A 通道帶有128 倍信號(hào)增益,可以將5 mV的電壓放大128 倍,然后采樣輸出24 BitAD 轉(zhuǎn)換的值,單片機(jī)通過指定時(shí)序?qū)?4 Bit 數(shù)據(jù)讀出。
Hx711 本質(zhì)是對(duì)應(yīng)變片形變而產(chǎn)生電路阻值的測(cè)量,所以對(duì)應(yīng)變片的安裝方式也尤為重要,其粘貼方式采用雙臂電橋的方式,即一個(gè)應(yīng)變片粘貼于受力體上方,受力拉伸,另一個(gè)粘貼于受力體下方,受力壓縮,這樣既可以消去溫度誤差也可以提高傳感器的靈敏度。如圖2所示。
圖2 HX711 原理圖
通過輸出hx711 的對(duì)應(yīng)時(shí)序,使用A 通道讀取,我們 可以得到對(duì)應(yīng)的AD 數(shù)值,記為VAD,量程為span,最終重量為weight,有如下計(jì)算公式:
經(jīng)過去皮調(diào)零后,采集到重量測(cè)試數(shù)據(jù)與相對(duì)誤差如表1所示。
表1 hx711 測(cè)試結(jié)果
定位模塊采用維特智能的ATK-NEO-6M-GPS,該定位模塊使用串口通信(UART)的方式傳輸信息,定位數(shù)據(jù)采用NMEA-0183 協(xié)議。在測(cè)試中,我們將使用NMEA-0183協(xié)議命令表中的定位地理信息($GPGLL)、當(dāng)前衛(wèi)星信息($GPGSA)、可見衛(wèi)星數(shù)($GPGSV)來獲取相關(guān)的位置信息,并繪制其中的衛(wèi)星視圖。利用百度地圖坐標(biāo)轉(zhuǎn)化API 將獲取到的GPS 系統(tǒng)使用的坐標(biāo)系轉(zhuǎn)換為百度坐標(biāo)系BD09,并分析測(cè)量時(shí)的搜星數(shù),搜星數(shù)越多,測(cè)量結(jié)果越準(zhǔn)確。
如圖3所示,在GPS 搜星圖中,紅色標(biāo)號(hào)代表衛(wèi)星信號(hào)未達(dá)到可用標(biāo)準(zhǔn),綠色則表示衛(wèi)星信號(hào)已達(dá)到可用標(biāo)準(zhǔn)。GPS 測(cè)試數(shù)據(jù)如表2所示。
圖3 GPS 搜星圖
表2 GPS 測(cè)試數(shù)據(jù)
為僅用一個(gè)攝像頭模塊將視野中的所有果蔬種類檢測(cè)出來,使用多目標(biāo)檢測(cè)算法YOLOv 模型。首先對(duì)果蔬種類制作相應(yīng)數(shù)據(jù)集(主要包含apple、pear、banana、orange 四類),共200 張標(biāo)注圖片,每張圖片包含上述的2~4 類水果種類,標(biāo)注完成后將數(shù)據(jù)集按照7:2:1 的方式劃分為訓(xùn)練集、驗(yàn)證集、測(cè)試集。圖像像素大小設(shè)置為360×360,數(shù)據(jù)批次大小為10,優(yōu)化器模型采用Adam,其余超參數(shù)使用YOLO 預(yù)訓(xùn)練模型默認(rèn)參數(shù),進(jìn)行150輪次訓(xùn)練,訓(xùn)練結(jié)果的mAP指標(biāo),如圖4所示,為在IoU閾值為0.5情況下的mAP指標(biāo)訓(xùn)練曲線,在計(jì)算機(jī)視覺的目標(biāo)檢測(cè)算法中,其mAP 面積數(shù)值越高表示訓(xùn)練識(shí)別與檢測(cè)效果越好,最高值為1,在測(cè)試中其值最終高達(dá)0.963,說明目標(biāo)檢測(cè)訓(xùn)練結(jié)果良好。
圖4 mAP_0.5 訓(xùn)練曲線
我們將攝像頭傳感器獲取的圖像信息帶入模型,將標(biāo)識(shí)概率閾值設(shè)置為0.7,并將檢測(cè)結(jié)果的位置與概率信息標(biāo)注出來。如圖5所示。
圖5 果蔬檢測(cè)結(jié)果
為使得終端節(jié)點(diǎn)的果蔬數(shù)據(jù)信息始終與云端數(shù)據(jù)庫(kù)相同,我們使用MQTT 主題訂閱的方式,每個(gè)終端節(jié)點(diǎn)均訂閱云端服務(wù)器的果蔬信息主題,每當(dāng)云端服務(wù)器將該主題信息更新時(shí),終端節(jié)點(diǎn)會(huì)接收到主題信息改變的通知并修改本地內(nèi)存的果蔬信息表,搭配裝有中國(guó)移動(dòng)物聯(lián)網(wǎng)卡的移遠(yuǎn)BC260Y-CN 通信模塊,這種方式合理利用了NB-IoT 上行通信時(shí)延低和下行通信時(shí)延較高(相對(duì))的特點(diǎn),避免了每次計(jì)算數(shù)據(jù)時(shí)都向云端服務(wù)器發(fā)送拉取果蔬數(shù)據(jù)信息請(qǐng)求,同時(shí)也實(shí)現(xiàn)了本地果蔬數(shù)據(jù)信息與云端實(shí)時(shí)同步。我們利用云端服務(wù)器發(fā)布主題,終端節(jié)點(diǎn)訂閱主題,交互信息的格式采用JSON 數(shù)據(jù)格式,數(shù)據(jù)內(nèi)容包括果蔬的名稱、每斤價(jià)格以及產(chǎn)地,利用MQTT 測(cè)試軟件MQTTfx 打印交互內(nèi)容。如圖6所示,圖為MQTT 云端消息訂閱調(diào)式日志。
圖6 MQTT 訂閱日志
終端節(jié)點(diǎn)獲取到每個(gè)果蔬種類對(duì)應(yīng)的價(jià)格信息后,便將各個(gè)傳感器測(cè)得的結(jié)果進(jìn)行數(shù)據(jù)融和操作從而計(jì)算出付款價(jià)格等信息。其中主要用的數(shù)據(jù)有果蔬重量信息、果蔬目標(biāo)檢測(cè)位置與種類信息、GPS 定位信息等。數(shù)據(jù)融和步驟如圖7所示。
圖7 數(shù)據(jù)融和步驟
其中,付款金額信息price 代表了所有果蔬測(cè)量?jī)r(jià)格的總和,每種果蔬種類價(jià)格的計(jì)算由目標(biāo)檢測(cè)中果蔬的單位價(jià)格信息與檢測(cè)位置對(duì)應(yīng)的壓力傳感器的重量信息決定,用數(shù)學(xué)公式可以表示為:
將果蔬價(jià)格計(jì)算出來后,為了方便在云端進(jìn)行數(shù)據(jù)分析,還可以根據(jù)付款數(shù)據(jù)生成訂單信息以及GPS 付款地點(diǎn),通過MaixSense 的Wi-Fi 功能將數(shù)據(jù)發(fā)送至服務(wù)器,在云端可以進(jìn)行數(shù)據(jù)庫(kù)的操作并結(jié)合一些金融數(shù)學(xué)模型還可以做出一些商業(yè)的經(jīng)營(yíng)決策內(nèi)容并生成相應(yīng)的MQTT 主題。
本研究涉及的果蔬收銀一體機(jī)基于智能識(shí)別、稱重以及付款于一體,在目前便捷生活理念的驅(qū)動(dòng)下,在果蔬店、無人便利店、無人超市等自動(dòng)無人化零售領(lǐng)域具有廣闊的市場(chǎng)前景。該研究設(shè)計(jì)利用目標(biāo)檢測(cè)算法可以同時(shí)計(jì)算出用戶挑選的不同果蔬的數(shù)據(jù),合理利用了NB-IoT 的低功耗、連接數(shù)量大、上行時(shí)延低但下行時(shí)延高的特點(diǎn),MQTT 協(xié)議實(shí)現(xiàn)本地?cái)?shù)據(jù)模型與云端的同步,搭配MaixPy3 開發(fā)的計(jì)算機(jī)視覺模型實(shí)現(xiàn)了A-IOT 的體系架構(gòu),在操作便捷性上對(duì)當(dāng)前果蔬自助收銀機(jī)具有重大的改進(jìn)意義。