李書(shū)閣 趙鵬舉 程詩(shī)妍 湯紅輝


摘要:針對(duì)傳統(tǒng)的商品識(shí)別方法導(dǎo)致自動(dòng)售貨機(jī)空間利用率低、附加成本高等問(wèn)題,文章提出一種基于YOLOv5s的輕量化商品圖像檢測(cè)方法,并在此基礎(chǔ)上,構(gòu)建了一個(gè)基于圖像識(shí)別的自動(dòng)售貨機(jī)商品識(shí)別系統(tǒng),以達(dá)到降低運(yùn)營(yíng)成本、優(yōu)化購(gòu)物體驗(yàn)的目的。
關(guān)鍵詞:目標(biāo)檢測(cè);商品識(shí)別;輕量化網(wǎng)絡(luò);系統(tǒng)架構(gòu)
中圖分類(lèi)號(hào):TP315? 文獻(xiàn)標(biāo)志碼:A
0 引言
自動(dòng)售貨機(jī)可以在無(wú)人值守的情況下提供自動(dòng)化銷(xiāo)售服務(wù),在我國(guó)的酒店、車(chē)站等公共場(chǎng)所隨處可見(jiàn),已發(fā)展成為智能零售系統(tǒng)的典型代表。傳統(tǒng)的自動(dòng)售貨機(jī)商品識(shí)別方法主要有重力感應(yīng)、射頻識(shí)別、機(jī)械裝置分隔等,此類(lèi)自動(dòng)售貨機(jī)結(jié)構(gòu)復(fù)雜,空間利用率低,商品種類(lèi)受限,成本較高,顧客通常不能打開(kāi)柜門(mén)自由選擇商品,購(gòu)物體驗(yàn)較差。隨著圖像處理和計(jì)算機(jī)視覺(jué)技術(shù)的不斷發(fā)展,基于圖像的商品識(shí)別技術(shù)得到廣泛研究。每張自動(dòng)售貨機(jī)的商品圖像一般都包含多種類(lèi)型的多個(gè)商品,利用計(jì)算機(jī)視覺(jué)領(lǐng)域的目標(biāo)檢測(cè)技術(shù)可以找出一張圖像中所有感興趣的商品,獲取每個(gè)商品在圖像中的具體位置坐標(biāo),進(jìn)而識(shí)別出每種商品的類(lèi)別和數(shù)量。由于自動(dòng)售貨機(jī)中商品種類(lèi)較多,外觀、形狀各異,還可能存在遮擋情況,商品圖像采集受光照、角度影響大,因此,基于目標(biāo)檢測(cè)技術(shù)的自動(dòng)售貨機(jī)商品識(shí)別面臨極大挑戰(zhàn)。
1 基于目標(biāo)檢測(cè)技術(shù)的商品識(shí)別方法
1.1 目標(biāo)檢測(cè)技術(shù)
商品識(shí)別一般利用目標(biāo)檢測(cè)技術(shù),確定圖像中所有商品所處的位置、類(lèi)別和數(shù)量。傳統(tǒng)的目標(biāo)檢測(cè)方法采用基于特征的圖像匹配識(shí)別技術(shù),手工設(shè)計(jì)特征對(duì)目標(biāo)進(jìn)行檢測(cè),常用的方法有ORB、HOG、LBP、SIFT、SURF等[1]。由于手工設(shè)計(jì)的特征受光照、視角等因素影響,無(wú)法準(zhǔn)確表達(dá)目標(biāo)特征,魯棒性較低,檢測(cè)效果不理想。為了更好地解決這些問(wèn)題,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)方法開(kāi)始被應(yīng)用于商品識(shí)別的研究。基于深度學(xué)習(xí)的目標(biāo)檢測(cè)方法按照處理流程不同可以劃分為2種:兩階段檢測(cè)算法和單階段檢測(cè)算法。兩階段檢測(cè)算法在第一階段先生成候選框并進(jìn)行候選框的篩選,第二階段根據(jù)候選框計(jì)算目標(biāo)物體的所屬類(lèi)別概率,判斷候選框內(nèi)是否包含待檢測(cè)的物體目標(biāo),常見(jiàn)的算法有R-CNN[2]、SPP-Net[3]、Fast R-CNN[4]等。單階段檢測(cè)算法不需要生成候選框,直接回歸預(yù)測(cè)目標(biāo)框的位置坐標(biāo)和目標(biāo)的分類(lèi)概率,常見(jiàn)的算法有YOLO[5]、SSD[6]等。上述目標(biāo)檢測(cè)算法網(wǎng)絡(luò)參數(shù)量和運(yùn)算量特別大,難以部署到計(jì)算能力有限的嵌入式設(shè)備。
近年來(lái),許多學(xué)者開(kāi)展基于深度學(xué)習(xí)的目標(biāo)檢測(cè)模型的輕量化研究,減少模型的參數(shù)量和計(jì)算量,易于部署到嵌入式設(shè)備進(jìn)行高效的目標(biāo)檢測(cè)。龔惟新等[7]引入C3HB模塊和交叉注意力模塊實(shí)現(xiàn) YOLOv5s模型的輕量化。楊小岡等[8]使用MobileNetv3結(jié)構(gòu)重構(gòu)YOLOv5模型的主干網(wǎng)絡(luò)﹐并添加MNtECA特征提取網(wǎng)絡(luò)對(duì)模型進(jìn)行壓縮和加速。本文綜合考慮商品識(shí)別系統(tǒng)的檢測(cè)精度和速度,以及在自動(dòng)售貨機(jī)嵌入式系統(tǒng)的部署需求,選擇YOLOv5s模型作為商品識(shí)別方案,并在此基礎(chǔ)上提出一種輕量化的商品識(shí)別算法。
1.2 商品識(shí)別方法
YOLOv5s模型框架是YOLO系列的改進(jìn)結(jié)構(gòu),性能表現(xiàn)優(yōu)異。作為一種單階段的目標(biāo)檢測(cè)算法,YOLOv5s由4個(gè)部分組成:Input、Backbone、Neck和Head。為了實(shí)現(xiàn)YOLOv5s的輕量化并保持良好的網(wǎng)絡(luò)性能,首先采用網(wǎng)絡(luò)模型Shufflenetv2[9]替換YOLOv5s原來(lái)的主干網(wǎng)絡(luò),輕量化的Shufflenetv2網(wǎng)絡(luò)可以減小模型參數(shù)量和計(jì)算量。然后,在模型主干網(wǎng)絡(luò)中引入注意力機(jī)制(Convolutional Block Attention Module,CBAM)[10],提取圖像中的關(guān)鍵信息,提高目標(biāo)檢測(cè)精度。最后,利用Focal-EIoU Loss[11]代替CIoU Loss,在IoU基礎(chǔ)上引入目標(biāo)框和預(yù)測(cè)框的長(zhǎng)寬信息,解決CIoU中長(zhǎng)寬比等比例變化懲罰失效的問(wèn)題,更加關(guān)注高質(zhì)量的分類(lèi)樣本,提高對(duì)難分類(lèi)樣本的學(xué)習(xí)能力,減少漏檢或者誤檢的情況。
為了實(shí)現(xiàn)基于深度學(xué)習(xí)的商品檢測(cè),系統(tǒng)必須建立商品圖像數(shù)據(jù)集。在自動(dòng)售貨機(jī)每層隔板頂部安裝一個(gè)廣角攝像頭,選取10種商品按隨機(jī)位置和角度擺放,以單張拍攝的方式采集至少500張商品圖像。為了擴(kuò)充圖像數(shù)據(jù)集,還需將拍攝的圖像隨機(jī)進(jìn)行拉伸、旋轉(zhuǎn)、模糊、鏡像等處理,然后使用LabelImg工具進(jìn)行標(biāo)注,并將數(shù)據(jù)集文件保存為VOC格式,最后按照7∶2∶1的比例將數(shù)據(jù)集劃分為3部分:訓(xùn)練集、驗(yàn)證集及測(cè)試集。搭建深度學(xué)習(xí)環(huán)境,將商品圖像數(shù)據(jù)集輸入輕量化后的YOLOv5s模型中訓(xùn)練學(xué)習(xí)300個(gè)Epoch,生成最終學(xué)習(xí)結(jié)果。
2 自動(dòng)售貨機(jī)商品識(shí)別系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)開(kāi)發(fā)環(huán)境
為了開(kāi)發(fā)基于深度學(xué)習(xí)的商品圖像目標(biāo)檢測(cè)網(wǎng)絡(luò)模型,本文在Windows10 64位操作系統(tǒng)中,利用Anaconda3搭建深度學(xué)習(xí)環(huán)境,使用CUDA11.8、Python3.9和Pytorch 2.0.0搭建開(kāi)發(fā)環(huán)境。利用???? PyCharm 2022.2.4和PyQt5開(kāi)發(fā)自動(dòng)售貨機(jī)商品識(shí)別應(yīng)用界面,利用嵌入式輕量化的數(shù)據(jù)庫(kù)工具SQLite3開(kāi)發(fā)商品信息數(shù)據(jù)庫(kù),系統(tǒng)可靠性高、可移植性好。開(kāi)發(fā)商品識(shí)別系統(tǒng)的計(jì)算機(jī)采用Intel Core i7-13700KF CUP處理器,配置NVIDIA GeForce RTX 3060 GPU(顯存12 GB)和32 GB DDR4內(nèi)存。自動(dòng)售貨機(jī)配置瑞薩RZ/G2L嵌入式開(kāi)發(fā)板,可以實(shí)現(xiàn)商品識(shí)別網(wǎng)絡(luò)模型的移植和部署。
2.2 系統(tǒng)架構(gòu)設(shè)計(jì)
自動(dòng)售貨機(jī)商品識(shí)別系統(tǒng)由設(shè)備層、網(wǎng)絡(luò)層、平臺(tái)層和應(yīng)用層組成,系統(tǒng)框架如圖1所示。設(shè)備層由攝像頭、稱(chēng)重傳感器、溫度傳感器、門(mén)鎖感應(yīng)器及其他感應(yīng)裝置組成,負(fù)責(zé)售貨機(jī)關(guān)鍵部件控制和數(shù)據(jù)采集。攝像頭用于采集商品圖像數(shù)據(jù),并將采集的數(shù)據(jù)分類(lèi)存放于文件系統(tǒng);稱(chēng)重傳感器實(shí)時(shí)監(jiān)測(cè)和采集每個(gè)隔板上貨物的質(zhì)量信息。門(mén)鎖感應(yīng)器實(shí)時(shí)監(jiān)測(cè)售貨機(jī)柜門(mén)開(kāi)閉情況。網(wǎng)絡(luò)層由TCP/IP協(xié)議的以太網(wǎng)和4G/5G移動(dòng)網(wǎng)構(gòu)成數(shù)據(jù)傳輸通道,負(fù)責(zé)系統(tǒng)各層功能模塊之間的信息交互。平臺(tái)層由文件系統(tǒng)、數(shù)據(jù)庫(kù)和搭建Pytorch運(yùn)行環(huán)境的服務(wù)器組成,負(fù)責(zé)設(shè)備層的數(shù)據(jù)存儲(chǔ)管理和統(tǒng)一調(diào)度控制,同時(shí)為應(yīng)用層提供計(jì)算服務(wù)。應(yīng)用層由后臺(tái)應(yīng)用層和終端應(yīng)用層2部分組成。后臺(tái)應(yīng)用層包括商品圖像采集、訓(xùn)練學(xué)習(xí)和檢測(cè)識(shí)別等模塊。圖像采集模塊負(fù)責(zé)商品圖像和商品屬性信息的采集,并存入文件系統(tǒng);商品圖像訓(xùn)練學(xué)習(xí)模塊負(fù)責(zé)基于深度學(xué)習(xí)的目標(biāo)檢測(cè)模型的訓(xùn)練學(xué)習(xí),導(dǎo)入商品圖像訓(xùn)練數(shù)據(jù)集后自動(dòng)學(xué)習(xí),并將最終學(xué)習(xí)結(jié)果保存到文件系統(tǒng);商品圖像檢測(cè)識(shí)別模塊利用最終學(xué)習(xí)得到的網(wǎng)絡(luò)模型檢測(cè)實(shí)時(shí)采集的商品圖像,獲取圖像中包含的商品種類(lèi)和數(shù)量信息,然
后從數(shù)據(jù)庫(kù)中查詢相應(yīng)的商品信息并計(jì)算商品總價(jià)。終端應(yīng)用層主要針對(duì)自動(dòng)售貨機(jī)的多元化應(yīng)用場(chǎng)景,提供如掃碼購(gòu)物、商品圖像識(shí)別等多種不同類(lèi)型的服務(wù)功能。
2.3 系統(tǒng)工作流程
首先,在平臺(tái)層利用服務(wù)器制作商品圖像數(shù)據(jù)集,商品種類(lèi)發(fā)生變化時(shí),還要及時(shí)補(bǔ)充新增商品的圖像數(shù)據(jù)并完成圖像的標(biāo)注。每次新增商品的圖像數(shù)據(jù)都要進(jìn)行商品圖像訓(xùn)練學(xué)習(xí),并將最終學(xué)習(xí)得到的網(wǎng)絡(luò)模型移植到自動(dòng)售貨機(jī)的嵌入式系統(tǒng)。系統(tǒng)工作流程如圖2所示。顧客購(gòu)物時(shí),通過(guò)掃碼打開(kāi)售貨機(jī)柜門(mén),觸發(fā)稱(chēng)重傳感器進(jìn)行重力計(jì)算,并開(kāi)啟攝像頭拍攝商品圖像,根據(jù)商品圖像識(shí)別售貨機(jī)每層商品的種類(lèi)和數(shù)量。顧客選取商品關(guān)閉柜門(mén)后,再次觸發(fā)稱(chēng)重傳感器稱(chēng)重和攝像頭拍攝,根據(jù)此時(shí)拍攝的商品圖像檢測(cè)識(shí)別每層剩余商品的種類(lèi)和數(shù)量。根據(jù)圖像識(shí)別信息統(tǒng)計(jì)顧客購(gòu)物前后商品種類(lèi)和數(shù)量的差值,根據(jù)稱(chēng)重信息統(tǒng)計(jì)商品重量的差值,然后匯總商品銷(xiāo)售信息并按照銷(xiāo)量與售價(jià)計(jì)算總價(jià),顧客結(jié)算之后,向顧客推送結(jié)算信息并完成購(gòu)物過(guò)程。通過(guò)稱(chēng)重傳感器進(jìn)行重力計(jì)算,可以對(duì)商品的類(lèi)別與數(shù)量變化進(jìn)行輔助驗(yàn)證,提高商品識(shí)別的準(zhǔn)確性和可靠性。
3 系統(tǒng)測(cè)試與驗(yàn)證
為了評(píng)估最終訓(xùn)練學(xué)習(xí)得到的網(wǎng)絡(luò)模型的檢測(cè)精度,本文利用測(cè)試集對(duì)網(wǎng)絡(luò)模型進(jìn)行評(píng)估,采用平均精度均值(Mean Average Precision,mAP)來(lái)評(píng)估網(wǎng)絡(luò)模型的分類(lèi)和定位性能,mAP是評(píng)價(jià)目標(biāo)檢測(cè)模型性能的常用指標(biāo)。測(cè)試結(jié)果表明,輕量化后的YOLOv5s網(wǎng)絡(luò)模型訓(xùn)練300個(gè)Epoch后,在測(cè)試集上可達(dá)到94.1% mAP,能夠準(zhǔn)確地預(yù)測(cè)圖片中商品的位置和類(lèi)別,具有良好的預(yù)測(cè)效果。將最終訓(xùn)練學(xué)習(xí)得到的網(wǎng)絡(luò)模型移植到自動(dòng)售貨機(jī)的瑞薩RZ/G2L嵌入式開(kāi)發(fā)板中,以此構(gòu)建基于圖像的商品識(shí)別系統(tǒng)。
4 結(jié)語(yǔ)
本文提出一種基于YOLOv5s的輕量化商品圖像檢測(cè)方法,并依此構(gòu)建一個(gè)基于圖像識(shí)別的自動(dòng)售貨機(jī)商品識(shí)別系統(tǒng)。具體設(shè)計(jì)如下:首先,采用輕量化網(wǎng)絡(luò)Shufflenet-V2替換YOLOv5s原來(lái)的主干網(wǎng)絡(luò),引入注意力機(jī)制提取圖像中的關(guān)鍵信息,利用Focal-EIoU Los代替CIoU Loss提高目標(biāo)檢測(cè)精度,構(gòu)建一種輕量化的目標(biāo)檢測(cè)算法,并部署在自動(dòng)售貨機(jī)的嵌入式系統(tǒng)中實(shí)現(xiàn)商品識(shí)別。其次,利用輕量化的YOLOv5s模型構(gòu)建一種自動(dòng)售貨機(jī)商品識(shí)別系統(tǒng),可以實(shí)現(xiàn)掃碼開(kāi)門(mén)購(gòu)物,無(wú)感自動(dòng)結(jié)算,提升顧客的購(gòu)物體驗(yàn)。最后,利用測(cè)試集對(duì)網(wǎng)絡(luò)模型進(jìn)行評(píng)估測(cè)試,測(cè)試結(jié)果表明,本文提出的輕量化商品圖像檢測(cè)模型具有良好的識(shí)別效果。
參考文獻(xiàn)
[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]龔惟新,楊珍,李凱,等.基于改進(jìn)YOLOv5s的自然環(huán)境下獼猴桃花朵檢測(cè)方法[J].農(nóng)業(yè)工程學(xué)報(bào),2023(6):177-185.
[8]楊小岡,高凡,盧瑞濤,等.基于改進(jìn)YOLOv5的輕量化航空目標(biāo)檢測(cè)方法[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