吳曉鳳,秦 菁,劉子翔,徐浩然
(1.西安鐵路職業技術學院,西安 710026;2.長安大學 信息工程學院,西安 710064)
如今隨著物聯網技術的飛速發展,我們的生活向著更智能,更便捷,更人性化的方向發展。智能硬件產品如雨后春筍,拉開了新的信息化革命[1]。無人超市[2]、無人駕駛和無人配送等技術的迅速發展,進一步彰顯了科技進步帶來的便利性。隨著技術的不斷成熟,規模更大、覆蓋范圍更廣、成本更低廉的無人零售時代已經到來,在全球新冠疫情大環境下,人們越來越傾向于避免接觸和零接觸的購買方式,這也加速了無人售貨技術的發展。我們相信,未來的無人售賣系統將會更加精準、高效、安全,并能夠更好地滿足人們對商品質量、服務品質和購物體驗的要求。我們將持續不斷地投入研發,將科技進步和人類的需求相結合,為人們創造更加智能、更加便捷的生活方式。
國家統計局數據的結果展示,從2012年到2018年,全國線上的零售額的比重連年增加,而線下的零售額的比重則是連年下降。但是,自2018年開始,線上的零售額的增長處于乏力狀態[3],一方面由于競爭壓力大,另一方面也是由于線上獲客成本逐漸增加。因此,最近幾年來,如何在線下進行更好的數字智能化的零售成為了各大品牌和資本的亟待解決的問題。而相比較于傳統的方式,轉向人工智能也無疑是更簡單更便捷的方式。據統計,零售商對人工智能技術的支持逐漸加碼,人工智能在線下零售領域內也將獲得更好更完善的發展,據預測,2023年無人零售對人工智能技術的投入將增長到70億[3]。因此,在良好的發展環境和巨大的投資雙重激勵之下,無人售貨行業及其技術必將獲得更好更快的發展,也必將對后疫情時代和老齡化社會產生積極的貢獻,向消費者提供更多便利。
在無人超市中,人們不僅可以享受到豐富的商品種類,還能夠體驗到極大的購物便利。相比于傳統的商場或者超市,無人超市省去了排隊等候的時間,果蔬類商品稱重的時間和結賬時把所有商品拿出購物車的不便,使得顧客可以更加高效地完成購物。和自動售貨機一樣,無人超市也允許顧客自助結賬,利用微信支付,支付寶,Apple Pay云閃付和信用卡等多種移動支付方式實現無現金交易,這不僅方便快捷,也增強了顧客購物的自主性和個性化體驗。但是一般的無人售貨超市面臨著成本較高,并且水果蔬菜生鮮等產品,售賣方式單一不足的缺陷,例如Amazon Go Grocery 超市通過安裝大量的傳感器和攝像頭,進行協同跟蹤配合,以達到無人售賣的方式,Amazon Go的實現方法是利用動作傳感器,紅外傳感器,重量傳感器,攝像頭與毫米波雷達識別動作、商品和人的位置關系,將信息上傳至云端,通過位置和算法進行處理。
首先是視覺識別技術,如顧客將手伸向貨架,通過顏色識別除了膚色周圍還有沒有其他顏色判斷顧客手上是否有商品。如果顧客的手在伸入貨架上時沒有物品,在離開時有物品,那么就認為顧客拿起商品,相反就是放回。同時配合對商品區域進行識別,Amazon Go Grocery 超市的商品貨架被使用隔板分成若干單個區域,每個區域只存在一個件商品,同時每個區域都配備了獨立的多種傳感器,如利用紅外傳感器和雷達通過識別商品附近的光線是否被遮擋,識別商品是被拿走或放回,利用貨架和購物車上的重量傳感器,例如貨架上某一壓力傳感器受到的壓力減小,在一定時間內,其附近某一購物車內壓力傳感器的壓力增大同樣地的值。結合顧客的位置信息判斷其被顧客選擇。亞馬遜無人便利店所使用的標簽并不是常用的條形碼或者RFID,而是一種獨創的點狀標簽,這種類似盲文的標簽更利于攝像頭識別。
識別顧客身份和Amazon賬號信息,可以在顧客刷手機進店之后對其手機GPS或者WI-FI進行跟蹤定位,搭配圖像識別的軌跡跟蹤定位,比如某一區域的商品被檢測到拿起或放回,同時只有一個在此區域里,那系統認為該客戶拿起該商品,而如果同時區域內有多人且多人而且同時都在拿附近的商品,目前Amazon Go Grocery 超市只通過位置無法準確判斷誰拿走商品,所以需要多維度姿態檢測。和多種方法綜合使用。做出綜合判斷。
Amazon Go Grocery 超市的無人購物系統另一優勢在于數據的收集,傳統的購物模式很難收集和調查顧客的購物喜好,而無人收銀或自助收銀,利用位置信息和眼動追蹤技術可以知道顧客在貨架前的流量、停留時間和次數,顧客的視線停留時間和,以及顧客每次拿起/放回的商品及其個數,實時反饋的貨架庫存。將收集到的數據可以用于廣告宣傳和包裝設計。
同時,當系統監測到客戶拿起或放下商品時,會不斷與服務器,數據庫進行數據交換和刷新,同時將商品清單同步到顧客的手持終端如手機上,顧客可以實時查看自己購買的商品,當顧客離開Amazon Go Grocery 超市的區域,GPS和WiFi定位檢測到客戶離開,且一段時間在超市區域檢測不到顧客的存在,系統認為顧客已經離開,發出指令自動在顧客綁定的信號卡,Paypal或Apple Pay賬戶上進行扣款。
但這樣的成本就大大的提高了,涉及到大量的傳感器,攝像攝影設備,大量帶寬,并且需要極高的算力,前期投入非常高昂,不適合在中國的中小城市的市場進行普及,而簡單的自助收銀臺,又達不到自動識別果蔬生鮮的功能,無法真正做到無人售貨。至于Amazon Go Grocery 超市對于像水果、蔬菜、肉類等生鮮商品,都無需稱重,按照數量計費的方法也有著極大的不合理性,不符合中國消費者的購物習慣,并且Amazon Go Grocery 超市的傳感器雖然可以較為準確的識別正常購物行為,但對非正常購物行很難處理,如顧客故意遮擋攝像頭,不攜帶手機進入超市,利用強磁鐵破壞設備。而UNUQLO服裝銷售在商品標簽中安裝RFID芯片,提前在芯片中錄入商品型號,尺寸等信息,當其被放入檢測設備時,其中的金屬線圈產生感應電流,發出無線射頻信號,利用有限的設備就能夠快速準確得匹配儲存在云端的價格和商品,計算總價和優惠,并且提供會員服務,并且起到防偽作用,不需要大量的攝像頭和傳感器,但果蔬產品有著數量大,價格時效性強,單價低等特點,RFID芯片的缺點也十分明顯,安全性不足,簡單的錫箔紙或金屬盒既可以干擾其正常工作。也不能用于液態商品。同時,RFID芯片只適用于數量少且高單價的商品,且工作量大,這種方法并不適用于我國的龐大的果蔬銷售市場。因此除了可以結算一般商品外,還具有自主稱重且識別出水果生鮮、智能判斷誤檢和顯示顧客購買清單等功能的智能售賣系統被市場迫切需要[4]。
為實現智能售賣果蔬,本文擬提出一種新的智能無人果蔬售賣系統,首先安裝在售賣機內的攝像頭可以采集稱重臺上果蔬圖像,系統通過目標檢測算法可以快速且精準地識別出果蔬類別和位置[5-7]。其次,本系統使用的稱重模塊在液晶顯示器上顯示出重量,同時將重量數據傳入系統,最終根據對應的果蔬單價計算出果蔬總價,在系統界面顯示,并且通過通信主控將購物清單發送到購物者終端和云端。實驗結果證明,本系統可以自動檢測顧客誤操作的情況,準確識別稱重臺上的水果是否為同一類別,并引導顧客進行操作,減少誤檢情況發生,方法具有可行性。
通過對無人果蔬生鮮售賣系統需求分析的解讀與分析,認為本系統應該具備4個特征:一是感知與執行功能,即利用重力傳感器等隨時獲取稱重臺重量信息;二是智能目標檢測,即將所有與計算機視覺相關的功能集中到終端,由它進行總體調控;三是可傳遞,AM3358與終端,購物車要不斷的進行信號的交換,系統通過4G通信模塊完成此功能;四是顧客應用,顧客的基本設置、與系統交互等功能都是通過中控屏來完成。
故基于以上4個特征提出了系統的體系結構,稱重模塊以51單片機為控制單元,采用HX711A/D轉換芯片將壓力傳感器得到的模擬信號轉為數字信號[8-10],再通過串口通信發送給AM3358嵌入式平臺[11-12];處理端將攝像頭采集到的圖像通過本系統改進的目標檢測算法識別出水果/果蔬種類,將其對應單價通過串口通信發送給嵌入式控制端,嵌入式控制端最終計算出進行稱重的水果總價,將其通過串口通信發回處理端并在處理端結果顯示屏顯示,同時通過無線通信將總價信息發送給購物車移動端和閘機控制模塊。系統結構圖和系統示意圖分別如圖1和圖2所示。

