劉浩洲,陳禮鵬,穆龍濤,高宗斌,崔永杰
(1.西北農(nóng)林科技大學(xué) 機(jī)械與電子工程學(xué)院,陜西 楊凌 712100;2.農(nóng)業(yè)農(nóng)村部農(nóng)業(yè)物聯(lián)網(wǎng)重點實驗室,陜西 楊凌 712100)
獼猴桃花期授粉質(zhì)量是獼猴桃品質(zhì)重要影響因素之一[1]。獼猴桃花開時間短,自然狀態(tài)下僅靠風(fēng)媒或蜜蜂授粉,難以滿足果園生產(chǎn)要求[1-2]。獼猴桃果園中普遍實行人工授粉,勞動強度大,工作效率低,且勞動力成本高[3-4]。
目前已有關(guān)于獼猴桃果園機(jī)器人研究,但多集中于果實采摘方面[5-8],缺乏對花朵的機(jī)器視覺研究,而識別花朵是授粉機(jī)器人關(guān)鍵技術(shù)之一,因此提出識別授粉作業(yè)目標(biāo)方法具有必要性[9]。
K-means聚類算法是一種無監(jiān)督學(xué)習(xí)方法,適用于處理自然條件下復(fù)雜果園背景圖像[10-14]。該算法可根據(jù)圖像中不同部分特征進(jìn)行自動分割。圖像經(jīng)K-means聚類分割后,其結(jié)果為得到K幅從原圖像中分割得來的新圖像,但無法自動從中選出目標(biāo)結(jié)果,存在局限性。為從聚類結(jié)果中自動選出目標(biāo)圖像,使用近年來在分類任務(wù)中表現(xiàn)良好的卷積神經(jīng)網(wǎng)絡(luò)[15-20]對聚類結(jié)果進(jìn)行分類。
本文研究獼猴桃花朵的自動識別方法,采用K-means聚類法分割原圖像,再用卷積神經(jīng)網(wǎng)絡(luò)分類分割結(jié)果。當(dāng)該神經(jīng)網(wǎng)絡(luò)選出目標(biāo)圖像后再對其進(jìn)行形態(tài)學(xué)運算,去除噪聲,最后在原圖中標(biāo)定目標(biāo)物位置,實現(xiàn)花朵識別,提高了授粉機(jī)器人自動化程度。
圖像采集地點為西北農(nóng)林科技大學(xué)眉縣試驗站,拍攝設(shè)備為Microsoft相機(jī)。由于棚架栽培模式下獼猴桃花朵都豎直朝下開放,且現(xiàn)有末端執(zhí)行器工作時豎直向上進(jìn)行噴霧,因此采集圖像時采用豎直向上拍攝的方法。
獼猴桃果樹授粉環(huán)境如圖1所示。Microsoft相機(jī)置于三腳架上,與計算機(jī)相連,鏡頭距花朵30cm,在獼猴桃棚架下方隨機(jī)位置,豎直向上拍攝,共采集3 000幅光照良好、花朵清晰的圖像供本次試驗使用。圖像中一般存在花蕊、花瓣、枝葉及天空4類 物體,如圖2所示。

圖1 獼猴桃果樹授粉環(huán)境

圖2 試驗所使用圖像示例
識別方法流程如圖3所示。首先,對圖像進(jìn)行K-means聚類,分割出包括花蕊在內(nèi)的4類圖像;然后由經(jīng)過訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)選出4類圖像中包含花蕊的一類圖像;最后,對選出的圖像進(jìn)行去噪處理,并在原圖上圈出花蕊的位置。

圖3 識別方法流程
具體流程如下:
1)K-means聚類分割。對原圖像[見圖4(a)]進(jìn)行K-means聚類分割,聚類數(shù)目為4。K-means聚類算法對圖像進(jìn)行處理后,將原圖像分割為4類,分別為花蕊、花瓣、枝葉、天空,如圖4(b)~(e)所示。
聚類時,選擇歐式距離的平方作為數(shù)據(jù)樣本間的相似性度量,即
D(xi-xj)=‖(xi-xj‖2
(1)
式中D—數(shù)據(jù)樣本間相似性度量;
xi—待聚類的數(shù)據(jù)樣本;
xj—初始聚類中心。
D值越小,樣本xi與xj越相似,差異度越小。算法在每次迭代中,當(dāng)所有樣本都被分類后修改聚類中心,再進(jìn)入下次迭代,直到不存在能重新分配給不同類別的數(shù)據(jù)樣本,或聚類中心不再發(fā)生變化。
2)卷積神經(jīng)網(wǎng)絡(luò)分類。圖像被聚類分割后,產(chǎn)生4個不同類別。為自動將目標(biāo)圖像選出,本試驗搭建一個小型卷積神經(jīng)網(wǎng)絡(luò)對聚類后結(jié)果進(jìn)行分類。
使用的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。卷積層的作用是計算并提取圖像中的特征,池化層的作用是降低模型參數(shù)和過擬合程度,最后是Softmax全連接層,用于最后分類[8],即

