王林柏,劉景艷,周玉宏,張君,李興旺,范曉飛
(河北農(nóng)業(yè)大學機電工程學院,河北保定,071000)
玉米是世界上重要的糧食之一,全世界大約有三分之一的人口以玉米為口糧,因此種子質量問題尤為重要。玉米種子在儲存和運輸過程中很容易受到破損和發(fā)霉問題的影響[1],而表型缺陷是種子質量評價的重要指標。當前種子的質量檢測還是依靠以人工為主的傳統(tǒng)識別方法,效率低且具有主觀性,因此將較為先進的目標檢測技術應用到種子篩選當中具有重要的意義。
近年來,許多學者將機器視覺應用到種子質量檢測當中并且取得了一定的研究成果[2-5]。其中,閆彬等提出了一種利用機器視覺和數(shù)字圖像處理技術自動提取玉米籽粒并進行裂紋識別的方法,該方法對玉米籽粒胚面和胚乳面裂紋檢測的平均準確率為90.6%。孟繁佳等[6]根據(jù)霉變玉米種子與正常玉米種子表面顏色的差異,設計了一種基于HSV顏色空間劃分的霉變玉米種子識別算法,實現(xiàn)了玉米種子的精確分選,該算法從圖像中提取種子的顏色、紋理、形態(tài)等特征參數(shù),然后利用分類器進行種子缺陷的鑒別,比人工為主的檢測效率有明顯的提升。
隨著深度卷積神經(jīng)網(wǎng)絡(DCNN)的應用與發(fā)展,目標檢測與識別技術逐步被應用于農(nóng)業(yè)生產(chǎn)當中[7-10]。目前,深度學習算法已在農(nóng)作物的果實識別和雜草識別方面獲得了較好的效果。閆建偉等[11]運用改進的Faster-RCNN進行刺梨果的識別,該算法對自然條件下刺梨果實的識別具有較高的正確率和實時性。趙德安等[12]提出了基于YOLO v3的深度卷積神經(jīng)網(wǎng)絡的蘋果定位方法,實現(xiàn)了在全天候的不同光線環(huán)境下對遮擋、粘連和套袋等多種情況下的果實識別定位。張思雨等[13]提出了一種基于機器視覺與自適應卷積神經(jīng)網(wǎng)絡的花生質量檢測方法,該方法對花生缺陷的平均識別率達99.7%,但是只是對單個目標進行檢測。祝詩平等[14]為了快速、準確識別小麥籽粒的完整粒和破損粒,設計了基于卷積神經(jīng)網(wǎng)絡的小麥籽粒完整性圖像檢測系統(tǒng),并成功應用于實際檢測中,但是對于粘連小麥籽粒并沒有進行處理。
為了解決在玉米種子缺陷自動識別過程中所面臨的籽粒之間相互粘連及目標檢測定位的問題,本文以不同質量的玉米種子作為研究對象,首次提出利用分水嶺算法結合改進的InceptionV3卷積神經(jīng)網(wǎng)絡對玉米種子進行缺陷檢測,同時對比了VGG16、ResNet50兩種卷積神經(jīng)網(wǎng)絡模型和傳統(tǒng)的機器學習目標檢測方法。
本試驗以不同質量的玉米種子作為研究對象進行檢測試驗,相機采用JAI的CCD彩色相機進行數(shù)據(jù)采集,圖像的分辨率為1296像素×964像素,所有圖像均為JPG格式。每個顏色通道的像素深度為8位,并采用白色LED環(huán)形光源和增強圖像對比度的白色背光源。
(a)原始圖像
試驗共采集圖像300張,其中將270張圖像用于訓練,30張圖像用于模型的驗證。種子分為兩種類別,其中所有單粒玉米種子中外觀良好無任何缺陷的有1 013粒,帶有缺陷的玉米種子有1 188粒。試驗條件為:windows10、64位操作系統(tǒng),Cuda版本為10.0,采用基于python編程語言的Tensorflow與Keras深度學習框架。采用的電腦配置為:GeForce GTX 1660顯卡,6G顯存;Intel(R)Core(TM)i5-9400F處理器,主頻2.90 GHz。
為了進一步擴大數(shù)據(jù)樣本,利用亮度調整、旋轉、加入高斯噪聲等圖像增強方式將單粒種子圖像的數(shù)量進行擴增,以此提升模型的性能。最終外觀良好的籽粒圖像有3 784張,帶有缺陷的有3 350張。在訓練過程中按4∶1的比例進行劃分,其中5 708張圖像用于訓練,1 426張圖像用于測試。
對于本試驗,需要檢測的圖像中玉米種子之間存在著相互粘連的問題,形狀相對比較規(guī)則,而且顏色大致相同,所以通過分水嶺分割算法[15]在圖像中分割出每一個單粒種子作為特征提取的候選區(qū)域用于模型的訓練和檢測。本文使用OpenCV庫中的函數(shù)來進行粘連種子的分割,首先將原始圖像轉換為灰度圖,然后使用OSTU算法得到種子大概輪廓的二值圖像,并通過形態(tài)開運算去除圖像中存在的小的黑白噪聲。將得到的二值圖像進行膨脹操作,此時真實種子的圖像為膨脹后圖像的子集,使用距離變換算法得到了每粒種子的中心區(qū)域,然后把膨脹之后的圖像減去中心區(qū)域就是不確定的種子邊緣區(qū)域,創(chuàng)建一個掩碼圖像使每粒種子的中心區(qū)域圖像擁有自己的標號,使用不同的顏色表示每粒種子的編號,最后利用分水嶺算法得到每粒種子邊緣的確切位置。根據(jù)每粒種子的像素點坐標,獲取種子在圖像中的位置,將單粒種子分割出來,同時去掉相鄰種子。圖像分割過程及分割結果如圖2所示。
(a)分割過程
目前典型的卷積神經(jīng)網(wǎng)絡主要包含卷積層、池化層和全連接層。VGG16模型的實質是AlexNet結構的增強版,它側重強調卷積神經(jīng)網(wǎng)絡設計中的深度。VGG結構共有五個卷積層,并且每個卷積層之后都有一個池化層。VGG網(wǎng)絡用了更小的3×3的卷積核,使得參數(shù)量變小,節(jié)省了計算資源,將資源留給后面的更深層次的網(wǎng)絡,由于層數(shù)較多,卷積核比較小,這樣使得整個網(wǎng)絡有比較好的特征提取效果。ResNet50模型解決了由于網(wǎng)絡深度與寬度的增加,使實際效果變差的問題。而ResNet模型增加了殘差結構,使網(wǎng)絡不再是簡單的堆疊結構,解決了梯度消失的問題,這樣的簡單疊加并沒有給網(wǎng)絡增加額外的參數(shù)及計算量,同時也提高了網(wǎng)絡訓練的效果與效率。
InceptionV3[16]模型是GoogLeNet的第三代模型,本文將對InceptionV3模型進行了改進,在原來模塊的基礎上再增加了bolck1、bolck2、bolck3,其結構如圖3所示,通過網(wǎng)絡深度的增加,可以提取更有效的特征。模塊一(bolck1)如圖4(a)是Inception引入的基礎模塊單元,該網(wǎng)絡的特點是對層與層之間的卷積運算進行了擴展,通過使用多尺度的卷積核對不同大小的感受野進行卷積,從而提取不同尺度的特征,最終將不同尺度特征進行融合。模塊二(bolck2)和模塊三(bolck3)如圖4(b)和圖4(c)所示,使用1×7和7×1的卷積代替7×7的卷積和使用1×3和3×1的卷積代替3×3的卷積,這種方法使較大的二維卷積變成兩個較小的一維卷積增加了空間特征的多樣性,同時減少計算量提高訓練效率。
圖3 改進型InceptionV3模型結構Fig.3 Improved InceptionV3 model structure
同時所有模塊的卷積中都用了修正線性單元(ReLU)和批量標準化(Batch Normalization),這樣可以規(guī)范每一層的輸出,使輸入輸出滿足同一正太分布,提升特征提取的能力,提高網(wǎng)絡性能。網(wǎng)絡最后使用全局平均池化(Global Average Pooling)、全連接層和Dropout層,經(jīng)過Softmax函數(shù)來進行分類。
卷積神經(jīng)網(wǎng)絡模型均采用Softmax函數(shù)計算分類的概率,計算公式如式(1)所示。
(1)
式中:yim——第i個樣本屬于第m類的預測概率;
k——類數(shù);
zim——第i個樣本的輸出向量與第m類參數(shù)向量的乘積;
zik——第i個樣本的輸出向量與第k類參數(shù)向量的乘積。
模型均以分類交叉熵(Categorical cross entropy)作為模型的損失函數(shù),計算公式如式(2)所示。
(2)
(a)模塊一
本文共使用5種傳統(tǒng)機器學習的方法,對分水嶺分割后的單粒種子進行特征提取,然后通過SVM分類器進行質量分類。
1)MC(Morphological Characteristics,形態(tài)特征)特征是將每粒種子進行二值化處理,提取圖像的周長與面積之比;區(qū)域面積相同的圓的直徑;橢圓離心率;長軸與短軸之比;區(qū)域面積和邊界外接框面積的比率;區(qū)域和外接框之間填充的像素點總數(shù)與區(qū)域內像素點總數(shù)之比;區(qū)域周長與區(qū)域面積相同的圓的直徑之比,共7個形態(tài)特征作為特征向量。
2)Color顏色特征對圖像的大小和位置的依賴性小,本文提取(RGB)顏色直方圖作為特征向量。
3)HOG(Histogram Of Gradient,方向梯度直方圖)[19]能較好的捕捉到局部形狀信息,而且對幾何以及光學的變化有很好的不變性,本文提取圖像的梯度信息作為特征向量。
4)GLCM(Gray-level Co-occurrence Matrix,灰度共生矩陣)是一種基于統(tǒng)計的紋理特征提取的方法。本文構建的統(tǒng)計量有角二階矩;對比度;相關性;熵;協(xié)同性;差異性共6個特征參數(shù)作為特征向量。
5)LBP(Local Binary Pattern,局部二值模式)特征具有灰度不變性和旋轉不變性等顯著優(yōu)點,同時紋理特征維度低,計算速度快。本文提取圖像的LBP值,并用這個值來代表該區(qū)域的紋理信息。最終采用LBP特征值的統(tǒng)計直方圖作為特征向量用于分類識別。
為了評估訓練模型對種子質量識別的準確性和穩(wěn)定性,本文使用準確率P(precision),召回率R(recall)兩項指標進行模型的評價,同時引入F1值[17]作為調和的平均評價。
(3)
(4)
(5)
式中:nTP——正確識別玉米種子目標的數(shù)目;
nFP——錯誤識別玉米種子目標的數(shù)目;
nFN——未識別玉米種子目標的數(shù)目。
本文對改進型InceptionV3卷積神經(jīng)網(wǎng)絡模型對分割出的單個籽粒進行了訓練,同時對比了VGG16、ResNet50兩種模型,其中模型的訓練批尺寸設為16,卷積神經(jīng)網(wǎng)絡的迭代次數(shù)設為100,使用Adam作為優(yōu)化算法,初始學習率設為0.001,當測試集的損失值在10次迭代不下降時,學習率下降5倍,學習率最小設為0.000 001。三種模型的模型驗證集準確率隨迭代次數(shù)的變化曲線如圖5(a)所示,從圖5(a)中可以看出在40次迭代后三種模型趨于穩(wěn)定,其中改進型InceptionV3模型的測試集準確率最高為97.40%,其次ResNet50的測試集準確率為96.29%,VGG16的測試集準確率為91.17%。因此最終選取改進型InceptionV3為最終的分類模型,其訓練過程中的準確率與損失值曲線如圖5(b)和圖5(c)所示,從圖5(b)中可以看出其模型在50次迭代后趨于穩(wěn)定,準確率達到較高的水平。
(a)三種模型的訓練集準確率曲線
本文使用分水嶺分割算法將圖像分割成單粒種子圖像,并獲取單粒種子的位置坐標,然后利用卷積神經(jīng)網(wǎng)絡模型建立單粒種子圖像的質量分類模型,最后通過位置坐標將每粒種子在原圖中框出,并將檢測結果進行標注。本試驗將驗證集的30張圖像(單粒種子有350粒)在分水嶺結合改進型InceptionV3模型中進行檢測,兩種類別種子的平均準確率為94.18%,平均召回率為94.61%。同時對比了其他兩種卷積神經(jīng)網(wǎng)絡模型和原始模型,結果如表1所示,改進型InceptionV3模型的F1值最高為94.39%,其中每檢測一粒種子消耗87.34 ms。模型測試結果如圖6所示,改進型InceptionV3模型的籽粒分類準確率達到了較高的值,因為改進型InceptionV3對每個模塊進行了增加,加深了網(wǎng)絡結構,提高了提取特征的能力。其中每個模塊為稀疏連接,克服了參數(shù)量多的問題,同時將1個卷積層拆成2個卷積層(將7×7分解成兩個一維的卷積1×7,7×1),使得網(wǎng)絡深度進一步增加,增加了網(wǎng)絡的非線性,同時分水嶺算法的應用,可以準確的對目標畫框標注,所以表現(xiàn)出較好檢測效果。
表1 分水嶺算法結合卷積神經(jīng)網(wǎng)絡的目標檢測結果Tab.1 Object detection results of watershed algorithm combined with convolutional neural network
圖6 目標檢測結果
Fig.6 Object detection results
在分水嶺算法結合傳統(tǒng)機器學習目標檢測試驗中,使用Sklearn庫中的SVM分類器對每種方法提取的特征進行訓練,SVM的參數(shù)中懲罰系數(shù)設為1,核函數(shù)類型設為高斯核函數(shù),停止訓練的誤差精度為0.001,其他值設為默認值。
利用訓練完成的模型進行分類試驗,試驗結果如表2所示,其中檢測效果最好的LBP+SVM方法的結果如圖7所示。
表2 分水嶺算法結合機器學習的目標檢測結果Tab.2 Object detection results of watershed algorithm combined with machine learning
圖7 LBP+SVM傳統(tǒng)機器學習檢測結果Fig.7 Detection results of traditional machine learning
從表2中可以看出,雖然利用分水嶺算法結合機器學習的目標檢測模型檢測每張圖片的耗時較短,但是準確率、召回率及F1值普遍低于分水嶺算法結合深度學習的目標檢測結果,其中LBP+SVM方法的F1值為74.00%低于分水嶺+改進型InceptionV3模型20.39%。
由此說明,在與分水嶺算法結合進行目標檢測上面,深度學習要明顯優(yōu)于機器學習,而隨著網(wǎng)絡層數(shù)增加能夠提取到更豐富的特征,在魯棒性和準確性上也會表現(xiàn)出更強的優(yōu)勢。
1)本文提出了分水嶺算法結合卷積神經(jīng)網(wǎng)絡的目標檢測方法,該方法通過分水嶺算法將粘連的單粒玉米子進行分割,獲取種子的位置坐標,然后通過卷積神經(jīng)網(wǎng)絡對種子質量進行分類,最后通過位置坐標將每粒種子在原圖中框出,并將檢測結果進行標注,實現(xiàn)玉米種子質量的檢測。
2)為了證明本文方法的性能,同時對比了不同的卷積神經(jīng)網(wǎng)絡模型和傳統(tǒng)機器學習的方法,試驗結果證明改進型InceptionV3模型對種子質量分類效果最好,其F1值為94.39%,平均檢測一粒種子需要87.34 ms,卷積神經(jīng)網(wǎng)絡的檢測效果明顯優(yōu)于傳統(tǒng)機器學習方法。
3)相較于目前主流的目標檢測算法如Faster-RCNN、YOLO(You Only Look Once)等,使用分水嶺算法,無需在訓練前對每張圖像中每粒種子進行畫框標注,無需通過回歸尋找邊框,降低了模型訓練的復雜度,同時也降低了對硬件系統(tǒng)的要求。由于在種子檢測定位中,使用分水嶺算法對目標定位更準確,因此在實際應用中也更有利于對有缺陷種子的剔除。