国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SOM-K-means算法的番茄果實識別與定位方法

2021-02-01 11:14陶涵虓崔立昊劉大為孫建桐
農(nóng)業(yè)機械學報 2021年1期
關鍵詞:識別率輪廓個數(shù)

李 寒 陶涵虓 崔立昊 劉大為 孫建桐 張 漫

(1.中國農(nóng)業(yè)大學現(xiàn)代精細農(nóng)業(yè)系統(tǒng)集成研究教育部重點實驗室, 北京 100083;2.中國農(nóng)業(yè)大學農(nóng)業(yè)農(nóng)村部農(nóng)業(yè)信息獲取技術(shù)重點實驗室, 北京 100083)

0 引言

在農(nóng)業(yè)生產(chǎn)中,由于果實的狀態(tài)存在差異性、局部植株樣貌存在復雜性[1-2],因此目前絕大多數(shù)采摘工作由人工完成。為了節(jié)約成本、提高采摘效率,采摘機器人已廣泛使用,機器人自動采摘時對果實的準確識別已成為研究熱點[3-4]。自動采摘一般分為果實識別、定位、采摘,果實識別和定位的準確與否對采摘結(jié)果至關重要。

基于果實二維圖像信息,孫建桐等[5]提出一種基于幾何形態(tài)學和迭代隨機圓相結(jié)合的目標提取算法,以分割粘連番茄果實。李寒等[6]提出,對粘連或被遮擋的番茄果實采用局部極大值法和隨機圓環(huán)變化檢測圓算法進行目標提取,再使用SURF算法進行目標匹配。SI等[7]提出通過立體匹配和隨機環(huán)算法進行蘋果果實定位。由于沒有結(jié)合果實的深度信息,這些方法對于復雜自然環(huán)境下粘連或被遮擋的果實識別效果有限。MEHTA等[8]提出通過多個相機得到偽立體視覺,進而對番茄進行定位,雖然引入了立體視覺,但是需要多個相機,成本較高,算法也較為復雜。

隨著科學技術(shù)的發(fā)展,RGB-D相機(可以獨立獲取彩色圖像和深度圖像的相機)的出現(xiàn)為解決該問題提供了思路[9-10]。雖然已經(jīng)有大量研究成果[11-14],但其正確識別率和識別速度還不能滿足大批量采摘的要求。

根據(jù)采摘機器人對果實進行識別和定位的要求,需要研究一種快速、準確的重疊果實分割方法[15-17]。聚類方法在圖像分割中的應用有很多研究成果。聚類(Clustering)方法可分為劃分法、層次法、密度法、網(wǎng)格法、模型法等。自組織映射(Self-organizing map,SOM)算法在聚類模型法中較有代表性,它可以通過自身訓練,自動對輸入模式進行聚類,具有簡明性和實用性[18-19]。K-means算法在劃分法中有代表性,具有設計簡單、收斂快速、聚類有效的特點[20-22]。

本文以番茄為研究對象,使用ZED相機采集圖像,綜合顏色信息和深度點云信息,對番茄果實的識別、分割和定位進行研究,將SOM神經(jīng)網(wǎng)絡和K-means算法相結(jié)合,提出一種基于RGB-D圖像和K-means優(yōu)化的SOM算法(SOM-K-means)的番茄果實識別與分割方法,以解決因番茄果實粘連、遮擋而造成的圖像難以分割的問題。

1 材料與方法

1.1 試驗材料與設備

試驗所用番茄圖像拍攝于中國農(nóng)業(yè)科學院番茄種植大棚內(nèi)。拍攝時間2019年1月3日15:00—16:30和2019年1月8日14:00—16:00,光線良好,試驗圖像如圖1所示,并用游標卡尺對每個番茄的實際半徑進行測量。大棚內(nèi)所種番茄果實品種是實驗品種,果實大小適中且多處存在番茄重疊現(xiàn)象。番茄是否成熟由有經(jīng)驗的番茄采摘人員確認。

