王成城 馬啟良
(1湖州師范學(xué)院信息工程學(xué)院,浙江湖州 313000;2湖州師范學(xué)院信息技術(shù)中心,浙江湖州 313000)
水稻種植歷史悠久,是我國(guó)主要的糧食作物之一。水稻種子的高質(zhì)和高產(chǎn)對(duì)保障我國(guó)糧食供應(yīng)安全具有重要作用[1]。種子活力關(guān)系到水稻的產(chǎn)量和質(zhì)量。因此,測(cè)定種子活力,篩選出高活力種子,對(duì)于確保播種種子質(zhì)量和實(shí)際田間出苗率具有重大的生產(chǎn)意義。種子發(fā)芽速度測(cè)定是種子活力檢測(cè)的重要手段之一,具體包括幼苗的發(fā)芽率、生長(zhǎng)速度,是評(píng)判種子質(zhì)量的重要指標(biāo)[2-3]。因此,準(zhǔn)確地測(cè)定種子發(fā)芽率、每日幼苗長(zhǎng)度、根長(zhǎng)度,有助于精確地評(píng)估種子質(zhì)量,但是以上指標(biāo)都需要人工進(jìn)行測(cè)定,繁瑣、費(fèi)時(shí)、主觀因素大,所以需要一種客觀的、快速自動(dòng)化的測(cè)定方法。
圖像處理技術(shù)作為一種無損檢測(cè)技術(shù),在植物病蟲害檢測(cè)、果蔬分級(jí)分類、農(nóng)作物長(zhǎng)勢(shì)測(cè)定等方面具有良好的應(yīng)用前景[4-5]。Sako等[6]開發(fā)了一個(gè)生菜種子活力自動(dòng)評(píng)估系統(tǒng),利用圖像處理技術(shù)從幼苗形態(tài)特征中獲取了各種參數(shù),并生成了表示種子活力指標(biāo)的數(shù)值;金濤等[7]開發(fā)了種子幼苗長(zhǎng)度輔助測(cè)量系統(tǒng),為種子質(zhì)量檢測(cè)提供了一種新的思路;AF Hoffmaster 等[8-9]基于圖像處理技術(shù)實(shí)現(xiàn)了自動(dòng)評(píng)估3 日齡大豆和玉米幼苗的活力;楊紅云等[10]為了監(jiān)測(cè)自然生長(zhǎng)狀態(tài)下的水稻葉片,采用手勢(shì)交互插值法和骨架提取法得到了水稻葉片幾何形態(tài)參數(shù)。金沙沙等[11]提出了一種基于端點(diǎn)刪除的剪枝方法,實(shí)現(xiàn)了對(duì)小麥、水稻的芽長(zhǎng)和根長(zhǎng)的測(cè)量。這些研究為本文對(duì)水稻種子發(fā)芽中的芽長(zhǎng)根長(zhǎng)自動(dòng)化測(cè)量提供了研究思路。
本研究通過采集種子發(fā)芽圖像,綜合運(yùn)用圖像分割、形態(tài)學(xué)、骨架提取與最大路徑搜索等技術(shù),實(shí)現(xiàn)芽長(zhǎng)與根長(zhǎng)的自動(dòng)檢測(cè),并與手工測(cè)量方法進(jìn)行對(duì)比,以驗(yàn)證本研究算法的有效性。
為采集試驗(yàn)所需圖像,對(duì)水稻種子進(jìn)行培養(yǎng),選取發(fā)芽10~14 d的100株水稻幼苗作為研究對(duì)象,并將100 株幼苗平均分成10 組,按從左到右依次排列在黑色吸光絨布上,采用工業(yè)級(jí)相機(jī)固定高度并垂直于黑色絨布進(jìn)行拍攝,獲取幼苗圖像。
在64 位win10 操作系統(tǒng)下,CPU 為AMD Ryzen 7 4800H、主頻2.90 GHz、內(nèi)存16G,基于pycharm 開發(fā)環(huán)境,實(shí)現(xiàn)了相關(guān)算法的研究。
1.2.1 閾值分割。閾值分割是為了將植株從背景中提取出來,只保留需要的植株圖,用于后續(xù)提取芽長(zhǎng)和根長(zhǎng)的形態(tài)特征[12]。本文使用常用的閾值分割算法大津法(OTSU),OTSU是一種圖像自適應(yīng)二值化分割算法,由日本學(xué)者大津于1979 年提出[13]。OTSU是圖像分割中閾值選取的最佳算法之一,計(jì)算簡(jiǎn)單,不受圖像亮度和對(duì)比度的影響,因此在數(shù)字圖像處理上得到了廣泛的應(yīng)用。閾值分割可用式(1)表示。
式中:T為閾值,f(x,y)表示圖像中坐標(biāo)為(x,y)的像素點(diǎn)的灰度值,m(x,y)是圖像閾值分割之后和在(x,y)處像素灰度值。
1.2.2 基于HSV 的顏色特征提取與分割。在計(jì)算機(jī)中,色彩空間是描述顏色的一種特定方式,RGB是應(yīng)用最廣的色彩空間,而HSV是基于人類對(duì)顏色感知而提出的色彩空間。HSV 是色調(diào)(Hue)、飽和度(Saturation)和明度(Value)簡(jiǎn)稱,能夠直觀表達(dá)顏色的色調(diào)、亮暗程度和色彩的濃度,方便進(jìn)行顏色的對(duì)比,且更容易追蹤到某種特定顏色的目標(biāo)。
設(shè)(R、G、B)是某個(gè)顏色在RGB單位化立方體中的坐標(biāo),取值范圍為[0,1],設(shè)max表示R,G和B中的最大者,min表示最小者,則從RGB彩色空間到HSV彩色空間的計(jì)算公式如式(2)、(3)和(4)所示[14]。
水稻種子幼苗圖像中芽和根的顏色明顯區(qū)別于種子的顏色,所以可以根據(jù)顏色確定種子的位置并分割芽和根[15]。HSV 中的S與人眼的感知密切相關(guān),它表示顏色的純度,受光照影響較小,可采用S去識(shí)別根區(qū)域,而H可顯著區(qū)分芽與其他植株部分。因此,對(duì)種子幼苗圖像進(jìn)行HSV 的分析,可以識(shí)別出幼苗的綠芽區(qū)域和根區(qū)域。芽區(qū)域分割可用式(5)表示,根區(qū)域的分割可用式(6)表示。
式中,h1是芽顏色最小色調(diào)值,h2是芽顏色最大色調(diào)值,s1是根的最小飽和度值,s2是根的最大飽和度值。
1.2.3 骨架提取與最長(zhǎng)路徑。骨架是基于物體形狀特征的簡(jiǎn)化描述方式,是一種良好的形狀表達(dá)方式,簡(jiǎn)潔、準(zhǔn)確的骨架能夠表現(xiàn)物體的整體結(jié)構(gòu)、形狀拓?fù)浜蛶缀涡再|(zhì),與圖形圖像的輪廓相比,其在形變和噪聲影晌下更為穩(wěn)定,且骨架可以降低物體后期描述和度量的難度。因此,為了測(cè)量芽與根長(zhǎng)度,可提取幼苗的骨架圖進(jìn)行統(tǒng)計(jì)分析。
對(duì)種子幼苗骨架圖中出現(xiàn)的多條根分支和葉分支,選取其中最長(zhǎng)的根骨架和芽骨架。以8 鄰域來對(duì)骨架進(jìn)行分析跟蹤,設(shè)P(x,y)為任一像素點(diǎn),記中心點(diǎn)為P1,其鄰域的另8 個(gè)點(diǎn)順時(shí)針繞中心點(diǎn)分別記為P2、P3、P4、P5、P6、P7、P8、P9,位置關(guān)系如圖1所示。
當(dāng)P1(x,y)點(diǎn)的鄰域僅有一個(gè)值不為0,該點(diǎn)骨架端點(diǎn),當(dāng)P1點(diǎn)的8 鄰域有2 個(gè)以上點(diǎn)的值不為0,該點(diǎn)為骨架節(jié)點(diǎn),而8鄰域內(nèi)有且僅有2個(gè)點(diǎn)的值不為0,則該點(diǎn)為骨架連接點(diǎn)。
基于DFS 搜索算法,采用8 連通鏈碼逐步實(shí)現(xiàn)對(duì)植株骨架的最大路徑提取,遍歷骨架圖像上的每個(gè)像素點(diǎn),具體算法描述如下:①首先遍歷每株幼苗骨架,找到滿足8 鄰域之和為1 的骨架點(diǎn),確定每一粒種子骨架的初始端點(diǎn);②創(chuàng)建一個(gè)棧,并且把初始端點(diǎn)放入其中,并且設(shè)初始最長(zhǎng)長(zhǎng)度max_L 為0、最長(zhǎng)路徑坐標(biāo)數(shù)組max_array;③取出棧頂?shù)囊粋€(gè)像素點(diǎn)進(jìn)行八鄰域搜索,逐個(gè)搜尋把各個(gè)像素點(diǎn)的鏈碼存入數(shù)組Freeman 中,并且令掃描過的像素點(diǎn)的像素值為0;④如果跟蹤到骨架節(jié)點(diǎn),則記錄該節(jié)點(diǎn)的所有分支的起始坐標(biāo),并且壓入棧中,作為下次跟蹤起始點(diǎn),并且儲(chǔ)存跟蹤到該節(jié)點(diǎn)為止的長(zhǎng)度以及記錄當(dāng)前所有坐標(biāo)放入數(shù)組。如果是骨架端點(diǎn),則計(jì)算跟蹤到端點(diǎn)的整個(gè)鏈碼(所跟蹤的分支)的長(zhǎng)度L,然后與max_L 比較,如果L>max_L,則把L 的值賦值給max_L,并且更新當(dāng)前最大路徑坐標(biāo)數(shù)組max_array。⑤判斷棧頂是否為空,若棧非空,則繼續(xù)從棧頂取出一個(gè)像素點(diǎn)的坐標(biāo),跳轉(zhuǎn)到步驟③,若沒有,則輸出最終結(jié)果max_L以及max_array。
1.2.4 長(zhǎng)度分析。本文利用8方向鏈碼跟蹤骨架進(jìn)行長(zhǎng)度計(jì)算。用8方向鏈碼和特定值(01234567)標(biāo)記所跟蹤的像素,對(duì)于8 連通的鄰域點(diǎn)有8 個(gè)方向,這8個(gè)方向在編碼的時(shí)候,用0、1、2、3、4、5、6、7來表示。而鏈碼則是初始點(diǎn)加有一串帶有方向碼構(gòu)成的一組數(shù)列,稱之為Freeman 鏈碼。設(shè)中心點(diǎn)坐標(biāo)為(x,y),則該點(diǎn)8鄰域的八個(gè)像素坐標(biāo)分別是:(x,y-1)、(x+1,y-1)、(x+1,y)、(x+1,y+1)、(x,y+1)、(x-1,y+1)(x-1,y)、(x-1,y-1),且它們的鏈碼依次為0、1、2、3、4、5、6、7。
因此,只要存儲(chǔ)起始坐標(biāo)及后續(xù)點(diǎn)的鏈碼值,就可以得到路徑上的所有坐標(biāo)值,并且存入數(shù)組記為L(zhǎng)1。由于發(fā)芽圖的骨架曲線較多,如果每個(gè)都進(jìn)行計(jì)算會(huì)出現(xiàn)誤差,算法計(jì)算的長(zhǎng)度大于實(shí)際的長(zhǎng)度。因此,本文在計(jì)算長(zhǎng)度時(shí)候,從坐標(biāo)數(shù)組中每五個(gè)取一個(gè)坐標(biāo)值生成一個(gè)新的數(shù)組記為L(zhǎng)2,并且判斷是否加入了L1中的最后一個(gè)坐標(biāo),若否則把最后的坐標(biāo)加入新數(shù)組L2,進(jìn)行長(zhǎng)度計(jì)算降低誤差。設(shè)A、B兩點(diǎn)坐標(biāo)分別為(x1,x2),(y1,y2),則兩點(diǎn)之間的歐式距離公式如式(7)所示:
在數(shù)組L2中取出所有的坐標(biāo)進(jìn)行計(jì)算長(zhǎng)度,通過累加求和公式(3)進(jìn)行總長(zhǎng)度計(jì)算。
式中,n表示L2數(shù)組中有多少段線段(即坐標(biāo)點(diǎn)總數(shù)減去1后的值),而(AB)i表示第i個(gè)線段長(zhǎng)度。
1.2.5 結(jié)果評(píng)價(jià)。將本文方法測(cè)量的水稻種子幼苗芽長(zhǎng)與根長(zhǎng)與手工軟件測(cè)量結(jié)果進(jìn)行對(duì)比分析,進(jìn)行最大誤差和百分誤差(Percentage error)計(jì)算,如公式(9)所示。并且計(jì)算兩個(gè)變量間的相關(guān)系數(shù),如公式(10)所示。
式中,x是本文方法得出的測(cè)量值,y是手工測(cè)量值,xˉ和yˉ是平均值。
OTSU 算法對(duì)發(fā)芽圖像進(jìn)行分割的結(jié)果如圖2A 所示,可以看出根尖處會(huì)出現(xiàn)不連續(xù)現(xiàn)象且二值圖像中有噪聲點(diǎn),為了讓其更具連通性和平滑效果,對(duì)圖像進(jìn)行形態(tài)學(xué)方法處理[16-17],先后進(jìn)行了膨脹和腐蝕運(yùn)算,通過設(shè)定閾值,對(duì)小于該閾值的小連通區(qū)域噪聲進(jìn)行去除,處理后的圖像如圖2B 所示。針對(duì)二值圖像根形成的孔洞,為了保證像素點(diǎn)的連續(xù)性以及避免骨架提取時(shí)出現(xiàn)閉環(huán),采用remove_small_holes 方法對(duì)空洞進(jìn)行處理,結(jié)果如圖2C所示。
圖2 圖像分割結(jié)果
通常骨架提取算法要滿足以下幾點(diǎn)要求:保證原圖像輪廓的連通性、原圖像輪廓的中心線為骨架線、細(xì)化后的骨架線寬度為1 個(gè)像素、細(xì)化速度要快[18]。本研究分別運(yùn)用thin、skeletonize 骨架提取算法對(duì)單個(gè)水稻種子幼苗的二值圖像進(jìn)行細(xì)化。通過細(xì)化獲得的兩個(gè)骨架特征如圖3 所示。對(duì)比2 種骨架提取算法,通過局部分支點(diǎn)的放大,可以發(fā)現(xiàn)thin算法在分支處無法保留細(xì)化之前圖像的分支角度,skeletonize算法效果較好。
圖3 2種骨架提取算法效果對(duì)比
為了計(jì)算芽和根的長(zhǎng)度,在得到骨架的基礎(chǔ)上,利用DFS 遍歷算法對(duì)骨架圖進(jìn)行遍歷,找出最長(zhǎng)骨架線,并將最長(zhǎng)骨架線與原種子幼苗圖像合并顯示,如圖4 所示,可以發(fā)現(xiàn)提取的最長(zhǎng)骨架線能夠很好匹配幼苗圖像。
圖4 最長(zhǎng)路徑骨架提取結(jié)果
利用種子芽和根在HSV 空間表現(xiàn)的特征,分別識(shí)別種子的芽區(qū)域和根區(qū)域,去除芽區(qū)域后的圖像如圖5A所示,去除根區(qū)域的圖像如圖5B所示,圖5A和圖5B 共有的部分即為種子區(qū)域,如圖5C 所示。得到種子區(qū)域二值圖像后,提取種子區(qū)域輪廓,并獲得質(zhì)心坐標(biāo),通過質(zhì)心坐標(biāo)實(shí)現(xiàn)對(duì)幼苗芽根主骨架先的分割,分別統(tǒng)計(jì)芽和根的長(zhǎng)度。
圖5 種子區(qū)域選擇結(jié)果
使用軟件Adobe Illustrator 2019,分別統(tǒng)計(jì)水稻種子實(shí)驗(yàn)圖像中芽和根的像素個(gè)數(shù)作為標(biāo)準(zhǔn)參考值,與本文方法的測(cè)量值進(jìn)行比較,倆組數(shù)據(jù)的根長(zhǎng)相關(guān)系數(shù)為0.997,芽長(zhǎng)相關(guān)系數(shù)0.998。這與圖6中所有點(diǎn)均在1∶1線附近是一致的。經(jīng)統(tǒng)計(jì)分析,100株幼苗圖像根長(zhǎng)的平均百分比誤差為1.57%,芽長(zhǎng)的平均百分比誤差為1.48%。產(chǎn)生誤差的原因可能有,有些種子的根數(shù)量較多會(huì)形成閉環(huán),在輪廓內(nèi)部填充后的骨架提取步驟里會(huì)導(dǎo)致算法采用的是中心線,而不是主根;以及較粗的芽在細(xì)化時(shí)也會(huì)產(chǎn)生偏移,導(dǎo)致計(jì)算長(zhǎng)度不一致;在分割芽長(zhǎng)和根長(zhǎng)的時(shí)候,因?yàn)榉N子萌發(fā)點(diǎn)不是在種子中心,所以用種子中心去分割芽和根區(qū)域也會(huì)產(chǎn)生一定的誤差。
圖6 芽、根長(zhǎng)度的手工測(cè)量值與本文方法測(cè)量值比較
目前對(duì)種子發(fā)芽時(shí)的根長(zhǎng)和芽長(zhǎng)的自動(dòng)測(cè)量方法研究較少,本文使用的水稻種子幼苗圖像根長(zhǎng)和芽長(zhǎng)的自動(dòng)測(cè)量方法是有效的,且芽和根長(zhǎng)度的平均誤差在2%以下,能夠滿足農(nóng)學(xué)應(yīng)用的需要。
該方法具有計(jì)算速度快、自動(dòng)化程度高等優(yōu)點(diǎn),具有一定的適用性,可為試驗(yàn)室種子發(fā)芽試驗(yàn)中芽與根長(zhǎng)度測(cè)量提供參考,也可擴(kuò)展到其他具有相似的谷物作物種子幼苗(小麥、玉米、馬尾松)的檢測(cè)與分析,具有一定的推廣價(jià)值。