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