王梁,侯義鋒,賀杰
(梧州學院廣西機器視覺與智能控制重點實驗室,廣西梧州,543003)
由于油茶的營養價值豐富且具有保健防病的功能,因此被廣大消費者喜愛,需求量也持續增加。據統計,在油茶的生產作業中,收獲采摘約占整個作業量的40%~50%[1],機器人收獲技術在油茶采摘中得到了大規模的應用,如何實現果實目標精準識別是機器人收獲技術中需要重點解決的問題。
自然場景中影響果實目標識別精度的干擾因素主要分為環境因素和果實生長狀態因素。環境因素對目標檢測的主要影響包括自然光的強度,莖葉的遮擋;果實生長狀態因素對目標檢測的主要影響包括多果粘附的重疊、果實色澤度不均。
目前,水果目標檢測的主要方法是基于結合機器視覺的機器學習算法。Zhao等[2-3]采用一種基于AdaBoost分類和顏色分析的算法進行對溫室中的成熟番茄果實的目標識別檢測,實現對成熟番茄果實的快速準確識別;He等[4]提出了一種基于改進的LDA分類器的綠色荔枝識別方法,有效的識別背景中的荔枝果實;李揚[5]提出一種K-means聚類算法與HSV顏色空間下閾值分割的柑橘圖像分割算法,實現了柑橘目標的有效識別檢測。
上述傳統方法相比,深度神經網絡(DNN)方法具有強大的特征提取能力和自主學習能力,已被廣泛用于作物目標檢測。閆建偉等[6]結合刺梨果實的特點,提出了一種基于改進的Faster RCNN刺梨果實識別方法,實現自然環境下刺梨果實的快速準確識別;Sun等[7]針對復雜背景、未成熟青番茄與植物顏色的高度相似性導致番茄識別有效率低的問題,提出了一種改進的基于卷積神經網絡(CNN)的番茄器官檢測方法,采用ResNet-50和K均值聚類方法改進了Faster R-CNN 模型,實驗結果平均精度(mAP)明顯的提高。
本文提出一種基于Mask-RCNN的自然場景下油茶果的果實目標精確識別方法,先利用Mask R-CNN網絡進行圖像分割,從像素級別的背景中提取對象區域,再求取果實對象mask的像素面積,求取界定閾值,依據閾值進行果實目標的識別,最后再根據mask圖像的形狀和邊緣特征進行果實的輪廓擬合還原。
2019年10月7—14日在中國廣西壯族自治區桂林市資源縣文垌村油茶果農場,分別在3號、5號、7號試驗田進行油茶果圖像的采集拍攝。利用Canon EOS 760D型號數碼照相機,由人工采集白花油茶品種(出油率較紅花高)的成熟期油茶果的圖像信息(圖1)。采集照片時相機的拍攝距離范圍為0.5~1.5 m之間;光圈設置為F 5.6;焦距范圍為f=18~135 mm;曝光時間為1/250 s[8]。照片的保存尺寸格式為像素值。根據前述擬解決的關鍵問題,按照樹葉遮擋、果實重疊、不同背景、果實色度、光照等影響因素分為5個單因素樣本組采集圖像,每個圖像包含一個影響因素的特征,每組采集500張照片[9]。另外,再取一個多因素樣本組,每個圖像包含若干單因素的特征,數量為500張。

(a) 不同遮擋率下的果實圖像示例

(c) 不同果實色澤度的果實圖像示例

(d) 不同光照影響下的果實圖像示例
在單因素照片的采集過程中,樹葉遮擋的情況按照遮擋率采集10%以下、10%~30%、30%~50%共3類照片[10],果實重疊的情況按照重疊率采集10%以下、10%~30%、30%~50%以上共3類照片[11],并綜合考慮照片中有2個、3個以及3個以上果實的情況;背景的情況根據田間環境分為簡單、正常和復雜三類背景[12];顏色根據鮮艷程度分為淡紅(LR)、淺紅(HR)、深紅(DR)三類[13];光照程度的情況分別選取上午9~10時,中午12~13時,下午15~16時3個時段采集昏暗、正常、明亮三類照片[14]。多因素照片采集中,按照包含有2/3/4/5種單因素情況分類四類采集。
數據庫共選用有效圖像樣本3 000張,其中,1 800張用于建立訓練模型集,1 200張用于驗證模型集[15]。訓練集又包含預訓練集和優化訓練集。用于模型參數預訓練的共有600張圖像樣本,每個單因素和多因素各選擇100張;用于模型參數優化訓練的共有1 200張圖像樣本,每個單因素和多因素各選擇200張。驗證集的1 200個樣本包括了每個單因素和多因素各200張,并且與訓練集的樣本相互獨立。
對于訓練集圖像的標記方法,首先,按比例將圖片大小統一調整為600像素×400像素,然后,利用labelme圖像標注工具采用“多邊形標注”方案標注出油茶果目標的所在區域,即為后續神經網絡模型的訓練集中待提取特征的預選區域。最后,根據分組類型,對每個組別的圖片進行分類標記,得到每張果實圖片的json文件,并利用python語言進行文件轉化,將每個json文件分解成所標記的原圖、灰度圖像、類別名、掩膜區域、被標記區域的像素點位置等五個文件為提供給后續模型訓練進行調用,如圖2所示。

