閆建偉,張樂偉,趙源,張富貴
(1.貴州大學(xué)機(jī)械工程學(xué)院,貴陽(yáng)市,550025;2.國(guó)家林業(yè)和草原局刺梨工程技術(shù)研究中心,貴陽(yáng)市,550025)
近年來,隨著深度學(xué)習(xí)理論研究的不斷深入,基于Anchor目標(biāo)檢測(cè)框架已成為國(guó)內(nèi)外卷積神經(jīng)網(wǎng)絡(luò)領(lǐng)域研究的熱點(diǎn)。當(dāng)前,對(duì)基于Anchor的目標(biāo)檢測(cè)框架的研究主要分為兩類:一類是基于區(qū)域候選框的二階段目標(biāo)檢測(cè)框架(two stage)算法,該方法先在圖像上生成若干可能包含目標(biāo)的候選區(qū)域,然后通過卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)分別對(duì)這些候選區(qū)域提取特征,最后通過卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行目標(biāo)位置的回歸與類別的識(shí)別,典型的算法有R-CNN(Region Convolutional Neural Network)[1]、SPPNet(Spatial Pyramid Pooling Networks)[2]、Fast RCNN[3-4]、Faster RCNN[5-6]、FPN(Feature Pyramid Networks)[7]、R-FCN(Region-based Fully Convolutional Network)[8]等;另一類為一階段目標(biāo)檢測(cè)框架(one stage)算法,該方法直接從圖片獲得預(yù)測(cè)結(jié)果,將整個(gè)目標(biāo)檢測(cè)任務(wù)整合成一個(gè)端到端的任務(wù),而且只處理一次圖像即可得到目標(biāo)的類別與位置信息,典型的算法有SSD(Single Shot multibox Detector)[9]、YOLO(You Only Look Once)[10-12]、DSSD(Deconvolutional Single Shot Detector)[13]、FSSD(Feature fusion Single Shot multibox Detector)[14]以及RetinaNet[15]等。二階段目標(biāo)檢測(cè)算法比一階段目標(biāo)檢測(cè)算法具有更高的準(zhǔn)確率和定位精度,而一階目標(biāo)檢測(cè)算法RetinaNet在COCO測(cè)試集上的結(jié)果高于二階目標(biāo)檢測(cè)模型[15]。在RetinaNet目標(biāo)檢測(cè)算法方面,宋歡歡等[16]將其網(wǎng)絡(luò)層數(shù)增加到152層,并且加入了MobileNet的設(shè)計(jì)思想,對(duì)其加速和壓縮,有效地提高了準(zhǔn)確率。劉革等[17]為了提高模型的前向推斷速度,用MobileNet V3替換ResNet-50[18]用于基礎(chǔ)特征提取網(wǎng)絡(luò)。張物華等[19]在基礎(chǔ)特征提取網(wǎng)絡(luò)中加入特征通道注意力機(jī)制模塊,突出特征圖中的特征通道,以提高精度。王璐璐等[20]在C3、C4層加入通道注意力模塊,同時(shí),為緩解網(wǎng)絡(luò)的過擬合問題,在通道注意力模塊的全連接層加入隨機(jī)失活機(jī)制,從而增強(qiáng)網(wǎng)絡(luò)的魯棒性。謝學(xué)立等[21]在RetinaNet結(jié)構(gòu)中分別添加bottom-up短連接通路以及全局上下文上采樣模塊,用來增強(qiáng)檢測(cè)層特征的結(jié)構(gòu)性和語義性。以上改進(jìn)雖然準(zhǔn)確率有一定提高,但檢測(cè)效率卻顯著降低了。
針對(duì)生產(chǎn)車間刺梨果實(shí)識(shí)別,人工分揀分級(jí)效率低,無法滿足工業(yè)化加工刺梨果實(shí)的要求,本文擬選擇一階目標(biāo)檢測(cè)算法中的RetinaNet目標(biāo)檢測(cè)算法,以RetinaNet模型為基礎(chǔ),改進(jìn)bias公式以及運(yùn)用K-means++聚類算法,并增強(qiáng)數(shù)據(jù)和合理調(diào)節(jié)參數(shù),以期實(shí)現(xiàn)對(duì)刺梨加工車間的果實(shí)進(jìn)行高精度、快速識(shí)別。
本文刺梨果實(shí)圖像于2019年9月28日在貴州省龍里縣谷腳鎮(zhèn)茶香村刺梨產(chǎn)業(yè)示范園區(qū)采集,品種為貴龍5號(hào),共采集圖片807幅。對(duì)刺梨果實(shí)用尼康(Nikon)D750單反相機(jī)進(jìn)行拍照,原始圖像格式為.JPG,分辨率為6 016像素×4 016像素。刺梨果實(shí)圖像采集樣本示例如圖1所示。