圖1 系統結構圖

圖2 系統示意圖
本模塊實現實時監測所放商品的重量。具體步驟如圖3所示。前端信號處理時,選用放大、信號轉換等措施來增加信號采集強度,通過AD芯片HX711將模擬信號轉為數字信號,輸入單片機處理端,重量數據將在LCD1602顯示器顯示,通過一組按鍵控制去皮、傳感器調節參數等功能。這種方案不僅加強了人機交換的能力,而且滿足設計要求,后通過通信模塊把數據傳送到終端。

圖3 系統設計硬件框圖
2.1.1 系統電源電路設計
由于該系統中的51單片機、AD轉換芯片以及液晶顯示器所需要的電源電壓均為5 V,為保證本系統的穩定和可靠運行,需要設計一個可以穩定提供5 V電壓的供電系統。由于USB接口供電方便程序調試,本系統電源電路采用的是USB供電方式,并且在電源輸入口裝上LED電源指示燈,用于判定電源是否正常工作。該系統電源電路設計如圖4所示。

圖4 電源電路設計
2.1.2 單片機控制電路設計
該系統的主控電路的組成是STC89C52單片機,晶振電路和復位電路,單片機控制電路是實現整個系統功能的核心,電路連接方式如圖5所示。
2.1.3 系統顯示電路設計
系統使用LCD1602型液晶屏幕實現數據顯示功能,其通過連接電路與51單片機相連接,如圖6所示。