使用Stereolabs公司生產(chǎn)的ZED相機采集圖像,該相機為雙目相機,可以獲取圖像的深度信息。在Windows平臺上,通過Visual Studio 2015將ZED相機與OpenCV庫以Cmake為編譯器進行結(jié)合,成功實現(xiàn)了對圖像三維信息的處理。

1.2 果實識別與定位方法

果實識別與定位方法包括3個步驟:RGB圖像預處理;深度點云處理;點云數(shù)據(jù)聚類及果實輪廓擬合。具體流程如圖2所示。

1.2.1RGB圖像預處理

考慮到番茄果實顏色與周圍種植環(huán)境的顯著差異,將采集到的RGB位圖進行轉(zhuǎn)換,運用HSV空間對番茄進行處理,其中H、S、V分別表示圖像的色調(diào)、飽和度和亮度。首先對圖像的亮度分量V進行脈沖噪聲判斷,若存在噪聲則對圖像進行濾波增強處理。通過反復試驗,獲得成熟番茄果實的H、S、V分量的灰度取值范圍,對不在該范圍里的點進行過濾,再經(jīng)過二值化得到將番茄果實與其他物體分開的二值圖像。關于閾值的選取,由于實際果實檢測時是實時拍攝,使用自適應取值會導致延遲較長,不利于實際采摘。所以本文方法以番茄果實是否成熟為界限,經(jīng)數(shù)據(jù)分析和測試,設定H、S、V分量的灰度范圍分別為0~20、170~180,110~255,46~255,從而對圖像進行分割,剔除灰度范圍外的部分,實現(xiàn)成熟番茄果實的分割。對二值圖像進行分割,利用形態(tài)學閉運算去掉內(nèi)部輪廓、小輪廓以降低誤識別率。但由于在實際采摘過程中,番茄會出現(xiàn)葉子遮擋、粘連的情況,因此還需要根據(jù)圖像的深度信息對不同番茄果實進行分離。

1.2.2深度點云處理

ZED相機提供了雙目立體視覺的功能,因此可以生成圖像的深度圖,如圖3所示。ZED相機可以檢測的有效范圍是0.3~5 m。較淺的顏色表示距離較??;較深的顏色表示距離較大。完全黑色的點表示檢測距離超出了ZED相機的有效檢測范圍。這些點的深度是非數(shù)字的,被濾除。

在圖3中,不同顏色輪廓上點的深度差大于同一個番茄果實輪廓上點的深度差的最大值,表明這些點屬于不同的番茄果實輪廓。

使用ZED相機獲取圖像分割信息的同時也可以獲得輪廓矢量信息。輪廓矢量中的每個元素都是一個點結(jié)構(gòu)。在深度圖中讀取每個點的三維坐標信息;之后遍歷這些點,通過ZED相機自帶的getValue函數(shù)對圖像進行三維重建,將世界坐標系轉(zhuǎn)換為相機坐標系進而得到點云中的點在相機坐標下的三維坐標信息。通過輸入輸出流把點云的三維坐標信息導入到本地文件中并具體分為二維坐標和深度信息。考慮到ZED相機識別距離范圍的局限性,為了提高SOM神經(jīng)網(wǎng)絡聚類的準確性,在獲取數(shù)據(jù)文件后,對數(shù)據(jù)進行過濾,通過密度聚類對具有高分散性的點進行濾波,以獲得精度更高的點。

1.2.3點云數(shù)據(jù)聚類及果實輪廓擬合

本文用K-means算法對SOM算法進行優(yōu)化,提出SOM-K-means聚類算法。將已獲取的點云數(shù)據(jù)進行處理后,使用SOM-K-means算法對其進行聚類,進一步得到識別和定位結(jié)果。

(1)SOM算法