圖1 刺梨果實(shí)圖像樣本示例
本文從拍攝到的807幅刺梨果實(shí)照片中,將刺梨果實(shí)分為6類。通過ACDSee20軟件將807幅大小為6 016像素×4 016像素的原圖裁剪為多幅大小為902像素×602像素的完全包含刺梨果實(shí)的樣本,對(duì)裁剪后的樣本進(jìn)行上下翻轉(zhuǎn)以及旋轉(zhuǎn)45°、90°和270°,最終得到7 426 幅刺梨樣本。再使用LabelImg軟件對(duì)7 426 幅刺梨樣本進(jìn)行樣本標(biāo)簽制作。
刺梨果實(shí)圖像分級(jí)簡(jiǎn)圖,如圖2所示。

1.1
針對(duì)采摘后的刺梨果實(shí)進(jìn)行分級(jí),按顏色、果實(shí)好壞等情況,將刺梨果實(shí)圖像分為6類:1.1、1.2、2.1、2.2、3.1、3.2;其中,1.、2.、3.等按照顏色不同進(jìn)行分級(jí)[1.:顏色為青色、2.:顏色為金黃、3.:非以上兩種情況]。.1、.2等按照果實(shí)好壞進(jìn)行分級(jí)[.1:非壞果、.2:壞果]。分類后各類刺梨照片數(shù)量較均衡,有利于后期處理。
RetinaNet模型由特征提取網(wǎng)絡(luò)、特征金字塔網(wǎng)絡(luò)、子網(wǎng)絡(luò)等三個(gè)模塊構(gòu)成,其網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。圖3中A表示特征提取網(wǎng)絡(luò),使用深度殘差網(wǎng)絡(luò)ResNet來完成對(duì)圖像特征的初步提取;B表示特征金字塔網(wǎng)絡(luò),將A中產(chǎn)生的特征圖進(jìn)行重新組合,完成對(duì)圖像特征的精細(xì)化提取,以便能更好地表達(dá)圖像信息;C表示子網(wǎng)絡(luò),用于對(duì)待檢測(cè)的目標(biāo)圖像分類和定位。

圖3 RetinaNet的網(wǎng)絡(luò)結(jié)構(gòu)
由于RetinaNet的核心是Focal Loss,在Focal Loss中,用于分類卷積的bias,可以在訓(xùn)練的初始階段提高positive的分類概率以及決定神經(jīng)云產(chǎn)生的正負(fù)激勵(lì)的難易程度。針對(duì)其無法準(zhǔn)確取值,在原有式(1)的基礎(chǔ)進(jìn)行了改進(jìn),改進(jìn)后的計(jì)算公式如式(2)所示。
bias=log[(1-π)/π]
(1)
bias=αlog[(1-π)/π]β+γ
(2)
α、β、γ可以控制bias的取值,根據(jù)實(shí)際情況,最終得出α=1.0、β=1.1、γ=0.0、π=0.01,使得預(yù)測(cè)圖像目標(biāo)的準(zhǔn)確性上升。
Anchor機(jī)制可有效解決目標(biāo)檢測(cè)任務(wù)中存在的尺度及寬高比例變化范圍過大等問題。由于原始RetinaNet使用的是非刺梨樣本的數(shù)據(jù)集,所以原始RetinaNet所選定的Anchor尺度和寬高比例在本文的檢測(cè)任務(wù)中并不適用。
本文運(yùn)用K-means++聚類算法[22],使其更加適合刺梨樣本,定位框更加精準(zhǔn)。通過對(duì)刺梨數(shù)據(jù)集的真實(shí)標(biāo)注框進(jìn)行聚類操作,真實(shí)標(biāo)注框長(zhǎng)寬映射到模型輸入大小下的聚類結(jié)果如圖4所示。

