劉智萍 崔克彬
(華北電力大學(xué)計(jì)算機(jī)系,河北 保定 071003)
隨著中國(guó)經(jīng)濟(jì)的快速發(fā)展,機(jī)械化智能化成為白酒行業(yè)發(fā)展的大趨勢(shì)[1]。在白酒釀造的摘酒環(huán)節(jié),大部分酒廠仍然采用傳統(tǒng)的“看花摘酒”[2]??椿ㄕ浦饕Q于摘酒工人的工作經(jīng)驗(yàn),工作環(huán)境和身體狀況等因素也會(huì)對(duì)摘酒工人的判斷造成影響,這些主、客觀因素讓摘酒工人難以保持穩(wěn)定的正確的摘酒時(shí)機(jī),極大地限制了白酒的質(zhì)量和產(chǎn)量。
余鍇鑫[3]使用圖像處理技術(shù)處理酒花圖像并提取酒花明顯區(qū)域,然后輸入改進(jìn)的Mini-Inception網(wǎng)絡(luò)完成酒花自動(dòng)分類。楊靜嫻等[4]結(jié)合局部二值模式LBP與灰度共生矩陣GLCM提取酒花紋理特征,通過支持向量機(jī)(SVM)得到分類結(jié)果。潘斌等[5]使用改進(jìn)的VGG16卷積神經(jīng)網(wǎng)絡(luò)對(duì)高斯濾波處理后的酒花圖像進(jìn)行分類,取得了較好的結(jié)果。然而,以上方法均不是端到端的解決方法,實(shí)現(xiàn)的只是各個(gè)局部的最優(yōu)解,且未達(dá)到計(jì)算機(jī)視覺中實(shí)時(shí)分類的標(biāo)準(zhǔn)。此外,也有學(xué)者[6-9]使用酒精度在線檢測(cè)儀器和氣相色譜儀等儀器檢測(cè)酒精濃度和風(fēng)味成分來實(shí)現(xiàn)量質(zhì)摘酒,還有學(xué)者[10-12]使用近紅外光譜分析技術(shù)檢測(cè)酒液成分和酒精濃度,結(jié)合模型來確定酒液各段起止點(diǎn)進(jìn)行分段摘酒。但這些方法都存在儀器成本和維護(hù)費(fèi)用昂貴、不能實(shí)現(xiàn)實(shí)時(shí)檢測(cè)等問題。
目標(biāo)檢測(cè)是深度學(xué)習(xí)的一個(gè)領(lǐng)域,使用深層神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)圖像中目標(biāo)的特征從而定位和識(shí)別目標(biāo),可用于圖像自動(dòng)分類,其分為兩階段檢測(cè)器和單階段檢測(cè)器。YOLOv5是目前單階段檢測(cè)器的最優(yōu)模型SOTA(state-of-the-art),其檢測(cè)精度不低于兩階段檢測(cè)器,但其檢測(cè)速度卻遠(yuǎn)遠(yuǎn)超過于兩階段檢測(cè)器,模型的占用內(nèi)存也更小。研究擬提出基于深度學(xué)習(xí)的白酒酒花實(shí)時(shí)分類方法,通過針對(duì)性改進(jìn)YOLOv5模型,使其更適用于酒花圖像分類,并通過試驗(yàn)證明其可行性,旨在為白酒自動(dòng)化摘酒提供一種新的依據(jù)。
在溫度和壓強(qiáng)相同的條件下,不同酒精濃度的酒液具有不同的黏度和表面張力,因此形成的酒花會(huì)有所不同[13]。如汾酒將酒花分為大清花、小清花、云花、二花(又稱水花)、油花。茅臺(tái)酒廠則分為魚眼花、堆花、滿花、碎沫花和圈花5種,并以滿花作為出廠標(biāo)準(zhǔn)[14]。酒花和酒度之間存在對(duì)應(yīng)關(guān)系。文中使用的酒花圖像采集于四川宜賓某酒廠,其酒花與酒度的對(duì)應(yīng)關(guān)系見表1。
YOLOv5是Ultralytics公司于2020年在GitHub上公開發(fā)布的目標(biāo)檢測(cè)算法,共4個(gè)版本,分別為YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x,其只有模型的寬度和深度的權(quán)重系數(shù)不同,且依次增大,可以通過改變模型的寬度和深度的權(quán)重系數(shù)來改變模型的版本和大小[15]。綜合模型大小和檢測(cè)精度考慮,選用YOLOv5s模型作為初始模型。
表1 酒花與酒度關(guān)系
輕量型YOLOv5使用ShuffleNetV2網(wǎng)絡(luò)代替YOLOv5s的Backbone來提取輸入圖像的酒花特征,可以達(dá)到輕量YOLOv5s模型并保持較高檢測(cè)精度的目的。其中Focus模塊對(duì)輸入的酒花圖像進(jìn)行切片,可以在不丟失圖像信息的情況下將特征圖的尺寸縮小至1/2,提升網(wǎng)絡(luò)的推理速度。CBAM是一個(gè)即插即用的注意力機(jī)制模塊,可以關(guān)注目標(biāo)的通道和空間特征,使得網(wǎng)絡(luò)更加關(guān)注目標(biāo)本身,提高檢測(cè)精度。在特征提取階段,低層的特征圖含有的語義信息較少,但目標(biāo)的位置較為準(zhǔn)確;高層的特征圖含有豐富的語義信息,但目標(biāo)的位置較為模糊。因此,在Neck部分采用FPN[16]+PAN[17]的結(jié)構(gòu)實(shí)現(xiàn)酒花的特征融合和特征信息跨層交流。特征金字塔結(jié)構(gòu)FPN自頂向下,傳遞高層的語義特征,并通過上采樣UpSample擴(kuò)大特征圖尺寸與相鄰特征圖拼接ConCat得到新的特征圖。FPN后使用路徑融合網(wǎng)絡(luò)PAN,將FPN中的底層特征圖降采樣和相鄰特征圖ConCat并傳遞到高層。輸出端Prediction是網(wǎng)絡(luò)的預(yù)測(cè)部份,結(jié)合設(shè)置的自適應(yīng)錨框anchor對(duì)PAN部分輸出的特征圖進(jìn)行特征檢測(cè),使用非極大值抑制NMS來篩選目標(biāo)框,最終生成邊界框并預(yù)測(cè)酒花類別。其具體網(wǎng)絡(luò)結(jié)構(gòu)見圖1。
在目前的輕量級(jí)網(wǎng)絡(luò)中,ShuffleNetV2[18]在速度和精度方面達(dá)到了一個(gè)很好的平衡,其綜合性能名列前茅[19]。ShuffleNetV2通過使用通道分離技術(shù)和點(diǎn)卷積代替組卷積,減少了模型的內(nèi)存訪問成本,提升了網(wǎng)絡(luò)的檢測(cè)速度。
圖1 輕量型YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)Figure 1 Light weight YOLOv5 network structure
圖2給出了ShuffleNetV2的基本單元結(jié)構(gòu),在每個(gè)單元的開始,特征通道的輸入通過通道分離操作被分為兩個(gè)相等分支,其中一個(gè)分支做恒等映射,另一個(gè)分支通過2個(gè)1×1的普通卷積Conv和1個(gè)3×3的深度卷積DWConv,然后將兩個(gè)分支ConCat起來,使用Channel Shuffle啟用兩個(gè)分支之間的信息通信。對(duì)于空間下采樣,單元移除了通道分離,因此,輸出通道的數(shù)量是輸入通道的2倍。其具體結(jié)構(gòu)見圖3。
圖2 ShuffleNetV2基本單元結(jié)構(gòu)Figure 2 ShuffleNetV2 basic unit structure
圖3 ShuffleNetV2空間下采樣結(jié)構(gòu)Figure 3 ShuffleNetV2 Spatial down sampling structure
CBAM注意力機(jī)制[20]可以使網(wǎng)絡(luò)更加關(guān)注檢測(cè)目標(biāo),忽略周圍復(fù)雜環(huán)境對(duì)網(wǎng)絡(luò)的干擾,從而提升網(wǎng)絡(luò)的檢測(cè)精度。CBAM是一個(gè)即插即用的注意力模塊,能夠節(jié)約參數(shù)和計(jì)算力,其分為兩個(gè)獨(dú)立的部分,通道注意力模塊和空間注意力模塊,分別在通道和空間上進(jìn)行Attention。對(duì)于一個(gè)特征圖,CBAM會(huì)按照先通道再空間的順序生成注意力特征圖。CBAM結(jié)構(gòu)見圖4。
圖4 CBAM注意力機(jī)制結(jié)構(gòu)Figure 4 CBAM attention mechanism structure
給定一個(gè)中間特征圖F∈RC×H×W作為輸入,依次生成通道注意力圖Mc∈RC×1×1和一個(gè)2D空間注意力圖Ms∈R1×H×W,整個(gè)過程為:
Fc=Mc(F)?F,
(1)
Fs=Ms(Fc)?Fc,
(2)
式中:
F——CBAM模塊的輸入特征圖;
Mc(F)——輸入F得到的通道注意力特征圖;
?——兩特征圖同一位置的值直接相乘;
Fc——空間注意力模塊的輸入特征圖;
Ms(Fc)——輸入Fc得到的空間注意力特征圖;
Fs——CBAM模塊的輸出特征圖。
具體流程:輸入的特征圖F(H×W×C)先通過通道注意力模塊,分別經(jīng)過最大池化和平均池化得到兩個(gè)只有通道維度的特征圖(1×1×C),然后分別送入一個(gè)共享神經(jīng)網(wǎng)絡(luò),再經(jīng)過相加和sigmoid激活后得到通道注意力特征圖。最后,通道注意力特征圖和輸入特征圖F相乘,生成空間注意力模塊的輸入特征圖。通道注意力模塊結(jié)構(gòu)見圖5。
圖5 通道注意力模塊結(jié)構(gòu)Figure 5 Channel attention module structure
通道注意力模塊函數(shù)為:
(3)
式中:
MLP——多層感知器;
AP(F)——平均池化處理特征圖F;
MP(F)——最大池化處理特征圖F;
W1、W0——多層感知器的參數(shù);
空間注意力模塊得到輸入特征圖后,作一次基于通道的最大池化和平均池化,得到兩個(gè)H×W×1的特征圖,并進(jìn)行基于通道的拼接。然后經(jīng)過7×7卷積降維為一個(gè)通道,再經(jīng)過sigmoid生成空間注意力特征圖。空間注意力特征圖和試驗(yàn)?zāi)K的輸入特征圖作乘法,得到最終生成的特征??臻g注意力模塊結(jié)構(gòu)見圖6。
圖6 空間注意力模塊結(jié)構(gòu)Figure 6 Spatial attention module structure
其函數(shù)表達(dá)式為:
(4)
式中:
所有試驗(yàn)均在Ubuntu18.04操作系統(tǒng)下進(jìn)行,處理器為Intel i7 CPU,顯卡采用NVIDIA GeForce RTX 2080 Ti,11 GB顯存,使用pytorch深度學(xué)習(xí)框架,通過CUDA10.2進(jìn)行運(yùn)算加速。
試驗(yàn)圖像數(shù)據(jù)集來源于宜賓某酒廠,其中大清花1 527張,小清花1 540張,云花1 521張,二花1 540張,共6 128張,按8∶1∶1的比例隨機(jī)劃分訓(xùn)練集、驗(yàn)證集和測(cè)試集。
為客觀評(píng)價(jià)模型性能,使用模型大小、參數(shù)量、計(jì)算量、檢測(cè)速率幀每秒(FPS)和平均精度均值(mAP)等作為評(píng)價(jià)指標(biāo),按式(5)計(jì)算MAP。
(5)
式中:
MAP——平均精度均值,%;
N——酒花種類數(shù);
AP,a——a類酒花的平均精度,%。
3.3.1 數(shù)據(jù)標(biāo)注方式 依據(jù)“看花摘酒”原理,根據(jù)酒花形狀、大小、坐花時(shí)間等特征判斷酒花種類。文獻(xiàn)[2-3,13]為采集圖像中酒花明顯區(qū)域進(jìn)行處理分類;但文獻(xiàn)[4-5]是將整張圖像處理后進(jìn)行分類。設(shè)置對(duì)照組驗(yàn)證試驗(yàn)特征提取方式,即數(shù)據(jù)標(biāo)注方式,a組使用酒花明顯區(qū)域提取特征,b組使用整個(gè)酒液面提取特征。
從每類酒花圖像中隨機(jī)挑選50張,共200張,按8∶1∶1的比例隨機(jī)劃分訓(xùn)練集、驗(yàn)證集和測(cè)試集。使用YOLOv5s進(jìn)行訓(xùn)練并測(cè)試,由于數(shù)據(jù)集較小,設(shè)置訓(xùn)練輪次為1 000,batch_size為16,超參數(shù)設(shè)置見表2。
表2 試驗(yàn)超參數(shù)設(shè)置
由圖7可知,a、b兩組均在訓(xùn)練600次后趨于穩(wěn)定。經(jīng)測(cè)試,a組mAP為54.4%,b組mAP為77.9%,表明使用整個(gè)酒液面提取特征得到的結(jié)果更好。機(jī)器視覺能夠從細(xì)節(jié)處觀察到人眼不易觀察到的酒花特征,使用整個(gè)酒液面提取特征也可以使網(wǎng)絡(luò)學(xué)習(xí)到更多的酒花特征,因此,使用整個(gè)酒液面訓(xùn)練的網(wǎng)絡(luò)的檢測(cè)精度更高。
圖7 數(shù)據(jù)標(biāo)注方式試驗(yàn)結(jié)果Figure 7 Experimental results of data annotation method
3.3.2 anchor的設(shè)置 對(duì)于目標(biāo)檢測(cè),anchor的設(shè)置會(huì)影響到網(wǎng)絡(luò)的最終效果。YOLOv5的默認(rèn)anchor是基于coco數(shù)據(jù)集聚類得到的,不適用于文中的數(shù)據(jù)集。K-means是基于歐式距離的聚類算法,其認(rèn)為兩個(gè)目標(biāo)的距離越近,相似度越大。采用K-means算法對(duì)數(shù)據(jù)集標(biāo)注的anchor進(jìn)行聚類統(tǒng)計(jì),根據(jù)結(jié)果將anchor重新設(shè)置為[352,171,362,173,374,183],[444,188,451,193,475,212]和[498,223,541,227,554,243],其中第1行數(shù)據(jù)是最大特征圖上的anchor,第2行數(shù)據(jù)是中間特征圖上的anchor;第3行數(shù)據(jù)是最小特征圖上的anchor。將使用新舊anchor的網(wǎng)絡(luò)進(jìn)行訓(xùn)練和測(cè)試,試驗(yàn)結(jié)果見圖8。
由圖8可知,使用默認(rèn)anchor的網(wǎng)絡(luò)mAP為87.0%,使用K-mean聚類anchor的網(wǎng)絡(luò)mAP為88.5%。使用新的anchor,不僅mAP提升了1.5%,而且網(wǎng)絡(luò)擬合得更快更穩(wěn)定。
圖8 新舊anchor網(wǎng)絡(luò)試驗(yàn)結(jié)果Figure 8 Experimental results of new and old anchor networks
試驗(yàn)的超參數(shù)設(shè)置與表2一致,網(wǎng)絡(luò)的訓(xùn)練輪次設(shè)置為300,batch_size為32。訓(xùn)練前進(jìn)行3次預(yù)熱學(xué)習(xí),其中預(yù)熱學(xué)習(xí)動(dòng)量為0.8,預(yù)熱初始學(xué)習(xí)率為0.1。通過預(yù)熱學(xué)習(xí),模型變得更加穩(wěn)定,收斂速度更快,效果更佳。
圖9為各網(wǎng)絡(luò)試驗(yàn)結(jié)果,具體參數(shù)見表3。
a. 未改動(dòng)的YOLOv5s網(wǎng)絡(luò) b. 使用ShuffleNetV2替換YOLOv5s主干網(wǎng)絡(luò)后的網(wǎng)絡(luò) c. 試驗(yàn)提出的輕量型YOLOv5網(wǎng)絡(luò)
表3 消融試驗(yàn)結(jié)果
由于試驗(yàn)采用整個(gè)酒液面提取酒花特征,尺度較大,所以YOLOv5s的主干網(wǎng)絡(luò)更換為ShuffleNetV2后檢測(cè)精度變化不大,僅下降了0.5%。同時(shí),主干網(wǎng)絡(luò)更換為輕量網(wǎng)絡(luò)后,發(fā)生輕微抖動(dòng),但訓(xùn)練53次后達(dá)到穩(wěn)定。試驗(yàn)提出的輕量型YOLOv5s,不僅比前兩者擬合得更快更穩(wěn)定,而且在檢測(cè)精度上還有所提升,mAP達(dá)到90.8%,比YOLOv5s高2.3%,比YOLOv5s+ShuffleNetV2高2.8%。此外,輕量型YOLOv5s的參數(shù)量為444 915,模型大小僅4.3 Mb,與YOLOv5s相比,模型輕量92.5%,參數(shù)量減少93.7%,計(jì)算量降低63.4%。由于網(wǎng)絡(luò)加深,輕量型的FPS有所降低,但仍有526,滿足實(shí)時(shí)檢測(cè)的要求。
在使用試驗(yàn)數(shù)據(jù)集的基礎(chǔ)上,將試驗(yàn)算法與文獻(xiàn)[3]、文獻(xiàn)[5]和YOLOv4進(jìn)行對(duì)比。為方便比較,通過算法執(zhí)行時(shí)間比較算法的速度,通過準(zhǔn)確率比較算法的分類性能。準(zhǔn)確率定義為:
(6)
式中:
A——準(zhǔn)確率,%;
N——測(cè)試樣本數(shù)量;
yi——第i個(gè)樣本的分類標(biāo)簽;
當(dāng)分類標(biāo)簽和識(shí)別結(jié)果一致時(shí),I(x)為1,否則為0。
由表4可知,在準(zhǔn)確率方面,4種方法均能夠滿足工業(yè)分類要求,且以試驗(yàn)?zāi)P偷慕Y(jié)果最佳,文獻(xiàn)[3]設(shè)計(jì)的卷積神經(jīng)網(wǎng)絡(luò)僅有13層,為4種模型中層數(shù)最少的,所以其準(zhǔn)確率較低;在執(zhí)行時(shí)間方面,試驗(yàn)?zāi)P陀脮r(shí)最短,僅文獻(xiàn)[5]的12.7%,YOLOV4的24.1%,文獻(xiàn)[3]耗時(shí)最長(zhǎng),其主要原因是該算法前景區(qū)提取耗時(shí)4 200 ms,如果拍攝設(shè)備和盛酒器位置發(fā)生改變,前景區(qū)還需重新提?。辉谀P痛笮》矫?,試驗(yàn)?zāi)P偷恼加脙?nèi)存最少,分別比文獻(xiàn)[3]少91.1%,比文獻(xiàn)[5]少99.2%,比YOLOv4少99.2%,更有利于部署在嵌入式設(shè)備上。綜上,試驗(yàn)?zāi)P途哂芯薮髢?yōu)勢(shì)。
表4 對(duì)比試驗(yàn)結(jié)果
提出了一種輕量型YOLOv5的白酒酒花實(shí)時(shí)檢測(cè)方法。結(jié)果表明,改進(jìn)后的輕量型YOLOv5比原YOLOv5s模型縮小了92.5%,參數(shù)減少了93.7%,計(jì)算量降低了63.4%,平均精度均值提高了2.3%。在保持較高平均精度均值的同時(shí),模型大小、參數(shù)量和計(jì)算量大幅降低,大大降低了模型對(duì)硬件配置的要求,滿足了在嵌入式設(shè)備部署的條件,比現(xiàn)有酒花分類方法具有更大優(yōu)勢(shì)。后續(xù)研究中可以增加訓(xùn)練數(shù)據(jù)量,特別是相鄰階段的酒花圖像數(shù)量,以提升模型的檢測(cè)精度。