SOM算法是一種聚類和高維可視化的無監(jiān)督學習算法。SOM 神經(jīng)網(wǎng)絡是一種非監(jiān)督、自適應、自組織的網(wǎng)絡,它由輸入層與輸出層(也叫作競爭層)組成,輸出層中的一個節(jié)點代表一個需要聚成的類。訓練時采用“競爭學習”的方式,每個輸入的樣例在輸出層中找到一個和它最相似的節(jié)點,稱為激活節(jié)點。接著對激活節(jié)點的參數(shù)進行更新,同時,和激活節(jié)點臨近的點也根據(jù)它們距激活節(jié)點的距離適當更新參數(shù)。

設輸入樣本為X=(x1,x2, …,xn),是一個n維向量,則輸入層由n個輸入神經(jīng)元組成;輸出層Wi=(wi1,wi2, …,win),1≤i≤m,有m個權(quán)值向量,則輸出層由m個輸出神經(jīng)元組成。輸入層與輸出層中的神經(jīng)元互相連接,其結(jié)構(gòu)如圖4所示。

SOM算法的步驟如下:①初始化,設定網(wǎng)絡的權(quán)值、學習率初值、鄰域半徑以及學習次數(shù)。權(quán)值使用較小的隨機值進行初始化,并對輸入向量和權(quán)值做歸一化處理

X′=X/‖X‖

(1)

W′i=Wi/‖Wi‖

(2)

式中X′——進行歸一化處理后的輸入向量

W′i——進行歸一化處理后的權(quán)值向量

②采樣并隨機選取輸入量,將數(shù)據(jù)集中的樣本輸入到神經(jīng)網(wǎng)絡中。③樣本與權(quán)值向量做點積,進行競爭,點積值最大的輸出神經(jīng)元記為該樣本的獲勝神經(jīng)元。④對權(quán)值進行更新,對獲勝的神經(jīng)元及其拓撲鄰域內(nèi)的神經(jīng)元的權(quán)值進行更新。

W(t+1)=W(t)+η(t,d)(X-W(t))

(3)

其中

η(t,d)=η(t)e-d

(4)

式中t——訓練時間

d——獲勝神經(jīng)元的拓撲距離

η——學習率,是關于t與d的函數(shù)

W(t)——更新前的權(quán)值

其中,η(t)一般取迭代次數(shù)的倒數(shù)。⑤更新學習率η及拓撲鄰域N, 其中,N隨時間增大距離變小。⑥判斷模型是否收斂,如果學習率η≤ηmin或達到預設的迭代次數(shù),結(jié)束算法,否則跳轉(zhuǎn)到步驟②。

該算法的優(yōu)點是無需監(jiān)督,無需提前告知分類數(shù)便能自動對輸入模式進行聚類,容錯性強,對異常值和噪聲不敏感。其缺點是在訓練數(shù)據(jù)時會出現(xiàn)有些神經(jīng)元始終不能勝出,導致分類結(jié)果不準確;SOM網(wǎng)絡收斂時間較長,運算效率較低。

(2)K-means算法

K-means算法采用距離作為相似性的評價指標,即數(shù)據(jù)對象間的距離越小,則它們的相似性越高,越有可能為同一個類簇,并把得到緊湊且獨立的簇作為最終目標。

K-means算法步驟如下:①從數(shù)據(jù)集中隨機選取k個數(shù)據(jù)對象作為k個簇的初始聚類中心點。②計算剩余每個數(shù)據(jù)對象與各個簇的聚類中心之間的距離,并把每個數(shù)據(jù)對象歸到距離它最近的聚類中心的類。③更新每個簇的聚類中心,即根據(jù)聚類中現(xiàn)有的對象重新計算每個簇的聚類中心,以各個簇內(nèi)所有對象的平均值作為新的聚類中心。④重復步驟②、③直至新的聚類中心與原聚類中心相等或小于指定閾值,算法結(jié)束。

該算法的優(yōu)點是算法快速、簡單,收斂速度快;缺點是初始聚類中心的設定對于聚類結(jié)果影響較大;聚類種數(shù)k需要預先給定,而在很多情況下k的估計是非常困難的。