圖6 系統狀態顯示電路圖
引腳1 (GND)是LCD1602型液晶屏的接地引腳,引腳2 (VCC)是LCD1602型液晶屏的電源引腳,引腳3 (VL)是液晶顯示器對比度引腳,通過10K歐姆電位器接地,通過改變電位器來調節LCD屏幕亮度,引腳4(RS),引腳5(R/W),引腳6(E)是LCD1602型液晶屏的片選控制引腳,分別連接到51單片機的P2.5、P2.6、P2,7端口,引腳7-14(D0~D7 )為數據接口,與51單片機的P0口相連,用于實現8位數據的傳輸;15腳為液晶的背光控制腳正極,接電源,16腳為液晶的背光控制腳負極,接地。
2.1.4 稱重模塊軟件設計
1)系統程序軟件流程圖:
系統程序軟件部分包括界面顯示、按鍵功能顯示以及總價信息顯示3個方面。程序開啟時首先顯示初始化界面,當檢測不到按鍵時將重新顯示初始化界面,直到檢測到按鍵為止;接著顯示各按鍵的功能,當稱重臺上檢測到重物時便會在顯示屏上顯示總價信息。設計流程圖如圖7所示。

圖7 系統主程序流程圖
2)系統顯示部分流程圖:
顯示部分子程序用于判斷LCD從單片機接收的數據是否在液晶屏上顯示,并使用按鍵控制顯示數據的刷新和保持。顯示器開啟時先檢測按鍵,無誤后啟動A/D轉換器,將硬件傳輸的模擬信號轉換為數字信號,再將數字信號交由顯示器顯示。設計流程圖如圖8所示。

