王梁,侯義鋒,賀杰
(梧州學院廣西機器視覺與智能控制重點實驗室,廣西梧州,543003)
由于油茶的營養(yǎng)價值豐富且具有保健防病的功能,因此被廣大消費者喜愛,需求量也持續(xù)增加。據(jù)統(tǒng)計,在油茶的生產(chǎn)作業(yè)中,收獲采摘約占整個作業(yè)量的40%~50%[1],機器人收獲技術(shù)在油茶采摘中得到了大規(guī)模的應用,如何實現(xiàn)果實目標精準識別是機器人收獲技術(shù)中需要重點解決的問題。
自然場景中影響果實目標識別精度的干擾因素主要分為環(huán)境因素和果實生長狀態(tài)因素。環(huán)境因素對目標檢測的主要影響包括自然光的強度,莖葉的遮擋;果實生長狀態(tài)因素對目標檢測的主要影響包括多果粘附的重疊、果實色澤度不均。
目前,水果目標檢測的主要方法是基于結(jié)合機器視覺的機器學習算法。Zhao等[2-3]采用一種基于AdaBoost分類和顏色分析的算法進行對溫室中的成熟番茄果實的目標識別檢測,實現(xiàn)對成熟番茄果實的快速準確識別;He等[4]提出了一種基于改進的LDA分類器的綠色荔枝識別方法,有效的識別背景中的荔枝果實;李揚[5]提出一種K-means聚類算法與HSV顏色空間下閾值分割的柑橘圖像分割算法,實現(xiàn)了柑橘目標的有效識別檢測。
上述傳統(tǒng)方法相比,深度神經(jīng)網(wǎng)絡(DNN)方法具有強大的特征提取能力和自主學習能力,已被廣泛用于作物目標檢測。閆建偉等[6]結(jié)合刺梨果實的特點,提出了一種基于改進的Faster RCNN刺梨果實識別方法,實現(xiàn)自然環(huán)境下刺梨果實的快速準確識別;Sun等[7]針對復雜背景、未成熟青番茄與植物顏色的高度相似性導致番茄識別有效率低的問題,提出了一種改進的基于卷積神經(jīng)網(wǎng)絡(CNN)的番茄器官檢測方法,采用ResNet-50和K均值聚類方法改進了Faster R-CNN 模型,實驗結(jié)果平均精度(mAP)明顯的提高。
本文提出一種基于Mask-RCNN的自然場景下油茶果的果實目標精確識別方法,先利用Mask R-CNN網(wǎng)絡進行圖像分割,從像素級別的背景中提取對象區(qū)域,再求取果實對象mask的像素面積,求取界定閾值,依據(jù)閾值進行果實目標的識別,最后再根據(jù)mask圖像的形狀和邊緣特征進行果實的輪廓擬合還原。
2019年10月7—14日在中國廣西壯族自治區(qū)桂林市資源縣文垌村油茶果農(nóng)場,分別在3號、5號、7號試驗田進行油茶果圖像的采集拍攝。利用Canon EOS 760D型號數(shù)碼照相機,由人工采集白花油茶品種(出油率較紅花高)的成熟期油茶果的圖像信息(圖1)。采集照片時相機的拍攝距離范圍為0.5~1.5 m之間;光圈設置為F 5.6;焦距范圍為f=18~135 mm;曝光時間為1/250 s[8]。照片的保存尺寸格式為像素值。根據(jù)前述擬解決的關(guān)鍵問題,按照樹葉遮擋、果實重疊、不同背景、果實色度、光照等影響因素分為5個單因素樣本組采集圖像,每個圖像包含一個影響因素的特征,每組采集500張照片[9]。另外,再取一個多因素樣本組,每個圖像包含若干單因素的特征,數(shù)量為500張。
(a) 不同遮擋率下的果實圖像示例
(c) 不同果實色澤度的果實圖像示例
(d) 不同光照影響下的果實圖像示例
在單因素照片的采集過程中,樹葉遮擋的情況按照遮擋率采集10%以下、10%~30%、30%~50%共3類照片[10],果實重疊的情況按照重疊率采集10%以下、10%~30%、30%~50%以上共3類照片[11],并綜合考慮照片中有2個、3個以及3個以上果實的情況;背景的情況根據(jù)田間環(huán)境分為簡單、正常和復雜三類背景[12];顏色根據(jù)鮮艷程度分為淡紅(LR)、淺紅(HR)、深紅(DR)三類[13];光照程度的情況分別選取上午9~10時,中午12~13時,下午15~16時3個時段采集昏暗、正常、明亮三類照片[14]。多因素照片采集中,按照包含有2/3/4/5種單因素情況分類四類采集。
數(shù)據(jù)庫共選用有效圖像樣本3 000張,其中,1 800張用于建立訓練模型集,1 200張用于驗證模型集[15]。訓練集又包含預訓練集和優(yōu)化訓練集。用于模型參數(shù)預訓練的共有600張圖像樣本,每個單因素和多因素各選擇100張;用于模型參數(shù)優(yōu)化訓練的共有1 200張圖像樣本,每個單因素和多因素各選擇200張。驗證集的1 200個樣本包括了每個單因素和多因素各200張,并且與訓練集的樣本相互獨立。
對于訓練集圖像的標記方法,首先,按比例將圖片大小統(tǒng)一調(diào)整為600像素×400像素,然后,利用labelme圖像標注工具采用“多邊形標注”方案標注出油茶果目標的所在區(qū)域,即為后續(xù)神經(jīng)網(wǎng)絡模型的訓練集中待提取特征的預選區(qū)域。最后,根據(jù)分組類型,對每個組別的圖片進行分類標記,得到每張果實圖片的json文件,并利用python語言進行文件轉(zhuǎn)化,將每個json文件分解成所標記的原圖、灰度圖像、類別名、掩膜區(qū)域、被標記區(qū)域的像素點位置等五個文件為提供給后續(xù)模型訓練進行調(diào)用,如圖2所示。
(a) 圖像樣本示例
(b) 掩膜樣本示例
Mask R-CNN通過在Faster R-CNN基礎(chǔ)上增加一個額外的掩膜分支來擴展其目標檢測框架,增加全連接層(RoIAlign)并重新定義ROI損失函數(shù),從而改進得到的一種用于實例分割的深度學習神經(jīng)網(wǎng)絡。如圖3所示,Mask R-CNN框架由3個階段組成:(1)主干網(wǎng)絡(ResNet),對輸入圖像進行特征提取,生成特征圖(Feature Maps);(2)區(qū)域建議網(wǎng)絡(RPN),對主干網(wǎng)絡輸出的特征圖進行處理進一步生成感興趣區(qū)域(RoIs);(3)三分支結(jié)構(gòu),生成檢測目標的類別、回歸框坐標以及掩膜。本文選擇Mask R-CNN作為成熟油茶果目標檢測網(wǎng)絡結(jié)構(gòu),解決傳統(tǒng)的圖像閾值分割方法難以有效處理自然環(huán)境下各種干擾因素對果實識別結(jié)果影響的技術(shù)問題[16-17]。
圖3 Mask R-CNN目標檢測網(wǎng)絡結(jié)構(gòu)圖
主要模型算法分為以下5個部分。
1) 將所采集的果實圖像進行卷積(CONV Layers)處理,使用ResNet卷積神經(jīng)網(wǎng)絡提取油茶果果實圖片的特征,采用殘差傳播,生成特征圖(Feature Maps)。
2) 采用RPN對所得到的特征圖進行操作,產(chǎn)生ROIs,對每個候選區(qū)域進行目標框回歸操作生成目標回歸框并得到類別可能性大小。RPN對不同尺度的特征圖進行卷積,在每個位置生成3個錨點(anchor),其中針對class生成3×4個卷積核(果實顏色3類和背景)。在卷積層后連接兩個全鏈接層,完成每個像素的前景(目標)和后景(背景)的判別,以及果實目標框的回歸修正。
3) 對每一個RPN得到的ROIs和特征圖,進行RoIAlign操作,提取每個RoI對應的特征并將特征的維度轉(zhuǎn)化成特定的值,將所有的特征全部輸入到全連接層進行權(quán)值共享,得到所有RoI規(guī)整之后的特征圖。
4) 將規(guī)整后的特征圖分別導入Cls & Reg和Mask掩膜兩條通路。其中,Cls & Reg通路包含兩個支路,分別用于生成回歸框和預測類別;Mask掩膜通路,以像素到像素的方式來對分割掩膜進行預測,該分支為卷積網(wǎng)絡,用于生成Mask標記。
5) 輸出三個輸出結(jié)果:目標的類別、目標的回歸框坐標以及目標的掩膜。
模型訓練主要分為預訓練、遷移學習訓練和驗證訓練三個階段,如圖4所示。
首先,采用ResNet神經(jīng)網(wǎng)絡對預訓練集樣本進行預訓練,獲得成熟果實特征提取器;然后,添加Mask分支和classifier分支,對優(yōu)化訓練集樣本進行網(wǎng)絡模型參數(shù)訓練,經(jīng)多次迭代訓練和遷移學習調(diào)整,得到優(yōu)化模型;最后,利用驗證集樣本對模型進行驗證,并進一步調(diào)整模型。模型訓練過程需要控制loss函數(shù)的收斂過程和訓練集的識別效果兩個關(guān)鍵環(huán)節(jié),以及迭代的步長與次數(shù)、學習率和置信度等關(guān)鍵參數(shù)。
圖4 Mask R-CNN目標檢測網(wǎng)絡模型訓練示意圖
具體訓練步驟分為以下5個部分。
1) 加載預訓練好的MS COCO模型參數(shù)。
2) 修改配置參數(shù)及分類參數(shù)。為了獲取更快速和準確的訓練結(jié)果,相關(guān)參數(shù)范圍按照下列原則設置:類別數(shù)設定為4,包括果實目標類別3類和背景。圖片像素設定為640×960;每張圖片的ROI個數(shù)設定為100。學習率設定為10-4~10-2,每次訓練的迭代步數(shù)epoch設定為50~200步,每次驗證的迭代步數(shù)epoch設定為10~100步,迭代次數(shù)設定范圍為50~200步。置信度檢測設定為0.7~0.9;anchor大小設定為8×6,16×6,32×6,64×6,128×6等五類。
3) 基礎(chǔ)網(wǎng)絡層訓練。在預訓練階段,所取特征的卷積神經(jīng)網(wǎng)絡可以設置不同的數(shù)量級網(wǎng)絡層進行果實特征提取,本研究首先導入預訓練集樣本對ResNet 50、ResNet101和VGGNet三種不同的基礎(chǔ)網(wǎng)絡層進行訓練,通過對loss函數(shù)的收斂過程的判斷和比較分析,優(yōu)選出一種適用的基礎(chǔ)網(wǎng)絡層進行后續(xù)特征提取。
4) 網(wǎng)絡模型優(yōu)化訓練。調(diào)整并記錄網(wǎng)絡模型每次優(yōu)化所選取的迭代步長與次數(shù)、學習率、positiveIoU(置信度)等參數(shù),同時觀測并記錄模型的收斂下降速度和收斂程度。使用優(yōu)化訓練集樣本進行油茶果果實目標檢測模型的參數(shù)調(diào)整和模型優(yōu)化,獲取識別后被標記的果實目標檢測圖像。評估優(yōu)化訓練集果實目標檢測的準確率、漏檢率、誤檢率參數(shù)。
5) 網(wǎng)絡模型參數(shù)調(diào)整。重復步驟(4)至模型達到理想的結(jié)果。模型的參數(shù)確定為訓練的迭代步數(shù)epoch設定范圍為100步,驗證的迭代步數(shù)epoch設定范圍為50步,迭代次數(shù)設定范圍為100步;positiveIoU(置信度)設定為0.7;學習率設定為10-3。
基于Mask R-CNN的成熟油茶果目標檢測算法的訓練損失函數(shù)Lfinal描述為
Lfinal=L({pi},{ti})+(Lcls+Lreg+Lmask)
(1)
該算法的核心是通過多任務的損失函數(shù)來計算ROIs(感興趣區(qū)域)的輸出結(jié)果。在RPN層中定義損失函數(shù)
(2)
式中:λ——考慮分類與回歸兩個結(jié)果的權(quán)重值。
λ越大表示越重視回歸損失,λ越小表示越重視分類損失。
在ROI區(qū)域上添加Mask掩膜層,其中classifier分類網(wǎng)絡部分的損失函數(shù)
L=Lcls+Lreg+Lmask
(3)
Lcls為分類損失函數(shù),表征目標的類別分類損失程度
(4)
式中:pi——候選區(qū)域含有目標的概率計算值;
當期望值與真實值越接近時,此時損失函數(shù)最小。
Lreg為邊框回歸損失函數(shù),表征目標的檢測框坐標的損失程度,具體公式為
(5)
式中:ti——目標檢測框的四個參數(shù)化構(gòu)成的坐標向量計算值;
R——魯棒損失函數(shù)。
邊框回歸損失函數(shù)中四個坐標參數(shù)化表示公式如式(6)所示。
(6)
其中,x,y,ω,h分別表示目標檢測框的中心點坐標和高寬,x,xa,x*分別表示目標檢測框計算值、anchor框、目標檢測框期望值的x坐標(y,ω,h同理)。
R魯棒損失函數(shù)
(7)
Lmask掩膜損失函數(shù)
Lmask=[Km2]i
(8)
式中:m2——掩膜分支對每個ROIs(感興趣區(qū)域)產(chǎn)生的m×m大小的掩膜;
i——當前ROIs(感興趣區(qū)域)的類別;
K——當前圖片下果實的類別數(shù)目。
如圖5所示,表征了基于Mask R-CNN的目標檢測算法的模型訓練結(jié)果。可以看出,整個模型各階段loss函數(shù)均達到收斂,且損失值達到預定閾值0.3以下后無振蕩出現(xiàn),表明整體網(wǎng)絡模型訓練已經(jīng)達到參數(shù)最優(yōu)。
圖5 神網(wǎng)絡模型各階段損失函數(shù)的 loss值收斂過程
該試驗是在TensorFlow和Keras的深度學習開發(fā)框架下進行的,采用Intel酷睿i7-7820X型號CPU,顯卡RX2080TI,主頻2.9 GHz,16 GB內(nèi)存,GPU為RTX2080Ti型號的硬件平臺。在實驗過程中,共選擇了3 000張油茶果圖像進行訓練,其中80%為訓練集,20%為驗證集。為了驗證訓練模型的穩(wěn)定性和可靠性,選擇了1 800張油茶測試圖像進行模型評估,檢測識別出油茶果圖像中果實目標,并且用目標類別分數(shù)、邊界框和實例分割模板進行標記。
重疊系數(shù)OC用于評估目標檢測結(jié)果的準確性。重疊系數(shù)表示在目標邊界框中被正確檢測為目標或背景的像素占實際目標或背景像素的比率。
OC值越高,檢測性能越好。本文設定當重疊系數(shù)為0.9以上,則認為目標檢測結(jié)果正確。如圖6所示,表示重疊系數(shù)為0.9以上正確檢測的目標。其中,表1列出了目標檢測模型對1 800個圖像樣本的識別結(jié)果混淆矩陣。
圖6 重疊系數(shù)為0.9以上正確檢測的目標
表1 目標檢測模型的識別結(jié)果混淆矩陣Tab. 1 Recognition result confusion matrix of target detection model
表1中,在第一行和第一列分別表示預測類別與實際類別,不同行列組成的數(shù)值表示預測類別與實際類別對應關(guān)系的數(shù)量,如果預測類別與實際類別相同,則表示正確檢測;否則,表示錯誤檢出。
基于Mask R-CNN的目標檢測模型的檢測性能實例效果如圖7所示。其中,圖7(a)表示在不同類別LR、DR的果實正確檢測;圖7(b)表示在花葉遮擋影響下的果實正確檢測;圖7(c)表示在果實重疊影響下的果實正確檢測。
(a) 在不同類別LR、DR的果實正確檢測
(b) 花葉遮擋影響下的果實正確檢測
(c) 果實重疊影響下的果實正確檢測
在此試驗過程中,采用精確率P和召回率R作為評估模型的目標檢測性能的指標。精確率表示在圖片中被正確分類檢測目標占實際目標的比率。召回率表示圖片中被識別出目標占實際目標的比率[18-19]。
表2列出了對于1 800張驗證集圖像目標檢測模型的詳細結(jié)果,可以看到,總體準確性和召回率分別為89.42%和92.86%,表明油茶果識別精度較高。
表2 目標檢測模型檢測結(jié)果的準確性和召回率Tab. 2 Accuracy and recall of object detection model detection results
在圖像分割領(lǐng)域,MIoU是經(jīng)常用于評估圖像分割性能的重要指標。對1 800張驗證集圖像的分割結(jié)果表明,油茶果的MIoU可以達到89.85%,可以滿足油茶果實例分割的需要。油茶果圖像的分割實例如圖8所示。其中,圖8(a)表示在多果實重疊影響下的圖像分割;圖8(b) 表示在不同花葉遮擋比例影響下的圖像分割。
在對油茶果圖像進行有效分割后,可以從Mask R-CNN生成的mask圖像的形狀和邊緣特征來實現(xiàn)果實的輪廓擬合還原。油茶果果實識別與輪廓擬合效果實例如圖9所示。
(a) 多果實重疊影響下的圖像分割
(b) 不同花葉遮擋比例影響下的圖像分割
圖9 油茶果圖像的果實識別與輪廓擬合
目標識別精度采用三個元素指標,分別是TP:果實被正確檢測到的數(shù)目;FN:果實未被檢測到的數(shù)目;FP:被誤檢為果實的數(shù)目。
評估模型的目標檢測性能的指標分為以下3類。
(9)
(10)
(11)
式中:TPR——識別有效率;
FPR——誤檢率;
P——精確率。
進一步,對驗證組樣本集圖片的實驗結(jié)果進行分組統(tǒng)計,分組原則與訓練集相同,即分為花葉遮擋、果實重疊遮擋、果實成熟度色澤和光照影響4類單因素圖片集和無控制組??傮w圖片樣本分組統(tǒng)計的檢測結(jié)果如表3所示。
由表3可以看到,對各組單因素、多因素情況下的識別效果,TPR均在86%左右,P值均在90%左右;對于所有單因素組的果實目標識別有效率(TPR)均高于92%,對于花葉遮擋、果實重疊、色澤度這三類單一因素干擾,F(xiàn)PR均能有效控制在10%左右,達到了較好的目標檢測效果。因此,可以得出訓練后的模型能夠準確獲取圖像中果實目標類別、目標像素點坐標以及目標掩膜圖像,并且有效克服遮擋、重疊等干擾因素,進行目標特征提取和圖像分割。
表3 分組統(tǒng)計后驗證組樣本集圖片的試驗結(jié)果Tab. 3 Experimental results of the pictures of the sample set of the validation group after grouping statistics
本文以自然環(huán)境下的油茶果為研究對象,對圖像采集設備視野范圍內(nèi)的油茶果進行圖像處理, 提出一種應用于機器人收獲技術(shù)的果實目標精確識別方法,解決自然環(huán)境下油茶果果實目標識別精度低的問題,有效降低不同光照情況下葉片與花苞遮擋、果實重疊、果實色澤等因素干擾,提高目標識別精度。研究工作主要包括兩個部分:提出一個用于深度學習卷積神經(jīng)網(wǎng)絡模型訓練的樣本庫和一個基于Mask R-CNN的油茶果果實目標精確識別方法。
1) 建立了一個包含3 400幅有效圖像的深度學習卷積神經(jīng)網(wǎng)絡模型訓練樣本庫,該樣本庫由預訓練集、優(yōu)化訓練集和驗證集組成,每個數(shù)據(jù)集包含4個單因素樣本組,分別為花葉遮擋、果實重疊、果實顏色和光照不均勻性;多因素樣本組,包含有2/3/4種單因素情況組合以及無控制樣本組。
2) 研究了一種可以自動檢測成熟和未成熟油茶果的Mask R-CNN模型,并從該模型輸出了油茶果的mask圖像。1 800張測試圖像的果實檢測結(jié)果表明,平均檢測精度,召回率和MIoU率分別為89.42%,92.86%和89.85%。經(jīng)過訓練的模型對油茶果果實的圖像檢測,能夠有效降低圖像中的光強度變化,多果附著,重疊,遮擋和其他復雜的生長狀態(tài)對識別精度的影響。與傳統(tǒng)的果實檢測算法相比,該模型具有更好的通用性和穩(wěn)定性,能夠克服傳統(tǒng)機器視覺算法在油茶果果實檢測中準確率低和魯棒性差的難題。