(a) 圖像樣本示例

(b) 掩膜樣本示例
Mask R-CNN通過在Faster R-CNN基礎上增加一個額外的掩膜分支來擴展其目標檢測框架,增加全連接層(RoIAlign)并重新定義ROI損失函數,從而改進得到的一種用于實例分割的深度學習神經網絡。如圖3所示,Mask R-CNN框架由3個階段組成:(1)主干網絡(ResNet),對輸入圖像進行特征提取,生成特征圖(Feature Maps);(2)區域建議網絡(RPN),對主干網絡輸出的特征圖進行處理進一步生成感興趣區域(RoIs);(3)三分支結構,生成檢測目標的類別、回歸框坐標以及掩膜。本文選擇Mask R-CNN作為成熟油茶果目標檢測網絡結構,解決傳統的圖像閾值分割方法難以有效處理自然環境下各種干擾因素對果實識別結果影響的技術問題[16-17]。

圖3 Mask R-CNN目標檢測網絡結構圖
主要模型算法分為以下5個部分。
1) 將所采集的果實圖像進行卷積(CONV Layers)處理,使用ResNet卷積神經網絡提取油茶果果實圖片的特征,采用殘差傳播,生成特征圖(Feature Maps)。
2) 采用RPN對所得到的特征圖進行操作,產生ROIs,對每個候選區域進行目標框回歸操作生成目標回歸框并得到類別可能性大小。RPN對不同尺度的特征圖進行卷積,在每個位置生成3個錨點(anchor),其中針對class生成3×4個卷積核(果實顏色3類和背景)。在卷積層后連接兩個全鏈接層,完成每個像素的前景(目標)和后景(背景)的判別,以及果實目標框的回歸修正。
3) 對每一個RPN得到的ROIs和特征圖,進行RoIAlign操作,提取每個RoI對應的特征并將特征的維度轉化成特定的值,將所有的特征全部輸入到全連接層進行權值共享,得到所有RoI規整之后的特征圖。
4) 將規整后的特征圖分別導入Cls & Reg和Mask掩膜兩條通路。其中,Cls & Reg通路包含兩個支路,分別用于生成回歸框和預測類別;Mask掩膜通路,以像素到像素的方式來對分割掩膜進行預測,該分支為卷積網絡,用于生成Mask標記。
5) 輸出三個輸出結果:目標的類別、目標的回歸框坐標以及目標的掩膜。
模型訓練主要分為預訓練、遷移學習訓練和驗證訓練三個階段,如圖4所示。
首先,采用ResNet神經網絡對預訓練集樣本進行預訓練,獲得成熟果實特征提取器;然后,添加Mask分支和classifier分支,對優化訓練集樣本進行網絡模型參數訓練,經多次迭代訓練和遷移學習調整,得到優化模型;最后,利用驗證集樣本對模型進行驗證,并進一步調整模型。模型訓練過程需要控制loss函數的收斂過程和訓練集的識別效果兩個關鍵環節,以及迭代的步長與次數、學習率和置信度等關鍵參數。