圖8 系統顯示部分流程圖
3)系統按鍵檢測部分流程圖:
鍵盤共有3個按鍵,鍵盤按下按鍵后發射出電信號,使用電信號傳遞功能選擇以及數據處理等需求信息。系統啟動時首先初始化LCD,在界面顯示字符,當按下某個按鍵時系統便根據按鍵所發射出的電信號讀取信息,調用LCD顯示按鍵所對應的功能。設計流程圖如圖9所示。

圖9 按鍵檢測部分流程圖
ZigBee技術是一種短距離無線通信技術[13],該技術能夠為顧客提供機動、靈活的組網方式。可以提供1000個以上的傳感器之間的相互協調并實現實時通訊。具有低功耗,短時延,低成本,低速率,高容量,高安全,免執照頻段等特點[14-15]。被認為是實現工業互聯網的重要技術。

圖10 ZigBee網絡體系結構和實物圖
本系統的網絡結構采用星型網絡拓撲結構。在整個網絡系統中,主要結構由協調器、路由器和終端設備組成。平臺中的協調器主要是一個主節點FFD,即主站設備。該節點是整個網絡系統的核心,主要用于接收PC設備轉發的水果檢測結果和列表信息,并且實時更新、存儲和傳輸客人的購物信息,如會員賬號,積分,優惠券等。同時,協調器設備還可以與機器連接,將傳輸到各終端購物車的購物信息依次存儲在OneNET云端,從而建立一套完整的智能購物和客戶數據管理系統。
PC設備為每個客戶建立客戶檔案,將消費明細,積分等信息存儲起來,供商家提供會員卡服務、消費習慣分析等用途。此外,針對老年人操作智能設備不習慣、不方便,客人有特殊需求的情況,終端購物車設備還建立了一鍵式服務功能,按下后發出位置信息給最近的服務人員終端,使顧客的購物體驗更加便捷和舒適。

圖11 目標檢測網絡YOLOF
目標檢測網絡YOLOF(you only look once fruits)以YOLOX網絡為基礎[16-18],結合YOLOV5[19]在目標檢測領域的優勢,在其頸部網絡,從主干網絡中提取到的多個特征進行融合加強,使用C3,C4,C5作為特征融合的輸入[20],這3個層次分別用來預測小物體,中等物體和大物體。當輸入為(640,640,3)的時候,選取3個層次跨度分別為8,16,32的特征,他們的整體尺寸為(80,80,256)、(40,40,512)、(20,20,1 024),并且隨著特征圖層大小的衰減,其中的語義信息逐漸豐富,而特征的細粒度則逐漸衰減。之后,將這3個特征輸入PANet,通過一個自上而下的融合和一個自下而上的融合,首先將(20,20,1 024)的特征層進行卷積操作對通道進行調整為P5,P5進行上采樣后與(40,40,512)特征層堆疊,然后使用CSPlayer對融合后的特征進行細化增強,得到P5_upsample,此時獲得的特征層為(40,40,512)。P5_upsample=(40,40,512)的特征層進行1次1X1卷積調整通道后獲得P4,P4進行上采樣后與(80,80,256)特征層進行結合,然后使用CSPLayer進行特征提取P3_out,此時獲得的特征層為(80,80,256)。P3_out=(80,80,256)的特征層進行一次3x3卷積進行下采樣,下采樣后與P4堆疊,然后使用CSPLayer進行特征提取P4_out,此時獲得的特征層為(40,40,512)。P4_out=(40,40,512)的特征層進行一次3x3卷積進行下采樣,下采樣后與P5堆疊,然后使用CSPLayer進行特征提取P5_out,此時獲得的特征層為(20,20,1 024)。頸部網絡通過上采樣和下采樣后與相鄰的特征層互相融合,使得不同層次的信息相互融合,使得語義信息和細節信息達到較好的平衡,最終的頸部也就是在加強特征的提取,最終的輸出則是P3_out,P4_out,P5_out。
對于檢測網絡頭部,使用3個類似的檢測頭,分別對上一個模塊的輸出進行預測回歸。在這一塊,與之前的YOLO系列不同,YOLOX使用一個解耦的頭,將分類和回歸兩個任務解耦,通過卷積將不同的分支任務卷積成不同的通道數,分類的通道數為(種類數+1),回歸的通道數則為4。YOLOF網絡結構圖如圖11所示。
3.2.1 對spp網絡的改進
由于spp網絡是使得一個特征層通過不同大小的池化核所獲得的分支通過堆疊而形成一個新的且具有更多豐富信息的特征結構,但是由于可能不同池化對不同位置信息的損失和提取有著較大的差異,為了使得spp模塊可以對某些位置和通道的信息更加注意,在spp加上一個CABM分支,這一部分既有著通道注意力也有著空間注意力,所以改進的SPP模塊對有效信息有著更強的提取能力。