(3)SOM-K-means算法

基于SOM算法和K-means 算法的步驟以及各自的優(yōu)劣,本研究將二者結(jié)合,對SOM算法進行優(yōu)化。由于SOM算法無需提前告知分類數(shù)便能自動對輸入模式進行聚類,但在訓練數(shù)據(jù)時可能出現(xiàn)有些神經(jīng)元始終不能勝出,導致分類結(jié)果不準確,且網(wǎng)絡收斂時間較長;而K-means算法的優(yōu)點便是收斂速度快,但初始聚類中心和k的大小很難提前確定。因此,本文提出SOM-K-means算法,即SOM的優(yōu)化算法,將SOM與K-means算法結(jié)合,既解決了K-means算法中初始聚類中心和k的設定問題,又克服了SOM算法中網(wǎng)絡收斂較慢、分類結(jié)果不準確的缺陷。

SOM-K-means算法步驟如下:①將數(shù)據(jù)集輸入到SOM神經(jīng)網(wǎng)絡中進行聚類,輸出分類種數(shù)以及初步分類結(jié)果。②將步驟①中得到的分類種數(shù)作為k值,分類結(jié)果中每一類中隨機取一個數(shù)據(jù)對象作為初始聚類中心,執(zhí)行K-means算法進行聚類并得到最終結(jié)果。

本文算法在保持 SOM 網(wǎng)絡自組織特性的同時,創(chuàng)新性地將SOM算法和K-means算法相結(jié)合,融合了SOM和K-means算法的優(yōu)點,又彌補了兩種算法的缺陷,在分類結(jié)果的準確度和運算效率上都有了較大的提高。SOM-K-means算法的流程圖如圖5所示。

1.2.4算法性能評價

經(jīng)上述操作后能得到番茄識別結(jié)果,進而對識別和定位結(jié)果進行分析。本試驗通過正確識別番茄個數(shù)與圖中實際番茄數(shù)是否相等來評價識別結(jié)果;通過果實實際半徑與擬合輪廓半徑比較來對果實定位精度進行評價。

在結(jié)果分析中,首先將圖像的相機坐標系轉(zhuǎn)換為世界坐標系,以便與真實值進行比較,進而對識別結(jié)果和定位精度進行評價。

對于識別結(jié)果的評價,統(tǒng)計圖像中實際番茄個數(shù)、算法識別番茄個數(shù)、算法漏識別番茄個數(shù)、正確識別番茄個數(shù)、錯誤識別番茄個數(shù)。輸出結(jié)果中,黃色的圓為算法識別的番茄輪廓,算法識別番茄個數(shù)即為圖中黃色圓的個數(shù),正確識別番茄個數(shù)即為圖中黃色圓本身與實際番茄果實半徑和圓心誤差分別不超過5.00 mm和3.00 mm的黃色圓個數(shù),錯誤識別番茄個數(shù)即為圖中黃色圓本身與實際番茄果實半徑和圓心誤差分別大于5.00 mm和3.00 mm的黃色圓個數(shù)。由正確識別的番茄個數(shù)占實際番茄個數(shù)的比例計算出識別的正確率。

對于定位精度的驗證,隨機抽取結(jié)果圖的部分樣本,通過比較實際番茄半徑和擬合輪廓半徑,計算出識別結(jié)果的均方根誤差、平均偏差、平均相對誤差。

2 試驗結(jié)果與分析

從采集的圖像中隨機選取80幅作為樣本,每幅圖像根據(jù)番茄果實的數(shù)量和尺寸可以得到600~2 000個信息點。使用SOM-K-means算法對其處理之后,統(tǒng)計識別結(jié)果的混淆矩陣來對該方法進行評估。通過統(tǒng)計和計算得到試驗的準確率、精確率、靈敏度、特異度4個指標值,并對該算法的可靠性進行分析。

