曹金鳳,沈大港,郭繼鴻,劉鵬,李策,蘭添賀
(1. 青島理工大學(xué)機械與汽車工程學(xué)院,山東青島,266520;2. 中國礦業(yè)大學(xué)(北京)能源與礦業(yè)學(xué)院,北京市,100083)
大蒜因其良好的食用和藥用價值受到全球人民的喜愛。由于大蒜主要圍繞蒜芽周圍生長,實現(xiàn)鱗芽朝上、直立栽種對大蒜出苗和蒜頭生長發(fā)育至關(guān)重要[1-2]。目前,我國大蒜種植產(chǎn)業(yè)基本靠人工,已研發(fā)并投入使用的大蒜播種設(shè)備,只能實現(xiàn)大蒜側(cè)臥入土[3],不利于大蒜產(chǎn)業(yè)的大規(guī)模種植與發(fā)展。
研發(fā)大蒜全自動播種設(shè)備,其最核心的問題是鱗芽的自動識別與修正。目前,學(xué)者們主要采用機器視覺算法來解決該問題[4-5]。如侯加林等[6]通過圖像采集與試驗確定建立了蒜種鱗芽扶正率與試驗因素之間的回歸模型。吳獻等[7]對蒜瓣樣本圖像進行形態(tài)學(xué)處理,采用觀測窗方法識別鱗芽朝向。曹世佳[8]基于圖像識別的角點檢測方法對大蒜鱗芽進行檢測。
CNN算法的最大優(yōu)勢在于采用卷積池化操作對輸入信號進行特征提取和降維,但是對于感受野過小與干擾大的圖像(例如大蒜鱗芽)[9-11],其結(jié)果并不十分理想。為此,本文充分考慮分類器的處理偏向性,設(shè)計了基于支持向量機(SVM)分類優(yōu)化的改進卷積神經(jīng)網(wǎng)絡(luò)(CNN-SVM),提高算法對局部特征的敏感性。同時,采用隨機參數(shù)組合擇優(yōu)技術(shù),解決訓(xùn)練過程中的參數(shù)隨機波動問題。不僅為大蒜自動智能播種設(shè)備的研發(fā)提供了算法儲備,而且也可以推廣應(yīng)用于其他小物體識別。
為保證試驗算法的普適性,本文設(shè)計模型訓(xùn)練試驗時,選擇購買了青島地區(qū)各大超市與農(nóng)貿(mào)市場隨機攤位的大蒜,并對大蒜進行處理:首先,對大蒜進行挑揀,剔除干裂、蟲洞、已發(fā)芽、橫徑過小等不適于種蒜種植的個體,挑選試驗蒜瓣800個。根據(jù)前人的試驗結(jié)果,采用藍色無標記切割板[12]作為蒜瓣拍攝的背景。由于每個蒜瓣有4個側(cè)面,但只有3面能夠向上擺放。因此,在試驗過程中,為保證本文提出的CNN-SVM算法能夠識別蒜瓣的不同位置,故對同一蒜瓣不同向上表面的數(shù)據(jù)均進行采集。采用NiKonS4300相機采集種蒜,采集過程中蒜瓣放置于切割板上,利用三腳架固定相機,鏡頭伸展方向與木板垂直。共采集鱗芽分別向上、下、左、右4個朝向共3 200張圖片數(shù)據(jù)?;赑ython語言編程,對原始圖片進行裁剪和歸一化,獲得3 200張128像素×128像素的JPG格式數(shù)據(jù)。
每個朝向的數(shù)據(jù)量均為800張圖片,選用的訓(xùn)練集與測試集的圖片比例為8∶2。
由于本文提出的CNN-SVM改進算法,主要目的是實現(xiàn)鱗芽朝向的自動識別與修正。而大蒜栽培機中,初始大蒜鱗芽朝向是隨機的,因此,訓(xùn)練過程中不能僅考慮鱗芽朝向正對這一特殊情況。以鱗芽朝上(圖1)為例,試驗過程中設(shè)置其與水平線夾角不等于90°,而是認為當大蒜鱗芽與水平線夾角在45°~135°之間時,均認為屬于鱗芽朝上這一類。
圖1 朝向正對與偏斜的圖片數(shù)據(jù)Fig. 1 Facing square and skewed picture data
這樣設(shè)置數(shù)據(jù)集,可以保證出現(xiàn)偏離角度的大蒜鱗芽時,模型能得到最接近對應(yīng)分類角度的結(jié)果,而較小的偏離角度可通過圖2進行修正。首先,蒜瓣被攝像頭識別,并根據(jù)識別分類進行較大角度的旋轉(zhuǎn)結(jié)構(gòu)修正;然后,通過傳送帶將大蒜傳輸至帶電子鉸鏈的機械手處;最后,帶電子鉸鏈的機械手通過適當?shù)臄D壓力與閉合外殼,固定鱗芽朝上大蒜,以達到修正小偏離角度的目標。采用此機械結(jié)構(gòu)與修正步驟能夠識別出大蒜鱗芽的所有朝向,具有更好的適應(yīng)性、更高的應(yīng)用推廣價值。
圖2 大蒜朝向修正Fig. 2 Garlic orientation correction
CNN屬于前饋神經(jīng)網(wǎng)絡(luò),其學(xué)習(xí)過程的本質(zhì)是通過建立多個濾波器來提取輸入數(shù)據(jù)的特征。其網(wǎng)絡(luò)結(jié)構(gòu)包括輸入層與隱藏層。輸入層可處理多維數(shù)據(jù),由于采用了梯度下降學(xué)習(xí)算法,在將數(shù)據(jù)輸入卷積神經(jīng)網(wǎng)絡(luò)之前,需進行數(shù)據(jù)的預(yù)處理。隱藏層則包含了卷積層、池化層和全連接層。
卷積層的數(shù)據(jù)都以三維形式存在,對于彩色圖片,其輸入層一般有3個特征圖,上一層的特征會與對應(yīng)的卷積核進行卷積運算,輸出新的特征。
在神經(jīng)元中,輸入的inputs通過加權(quán)求和后,進入激活函數(shù)(Activation Function)層進行處理。ReLU激活函數(shù)可實現(xiàn)單側(cè)抑制,且具有相對其余激活函數(shù)更寬闊的興奮邊界等特點,因此,本文選用ReLU作為卷積神經(jīng)網(wǎng)絡(luò)的激活函數(shù)。池化層的主要作用是進行特征提取,可以保證圖像壓縮丟失的信息僅是無關(guān)緊要信息,而留下的信息具有尺度不變性,最能表達圖像的特征。
全連接層在整個卷積神經(jīng)網(wǎng)絡(luò)中起到“分類器”作用,可以將其所學(xué)到的“分布式特征表示”映射到樣本標記空間。
分類算法采用邏輯回歸,并采用對數(shù)損失函數(shù)進行擬合,通過非線性映射來減小離分類平面較遠的點的權(quán)重,相對提升了與分類最相關(guān)的數(shù)據(jù)點的權(quán)重[13]。具體定義如式(1)所示。
l(z)=log [1+exp (-z)]
(1)
式中:z——訓(xùn)練數(shù)據(jù)輸入;
l——輸出損失值(loss)。
SVM方法是由Cortes和Vapnik于1995年首先提出的,它是在統(tǒng)計學(xué)習(xí)VC維理論和結(jié)構(gòu)風(fēng)險最小原理基礎(chǔ)上建立的一種數(shù)據(jù)分類算法[14],能夠根據(jù)有限的樣本信息在模型的復(fù)雜性和學(xué)習(xí)能力之間尋求最佳“折中”,以期獲得最好的泛化能力。SVM在解決小樣本、非線性及高維模式的識別中表現(xiàn)出許多特有優(yōu)勢,并能夠推廣應(yīng)用到函數(shù)擬合等其他機器學(xué)習(xí)問題,其原理如圖3所示。
該算法的基本思想是求解能夠正確劃分訓(xùn)練數(shù)據(jù)集且?guī)缀伍g隔最大的分離超平面。對于圖3所示的w·x+b=0即為分離超平面。訓(xùn)練過程中,SVM采用合頁損失函數(shù)(hinge loss function),如式(2)所示。
l[y·(w·x+b)]=[1-y(w·x+b)]+
(2)
式中:w·x+b——訓(xùn)練中所求分離超平面;
+——當1-y(w·x+b)取正值時使用,詳見式(3)。
(3)
由式(2)與式(3)可知:SVM在訓(xùn)練過程在中,數(shù)據(jù)點如果被正確分類,則損失值為0;如果沒有正確分類,則損失值為1-y(w·x+b)。這種計算方法將導(dǎo)致在訓(xùn)練過程中,不相關(guān)特征的權(quán)重會逐漸減少直至歸零,使得分類器只學(xué)習(xí)了分類最相關(guān)的少數(shù)點。與傳統(tǒng)邏輯回歸算法相比,局部特征對最終分類效果影響更大。
圖3 SVM分類原理圖Fig. 3 SVM classification schematic
CNN的卷積操作獨特,可以獲得比隨機森林等傳統(tǒng)機器學(xué)習(xí)算法更全面的特征。但是,由于損失函數(shù)采用了對數(shù)變換,特征權(quán)重上升與下降過程較慢,使得邏輯回歸算法擅長處理全圖感應(yīng)與分類的圖像。即:卷積神經(jīng)網(wǎng)絡(luò)對目標檢測中的整體特征極為關(guān)注而對其局部特征關(guān)注度不夠。大蒜鱗芽屬于小物體檢測,感受野很小,背景占比相對較大。如果利用全連接來提取全圖特征,將導(dǎo)致待檢測目標被淹沒在背景與物體的平均特征之中,關(guān)鍵點的相對權(quán)重會較低,使得處理效果下降。
SVM采用的合頁損失函數(shù)(hinge loss function)在訓(xùn)練中,不相關(guān)特征的權(quán)重會逐漸減少直至歸零,其分類器只學(xué)習(xí)了分類最相關(guān)的少數(shù)點。與傳統(tǒng)邏輯回歸算法相比,局部特征對最終分類效果影響更大。適用于大蒜鱗芽這一類背景占比大、感受野小的情況。然而,如果直接使用SVM進行圖片分類,需將圖片轉(zhuǎn)化為灰度圖后再進行降維變成數(shù)字矩陣,或者利用機器視覺先進行特征提取再進行模型訓(xùn)練。經(jīng)測試發(fā)現(xiàn),這兩種處理方式的算力需求較高,且過程復(fù)雜、無法獲取原始圖片的全部信息。
因此,綜合考慮CNN與SVM的優(yōu)勢,本文設(shè)計并提出了CNN-SVM算法,有效地解決了上述問題。
鱗芽朝向識別的研究,最本質(zhì)問題是基于大量圖片數(shù)據(jù)集,判別圖像中的鱗芽朝向并進行分類。綜合CNN與SVM算法的優(yōu)勢,本文設(shè)計并提出了基于CNN和SVM分類的優(yōu)化算法,詳細的流程如圖4所示。
圖4 詳細的訓(xùn)練流程圖Fig. 4 Detailed training flow chart
由于CNN遵循由低到高的信息處理模式,即低層次網(wǎng)絡(luò)的層數(shù)越深,其能夠?qū)W習(xí)的特征越抽象。基于蒜瓣輪廓的淺層特征就可以很清楚地確定大蒜鱗芽的朝向,故CNN的網(wǎng)絡(luò)深度不宜過深。因此,本文選用的CNN網(wǎng)絡(luò)結(jié)構(gòu)為:3個卷積層與池化層,最后再接1個全連接層。為防止過擬合現(xiàn)象,在池化層和全連接層中間插入一個dropout來防止過擬合,各層均選用Relu激活函數(shù)。
與邏輯回歸算法相比,SVM算法具備更好的局部特征識別能力,且本文屬于小物體的特征識別,感受野較小,因此,在尋得最優(yōu)CNN模型和經(jīng)過第3個池化層之后,連接SVM網(wǎng)絡(luò)模型,以達到更好的特征分類效果,改進的CNN-SVM網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 CNN-SVM算法的網(wǎng)絡(luò)結(jié)構(gòu)圖Fig. 5 Network structure of CNN-SVM algorithm
深度學(xué)習(xí)過程中選擇合適的模型參數(shù)、獲得最優(yōu)的識別效果,一直是業(yè)界最為關(guān)注、最棘手的關(guān)鍵難題。為了獲得最佳處理結(jié)果,本文提出并設(shè)計了一套自動從大數(shù)據(jù)集內(nèi)隨機選擇參數(shù),組合相關(guān)參數(shù)后放入卷積網(wǎng)絡(luò)結(jié)構(gòu)內(nèi)的方法。
需要注意的是:對于隨機參數(shù),每個模型達到收斂所需的次數(shù)并不唯一,非常容易出現(xiàn)欠擬合或過擬合情況[15]。為了解決該問題,在試驗過程中采用epoch-loss監(jiān)控機制,即只要出現(xiàn)過擬合,則自動停止迭代。上述隨機參數(shù)搜索與epoch-lossc監(jiān)控的聯(lián)合作用,不僅可以得到給定數(shù)據(jù)集下的最好效果,也有效地避免了過擬合問題。
由3.2節(jié)可知,CNN的隨機選參和epoch-loss監(jiān)控聯(lián)合作用可以獲得最優(yōu)的訓(xùn)練模型。訓(xùn)練過程中,部分隨機參數(shù)下的特征圖(feature map)與特征疊加圖(feature_map_sum)如圖6所示,其準確率—迭代—損失(acc-epoch-loss)曲線如圖7所示。
圖6 隨機參數(shù)下CNN特征圖的可視化Fig. 6 Visualization of CNN feature maps with random parameters
圖7 CNN算法的acc-epoch-loss曲線圖Fig. 7 Acc-epoch-loss curve of CNN algorithm
由圖6和圖7可知,對于不同的參數(shù)組合,模型提取特征信息的效果也大不相同,本文設(shè)計并應(yīng)用的隨機參數(shù)組合擇優(yōu)和充分迭代,在一定程度上優(yōu)化了處理過程,使得提取的模型數(shù)據(jù)特征更完善。由于系統(tǒng)隨機地在參數(shù)數(shù)據(jù)庫中組合參數(shù),很好地解決了因為參數(shù)選擇不合適而造成的模型欠佳情況。方春等[16]采用傳統(tǒng)的CNN算法,指定參數(shù)并獲得了97.5%的準確率,與此相比,在圖片分類更多,總數(shù)據(jù)集更大的情況下,CNN算法的識別準確率為97.9%。同時,由圖7可以看出:該最佳模型在合適的位置實現(xiàn)及時的迭代終止,使模型在不出現(xiàn)過擬合的情況下,準確率最高。
為驗證本文所提算法的識別效果,在鱗芽朝上測試集下,設(shè)計了CNN-SVM與經(jīng)典CNN、SVM算法的模型試驗,結(jié)果分別如圖8和表1所示。其中,表1為4種算法的識別正確率和模型規(guī)模比較情況。
圖8 準確率—召回率曲線圖Fig. 8 Precision-recall diagram
對于SVM算法,由于無法對其直接輸入圖片進行分類。為驗證SVM直接進行大蒜鱗芽朝向識別的能力,本文通過將圖片轉(zhuǎn)化為數(shù)字陣列并降維的方式進行處理,即首先采用背景差分算法獲得圖片中大蒜像素點位置,并將數(shù)字陣列中數(shù)組的相應(yīng)位置記為1,其余背景部分記為0,處理過程中不經(jīng)過CNN網(wǎng)絡(luò)的特征提取。可以發(fā)現(xiàn):對未經(jīng)過特征提取的散點,各分類數(shù)據(jù)散點特征無明顯差異,其分布區(qū)域大部分重合,使得SVM的分類效果很差。
表1 經(jīng)典算法與CNN-SVM算法的識別效果Tab. 1 Recognition effect of algorithm and CNN-SVM algorithm
由表1與圖8可知,本文設(shè)計并提出的改進CNN-SVM網(wǎng)絡(luò)結(jié)構(gòu),對于鱗芽朝上測試集,識別正確率和均值平均精度分別為99.8%與73%,高于傳統(tǒng)CNN算法,具有模型規(guī)模適中、識別速度與準確率兼具、自動尋優(yōu)等優(yōu)點。
本文設(shè)計并提出的改進CNN-SVM算法,旨在實現(xiàn)大蒜種植的自動化,由于大蒜的鱗芽朝向千變?nèi)f化。為了測試實際場景中CNN-SVM算法的適應(yīng)性,本文特設(shè)計相關(guān)試驗,通過大蒜鱗芽不同朝向下各偏離角度的識別效果,詳細評估該算法表現(xiàn)。試驗過程中,基于已訓(xùn)練的最優(yōu)模型,分別識別鱗芽偏離10°、20°、30°、40°的大蒜并記錄其數(shù)據(jù),同時對鱗芽朝上數(shù)據(jù)集進行置信度分析,其識別結(jié)果與置信度柱狀圖分別如表2、表3所示。
表2 不同偏離角度下識別結(jié)果Tab. 2 Recognition results under different deviation angles
表3 朝上數(shù)據(jù)中各標簽置信度數(shù)據(jù)表Tab. 3 Confidence dataTable for each label in the upward data
由表2、表3分析可知:即使大蒜鱗芽各分類置信度偏離較嚴重,正確朝向的分類置信度仍占主導(dǎo),且準確率、F1 score等指標仍能夠維持在較高水平。這說明基于SVM分類優(yōu)化的卷積神經(jīng)網(wǎng)絡(luò),得益于本文在數(shù)據(jù)集設(shè)置方面考慮了偏離度的干擾因素影響,以及在SVM分類優(yōu)化和隨機組合最優(yōu)CNN網(wǎng)絡(luò)的協(xié)助,具有一定的抗干擾能力和泛化能力。為大蒜自動智能播種設(shè)備的研發(fā)奠定了較好的理論基礎(chǔ)。
本文設(shè)計并提出的改進CNN-SVM算法,采用了基于SVM分類優(yōu)化的改良網(wǎng)絡(luò)結(jié)構(gòu),理論上,對學(xué)習(xí)到的局部特征具有更好地識別敏感性,使其在實際應(yīng)用中,即使對于圖片背景占比較大的情況,也能實現(xiàn)較好地分類效果,抗干擾性好。為評估其抗干擾與不同感受野下識別性能,設(shè)計試驗并驗證,基于已訓(xùn)練的最優(yōu)CNN模型與CNN-SVM模型,分別對不同感受野、不同背景占比、添加椒鹽噪聲的大蒜數(shù)據(jù)集(依據(jù)大蒜最大外接矩形占全圖像素進行劃分)進行識別,數(shù)據(jù)集與識別結(jié)果如圖9和表4所示。
圖9 對比試驗數(shù)據(jù)集一覽Fig. 9 List of comparative test data sets
表4 不同感受野與干擾情況識別情況Tab. 4 Identification of different sensory fields and interference situations
由圖9可以看出,對于相同的原始圖像,經(jīng)處理而得到不同的圖像數(shù)據(jù)庫。在小感受野、多背景的情況下,影響分類結(jié)果的相關(guān)像素點數(shù)量大大少于大感受野、少背景情況。造成整個神經(jīng)網(wǎng)絡(luò)中局部特征對分類的影響大于整體特征,使得物體更加難以識別。而添加椒鹽噪聲的情況下,圖像部分像素點與特征將在神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)中從有關(guān)變?yōu)闊o關(guān),加劇相關(guān)特征對分類器的考驗。
由表4可知:在大感受野(外接矩形像素占全圖像素的60%以上)情況下,CNN-SVM的識別評價指標較CNN算法高2%左右;在小感受野(外接矩形像素占全圖像素的20%以下)及存在椒鹽噪聲時,CNN-SVM的識別評價指標較基礎(chǔ)CNN算法提高更多。這說明得益于SVM分類優(yōu)化,改進后的卷積神經(jīng)網(wǎng)絡(luò)具有更好的抗干擾能力與局部特征識別能力,對于感受野較小物體,能夠呈現(xiàn)出更高的識別敏感性。
1) 設(shè)計并提出了改進的CNN-SVM算法,充分利用兩種深度學(xué)習(xí)算法的優(yōu)勢,來解決大蒜鱗芽的朝向識別問題。與純機器視覺方法和經(jīng)典深度學(xué)習(xí)方法相比,該算法具有更高的正確率、識別效率,識別速度為0.024 s,識別正確率提升到99.8%,且實現(xiàn)過程簡單、方便,抗干擾能力強。
2) 為解決參數(shù)選擇與小物體識別中感受野小、背景占比大的問題,設(shè)計并提出了隨機參數(shù)組合擇優(yōu)與CNN-SVM聯(lián)合使用的算法。與經(jīng)典深度學(xué)習(xí)方法相比,CNN-SVM算法實現(xiàn)了隨機參數(shù)組合擇優(yōu),對大蒜鱗芽的小物體識別,充分考慮其分類器的處理偏向性,選擇并采用更關(guān)心局部特征的算法。經(jīng)試驗驗證,對于背景占比大、干擾強的情況,評價指標均優(yōu)于改進前算法。
3) 數(shù)據(jù)集的設(shè)計與處理過程中,創(chuàng)新性地解決了朝向偏離的大蒜識別問題,使得算法具有更好的普適性。識別準確率高、計算規(guī)模小,對于感受野較小物體和干擾較強的情況,識別效果更好更穩(wěn)定。此算法不僅為大蒜自動智能播種設(shè)備的研發(fā)奠定算法基礎(chǔ),研究成果還可以進一步推廣應(yīng)用于葡萄、大棗、山楂等小物體識別,為葡萄自動采摘設(shè)備、劣棗剔除、山楂去核設(shè)備的研發(fā)奠定基礎(chǔ),具有較好的應(yīng)用前景。