圖12 SPP改進
3.2.2 對損失函數的改進
將損失中的回歸損失改為CIOU函數,先前的IOU損失雖然具有尺度不變性,較之前的歐幾里得距離有著很大的進步,但當物體完全不相交時,IOU損失的作用便會微乎其微,并且IOU由于只是比值的概念,它并不能很有效的反應重合度大小,它對目標物體的尺寸,以及中心點位置均是不敏感的,CIOU損失不僅考慮了真實框和目標框的的重合率,而且將物體間的中心距離,尺度都考慮進去,使得懲罰項更加平衡,回歸更為穩定,大大減少了收斂所花費的時間,減少了時延。不僅如此,由于在預測中,一些位置會產生低質量的預測結果,而且更希望我們的預測大多數更貼合于真實框的中心,所以需要對損失函數的計算進行加權處理。為了對邊緣的預測結果有著更大的乘法,因此將損失函數前的系數定義:
(1)
其中:l*,r*,t*,b*分別為真實框中心到預測框左側,右側,上側,下側的距離。
3.2.3 對FPN網絡的改進:SHA-FPN
由于原本的網絡在頸部時利用之前提取的特征不夠充分,所以在第一次的Csplayer的輸出(160,160,128)進行focus下采樣,然后通過CAM模塊提取其通道特征信息,然后對(80,80,256)的輸入進行加權處理,而在(20,20,1 024)后面也同樣的操作,對上層的信息進行加權處理,這樣無論是大目標還是小目標都有著更高的MAP。并且可以在其中進行跨層次融合。
因為目標檢測網絡需要大量的數據集來進行訓練以及驗證,因此選取了一千多張由十幾種水果組成的混合圖片。在選取圖片時首先要保證不同類別圖片的數量均衡,其次還需要考慮其對不同場景的魯棒性需求,所選取的數據集中既要包含有單個類別的,又要包含有多個復雜類別的圖片,既要有包含單個目標,也要包含多個目標的。使用labelimg軟件對圖片進行標注,在圖片中標注物體的位置以及目標的種類,并將其自動保存為.xml文件,最后將圖片與標注的label信息一同送入網絡中訓練。
無人果蔬售賣系統顯示界面包含實時檢測顯示窗口、計價欄(含重量顯示、商品種類顯示、商品單價顯示和總價顯示)和購物清單欄。界面可直觀地展示以下幾個功能:
1)給顧客展示稱重每個果蔬種類、重量、單價和所有商品的總價等信息;
2)果蔬放置錯誤檢測功能,當顧客出現誤放,錯放,操作,及在當前結算果蔬中混入其他類別果蔬,將在計價欄中出現錯誤放置的提示;
3)在購物清單欄設計了添加、清空和確認支付等功能按鈕,只有當顧客確定當前商品檢測計價正確時,點擊添加按鈕,當前商品及其總價加入購物清單,當顧客出現錯誤添加時,可以點擊清空按鈕清除當前清單內容,顧客點擊確認支付按鈕后,屏幕上將出現引導界面幫助顧客完成支付,同時將清單信息發送到購物車端,服務器,數據庫和云端,并儲存到顧客信息數據庫中。系統使用交互式操作,顧客只需點擊3個按鈕即可完成各種操作,操作界面如圖13所示。

圖13 人機互動界面