2.1 圖像處理與數(shù)據(jù)采集

圖像預處理過程中的中間圖像如圖6所示。

對捕獲的圖像進行預處理,獲得分割的番茄輪廓點云。從原始圖像及其深度圖獲得點云的3D信息。經(jīng)過三維重建后,真實世界點云的信息通過C++中的輸入和輸出保存到創(chuàng)建的試驗文件中。

在試驗中發(fā)現(xiàn)實際拍攝過程中,點云信息中會有一些誤判的點,這種點一般比較離散。選取最小輪廓的點數(shù)為30,運用密度聚類方法,把偏離密集區(qū)域的點去掉,提高點云矩陣信息的容錯性和正確率。

2.2 SOM-K-means算法識別結(jié)果

執(zhí)行SOM-K-means算法后,果實輪廓點云的聚類結(jié)果如圖7所示。圖中每個點表示輪廓上的一個點,縱坐標是深度,橫坐標表示二維信息。由圖7可知,該算法共識別出3個番茄果實。

利用最小二乘法分別擬合出各類點所屬的圓,結(jié)果如圖8所示。在圖8中,有3個成熟的番茄果實。將相機坐標系轉(zhuǎn)換為世界坐標系,并通過測量和計算得到擬合圓與對應番茄果實的半徑和圓心誤差均小于誤差閾值,即3個番茄果實均識別正確。另外,由于番茄果實輪廓并不是完全的圓形,因此擬合的圓與果實實際輪廓有一定的誤差。

2.3 結(jié)果統(tǒng)計與驗證

對80幅樣本圖像進行預處理,執(zhí)行SOM-K-means算法并輸出結(jié)果,統(tǒng)計圖像中實際番茄個數(shù)、算法識別番茄個數(shù)、算法漏識別番茄個數(shù)、正確識別番茄個數(shù)、錯誤識別番茄個數(shù),并對識別結(jié)果進行分析。以圖8為例,根據(jù)1.2.4節(jié)的評價指標,圖中實際番茄果實個數(shù)為3個,算法識別番茄果實個數(shù)為3個,算法漏識別番茄果實個數(shù)為0個,正確識別番茄果實的個數(shù)為3個,錯誤識別番茄果實的個數(shù)為0個。

此外,試驗中的80幅圖像樣本包含了不同自然環(huán)境下的番茄果實圖像,圖9為部分圖像的果實識別和定位結(jié)果。從圖中可以看出,本文算法對于有葉子遮擋的多個粘連番茄果實、有未成熟番茄遮擋的多個成熟番茄果實、較暗環(huán)境下的重疊番茄果實、較強光照下的重疊番茄果實均具有較強的魯棒性。

對80幅圖像樣本的識別結(jié)果進行統(tǒng)計和計算,得到試驗的識別率、漏識別率、正確識別率和錯誤識別率如表1所示,識別率為92.0%,正確識別率為87.2%。

表1 果實識別結(jié)果Tab.1 Fruit recognition results

隨機選擇15幅圖像以測試定位精度。表2為番茄果實擬合輪廓半徑、實際測量半徑、偏差和相對誤差。擬合輪廓半徑為圖中擬合圓的半徑,實際測量半徑為用游標卡尺手動測量的番茄果實半徑,單位均為mm,精度均為0.01 mm。識別結(jié)果的均方根誤差(RMSE)為1.66 mm,平均相對誤差為3.95%。

表2 番茄果實實際測量半徑與擬合輪廓半徑Tab.2 Actual measured radius and fitted contour radius of tomato fruit

3 對比試驗與分析

為進一步驗證本文方法的性能,加入對比試驗,將其與在二維圖像上利用Hough變換進行果實識別的傳統(tǒng)方法進行比較。