式中V—一個數(shù)組;
Vi—數(shù)組V中第i個元素;
Vj—數(shù)組V中第j個元素;
Si—第i個元素的Softmax值。
該網(wǎng)絡(luò)訓(xùn)練集由K-means聚類分割得到的圖像組成。當(dāng)該卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練好后,可對每次K-means聚類分割出的4幅圖像進(jìn)行分類,選出并保留花蕊圖像,如圖4(b)所示。
3)形態(tài)學(xué)運算。聚類分割出的花蕊圖像帶有噪聲,還需要對其做進(jìn)一步的處理,除去噪聲,最終提取出每幅圖像中花朵位置信息。
通過形態(tài)學(xué)運算,先對分割出的圖像進(jìn)行腐蝕并填充孔洞[(見圖4(f)];除掉一部分噪音,同時減少圖像中不同花蕊的相互粘連情況,形成相互獨立區(qū)域;再將得到的圖像二值化后去除小面積噪聲,如圖4(g)所示。
4)最后計算出剩余每個獨立區(qū)域的形心,以其形心為圓心、長軸和短軸的均值為直徑,在原圖上畫圓,標(biāo)定出每幅圖像上各個花朵位置,完成花朵識別,結(jié)果如圖4(h)所示。形心(xc,yc)計算方法為

(3)
式中xi—各部分橫坐標(biāo);
yi—各部分縱坐標(biāo);
Ai—各部分像素數(shù)。

圖4 識別過程

圖5 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
為訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò),使其能有效對聚類結(jié)果進(jìn)行分類,用K-means聚類法對采集到的圖像集進(jìn)行分割。從聚類結(jié)果中選出4 000幅圖像作為卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練集,2 000幅為花蕊圖像,另2 000幅為背景圖像。
訓(xùn)練方法是附加動量的隨機(jī)梯度下降法,動量為0.9,學(xué)習(xí)率設(shè)置為0.002 5。在Matlab2017a上訓(xùn)練該網(wǎng)絡(luò),訓(xùn)練中迭代次數(shù)與正確率關(guān)系如圖6所示。

圖6 卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程
最終卷積神經(jīng)網(wǎng)絡(luò)在訓(xùn)練集上正確率為99.2%。訓(xùn)練結(jié)果表明,該卷積神經(jīng)網(wǎng)絡(luò)可以有效分類出聚類分割后得出的花蕊圖像。
從現(xiàn)場拍攝的圖像中選出1 000幅花朵圖像作為測試集,使用本文方法對測試集圖像花朵進(jìn)行識別,識別每步驟結(jié)果如表1所示。

表1 每步驟成功率
對測試集圖像進(jìn)行K-means聚類分割,其中誤分割圖像54幅(分割出帶有花蕊的圖像中還包含了枝葉、天空部分,且這些部分像素數(shù)為花蕊像素數(shù)的1/4以上),正確分割圖像946幅,分割成功率為94.6%,聚類后卷積神經(jīng)網(wǎng)絡(luò)分類的成功率為97.9%。由于K-means聚類、卷積神經(jīng)網(wǎng)絡(luò)及形態(tài)學(xué)處理步驟的表現(xiàn)都會影響到最后對花蕊的識別結(jié)果,最終花朵識別成功率為92.5%,表明該方法能有效識別獼猴桃花朵,有助于授粉機(jī)器人對作業(yè)目標(biāo)的信息感知,提高了其自動化程度。
不同情況下識別結(jié)果示例如表2所示。對于圖像中花朵之間相互獨立、不存在遮擋的案例,該算法有較好識別效果。首先K-means聚類分割出花蕊及其他背景圖像,且花蕊圖像中噪點較小;其次,卷積神經(jīng)網(wǎng)絡(luò)對前一步分割出的4類圖像進(jìn)行了有效分類,選出花蕊部分;最后,形態(tài)學(xué)運算處理噪聲和孔洞,成功標(biāo)記出花蕊所在位置。

表2 不同情況下識別結(jié)果示例
對于圖像中花朵存在相互遮擋的案例,K-means聚類能將花蕊部分從圖像中成功分割,同時卷積神經(jīng)網(wǎng)絡(luò)準(zhǔn)確分類;形態(tài)學(xué)運算能將分割后粘連程度小的花蕊分離,但無法將粘連程度較大的花蕊分離,導(dǎo)致識別失敗。
對于其它失敗案例,部分因為K-means聚類分割錯誤,在包含花蕊的一類圖像中錯誤的分割入了大量枝葉,導(dǎo)致后期形態(tài)學(xué)運算失效;另一方面是由于卷積神經(jīng)網(wǎng)絡(luò)在K-means分割后不能從4類圖像中選出花蕊。
1)在測試集上,K-means分割出花蕊成功率為94.6%,說明該方法能有效分割花朵圖像。
2)卷積神經(jīng)網(wǎng)絡(luò)在訓(xùn)練集上成功率為99.2%,測試集上成功率為97.9%,說明該網(wǎng)絡(luò)模型過擬合程度低,能有效將聚類后圖像分類,從中選出花蕊圖像。
3)最終,基于K-means聚類的獼猴桃花朵識別方法成功率為92.5%,表明該方法有較高識別成功率,可以為獼猴桃授粉機(jī)器人精準(zhǔn)作業(yè)提供幫助[9]。
針對目前缺少針對花朵識別方法研究而導(dǎo)致的現(xiàn)有授獼猴桃粉機(jī)器人無法自動作業(yè)問題,提出基于K-means聚類的獼猴桃花朵識別方法,實現(xiàn)對獼猴桃花朵自動識別,提高了現(xiàn)有授粉機(jī)器人自動化程度。同時,實現(xiàn)花朵自動識別,也有利于果園產(chǎn)量預(yù)測,有助于果園管理工作。
試驗中圖像采集距離和光照條件都較為固定,沒有考慮逆光和不同拍攝角度問題。下一步研究在不同光照、距離條件下改進(jìn)識別方法,使其更有適用性,以滿足機(jī)器人全天作業(yè)需求。