圖4 Mask R-CNN目標檢測網絡模型訓練示意圖
具體訓練步驟分為以下5個部分。
1) 加載預訓練好的MS COCO模型參數。
2) 修改配置參數及分類參數。為了獲取更快速和準確的訓練結果,相關參數范圍按照下列原則設置:類別數設定為4,包括果實目標類別3類和背景。圖片像素設定為640×960;每張圖片的ROI個數設定為100。學習率設定為10-4~10-2,每次訓練的迭代步數epoch設定為50~200步,每次驗證的迭代步數epoch設定為10~100步,迭代次數設定范圍為50~200步。置信度檢測設定為0.7~0.9;anchor大小設定為8×6,16×6,32×6,64×6,128×6等五類。
3) 基礎網絡層訓練。在預訓練階段,所取特征的卷積神經網絡可以設置不同的數量級網絡層進行果實特征提取,本研究首先導入預訓練集樣本對ResNet 50、ResNet101和VGGNet三種不同的基礎網絡層進行訓練,通過對loss函數的收斂過程的判斷和比較分析,優選出一種適用的基礎網絡層進行后續特征提取。
4) 網絡模型優化訓練。調整并記錄網絡模型每次優化所選取的迭代步長與次數、學習率、positiveIoU(置信度)等參數,同時觀測并記錄模型的收斂下降速度和收斂程度。使用優化訓練集樣本進行油茶果果實目標檢測模型的參數調整和模型優化,獲取識別后被標記的果實目標檢測圖像。評估優化訓練集果實目標檢測的準確率、漏檢率、誤檢率參數。
5) 網絡模型參數調整。重復步驟(4)至模型達到理想的結果。模型的參數確定為訓練的迭代步數epoch設定范圍為100步,驗證的迭代步數epoch設定范圍為50步,迭代次數設定范圍為100步;positiveIoU(置信度)設定為0.7;學習率設定為10-3。
基于Mask R-CNN的成熟油茶果目標檢測算法的訓練損失函數Lfinal描述為
Lfinal=L({pi},{ti})+(Lcls+Lreg+Lmask)
(1)
該算法的核心是通過多任務的損失函數來計算ROIs(感興趣區域)的輸出結果。在RPN層中定義損失函數

(2)
式中:λ——考慮分類與回歸兩個結果的權重值。
λ越大表示越重視回歸損失,λ越小表示越重視分類損失。
在ROI區域上添加Mask掩膜層,其中classifier分類網絡部分的損失函數
L=Lcls+Lreg+Lmask
(3)
Lcls為分類損失函數,表征目標的類別分類損失程度
(4)
式中:pi——候選區域含有目標的概率計算值;

當期望值與真實值越接近時,此時損失函數最小。
Lreg為邊框回歸損失函數,表征目標的檢測框坐標的損失程度,具體公式為
(5)
式中:ti——目標檢測框的四個參數化構成的坐標向量計算值;

R——魯棒損失函數。
邊框回歸損失函數中四個坐標參數化表示公式如式(6)所示。
(6)
其中,x,y,ω,h分別表示目標檢測框的中心點坐標和高寬,x,xa,x*分別表示目標檢測框計算值、anchor框、目標檢測框期望值的x坐標(y,ω,h同理)。
R魯棒損失函數
(7)
Lmask掩膜損失函數
Lmask=[Km2]i
(8)
式中:m2——掩膜分支對每個ROIs(感興趣區域)產生的m×m大小的掩膜;
i——當前ROIs(感興趣區域)的類別;
K——當前圖片下果實的類別數目。
如圖5所示,表征了基于Mask R-CNN的目標檢測算法的模型訓練結果。可以看出,整個模型各階段loss函數均達到收斂,且損失值達到預定閾值0.3以下后無振蕩出現,表明整體網絡模型訓練已經達到參數最優。

圖5 神網絡模型各階段損失函數的 loss值收斂過程
該試驗是在TensorFlow和Keras的深度學習開發框架下進行的,采用Intel酷睿i7-7820X型號CPU,顯卡RX2080TI,主頻2.9 GHz,16 GB內存,GPU為RTX2080Ti型號的硬件平臺。在實驗過程中,共選擇了3 000張油茶果圖像進行訓練,其中80%為訓練集,20%為驗證集。為了驗證訓練模型的穩定性和可靠性,選擇了1 800張油茶測試圖像進行模型評估,檢測識別出油茶果圖像中果實目標,并且用目標類別分數、邊界框和實例分割模板進行標記。
重疊系數OC用于評估目標檢測結果的準確性。重疊系數表示在目標邊界框中被正確檢測為目標或背景的像素占實際目標或背景像素的比率。
OC值越高,檢測性能越好。本文設定當重疊系數為0.9以上,則認為目標檢測結果正確。如圖6所示,表示重疊系數為0.9以上正確檢測的目標。其中,表1列出了目標檢測模型對1 800個圖像樣本的識別結果混淆矩陣。

圖6 重疊系數為0.9以上正確檢測的目標

表1 目標檢測模型的識別結果混淆矩陣Tab. 1 Recognition result confusion matrix of target detection model
表1中,在第一行和第一列分別表示預測類別與實際類別,不同行列組成的數值表示預測類別與實際類別對應關系的數量,如果預測類別與實際類別相同,則表示正確檢測;否則,表示錯誤檢出。
基于Mask R-CNN的目標檢測模型的檢測性能實例效果如圖7所示。其中,圖7(a)表示在不同類別LR、DR的果實正確檢測;圖7(b)表示在花葉遮擋影響下的果實正確檢測;圖7(c)表示在果實重疊影響下的果實正確檢測。

