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

圖2 圖像分割結果
通常骨架提取算法要滿足以下幾點要求:保證原圖像輪廓的連通性、原圖像輪廓的中心線為骨架線、細化后的骨架線寬度為1 個像素、細化速度要快[18]。本研究分別運用thin、skeletonize 骨架提取算法對單個水稻種子幼苗的二值圖像進行細化。通過細化獲得的兩個骨架特征如圖3 所示。對比2 種骨架提取算法,通過局部分支點的放大,可以發(fā)現(xiàn)thin算法在分支處無法保留細化之前圖像的分支角度,skeletonize算法效果較好。

圖3 2種骨架提取算法效果對比
為了計算芽和根的長度,在得到骨架的基礎上,利用DFS 遍歷算法對骨架圖進行遍歷,找出最長骨架線,并將最長骨架線與原種子幼苗圖像合并顯示,如圖4 所示,可以發(fā)現(xiàn)提取的最長骨架線能夠很好匹配幼苗圖像。

圖4 最長路徑骨架提取結果
利用種子芽和根在HSV 空間表現(xiàn)的特征,分別識別種子的芽區(qū)域和根區(qū)域,去除芽區(qū)域后的圖像如圖5A所示,去除根區(qū)域的圖像如圖5B所示,圖5A和圖5B 共有的部分即為種子區(qū)域,如圖5C 所示。得到種子區(qū)域二值圖像后,提取種子區(qū)域輪廓,并獲得質(zhì)心坐標,通過質(zhì)心坐標實現(xiàn)對幼苗芽根主骨架先的分割,分別統(tǒng)計芽和根的長度。

圖5 種子區(qū)域選擇結果
使用軟件Adobe Illustrator 2019,分別統(tǒng)計水稻種子實驗圖像中芽和根的像素個數(shù)作為標準參考值,與本文方法的測量值進行比較,倆組數(shù)據(jù)的根長相關系數(shù)為0.997,芽長相關系數(shù)0.998。這與圖6中所有點均在1∶1線附近是一致的。經(jīng)統(tǒng)計分析,100株幼苗圖像根長的平均百分比誤差為1.57%,芽長的平均百分比誤差為1.48%。產(chǎn)生誤差的原因可能有,有些種子的根數(shù)量較多會形成閉環(huán),在輪廓內(nèi)部填充后的骨架提取步驟里會導致算法采用的是中心線,而不是主根;以及較粗的芽在細化時也會產(chǎn)生偏移,導致計算長度不一致;在分割芽長和根長的時候,因為種子萌發(fā)點不是在種子中心,所以用種子中心去分割芽和根區(qū)域也會產(chǎn)生一定的誤差。

圖6 芽、根長度的手工測量值與本文方法測量值比較
目前對種子發(fā)芽時的根長和芽長的自動測量方法研究較少,本文使用的水稻種子幼苗圖像根長和芽長的自動測量方法是有效的,且芽和根長度的平均誤差在2%以下,能夠滿足農(nóng)學應用的需要。
該方法具有計算速度快、自動化程度高等優(yōu)點,具有一定的適用性,可為試驗室種子發(fā)芽試驗中芽與根長度測量提供參考,也可擴展到其他具有相似的谷物作物種子幼苗(小麥、玉米、馬尾松)的檢測與分析,具有一定的推廣價值。