李書閣 趙鵬舉 程詩妍 湯紅輝
摘要:針對傳統(tǒng)的商品識別方法導致自動售貨機空間利用率低、附加成本高等問題,文章提出一種基于YOLOv5s的輕量化商品圖像檢測方法,并在此基礎上,構建了一個基于圖像識別的自動售貨機商品識別系統(tǒng),以達到降低運營成本、優(yōu)化購物體驗的目的。
關鍵詞:目標檢測;商品識別;輕量化網(wǎng)絡;系統(tǒng)架構
中圖分類號:TP315? 文獻標志碼:A
0 引言
自動售貨機可以在無人值守的情況下提供自動化銷售服務,在我國的酒店、車站等公共場所隨處可見,已發(fā)展成為智能零售系統(tǒng)的典型代表。傳統(tǒng)的自動售貨機商品識別方法主要有重力感應、射頻識別、機械裝置分隔等,此類自動售貨機結(jié)構復雜,空間利用率低,商品種類受限,成本較高,顧客通常不能打開柜門自由選擇商品,購物體驗較差。隨著圖像處理和計算機視覺技術的不斷發(fā)展,基于圖像的商品識別技術得到廣泛研究。每張自動售貨機的商品圖像一般都包含多種類型的多個商品,利用計算機視覺領域的目標檢測技術可以找出一張圖像中所有感興趣的商品,獲取每個商品在圖像中的具體位置坐標,進而識別出每種商品的類別和數(shù)量。由于自動售貨機中商品種類較多,外觀、形狀各異,還可能存在遮擋情況,商品圖像采集受光照、角度影響大,因此,基于目標檢測技術的自動售貨機商品識別面臨極大挑戰(zhàn)。
1 基于目標檢測技術的商品識別方法
1.1 目標檢測技術
商品識別一般利用目標檢測技術,確定圖像中所有商品所處的位置、類別和數(shù)量。傳統(tǒng)的目標檢測方法采用基于特征的圖像匹配識別技術,手工設計特征對目標進行檢測,常用的方法有ORB、HOG、LBP、SIFT、SURF等[1]。由于手工設計的特征受光照、視角等因素影響,無法準確表達目標特征,魯棒性較低,檢測效果不理想。為了更好地解決這些問題,基于深度學習的目標檢測方法開始被應用于商品識別的研究?;谏疃葘W習的目標檢測方法按照處理流程不同可以劃分為2種:兩階段檢測算法和單階段檢測算法。兩階段檢測算法在第一階段先生成候選框并進行候選框的篩選,第二階段根據(jù)候選框計算目標物體的所屬類別概率,判斷候選框內(nèi)是否包含待檢測的物體目標,常見的算法有R-CNN[2]、SPP-Net[3]、Fast R-CNN[4]等。單階段檢測算法不需要生成候選框,直接回歸預測目標框的位置坐標和目標的分類概率,常見的算法有YOLO[5]、SSD[6]等。上述目標檢測算法網(wǎng)絡參數(shù)量和運算量特別大,難以部署到計算能力有限的嵌入式設備。
近年來,許多學者開展基于深度學習的目標檢測模型的輕量化研究,減少模型的參數(shù)量和計算量,易于部署到嵌入式設備進行高效的目標檢測。龔惟新等[7]引入C3HB模塊和交叉注意力模塊實現(xiàn) YOLOv5s模型的輕量化。楊小岡等[8]使用MobileNetv3結(jié)構重構YOLOv5模型的主干網(wǎng)絡﹐并添加MNtECA特征提取網(wǎng)絡對模型進行壓縮和加速。本文綜合考慮商品識別系統(tǒng)的檢測精度和速度,以及在自動售貨機嵌入式系統(tǒng)的部署需求,選擇YOLOv5s模型作為商品識別方案,并在此基礎上提出一種輕量化的商品識別算法。
1.2 商品識別方法
YOLOv5s模型框架是YOLO系列的改進結(jié)構,性能表現(xiàn)優(yōu)異。作為一種單階段的目標檢測算法,YOLOv5s由4個部分組成:Input、Backbone、Neck和Head。為了實現(xiàn)YOLOv5s的輕量化并保持良好的網(wǎng)絡性能,首先采用網(wǎng)絡模型Shufflenetv2[9]替換YOLOv5s原來的主干網(wǎng)絡,輕量化的Shufflenetv2網(wǎng)絡可以減小模型參數(shù)量和計算量。然后,在模型主干網(wǎng)絡中引入注意力機制(Convolutional Block Attention Module,CBAM)[10],提取圖像中的關鍵信息,提高目標檢測精度。最后,利用Focal-EIoU Loss[11]代替CIoU Loss,在IoU基礎上引入目標框和預測框的長寬信息,解決CIoU中長寬比等比例變化懲罰失效的問題,更加關注高質(zhì)量的分類樣本,提高對難分類樣本的學習能力,減少漏檢或者誤檢的情況。
為了實現(xiàn)基于深度學習的商品檢測,系統(tǒng)必須建立商品圖像數(shù)據(jù)集。在自動售貨機每層隔板頂部安裝一個廣角攝像頭,選取10種商品按隨機位置和角度擺放,以單張拍攝的方式采集至少500張商品圖像。為了擴充圖像數(shù)據(jù)集,還需將拍攝的圖像隨機進行拉伸、旋轉(zhuǎn)、模糊、鏡像等處理,然后使用LabelImg工具進行標注,并將數(shù)據(jù)集文件保存為VOC格式,最后按照7∶2∶1的比例將數(shù)據(jù)集劃分為3部分:訓練集、驗證集及測試集。搭建深度學習環(huán)境,將商品圖像數(shù)據(jù)集輸入輕量化后的YOLOv5s模型中訓練學習300個Epoch,生成最終學習結(jié)果。
2 自動售貨機商品識別系統(tǒng)設計
2.1 系統(tǒng)開發(fā)環(huán)境
為了開發(fā)基于深度學習的商品圖像目標檢測網(wǎng)絡模型,本文在Windows10 64位操作系統(tǒng)中,利用Anaconda3搭建深度學習環(huán)境,使用CUDA11.8、Python3.9和Pytorch 2.0.0搭建開發(fā)環(huán)境。利用???? PyCharm 2022.2.4和PyQt5開發(fā)自動售貨機商品識別應用界面,利用嵌入式輕量化的數(shù)據(jù)庫工具SQLite3開發(fā)商品信息數(shù)據(jù)庫,系統(tǒng)可靠性高、可移植性好。開發(fā)商品識別系統(tǒng)的計算機采用Intel Core i7-13700KF CUP處理器,配置NVIDIA GeForce RTX 3060 GPU(顯存12 GB)和32 GB DDR4內(nèi)存。自動售貨機配置瑞薩RZ/G2L嵌入式開發(fā)板,可以實現(xiàn)商品識別網(wǎng)絡模型的移植和部署。
2.2 系統(tǒng)架構設計
自動售貨機商品識別系統(tǒng)由設備層、網(wǎng)絡層、平臺層和應用層組成,系統(tǒng)框架如圖1所示。設備層由攝像頭、稱重傳感器、溫度傳感器、門鎖感應器及其他感應裝置組成,負責售貨機關鍵部件控制和數(shù)據(jù)采集。攝像頭用于采集商品圖像數(shù)據(jù),并將采集的數(shù)據(jù)分類存放于文件系統(tǒng);稱重傳感器實時監(jiān)測和采集每個隔板上貨物的質(zhì)量信息。門鎖感應器實時監(jiān)測售貨機柜門開閉情況。網(wǎng)絡層由TCP/IP協(xié)議的以太網(wǎng)和4G/5G移動網(wǎng)構成數(shù)據(jù)傳輸通道,負責系統(tǒng)各層功能模塊之間的信息交互。平臺層由文件系統(tǒng)、數(shù)據(jù)庫和搭建Pytorch運行環(huán)境的服務器組成,負責設備層的數(shù)據(jù)存儲管理和統(tǒng)一調(diào)度控制,同時為應用層提供計算服務。應用層由后臺應用層和終端應用層2部分組成。后臺應用層包括商品圖像采集、訓練學習和檢測識別等模塊。圖像采集模塊負責商品圖像和商品屬性信息的采集,并存入文件系統(tǒng);商品圖像訓練學習模塊負責基于深度學習的目標檢測模型的訓練學習,導入商品圖像訓練數(shù)據(jù)集后自動學習,并將最終學習結(jié)果保存到文件系統(tǒng);商品圖像檢測識別模塊利用最終學習得到的網(wǎng)絡模型檢測實時采集的商品圖像,獲取圖像中包含的商品種類和數(shù)量信息,然
后從數(shù)據(jù)庫中查詢相應的商品信息并計算商品總價。終端應用層主要針對自動售貨機的多元化應用場景,提供如掃碼購物、商品圖像識別等多種不同類型的服務功能。
2.3 系統(tǒng)工作流程
首先,在平臺層利用服務器制作商品圖像數(shù)據(jù)集,商品種類發(fā)生變化時,還要及時補充新增商品的圖像數(shù)據(jù)并完成圖像的標注。每次新增商品的圖像數(shù)據(jù)都要進行商品圖像訓練學習,并將最終學習得到的網(wǎng)絡模型移植到自動售貨機的嵌入式系統(tǒng)。系統(tǒng)工作流程如圖2所示。顧客購物時,通過掃碼打開售貨機柜門,觸發(fā)稱重傳感器進行重力計算,并開啟攝像頭拍攝商品圖像,根據(jù)商品圖像識別售貨機每層商品的種類和數(shù)量。顧客選取商品關閉柜門后,再次觸發(fā)稱重傳感器稱重和攝像頭拍攝,根據(jù)此時拍攝的商品圖像檢測識別每層剩余商品的種類和數(shù)量。根據(jù)圖像識別信息統(tǒng)計顧客購物前后商品種類和數(shù)量的差值,根據(jù)稱重信息統(tǒng)計商品重量的差值,然后匯總商品銷售信息并按照銷量與售價計算總價,顧客結(jié)算之后,向顧客推送結(jié)算信息并完成購物過程。通過稱重傳感器進行重力計算,可以對商品的類別與數(shù)量變化進行輔助驗證,提高商品識別的準確性和可靠性。
3 系統(tǒng)測試與驗證
為了評估最終訓練學習得到的網(wǎng)絡模型的檢測精度,本文利用測試集對網(wǎng)絡模型進行評估,采用平均精度均值(Mean Average Precision,mAP)來評估網(wǎng)絡模型的分類和定位性能,mAP是評價目標檢測模型性能的常用指標。測試結(jié)果表明,輕量化后的YOLOv5s網(wǎng)絡模型訓練300個Epoch后,在測試集上可達到94.1% mAP,能夠準確地預測圖片中商品的位置和類別,具有良好的預測效果。將最終訓練學習得到的網(wǎng)絡模型移植到自動售貨機的瑞薩RZ/G2L嵌入式開發(fā)板中,以此構建基于圖像的商品識別系統(tǒng)。
4 結(jié)語
本文提出一種基于YOLOv5s的輕量化商品圖像檢測方法,并依此構建一個基于圖像識別的自動售貨機商品識別系統(tǒng)。具體設計如下:首先,采用輕量化網(wǎng)絡Shufflenet-V2替換YOLOv5s原來的主干網(wǎng)絡,引入注意力機制提取圖像中的關鍵信息,利用Focal-EIoU Los代替CIoU Loss提高目標檢測精度,構建一種輕量化的目標檢測算法,并部署在自動售貨機的嵌入式系統(tǒng)中實現(xiàn)商品識別。其次,利用輕量化的YOLOv5s模型構建一種自動售貨機商品識別系統(tǒng),可以實現(xiàn)掃碼開門購物,無感自動結(jié)算,提升顧客的購物體驗。最后,利用測試集對網(wǎng)絡模型進行評估測試,測試結(jié)果表明,本文提出的輕量化商品圖像檢測模型具有良好的識別效果。
參考文獻
[1]RUBLEE E,RABAUD V,KONOLIGE K,et al.ORB:an efficient alternative to SIFT or SURF[C].Proc of International on Computer Vision.Washington DC:IEEE Computer Society,2011.
[2]GIRSHICK R,DONAHUE J,DARRELL T,et al.Rich feature hierarchies for accurate object detection and semantic segmentation[C].Columbus:2014 IEEE Conference on Computer Vision and Pattern Recognition,2014.
[3]HE K,ZHANG X,REN S,et al.Spatial pyramid pooling in deep convolutional networks for visual recognition[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2015(9):1904-1916.
[4]GIRSHICK R.Fast R-CNN [C].Columbus:2015 IEEE International Conference on Computer Vision,2015.
[5]LIU W,ANGUELOV D,ERHAN D,et al.SSD:single shot multibox detector[C].Amsterdam:European Conference on Computer Vision,2016.
[6]REDMON J,DIVVALA S,GIRSHICK R,et al.You only look once:unified,real-time object detection[C].Las Vegas:2016 IEEE Conference on Computer Vision and Pattern Recognition,2016.
[7]龔惟新,楊珍,李凱,等.基于改進YOLOv5s的自然環(huán)境下獼猴桃花朵檢測方法[J].農(nóng)業(yè)工程學報,2023(6):177-185.
[8]楊小岡,高凡,盧瑞濤,等.基于改進YOLOv5的輕量化航空目標檢測方法[J].信息與控制,2022(3):361-368.
[9]MA N,ZHANG X,ZHENG H T,et al.Shufflenet v2:Practical guidelines for efficient cnn architecture design[C].Berlin:Proceedings of the European conference on computer vision,2018.
[10]WOO S,PARK J,LEE J Y,et al.Cbam:convolutional block attention module[C].Berlin:Proceeding of the European Conference on Computer Vision,2018.
[11]ZHANG Y F,REN W,ZHANG Z,et al.Focal and efficient EIoU loss for accurate bounding box regression[J].Neuro Computing,2022(506):146-157.
(編輯 何 琳編輯)
Commodity recognition system design for vending machine based on object detection technologyLi? Shuge, Zhao? Pengju, Cheng? Shiyan, Tang? Honghui
(Chongqing College of Electronic Engineering, Chongqing 401331, China)
Abstract: In response to the problems of low space utilization and high additional costs caused by traditional commodity recognition methods used in vending machines, a lightweight commodity image detection method based on YOLOv5s is proposed. A commodity recognition system for vending machine based on image recognition is constructed to reduce operating costs and optimize shopping experience on this basis.
Key words: object detection; commodity recognition; lightweight net; system architecture