選取與上述試驗相同的圖像樣本,采用在二維圖像上利用Hough變換進行果實識別,將其識別結(jié)果與本文方法進行對比。對比試驗中,根據(jù)采集的輸入圖像對Hough變換進行了改進:修改CIRCLE_HOUGHPEAKS函數(shù)中的Threshold變量,改成對圓投票數(shù)矩陣最大值的0.99倍,相當于取最大值投票數(shù)99%的圓心和半徑。由此得到的識別結(jié)果如表3所示。

表3 對比試驗的番茄果實識別結(jié)果Tab.3 Tomato fruit recognition results of comparative experiments

由對比試驗結(jié)果可知,采用二維平面上的霍夫圓方法對果實進行識別的正確識別率為69.0%,比本文方法低了18.2個百分點。因此,在番茄重疊情況比較復雜的情況下,本文方法的性能相較在二維平面上利用Hough變換的方法有了明顯的提升。

結(jié)合試驗過程和結(jié)果,將兩種方法進行對比分析。在二維圖像上利用Hough變換的方法需要提前輸入的參數(shù)較多,包括番茄果實個數(shù)和半徑范圍,以及設置參數(shù)投票矩陣閾值,選取投票率高的圓心和半徑;且其在識別過程中對于圖像中干擾項的處理能力不強,導致在非番茄區(qū)域也出現(xiàn)了很多圓,從而有相當一部分的投票從番茄區(qū)域流失,增加了錯誤率。本文方法則首先對圖像進行預處理,通過顏色、亮度等信息能夠很好地識別番茄區(qū)域,然后利用果實輪廓的三維信息進行聚類從而識別到重疊番茄,其中深度信息的獲取對于識別和定位重疊番茄尤為重要。因此本文提出方法的正確識別率較高,且在比較復雜的情況下具有較強的魯棒性。

4 結(jié)論

(1)針對重疊番茄果實難以分割與識別的問題,提出一種基于RGB-D圖像與改進的SOM-K-means算法的番茄果實識別方法。在二維圖像的基礎上,提取輪廓點的深度信息進行三維聚類;聚類時結(jié)合SOM算法和K-means算法的優(yōu)點對SOM算法進行優(yōu)化,提出改進的SOM-K-means算法,有效提高了運算效率和果實識別的綜合性能。經(jīng)過大量試驗,得出本文方法的正確識別率為87.2%。

(2)RGB-D相機對成熟番茄果實的定位結(jié)果均方根誤差(RMSE)為1.66 mm,平均相對誤差為3.95%,基本滿足采摘機器人的要求。

(3)本試驗綜合輪廓的深度信息,通過聚類將重疊果實的輪廓分開,然后分別進行圓擬合,在番茄果實識別定位方面,比傳統(tǒng)的在二維平面上利用Hough變換進行果實識別定位的方法具有更高的準確性和更強的魯棒性。

猜你喜歡
識別率輪廓個數(shù)
怎樣數(shù)出小正方體的個數(shù)
怎樣數(shù)出小木塊的個數(shù)
跟蹤導練(三)
最強大腦
怎樣數(shù)出小正方體的個數(shù)
檔案數(shù)字化過程中OCR技術(shù)的應用分析
基于PCA與MLP感知器的人臉圖像辨識技術(shù)
科技文檔中數(shù)學表達式的結(jié)構(gòu)分析與識別
人工智能現(xiàn)狀和發(fā)展
兒童筒筆畫
烟台市| 宜良县| 武邑县| 乌审旗| 宁陕县| 全椒县| 塔城市| 龙山县| 海淀区| 灵宝市| 永宁县| 枣阳市| 武胜县| 西畴县| 新晃| 天气| 崇文区| 柏乡县| 客服| 大庆市| 宜黄县| 自贡市| 彝良县| 重庆市| 兰考县| 陵川县| 潞西市| 清新县| 江山市| 永和县| 临沧市| 突泉县| 临桂县| 临夏市| 临沭县| 永德县| 合作市| 巴彦淖尔市| 丰宁| 乐清市| 大石桥市|