表1 本系統實驗配置
網絡訓練300個epoch,batch_size = 16,采用學習率余弦下降訓練策略,初始學習率為0.01,最終為0.000 1。訓練過程平均損失值如圖14所示。

圖14 訓練過程平均損失值
從圖14可以看出,訓練過程平均損失值總體上隨著訓練次數的增加,總體上持續下降。
對水果的類別預測和位置預測如下所示,能成功檢測出水果的類別和位置,并且同時識別多種水果,在部分遮擋的情況下仍能準確識別,且預測的準確度較高,速度較快,具有很好的穩定性。例如在一張圖中有形狀大小相似的葡萄和藍莓,系統可以通過其顏色正確識別,并且可以識別單個葡萄和整串葡萄。

圖15 果蔬目標檢測效果圖
本文采用當前幾個主流的目標檢測算法在本文數據集基礎上進行實驗,實驗結果對比如下,本系統改進的算法對檢測性能有一定的提升。

表2 各算法評價指標
稱重模塊實物展示,稱重臺機構和稱重效果如圖16所示。

圖16 稱重模塊
LCD屏安裝和鍵盤安裝在在購物車上方,方便顧客查看和操作,使用添加、清空和確認支付等功能。
本系統的實時檢測功能不僅可以識別各種水果的種類,還可以準確判斷它們的位置,從而在不需要人工干預的情況下完成稱重和計價。同時,系統還通過串口通信和網絡通信將檢測到的信息傳遞到多個終端上,使得顧客可以方便地獲取商品的價格和信息,實現真正的無人售貨和無感支付,極大減少了人工操作。
為了實現這些功能,該系統采用了軟硬件結合的方式,硬件部分包括稱重臺、攝像頭和通信模塊等設備,通過深度學習算法對采集到的圖像進行處理,實現目標檢測、物體分類等功能。軟件部分則包括了目標檢測算法的改進、調試和維護以及基于Tkinter庫的實時監測界面,通過實時監測界面實現系統功能的展示。
通過對一階段anchor-free目標檢測網絡YOLOX的SPP模塊,FPN等結構進行了改進,通過增加通道注意力和空間注意力機制,可以使得網絡聚焦于圖片中信息量更豐富的位置,同時我們修改了回歸損失計算函數,將IOU損失函數改進為CIOU損失函數,不僅僅考慮到了更多的位置信息,而且也加速了網絡的收斂。而硬件部分則使用TI芯片AM3358作為主控芯片,讓其完成主要控制和多級通信的功能,稱重模塊以51單片機為控制單元,采用HX711A/D轉換芯片將壓力傳感器得到的模擬信號轉為數字信號,然后將信息發給TI芯片,TI芯片進行處理,并進行多級分發完成系統的全部控制功能。
本系統具備實時檢測多個稱重臺的能力,可檢測多個稱重臺上的不同目標的種類和位置。此外,該系統的拓展性非常強,未來可以增加更多的檢測類別,如蔬菜、生鮮等,也可以加入品質檢測和新鮮度檢測等功能。該系統的檢測精度也相當可靠,通過自主標定的幾千張數據集的測試,結果表明我們可以獲得83.5%的MAP,這證明了我們改進的目標檢測算法具有較高的準確性和穩定性。此外,該系統的檢測速度也有了顯著的提高,完全能夠滿足實時檢測的需求。
我們計劃在未來進一步改進本系統,以實現更輕量化的網絡結構,減小網絡的計算量、參數量和推理時間。為此,我們將采用更高效的模型設計和訓練方法,以便在保持高精度的同時,能夠更好地滿足實時檢測的需求,減小時延。后續我們還將研究使用更加精簡、更加簡單、更加低廉的芯片,以降低成本,提高性能。為了讓我們的無人果蔬售賣系統更加實用和可靠,加入免密支付等功能,使顧客只需要將商品放入購物車,點擊付款按鈕,既可完成付款,實現真正的智能購物體驗。我們將不斷探索各種技術和方法,不斷優化算法、改進硬件,優化界面設計,提高交互性,以實現速度和精度的完美平衡,以打造一個更加高效、更加智能、更加易用的售賣系統,為顧客帶來更好的購物體驗和服務。