姚業(yè)浩,李毅念,陳玉侖,丁啟朔,何瑞銀
(南京農(nóng)業(yè)大學(xué)工學(xué)院,南京 210031)
油菜是中國油料作物的典型代表[1],角果是油菜的重要存儲器官[2]。在油菜生長發(fā)育后期,葉片已大部分凋零,角果便成了主要的光合作用器官[3]。研究表明角果長度是影響產(chǎn)量的重要因素且與產(chǎn)量和每角粒數(shù)呈極顯著正相關(guān)[4-5]。每角粒數(shù)是決定油菜產(chǎn)量的重要因素之一[6],也是育種考種和產(chǎn)量估測的重點研究對象[7]。
社會經(jīng)濟的發(fā)展對油菜作物產(chǎn)量和品質(zhì)的要求不斷提高,大量油菜育種和產(chǎn)量估測等相關(guān)性狀參數(shù)的測試成為油菜種植和新品種選育必要的工作內(nèi)容,目前,油菜育種和產(chǎn)量估測以人工方式獲取,測試效率低下。圖像處理技術(shù)的發(fā)展為油菜育種考種和產(chǎn)量估測等提供了有力的技術(shù)支撐,徐勝勇等[8]提出了一種基于RGB-D 相機的油菜分枝三維重建和角果識別定位方法,角果數(shù)量總體識別正確率不小于96.76%。汪文祥等[9]利用圖像處理方法測量了油菜分枝和角果著生角度。史浦娟[10]利用高分辨率的3D 掃描儀獲取油菜植株點云數(shù)據(jù),對株高、角果數(shù)量、角果體積等數(shù)據(jù)進(jìn)行了測量。劉仁峰等[11]利用凹點檢測技術(shù)對平鋪狀態(tài)下交叉黏連的角果進(jìn)行分割,對分割后的單個角果進(jìn)行細(xì)化得到骨架,計數(shù)骨架像素點數(shù)并換算成物理長度尺寸,角果長度測量準(zhǔn)確度達(dá)到了97.1%。
角果長度和每角粒數(shù)是2 個重要的油菜產(chǎn)量性狀參數(shù),當(dāng)前,角果長度利用游標(biāo)卡尺測量,每角粒數(shù)的計數(shù)方法主要有以下兩種,一是直接將角果皮剝開,從角果里取出籽粒后進(jìn)行計數(shù),該方法破壞了角果的形態(tài)且對同一角果樣本無法進(jìn)行重復(fù)試驗;二是利用角果果皮具有一定透光性的特點,對著光源可以透過果皮看到里面的籽粒從而實現(xiàn)對角果中籽粒的計數(shù),該方法保留了樣本的完整性,但長時間的計數(shù)會使計數(shù)者眼花繚亂,影響計數(shù)的準(zhǔn)確度且費時費力。
為解決油菜角粒數(shù)自動、快速、無損的計數(shù)問題,本文利用角果長度與角粒數(shù)之間的關(guān)系,建立油菜角果長度與每角粒數(shù)之間的關(guān)系模型,通過圖像處理技術(shù)獲得油菜角果的長度,將角果長度代入關(guān)系模型中計算得到該角果中油菜籽粒的個數(shù),以期滿足無損、高通量的油菜每角粒數(shù)計數(shù)的需求。
試驗設(shè)備有PC 機(聯(lián)想 G50-80,Window10 操作系統(tǒng),250 G 固態(tài)硬盤,12 GB 內(nèi)存)、中晶掃描儀(型號:Scan Maker E900,上海中晶科技有限公司)。利用掃描儀采集油菜角果圖像,Matlab2020 對角果圖像進(jìn)行處理。
試驗采用3 個油菜品種,分別為“灃油737”“楊油5 號”“蘇油1 號”,試驗樣本均采自江蘇省南京市六合區(qū)八百橋,利用剪刀將植株上、中和下部分枝角果剪下后放在實驗室自然晾干。3 個品種的供試角果個數(shù)分別為206、228、289,其中建模集分別為101、133、199,驗證集分別為105、95、90。將角果單層平鋪在掃描儀上,在PC 端顯示存儲油菜角果的圖像,掃描參數(shù)設(shè)置為每英寸300 像素,以“灃油737”為例,其掃描得到的圖像如圖1a 所示。利用游標(biāo)卡尺測量角果的長度作為角果實際長度,測量標(biāo)準(zhǔn)為僅測量有籽粒莢果部分,去除果喙和果柄部分,具體如圖1b 所示,利用人工計數(shù)法獲取角果中的籽粒數(shù)作為實際每角粒數(shù)。
單層平鋪的油菜角果存在角果間交叉、接觸等情況,利用圖像處理方法需準(zhǔn)確識別出單個角果并測量角果的長度,圖像處理算法流程如圖2 所示。
1.3.1 圖像預(yù)處理
圖像預(yù)處理是圖像處理過程中的重要步驟,油菜角果圖像經(jīng)過灰度化、二值化[12]、空洞填充、去除小面積處理后即可得到完整的油菜角果二值圖像。由于本文測量角果長度的標(biāo)準(zhǔn)中未包含果柄和果喙,故采用開運算去除角果的果柄和果喙,經(jīng)上述預(yù)處理后的油菜角果圖像如圖3 所示。
1.3.2 圖像細(xì)化
圖像細(xì)化就是將物體變成骨骼且該骨骼線(細(xì)線)位于物體的中心位置[12],細(xì)化后的二值物體和形狀僅為單個像素寬的線[13-15]。圖像細(xì)化后保留了圖像原有的基本形狀特征并使其他信息得到進(jìn)一步的簡化。由于油菜角果圖像的邊緣會有少量的粗糙部分,故細(xì)化后的油菜角果圖像存在一定的毛刺,對每條骨骼線去除5 個像素點,達(dá)到去除毛刺的目的。
1.4.1 擊中擊不中變換
為準(zhǔn)確識別出經(jīng)預(yù)處理和細(xì)化后角果端點和交叉點,角果圖像中的端點和交點是具有像素特定的形狀,孤立的前景像素或者是線段的端點像素[15],利用擊中擊不中變換[16]對其端點和交點進(jìn)行檢測。
1.4.2 使用查找表
當(dāng)擊中或擊不中結(jié)構(gòu)元素較小時,計算擊中擊不中變換較快的方法是使用查找表。要使用查找表就要給每個可能出現(xiàn)的形狀分配一個唯一的索引,本文所采用的檢測模板為3×3 形狀的結(jié)構(gòu)元素,二值圖像中每個位置可能的值只有0 和1,所以該檢測模板共有512(29)個不同的形狀。為了給每個形狀分配一個唯一的索引值,將該形狀的元素與下面的矩陣相乘:
將乘積累加起來即可為每個 3×3 的形狀在[0,511]中分配一個唯一的值。線段的端點在其8 連通域內(nèi)除其本身外只能存在一個1,即該處模板元素和為2 且模板中心點為1,以此為依據(jù)構(gòu)造一個長度為512 的列向量查找表,計算每個模板的索引值并加1(將索引值變?yōu)閇1,512]),滿足端點條件的在查找表對應(yīng)位置上置1,反之置0,最終生成的查找表如表1 所示。
表1 角果端點查找表Table 1 Lookup table for the silique endpoint
1.4.3 端點掃描
掃描是一個尋找的過程,將3×3 形狀的結(jié)構(gòu)元素遍歷整個油菜角果骨骼圖像并計算每個形狀內(nèi)的索引值,然后對應(yīng)查找表上的值,1 即端點,0 則是非端點。當(dāng)檢測模板采集到某個點的8 鄰域時,計算該形狀元素所對應(yīng)的索引值為49,通過查找表可得值為1,所以該點為端點。若計算該形狀元素對應(yīng)的索引值為57,通過查找表可得值為0,則該點為非端點。
端點掃描結(jié)果如圖4 所示,圖中可以看到每個角果的端點均已被識別(“0”所在位置即為識別到的端點位置),表明該方法可準(zhǔn)確識別角果的端點。試驗發(fā)現(xiàn)只需將模板元素的和由2 改為4,即二值圖像中線段交點的8 連通領(lǐng)域內(nèi)像素值的和為4,保持其余條件不變即可有效識別角果之間的交點及其臨近的點,在角果交點識別中,該方法識別到的是交點本身及其附近的一簇點,故還需要去除多余的交點。
DBSCAN ( Density Based Spatial Clustering of Applications with Noise)聚類算法[17]是一種基于密度的、具有噪聲的空間聚類算法,該算法可將具有足夠密度的區(qū)域劃分為簇。與K-means 聚類算法[18]相比,DBSCAN算法具有不需要事先確定聚類中心個數(shù)的優(yōu)點。本文針對油菜角果之間交點的識別結(jié)果正是一簇一簇的,故可利用該算法對角果交點進(jìn)行聚類,從每類簇中選擇一個點作為角果的交點并去除該類簇中其余的點即可實現(xiàn)多余交點的去除。
1.5.1 DBSCAN 聚類算法定義
DBSCAN 聚類算法具有以下6 個基本定義[17,19-21]。
定義1Eps鄰域:給定數(shù)據(jù)集D中的某一對象點p,NEps表示為以p為圓心Eps為半徑的圓所包含的區(qū)域,該區(qū)域內(nèi)所包含的點的集合用公式表示為NEps(p)={q∈D|dist(p,q)≤Eps},其中D?Rd,d為空間維度,q為數(shù)據(jù)集D中的某一個點,dist 表示兩點之間的距離。
定義2 核心點、邊界點、噪點:假設(shè)對象點p∈D,給定的鄰域半徑為Eps、最小密度點個數(shù)minPts,若以p為圓心Eps為半徑的圓所包含的區(qū)域中點的個數(shù)大于等于minPts,則p為核心點。若p不是核心點但是p在另外一個核心點所包含的區(qū)域內(nèi),則p為邊界點,否則p為噪點。
定義3 直接密度可達(dá):給定對象點p∈D、點q∈D,若點q在以點p為圓心Eps為半徑的區(qū)域內(nèi)且p為核心點,則稱由p到q是直接密度可達(dá)的,公式表示為q∈NEps(p),|NEps(p)|≥minPts。
定義4 密度可達(dá):在數(shù)據(jù)集D中,有對象鏈p1,p2,…,pn,且p1=q,pn=p,對于任意一點pi∈D(1≤i≤n),若在給定的Eps、minPts條件下,pi+1從pi直接密度可達(dá),則p從q密度可達(dá)。
定義5 密度相連:給定對象p∈D、q∈D、o∈D,若在給定的Eps、minPts條件下,p和q都可以從o密度可達(dá),則p和q是密度相連的。
定義6 簇:以核心點為中心,所有密度可達(dá)的點構(gòu)成一個簇。
1.5.2 DBSCAN 聚類算法流程
DBSCAN 聚類算法流程[19]如圖5 所示。
利用DBSCAN 聚類算法(Eps=80、minPts=2)對油菜角果交點進(jìn)行聚類成簇,Eps的初始值可由試驗測試的方法選擇一個最佳值Eps0,利用公式(1)可獲取不同圖像的Eps值。
式中S0為選取最佳Eps值Eps0時所使用的圖像像素數(shù);S為新輸入待測圖像的像素數(shù)。
從每簇中選取第一個點作為交點,舍棄其余點即可實現(xiàn)去除多余的交點,如圖6 所示。
油菜角果的端點和交點已全部被識別出來,接下來就是實現(xiàn)角果兩端點之間的配對,配對的結(jié)果要求圖像中匹配的兩端點是某單角果實際的兩端點,此時該兩端點之間的距離即是該角果的長度。在整幅平鋪狀態(tài)下油菜角果的圖像中,由于角果端點眾多,正確配對難度過大,故以連通域為單位提取角果子圖像,再對子圖像中的角果端點進(jìn)行配對以降低匹配難度,提高配對準(zhǔn)確度。按照子圖像端點的個數(shù)m和交點的個數(shù)n來進(jìn)行分類。
1.6.1 單角果型
m=2 且n=0,此類型的端點配對是最為簡單的類型,只需要直接連接兩個端點即可實現(xiàn)正確的配對,配對結(jié)果如圖7a 所示。
1.6.2 雙角果交叉型
m=4 且n=1,此類型的角果圖像如圖7b 所示,角果圖像中有4 個端點,分別為a、b、c、d,假設(shè)其坐標(biāo)分別為(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)。由排列組合可知,此4 點可組成3 種不同的配對結(jié)果,分別為(ad,bc)、(ab,dc)、(ac,bd),顯然只有(ac,bd)組合才是正確的配對結(jié)果。要使配對結(jié)果只能是(ac,bd)組合,需求出配對后兩直線之間的交點,交點在4 個端點所圍成的四邊形內(nèi)部的組合即為(ac,bd)組合。以(ac,bd)組合為例,交點的求法由公式(2)實現(xiàn),通過求解方程組可以得到交點(x,y)。
交點在4 個端點所圍成的四邊形內(nèi)部的條件為xmin≤x≤xmax且ymin≤y≤ymax,其中xmin為4 個端點中橫坐標(biāo)最小值、xmax為4 個端點中橫坐標(biāo)最大值、ymin為4 個端點中縱坐標(biāo)最小值、ymax為4 個端點中縱坐標(biāo)最大值。配對結(jié)果如圖7c 所示。
1.6.3 普通型
除上述兩種類型外,其余皆按普通型處理,普通型角果圖像的特點表現(xiàn)為角果交點多且分布無序,故而配對難度高。首先,選擇任意角果交點o為原點,從o點向任意兩端點a、b作oa、ob(如圖8a 所示),并計算oa、ob之間的夾角θ(0°≤θ≤180°)。
根據(jù)角果本身筆直的特性,若端點a、b滿足θ≥170°且ξ≥0.90,則端點a、b即為某角果的兩個端點,連接兩端點即可得到該角果的長度。配對結(jié)果如圖8b 所示,由此可見,該條件并不適應(yīng)于所有的角果,因為不是所有的角果都是筆直的,但該條件可以實現(xiàn)優(yōu)先對端點明顯且筆直的角果的正確配對,從而降低后續(xù)配對的難度。對未配對的端點進(jìn)行再一次的配對時,需要降低配對條件,降低的標(biāo)準(zhǔn)為θ每次減少10°,ξ每次減小0.1,即第二次配對時,未配對的兩端點只需滿足θ≥160°且ξ≥0.80。以此類推直至條件降至θ≥120°且ξ≥0.40 時,結(jié)束端點配對。配對結(jié)果如圖8c 所示,通過多次配對之后,兩端點全被識別出來的角果均已完成正確配對,但僅識別到一個端點的角果仍未配對。此類角果的端點與其他角果相交后形成了交點,故此類角果的配對方式應(yīng)為端點與交點的配對,配對條件為ξ≥0.95,在所有滿足條件的交點中,選擇距離端點最遠(yuǎn)的交點配對。若一次配對后仍有未配對的端點,降低配對標(biāo)準(zhǔn)后進(jìn)行二次配對直至所有端點均被配對時,結(jié)束配對,配對結(jié)果如圖8d 所示,整幅平鋪狀態(tài)下油菜角果圖像端點配對結(jié)果如圖9所示。
1.7.1 角果長度計算
假設(shè)已配對的角果兩端點的坐標(biāo)為(x1,y1)、(x2,y2),通過公式(4)即可得到該角果的長度像素數(shù)d。
在建模集中油菜角果的長度為物理尺寸長度,故需將長度像素數(shù)d轉(zhuǎn)化為物理尺寸長度d′。首先,在同等掃描條件下掃描一張A4 紙張并對其擬合最小外接矩形,求出該矩形的長和寬(l、w)即為A4 紙的長和寬像素數(shù),利用公式(5)即可求出轉(zhuǎn)換比例k。
角果的物理尺寸長度即為d′=kd(mm)。
1.7.2 角果籽粒數(shù)計算
將得到的角果長度d′代入油菜角果長度與籽粒數(shù)之間的線性關(guān)系模型中即可得到油菜角果中的籽粒數(shù)。在驗證算法準(zhǔn)確度時,掃描后的角果先留在掃描儀內(nèi)保留其位置不發(fā)生變化,待圖像處理完成后,在同一位置找到圖像上的角果和實際對應(yīng)的角果,記下測量值和實際值。
利用建模集角果長度和每角粒數(shù)數(shù)據(jù)建立相關(guān)性模型,角果長度與每角粒數(shù)之間的關(guān)系如圖10 所示,3 個品種的油菜角果的長度與每角粒數(shù)之間相關(guān)性決定系數(shù)(R2)分別為0.891、0.881、0.887,表明油菜角果每角粒數(shù)與其長度具有相關(guān)性。此結(jié)果可為通過角果圖像來獲取角果粒數(shù)提供依據(jù),即獲取圖像中角果的長度并代入角果長度與每角粒數(shù)之間的相關(guān)性模型中即可得到對應(yīng)的每角粒數(shù)。
利用驗證集角果長度數(shù)據(jù)對角果圖像識別角果長度數(shù)據(jù)進(jìn)行檢驗,通過角果的長度來預(yù)測每角粒數(shù),故角果長度識別的準(zhǔn)確度直接影響預(yù)測每角粒數(shù)的準(zhǔn)確度,以人工測量長度為角果的實際長度,利用本文所提出的圖像識別方法,對3 個品種的油菜角果長度的識別結(jié)果與角果實際長度對比分析,如圖11 所示。3 個品種的油菜角果識別長度與實際長度決定系數(shù)(R2)均在0.97 以上,最大RMSE 僅為2.637 mm,說明本文提出的油菜角果長度識別方法能準(zhǔn)確的識別平鋪狀態(tài)下油菜角果的長度。
由表2 可知,3 個品種的油菜角果長度識別平均絕對誤差分別為1.35、0.78、2.13 mm,平均相對誤差分別為2.60%、2.35%、3.29%,3 個品種的油菜角果長度識別平均準(zhǔn)確度為97.25 %。表明本文提出的端點檢測配對方法能實現(xiàn)油菜角果長度高通量、準(zhǔn)確、自動的識別要求。
表2 油菜角果長度和每角粒數(shù)識別結(jié)果誤差分析Table 2 Error analysis of recognition results for length of oilrape silique and seed number per silique
利用驗證集角果每角粒數(shù)數(shù)據(jù)對圖像識別角果籽粒數(shù)數(shù)據(jù)進(jìn)行檢驗,通過將識別到的油菜角果長度信息代入對應(yīng)品種的油菜角果長度與每角粒數(shù)之間的相關(guān)性模型中即可得到每角粒數(shù),以人工計數(shù)為實際每角粒數(shù),3 個品種的油菜每角粒數(shù)預(yù)測結(jié)果與實際每角粒數(shù)對比分析如圖12 所示。3 個品種的油菜角果圖像預(yù)測每角粒數(shù)與實際每角粒數(shù)之間的決定系數(shù)(R2)均在0.84 以上,最大RMSE 為4.174 粒,說明本文提出的油菜每角粒數(shù)圖像識別方法可行。
由表2 可得,3 個品種的油菜每角粒數(shù)預(yù)測平均絕對誤差分別為3.40、1.43、3.23 粒,平均相對誤差分別為17.77%、12.75%、17.86%,3 個品種的油菜每角粒數(shù)總體平均相對誤差為16.13 %,平均預(yù)測準(zhǔn)確度為83.87%。
目前研究表明油菜角果性狀參數(shù)長度與單株油菜產(chǎn)量、籽粒數(shù)量等存在一定的相關(guān)關(guān)系,有文獻(xiàn)分析了單株油菜部分角果長度平均值或者一個種類油菜角果長度與其平均角果籽粒數(shù)量之間的相關(guān)性[4,22],本研究從油菜植株單個角果長度與其籽粒數(shù)量之間相關(guān)關(guān)系的角度進(jìn)行分析,因此本研究中的油菜品種角果長度與每角粒數(shù)之間的決定系數(shù)值(R2)均較相關(guān)文獻(xiàn)[4,22]報道的大。
本文在對油菜角果性狀參數(shù)長度與籽粒數(shù)量存在一定的相關(guān)關(guān)系研究的基礎(chǔ)上提出了利用圖像識別角果長度并計算出角果每角粒數(shù)的測試方法,通過本研究發(fā)現(xiàn)每角粒數(shù)預(yù)測平均準(zhǔn)確度為83.87%,能夠滿足目前育種和估測產(chǎn)量時對每角粒數(shù)測量的精度需要。
本研究中將油菜每角粒數(shù)計數(shù)中人工剝角果莢殼、籽粒計數(shù)等工作采用圖像方法批量一次性獲取,大大降低每角粒數(shù)數(shù)據(jù)獲取的時間和人工成本。圖像獲取方法能夠快速準(zhǔn)確獲取油菜每角粒數(shù),同時節(jié)約大量人工,有利于滿足現(xiàn)階段油菜育種和產(chǎn)量預(yù)測大量樣本測量的需求。從本研究結(jié)果來看,油菜角果長度尺寸預(yù)測每角粒數(shù)有一定的優(yōu)勢,但預(yù)測精度仍然有提升的空間。
通過人工測量了角果的長度與每角粒數(shù)并建立了角果長度與每角粒數(shù)之間的關(guān)系模型,結(jié)果表明,3 個品種的決定系數(shù)均大于0.88,說明可利用角果的長度來預(yù)測角果中的籽粒數(shù)。
通過掃描儀獲取平鋪狀態(tài)下油菜角果的圖像,對圖像預(yù)處理后識別角果的端點和交點并利用DBSCAN 聚類算法去除了多余的交點,根據(jù)每個子圖像中角果的類型選擇對應(yīng)的端點配對法則識別出對應(yīng)的角果,利用兩點之間的距離公式求出角果的長度,再將角果長度代入角果長度與每角粒數(shù)之間的關(guān)系模型中得到對應(yīng)角果的籽粒數(shù),結(jié)果表明:3 個品種的油菜角果長度識別平均準(zhǔn)確度為97.25%,說明本研究提出的角果長度圖像識別方法是可行的,且與人工測試角果長度結(jié)果非常接近。
經(jīng)圖像識別方法獲取角果長度尺寸,利用角果長度與每角粒數(shù)之間的關(guān)系模型可對油菜角果每角粒數(shù)進(jìn)行預(yù)測,每角粒數(shù)預(yù)測平均準(zhǔn)確度為83.87%,表明本文提出的油菜角果長度識別算法和油菜每角粒數(shù)預(yù)測算法準(zhǔn)確、可行。通過獲取整株油菜單個分枝上油菜角果平鋪狀態(tài)下的圖像,利用圖像處理方法可快速獲取角果的長度尺寸,并利用角果長度與每角粒數(shù)之間的關(guān)系模型計算出角果每角粒數(shù),可快速估測出分枝上所測角果的角果籽粒數(shù)量,依次獲取整株油菜各分枝角果圖像,可快速獲取整株角果籽粒數(shù)量。