陳 斌,饒洪輝,王玉龍,李慶松,王保陽,劉木華
(江西農(nóng)業(yè)大學(xué) 工學(xué)院/江西省現(xiàn)代農(nóng)業(yè)裝備重點實驗室,江西 南昌 330045)
卷積神經(jīng)網(wǎng)絡(luò)可以自動提取特征,并分類檢測,精度高,實時性強[1-4],成為果蔬目標(biāo)檢測的主流框架。而Faster-RCNN卷積神經(jīng)網(wǎng)絡(luò)經(jīng)過RCNN、Fast-RCNN的不斷改進,精度和檢測效率都得到了進一步的提高。在卷積神經(jīng)網(wǎng)絡(luò)果蔬識別方面已經(jīng)有大量的研究。西北農(nóng)林科技大學(xué)馮亞利[5]使用改進的DY3TNet模型實現(xiàn)了田間獼猴桃果實的檢測。閆建偉等[6]為了快速準(zhǔn)確識別自然環(huán)境下刺梨果實,提出了一種基于改進的Faster-RCNN的刺梨果實識別方法。傅隆生等[7]為了實現(xiàn)田間條件下快速、準(zhǔn)確地識別多簇獼猴桃果實,提出了一種基于LeNet卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)模型進行多簇獼猴桃果實圖像的識別。程鴻芳等[8]針對傳統(tǒng)的基于內(nèi)容的識別方法在特征提取方面存在的計算復(fù)雜、特征不可遷移等問題,對LeNet卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進行改進,設(shè)計了一種基于改進LeNet卷積神經(jīng)網(wǎng)絡(luò)的蘋果目標(biāo)識別模型,并利用該模型對不同場景的蘋果圖像進行了識別與驗證,綜合識別率達到93.79%;與其他方法相比,該算法具有較強的抗干擾能力,圖像識別速度快,識別率更高。中南林業(yè)科技大學(xué)張習(xí)之等[9]提出了一種基于改進卷積自編碼機神經(jīng)網(wǎng)絡(luò)的油茶果圖像自動識別方法,該改進算法100次迭代所需時間為166 s,平均識別準(zhǔn)確率為90.4%。
目前在卷積神經(jīng)網(wǎng)絡(luò)識別油茶果方面的研究較少,尚無文獻用Faster-RCNN卷積網(wǎng)絡(luò)的方法識別油茶果。本文選用Faster-RCNN交替優(yōu)化訓(xùn)練方法,并使用Faster-RCNN卷積神經(jīng)網(wǎng)絡(luò)對油茶果進行了識別。
本試驗在臺式計算機上進行,處理器為Intel-i5-9400F,內(nèi)存為32 GB,操作系統(tǒng)Windows 10 (64位)??紤]到GPU算力的需要,選用顯卡NVIDIA GeForce GTX 1660,顯存8 GB。Python的版本是3.6.4,在pycharm IDE上編譯。深度學(xué)習(xí)框架選擇Keras。同時為了提高訓(xùn)練速度,采用GPU加速方法,cuda版本是8.1,cudnn版本為7.6.0。
油茶果圖像拍攝于江西省林業(yè)科學(xué)院國家油茶林基地。拍攝相機為索尼相機,像素為640×480。于2019年9月14~23日的晴天拍攝,采集了典青、贛興46、贛撫20等34個品種的油茶果圖像并保存成JPG的格式。圖1為拍攝的部分油茶果圖像。
a:正常情況下的油茶果; b:油茶果被遮擋; c:油茶果環(huán)境光線弱; d: 油茶果成簇出現(xiàn)。圖1 油茶果的部分圖像
本試驗選取在江西省林業(yè)科學(xué)院國家油茶林基地采集的2800張油茶果圖像進行訓(xùn)練,在驗證集上對油茶果圖像進行測試,發(fā)現(xiàn)對遮擋和光線暗淡、過度曝光等油茶果圖像的檢測結(jié)果不佳。為了提高檢測效果,對訓(xùn)練集圖像進行優(yōu)化,增添1020張光線過弱、過度曝光、油茶果被遮擋等各種環(huán)境下的油茶果圖像,將訓(xùn)練集圖像數(shù)量擴充到3820張,使卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到各種情況下油茶果圖像的特征(若訓(xùn)練數(shù)據(jù)集中沒有包含多樣化的樣本,則會導(dǎo)致機器學(xué)習(xí)不足,識別結(jié)果置信度降低)。
本試驗的卷積神經(jīng)網(wǎng)絡(luò)使用VGG16骨干網(wǎng)絡(luò)提取油茶果圖像的特征,一共有5個卷積層,5個卷積層的大小分別是64、128、256、512、512。卷積核的大小是3×3。VGG16網(wǎng)絡(luò)滑動窗口自動提取油茶果和背景的特征,共享卷積;之后產(chǎn)生RPN,RPN網(wǎng)絡(luò)生成帶有置信度的矩形檢測框,通過softmax分類器判斷屬于油茶果還是背景;再利用邊框回歸修正錨框獲得精確的候選區(qū)域。運用最大池化層方法采樣,對于每一個通道,選取其特征圖的最大像素值作為該通道的代表,從而得到一個N維向量。激勵層使用的是Relu函數(shù),Relu由于非負區(qū)間的梯度為常數(shù),因此不存在梯度消失問題,使得模型的收斂速度維持在一個穩(wěn)定狀態(tài)。學(xué)習(xí)率是0.001,動量為0.9,迭代次數(shù)為40000次。圖2為Faster-RCNN的結(jié)構(gòu)圖。
圖2 Faster-RCNN的結(jié)構(gòu)
在對油茶果的圖像進行分類檢測之前,RPN接收任意尺寸的油茶果圖像作為輸入,輸出一系列有置信度的矩形候選檢測框,這些檢測框用于后續(xù)Faster RCNN的分類和檢測。在原始Faster RCNN卷積神經(jīng)網(wǎng)絡(luò)中,每個錨點3種面積尺度分別為128、256、512像素,3種長寬比{1∶1、1∶2、2∶1},它們相互組合,每個Anchor生成9個錨框[10,11]。將圖像送到卷積層之后,得到特征圖(Feature Map),然后用1個小網(wǎng)絡(luò)在特征圖上進行滑動,以特征圖上n×n的區(qū)域作為輸入,輸出1個低維度的特征(VGG中每一個點是512-d),輸出的特征分為box回歸層和box分類層。然而原始面積尺度和長寬比被設(shè)計適用于PASCAL VOC數(shù)據(jù)集中的20種大小不同的物體的檢測,不適合油茶果圖像的檢測,因此需針對油茶果圖像本身的特點優(yōu)化面積尺度和長寬比,根據(jù)拍攝的油茶果圖像的像素面積和長寬比特點,改進面積尺度為8、16、32像素和3種長寬比{1∶2、1∶1、2∶1}。
油茶果圖像測試結(jié)果有下面3種情況:TP,預(yù)測為油茶果,實際為油茶果; FP,預(yù)測為油茶果,實際為背景; FN,預(yù)測為背景,實際為油茶果。
模型評價指標(biāo)主要用到平均識別率(map)、準(zhǔn)確率(P)、召回率(R)和F1值。其中平均識別率是正確識別的油茶果個數(shù)占油茶果總個數(shù)的比例,其計算公式為:平均識別率(map)=正確識別的油茶果個數(shù)/油茶果總數(shù)。準(zhǔn)確率表征對正樣本的預(yù)測準(zhǔn)確程度,其計算公式為:準(zhǔn)確率(P)=TP/(TP+FP)。召回率表示在原始樣本的正樣本中,最后被預(yù)測為正樣本的概率,其計算公式為:召回率(R)=TP/(TP+FN)。準(zhǔn)確率主要考察模型對目標(biāo)找得對不對,準(zhǔn)不準(zhǔn);而召回率主要考察模型對目標(biāo)找得全不全。F1值是模型的綜合評價指標(biāo),它調(diào)和準(zhǔn)確率和召回率,其計算公式如下:F1=2PR/(P+R)×100%。
對油茶果數(shù)據(jù)集進行訓(xùn)練,訓(xùn)練完成后生成權(quán)重文件;調(diào)用權(quán)重文件對油茶果圖像進行測試。隨機選取不同環(huán)境下的100幅500×375像素的油茶果圖像進行測試,計算結(jié)果如下:
平均1幅圖像檢測耗時0.21 s,圖3為部分檢測出來的油茶果圖像。
為了探究油茶果圖像檢測失敗的原因,對100幅圖像中識別失敗的油茶果進行了統(tǒng)計分析,得到表1,將識別失敗的原因進行分類和統(tǒng)計。識別失敗的原因為:果實遮擋占56.6%;油茶果粘連成簇出現(xiàn)占9.4%;樹葉或油茶花蕾誤識別占13.2%。在正常情況下,未被識別的油茶果占9.4%;油茶果圖像較小占11.3%。在圖4中,畫圈部分為識別失敗的油茶果圖像。
圖3 油茶果圖像檢測結(jié)果
表1 油茶果識別失敗原因的分類統(tǒng)計結(jié)果
圖4 油茶果識別失敗的圖像
為了直觀觀察卷積層特征提取的過程,將卷積層多特征提取過程可視化,得到圖5卷積層可視化特征圖。卷積神經(jīng)網(wǎng)絡(luò)在提取特征的過程中,在第一層傾向于提取油茶果的顏色特征等淺層特征;隨著卷積層的增加,能夠逐漸提取到油茶果的邊緣形狀特征、紋理特征等;到最后一層能提取油茶果圖像的更加抽象的特征。
圖5 油茶果特征圖的可視化
卷積神經(jīng)網(wǎng)絡(luò)可自動提取油茶果的多特征并加以識別。本文利用Faster-RCNN卷積神經(jīng)網(wǎng)絡(luò)對3820幅油茶果圖像進行訓(xùn)練,分別對數(shù)據(jù)集和錨框參數(shù)進行優(yōu)化,并在100張油茶果圖像數(shù)據(jù)集上進行了驗證。檢測結(jié)果表明:平均識別率為92.39%,準(zhǔn)確率為98.92%,召回率為93.32%,F1值為96.04%。平均每幅圖像識別時間為0.21 s,能滿足油茶果實時檢測的要求。