(a) 在不同類別LR、DR的果實正確檢測

(b) 花葉遮擋影響下的果實正確檢測

(c) 果實重疊影響下的果實正確檢測
在此試驗過程中,采用精確率P和召回率R作為評估模型的目標檢測性能的指標。精確率表示在圖片中被正確分類檢測目標占實際目標的比率。召回率表示圖片中被識別出目標占實際目標的比率[18-19]。
表2列出了對于1 800張驗證集圖像目標檢測模型的詳細結果,可以看到,總體準確性和召回率分別為89.42%和92.86%,表明油茶果識別精度較高。

表2 目標檢測模型檢測結果的準確性和召回率Tab. 2 Accuracy and recall of object detection model detection results
在圖像分割領域,MIoU是經常用于評估圖像分割性能的重要指標。對1 800張驗證集圖像的分割結果表明,油茶果的MIoU可以達到89.85%,可以滿足油茶果實例分割的需要。油茶果圖像的分割實例如圖8所示。其中,圖8(a)表示在多果實重疊影響下的圖像分割;圖8(b) 表示在不同花葉遮擋比例影響下的圖像分割。
在對油茶果圖像進行有效分割后,可以從Mask R-CNN生成的mask圖像的形狀和邊緣特征來實現果實的輪廓擬合還原。油茶果果實識別與輪廓擬合效果實例如圖9所示。

(a) 多果實重疊影響下的圖像分割

(b) 不同花葉遮擋比例影響下的圖像分割

圖9 油茶果圖像的果實識別與輪廓擬合
目標識別精度采用三個元素指標,分別是TP:果實被正確檢測到的數目;FN:果實未被檢測到的數目;FP:被誤檢為果實的數目。
評估模型的目標檢測性能的指標分為以下3類。
(9)
(10)
(11)
式中:TPR——識別有效率;
FPR——誤檢率;
P——精確率。
進一步,對驗證組樣本集圖片的實驗結果進行分組統計,分組原則與訓練集相同,即分為花葉遮擋、果實重疊遮擋、果實成熟度色澤和光照影響4類單因素圖片集和無控制組??傮w圖片樣本分組統計的檢測結果如表3所示。
由表3可以看到,對各組單因素、多因素情況下的識別效果,TPR均在86%左右,P值均在90%左右;對于所有單因素組的果實目標識別有效率(TPR)均高于92%,對于花葉遮擋、果實重疊、色澤度這三類單一因素干擾,FPR均能有效控制在10%左右,達到了較好的目標檢測效果。因此,可以得出訓練后的模型能夠準確獲取圖像中果實目標類別、目標像素點坐標以及目標掩膜圖像,并且有效克服遮擋、重疊等干擾因素,進行目標特征提取和圖像分割。

表3 分組統計后驗證組樣本集圖片的試驗結果Tab. 3 Experimental results of the pictures of the sample set of the validation group after grouping statistics
本文以自然環境下的油茶果為研究對象,對圖像采集設備視野范圍內的油茶果進行圖像處理, 提出一種應用于機器人收獲技術的果實目標精確識別方法,解決自然環境下油茶果果實目標識別精度低的問題,有效降低不同光照情況下葉片與花苞遮擋、果實重疊、果實色澤等因素干擾,提高目標識別精度。研究工作主要包括兩個部分:提出一個用于深度學習卷積神經網絡模型訓練的樣本庫和一個基于Mask R-CNN的油茶果果實目標精確識別方法。
1) 建立了一個包含3 400幅有效圖像的深度學習卷積神經網絡模型訓練樣本庫,該樣本庫由預訓練集、優化訓練集和驗證集組成,每個數據集包含4個單因素樣本組,分別為花葉遮擋、果實重疊、果實顏色和光照不均勻性;多因素樣本組,包含有2/3/4種單因素情況組合以及無控制樣本組。
2) 研究了一種可以自動檢測成熟和未成熟油茶果的Mask R-CNN模型,并從該模型輸出了油茶果的mask圖像。1 800張測試圖像的果實檢測結果表明,平均檢測精度,召回率和MIoU率分別為89.42%,92.86%和89.85%。經過訓練的模型對油茶果果實的圖像檢測,能夠有效降低圖像中的光強度變化,多果附著,重疊,遮擋和其他復雜的生長狀態對識別精度的影響。與傳統的果實檢測算法相比,該模型具有更好的通用性和穩定性,能夠克服傳統機器視覺算法在油茶果果實檢測中準確率低和魯棒性差的難題。