圖4 真實(shí)boxes長(zhǎng)寬聚類值
由圖4可知,有三個(gè)聚類簇,刺梨的寬高聚集在[35,33]、[40,39]以及[45,44]附近。
因此,本文將[90×90,125×125,160×160,195×195,230×230]作為對(duì)應(yīng)的5個(gè)特征層的Anchor尺寸,以[0.5,1.0,1.5]作為Anchor的長(zhǎng)寬比。
改進(jìn)后的卷積神經(jīng)網(wǎng)絡(luò)模型,對(duì)刺梨果實(shí)進(jìn)行識(shí)別的訓(xùn)練步驟如圖5所示。
待訓(xùn)練的刺梨果實(shí)圖片,首先在特征提取網(wǎng)絡(luò)圖5(a)中由深度殘差網(wǎng)絡(luò)ResNet50來完成對(duì)圖像特征的初步提取;其次在特征金字塔網(wǎng)絡(luò)圖5(b)中,將圖5(a)中產(chǎn)生的特征圖進(jìn)行重新組合,以便能更好地表達(dá)圖像信息;最后在子網(wǎng)絡(luò)圖5(c)、圖5(d)中,運(yùn)用K-means++聚類算法優(yōu)化Anchor參數(shù),以及對(duì)其中的bias公式進(jìn)行改進(jìn),使其分類和定位更加準(zhǔn)確。

圖5 卷積神經(jīng)網(wǎng)絡(luò)模型改進(jìn)后的訓(xùn)練步驟
電腦配置:Windows 10、64位操作系統(tǒng)。筆記本電腦,GeForce GTX 1050 Ti 顯卡,8 G顯存;Intel(R)Core(TM)i5-8300H處理器,主頻2.30 GHz,磁盤內(nèi)存128 GB,編程語言是Python編程語言。
從7 426幅刺梨樣本中,選出90%即6 683幅刺梨樣本進(jìn)行訓(xùn)練,余下10%即743幅刺梨樣本進(jìn)行最終檢測(cè)。采用RetinaNet算法,在Keras框架下,并且設(shè)置該模型的batch-size為1、epochs為50、steps為1 000。
4.2.1 準(zhǔn)確率和損失率對(duì)比
樣本識(shí)別準(zhǔn)確率Acc的計(jì)算如式(3)所示,即預(yù)測(cè)正確的樣本比例。
(3)
式中:TP——正樣本被正確識(shí)別為正樣本;
TN——負(fù)樣本被正確識(shí)別為負(fù)樣本;
N——測(cè)試的樣本數(shù)。
改進(jìn)前后RetinaNet目標(biāo)檢測(cè)算法在不同訓(xùn)練輪次的準(zhǔn)確率和損失率如圖6、圖7所示。

圖6 原始RetinaNet目標(biāo)檢測(cè)算法在不同輪次的平均Acc與loss曲線

圖7 改進(jìn)后RetinaNet目標(biāo)檢測(cè)算法在不同輪次的平均Acc與loss曲線
由圖6、圖7可知,由于改進(jìn)了RetinaNet目標(biāo)檢測(cè)算法的核心部分Focal Loss中的bias公式,針對(duì)刺梨果實(shí)的圖像識(shí)別,改進(jìn)的RetinaNet目標(biāo)檢測(cè)算法訓(xùn)練集、測(cè)試集的準(zhǔn)確率都在90%以上,相對(duì)于原始RetinaNet目標(biāo)檢測(cè)算法,訓(xùn)練集、測(cè)試集的準(zhǔn)確率均提高1.80%;訓(xùn)練集損失率與測(cè)試集損失率的收斂趨勢(shì)相同,訓(xùn)練集、測(cè)試集的損失率降低了1.27%。可見,改進(jìn)的RetinaNet目標(biāo)檢測(cè)算法對(duì)刺梨果實(shí)的圖像識(shí)別具有較高的識(shí)別率。
4.3.2 標(biāo)記框?qū)Ρ?/p>
隨機(jī)選取一張未經(jīng)訓(xùn)練的刺梨果實(shí)照片(像素大小:902×602)如圖8所示,分別在原始RetinaNet目標(biāo)檢測(cè)算法與改進(jìn)RetinaNet目標(biāo)檢測(cè)算法進(jìn)行識(shí)別,識(shí)別效果(只保留置信度為80%以上的識(shí)別框)如圖9、圖10所示。

圖8 未經(jīng)訓(xùn)練照片

圖9 原始RetinaNet目標(biāo)檢測(cè)算法識(shí)別效果

圖10 改進(jìn)后RetinaNet目標(biāo)檢測(cè)算法識(shí)別效果
由圖9、圖10可知,改進(jìn)后的RetinaNet目標(biāo)檢測(cè)算法相對(duì)于原始RetinaNet目標(biāo)檢測(cè)算法有較好的效果:可以使Anchor尺寸更加接近真實(shí)值,從而降低模型的訓(xùn)練難度;識(shí)別準(zhǔn)確率有不同程度提高;在識(shí)別準(zhǔn)確率80%以上時(shí),可以檢測(cè)出更多的刺梨果實(shí);原始RetinaNet目標(biāo)檢測(cè)算法中錯(cuò)誤的標(biāo)記框不再出現(xiàn)。
4.3.3 6種不同刺梨果實(shí)分級(jí)對(duì)比
在未經(jīng)過訓(xùn)練的刺梨樣本中,按照6種不同刺梨果實(shí)分級(jí)方式,隨機(jī)各選取出1種,裁剪拼接成像素大小為902×602的圖片,如圖11所示,將其分別在原始RetinaNet目標(biāo)檢測(cè)算法與改進(jìn)RetinaNet目標(biāo)檢測(cè)算法進(jìn)行識(shí)別,識(shí)別結(jié)果如圖12、圖13所示。

圖11 6種刺梨果實(shí)拼接

圖12 原始RetinaNet目標(biāo)檢測(cè)算法識(shí)別效果

圖13 改進(jìn)后RetinaNet目標(biāo)檢測(cè)算法識(shí)別效果
從未經(jīng)訓(xùn)練的588幅刺梨果實(shí)樣本中隨機(jī)選取若干照片,分別在原始RetinaNet目標(biāo)檢測(cè)算法和改進(jìn)后的RetinaNet目標(biāo)檢測(cè)算法中進(jìn)行分類識(shí)別。圖片像素對(duì)檢測(cè)時(shí)間有一定的影響,提供檢測(cè)的單幅照片像素為300×300;含有單個(gè)刺梨果實(shí)。6類刺梨果實(shí)對(duì)比情況如表1所示。
改進(jìn)前后6類刺梨果實(shí)識(shí)別準(zhǔn)確率及檢測(cè)時(shí)間對(duì)比如表1所示,改進(jìn)后的RetinaNet目標(biāo)檢測(cè)算法對(duì)6類刺梨果實(shí)的識(shí)別準(zhǔn)確率均有提高,提高的幅度從0.14%、0.68%、1.32%、1.83%、2.60%到4.21%不等,識(shí)別準(zhǔn)確率最高提高了4.21%,識(shí)別準(zhǔn)確率平均提高了1.80%。

表1 改進(jìn)前后6類刺梨果實(shí)識(shí)別準(zhǔn)確率及檢測(cè)時(shí)間對(duì)比
單個(gè)刺梨果實(shí)檢測(cè)時(shí)間為由60.99 ms縮減到57.91 ms,降低了3.08 ms,與原始RetinaNet目標(biāo)檢測(cè)算法檢測(cè)時(shí)間相比縮短了5.05%。
1)本文針對(duì)原始RetinaNet目標(biāo)檢測(cè)算法進(jìn)行了改進(jìn),通過改進(jìn)RetinaNet框架中Focal loss的bias公式、運(yùn)用維度聚類算法找出Anchor的較好尺寸來改進(jìn)原始的RetinaNet目標(biāo)檢測(cè)算法。本文訓(xùn)練出來的識(shí)別模型對(duì)加工車間下的刺梨果實(shí)準(zhǔn)確率較高,能夠?yàn)榇汤婀麑?shí)的快速識(shí)別奠定基礎(chǔ)。
2)通過改進(jìn),與原始RetinaNet目標(biāo)檢測(cè)算法相比,本文改進(jìn)RetinaNet算法使標(biāo)記框更加準(zhǔn)確;識(shí)別準(zhǔn)確率更高,最高提升了4.21%,平均提高了1.80%。單幅單個(gè)刺梨果實(shí)檢測(cè)時(shí)間由60.99 ms縮減到57.91 ms,降低了3.08 ms。本文改進(jìn)RetinaNet算法平均識(shí)別準(zhǔn)確率均有不同程度提高,檢測(cè)時(shí)間均有不同程度降低。
3)本文改進(jìn)RetinaNet目標(biāo)檢測(cè)算法,為工業(yè)生產(chǎn)刺梨加工車間的刺梨果實(shí)快速識(shí)別提供參考。
中國(guó)農(nóng)機(jī)化學(xué)報(bào)2021年3期