馬啟良,楊小明,胡水星,黃子鴻,祁亨年,c,*
(湖州師范學院 a. 信息技術中心;b. 信息工程學院;c. 研究生院,浙江 湖州 313000)
種子是具有生命的特殊商品,是種植業中最基本的生產資料。在農業生產中,能否獲得高產除了取決于種子品種的好壞之外,還取決于種子的質量,而種子質量的一個重要評價指標就是種子活力,高活力種子有出苗率高、發芽迅速、出苗整齊、抵抗力強等優點。科研人員在如何判斷種子活力方面做了大量研究,如通過種子呼吸[1]和光譜技術[2-4]來判斷種子活力等,這些研究都以標準發芽試驗統計的種子發芽率、發芽勢、芽長和根長等指標作為參考標準。標準發芽試驗作為測定種子活力最為準確[5-6]的傳統方法,在實際試驗過程中需每天通過人工定時統計和測量相關指標,該操作過程繁瑣、費時費力,且易受主觀因素影響,在測量時又容易對幼苗造成損傷,不利于可持續地觀察。因此,迫切需要一種標準化、自動化的客觀統計分析方法。
近年來,機器視覺因其速度快、精度高和非破壞性在農業領域應用相當廣泛,在農產品質量分級與檢測[7-9]、農田病蟲草害控制[10]和農作物生長過程檢測[11]等方面均取得了較大進展。在種子發芽實驗相關指標的自動化統計和測量方面也有一些探索性研究,金莎莎等[12]利用圖像處理技術實現了發芽水稻種子的芽長和根長的統計;馬啟良等[13]利用聚類分析方法實現了玉米種子芽根長度的統計;吳旭東等[14]設計了一種小麥種子垂直發芽裝置,通過小麥種子發芽點位置的檢測來實現芽根長度的統計。總之,目前種子發芽率等指標的自動化檢測方面研究相對較少,而且傳統圖像處理方法在種子目標定位識別和普適性等方面存在較大的局限性。
隨著卷積神經網絡(convolutional neural networks, CNN)方法的發展,其憑借強大的特征學習和遷移學習能力,在目標檢測和識別方面的優勢越來越明顯[15],被廣泛應用在圖像分類、分割、目標檢測等方面。而集目標檢測、分類和分割于一體的Mask RCNN(基于區域的卷積神經網絡)[16]深度學習模型,更是得到了不少研究者的青睞。杜文圣等[17]利用改進的Mask RCNN算法實現鮮食葡萄疏花夾持點定位;馮青春等[18]基于Mask RCNN模型實現番茄智能化整枝打葉操作點的定位;孫建波等[19]將其應用于車載圖像識別中,檢測車輛的壓線;袁山等[20]利用Mask RCNN模型實現植物葉片的分割等,都取得了很好的應用效果。該模型在解決目標檢測、分類與分割方面的優勢為種子發芽實驗相關指標的自動化實現提供了新的思路。
本研究以玉米種子為研究對象,以標準種子發芽試驗為基礎,利用Mask RCNN算法框架自動實現種子的定位與掩膜區域分割,設計種子發芽監測區域,實現玉米種子發芽率和發芽勢的自動統計,同時結合傳統圖像處理技術實現種子芽長和根長的自動化測定,以期用自動化方法降低人工方法所耗費的時間和人力成本,同時提高結果的精確性和可重復性。
試驗選取300粒飽滿的玉米種子,分成6組并進行編號,每組50粒,放于恒溫箱中進行培養。在培養的前7 d里,每天定時將6組種子分別以5粒一排(胚根向下胚芽向上)放于黑色背景布上,利用手機進行種子圖像采集,視距為20~30 cm,每次采集完成后,重新將種子放在培養皿中,并放入恒溫箱里。前5組種子從5個不同角度進行拍攝,共采集不同發芽階段的圖像1 750張,第6組種子共采集圖像70張。
對采集的圖像,利用標注軟件Labelme標注所有種子輪廓的位置,并生成json文件保存所有標注信息。將前5組種子圖像按照8∶2的比例隨機劃分為訓練集和驗證集,圖像數量分別為1 400張和350張。將第6組種子的70張圖像作為模型的測試集。同時,每天人工定時統計第6組50粒種子的發芽數量,并以此作為后續試驗的參考標準。
用于圖像處理和模型訓練的硬件平臺處理器為Intel(R) Core(TM) i5-10400,CPU主頻為2.90 GHz,內存為16 G,500 G固態硬盤,顯卡為NVIDIA GeForce RTX 2060。所有程序均在windows 10× 64位系統下完成,種子定位模型基于TensorFlow-gpu 1.5.0深度學習庫、CUDA10.0和Cudnn7.6的GPU并行計算和加速庫,使用Python3.7語言和Mask RCNN深度神經網絡框架訓練獲得,種子圖像處理基于Visual C++的MFC框架和OpenCV4.4庫,實現種子發芽率、發芽勢、芽長和根長的自動檢測。詳細流程如圖1所示。

圖1 基于Mask RCNN的種子發芽自動檢測流程Fig.1 Automatic detection process of seed germination based on Mask RCNN
1.3.1 MaskRCNN種子定位模型訓練
為解決常規圖像處理方法對種子位置準確定位難問題,本文利用Mask RCNN方法在目標定位與實例分割方面的優勢,來實現種子位置和掩膜的準確獲取。該方法是He等[16]于2017年提出的,以Faster RCNN為基礎,在原本分類和回歸兩個分支上增加了一個預測目標掩膜的新分支,同時對ROI-Pooling進行改進,利用ROI Align方法對像素進行對準,使ROI的像素位置更準確。
種子定位模型的訓練采用遷移訓練方法,預訓練模型選擇COCO數據集速度較快的Mask_RCNN_Inception_V2模型,以該模型的網絡權值對Mask RCNN的前端特征提取網絡,以及后端的目標框回歸、分類和全卷積網絡參數進行初始化。利用已準備的訓練集和驗證集,基于Mask_RCNN_Inception_V2模型和谷歌開放的物體識別系統Object Detection API接口實現種子定位模型的訓練和模型數據的轉換,以便利用OpenCV庫調用該模型,實現模型在實際環境中的應用。實際訓練的損失收斂曲線和模型對測試集進行測試的精確率和召回率(precision recall,PR)曲線如圖2所示。訓練迭代次數為10萬次,損失(loss)收斂到0.1附近;交并比(intersection over union,IOU)閾值設置為0.5時的PR曲線如圖2-b所示,平均精度(average precision,AP)為0.952。

a,訓練損失收斂曲線;b,測試集PR曲線。a, Training loss convergence curve; b, Test set precision recall curve.圖2 損失收斂與PR曲線Fig.2 Loss convergence and PR curve
1.3.2 種子圖像分割
圖像分割的目的主要是為了提取種子、芽、根目標所在區域。由于種子圖像拍攝時背景為黑色,種子目標區域的獲取采用常用的大津閾值分割法(OSTU),又稱類間方差閾值分割法,是根據圖像的灰度分布將圖像分為前景和背景兩部分,前景就是所要提取的種子區域,前景和背景的分割閾值T可通過OSTU自動獲取。通過式(1)得到分割后的二值圖像。
(1)
式(1)中:BI為分割后的二值圖像,I(i,j)表示輸入灰度圖像第i行、第j列的像素值。最后利用數學形態學的腐蝕和膨脹,對分割后的圖像BI進行處理,去除圖像中噪聲點;同時根據目標連通區域的大小,去除小連通區域,最終得到只有種子目標區域的二值圖像。
1.3.3 目標區域孔洞填充
孔洞填充是為了去除前景目標中存在的小背景區域。種子發芽過程中,種子區域會因胚根和胚芽的長出發生較大變化,在種子圖像進行二值化時,難免會有孔洞產生。為去除孔洞,利用漫水填充算法[21]實現孔洞區域的分割,結果如圖3所示,圖3-a為1粒發芽種子的二值圖像,圖3-b為對二值圖像的種子輪廓區域外的背景區域填充前景色后,取反獲得的孔洞區域圖像;圖3-c為圖3-a和圖3-b合并的結果。

a,二值圖像;b,漫水算法處理后孔洞圖像;c,合并后圖像。a, Binary image; b, Hole image processed by flooding algorithm; c, Merged image.圖3 孔洞填充過程圖像Fig.3 The process images of hole filling
1.3.4 發芽檢測方法
根據《農作物種子檢驗規程 發芽實驗》GB/T 3543.4—1995規定,種子發芽是指胚根、胚芽伸出種皮達到—定長度(如禾谷類種子胚根長到與種子等長、雙子葉作物胚芽長到種子長度的一半)。因此,針對玉米種子可設定一個觀察區域,若監測到胚根,則將種子標記為發芽狀態。利用Mask RCNN模型獲取種子掩膜,確定種子質心坐標O和掩膜所在外接矩形的邊長,用外接矩形邊長計算長短軸半徑,設置橢圓觀察區域。判斷像素點坐標是否在橢圓區域上的計算公式如式(2)所示。
(2)
式(2)中,A和B分別為橢圓的長軸和短軸的一半,(x,y)表示種子芽根輪廓區域內一個像素點相對質心O的坐標位置,f(x,y)表示點(x,y)與橢圓中心點的距離。
根據分割后的二值圖像BI,提取出所有種子芽根輪廓的外接矩形,分別計算每個矩形內值為255的所有像素點(x,y)到對應質心O的歐式距離D(x,y),計算公式如式(3)所示。
(3)
式(3)中,Ox和Oy為質心在圖像中的坐標,(xi,yi)表示輪廓內第i像素點在圖像中的坐標,D(xi,yi)表示第i像素點到質心O的歐氏距離。找出D(x,y)中距離質心最遠的一個像素點,并計算其與質心O的相對坐標位置(xm,ym)。如果f(xm,ym)≥1,標記該種子為發芽狀態;否則,標記為未發芽狀態。
種子位置和輪廓的準確獲取是精準檢測種子發芽的前提,同時也是種子發芽后芽和根區域分割的關鍵,為芽長和根長的準確統計奠定了基礎。圖4給出了不同發芽階段的3組玉米種子,包括種子定位、芽和根二值圖像,以及發芽種子芽、根分割的結果。從左側種子定位圖像中可以發現,檢測的種子掩膜區域與實際種子存在一定的誤差,這主要由訓練數據偏少和種子根部分支偏多所導致。從中間種子二值圖像可以發現,隨著胚根數量的增多,種子位置與根部的界限變得不明顯,傳統圖像處理方法對種子位置準確定位難,且只能對一類種子進行處理,通用性很差。該研究為增加方法的普適性,利用深度學習框架Mask RCNN實現種子位置的定位;同時利用定位出的種子掩膜質心位置結合二值圖像,可快速分割出對應發芽種子的芽、根區域,能有效避免二值圖像中非種子目標的影響,增加該方法的魯棒性。圖4右側圖像給出了發芽種子二值圖像去除掩膜區域后,分割出的芽和根區域,以種子掩膜質心位置為參考,上面部分為芽,下面部分為根。

從左到右依次為種子定位、種子芽根二值圖像,以及發芽種子芽、根分割圖像。From left to right, it is seed positioning, seed bud root binary image, and germinated seed bud and root segmentation image.圖4 種子定位與發芽種子圖像分割結果Fig.4 Results of seed positioning and germinated seeds image segmentation
玉米種子發芽狀態檢測就是識別其周圍或一定半徑內出現的胚根。本文在種子周圍設定了一個橢圓監測區域,為使該橢圓區域完全包含算法預測的種子掩膜,在訓練和驗證集上隨機挑選包含種子發芽不同階段的50幅圖像,共250粒種子,利用算法對這些圖像進行種子位置的預測,并將預測掩膜與手動標注掩膜的外接圓半徑的絕對差值與標注掩膜外接圓半徑作比值,以及將兩者質心的距離也與標注掩膜外接圓半徑作比值,分別對它們進行誤差統計分析,以半徑絕對差值和質心距離的誤差范圍共同確定該橢圓區域的長短軸半徑。圖5給出了半徑絕對差值,以及兩者質心距離與標注掩膜外接圓半徑作比值的統計結果,從圖5可以看出兩者的誤差范圍均在20%以內。因此,設定種子發芽狀態檢測的橢圓監測區域長短軸半徑分別為預測掩膜外接矩形長度和寬度的50%+20%。根據設定的橢圓觀察區域,不同時間段種子發芽情況的算法自動識別結果如圖6所示。

圖5 半徑絕對差值、質心距離與標注掩膜外接圓半徑比值的結果統計Fig.5 Result statistics of the ratio of the absolute difference of radius and the centroid distance to the circumscribed circle radius of the marked mask

紅色橢圓輪廓表示種子未發芽,綠色橢圓輪廓表示種子已發芽。The red elliptical contour indicates that the seed has not germinated, and the green elliptical contour indicates that the seed has germinated.圖6 種子發芽狀態自動識別結果Fig.6 Automatic identification results of seed germination status
玉米種子發芽率是指在發芽試驗中第7天已出芽的種子數占供試種子總數的百分比,在本試驗中就是第7天時50粒種子出芽的數量與試驗種子總數量的比值。玉米種子的發芽勢是指在發芽試驗中第3天出芽的種子數占總種子數的百分比。
對于測試集,在發芽試驗的7 d里,每天種子發芽數量及占比的人工統計和算法自動統計結果如表1和圖7所示,從圖表中可以看出,玉米種子發芽主要集中在第2~5天,且算法自動統計的發芽率和人工統計的發芽率存在一定的誤差,但從第2天到第5天誤差在逐漸縮小,在第5天達到相等。造成發芽初期具有一定誤差的主要原因在于發芽開始階段胚根剛剛露白無法觸及算法判定發芽狀態的最大閾值,會帶來人工和算法統計的差別。另外,根據發芽率可以很容易得到第3天的發芽勢,人工和算法自動統計的發芽勢分別為62%和58%,可見算法統計結果非常接近于人工統計結果。

表1 人工統計和算法自動統計的發芽種子數量與占比Table 1 Germinated seed numbers and ratios by manual and algorithm automatic statistics

圖7 人工和算法自動統計種子發芽數量結果比較Fig.7 Result comparison of germinated seed numbers between manual and algorithm automatic statistics
骨架提取主要為了提取每粒玉米芽和根區域的骨架線。在試驗拍攝的圖像中,玉米種子均以胚根向下和胚芽向上放置,將Mask RCNN模型定位出的種子位置與二值圖像分割出的種子芽、根輪廓相結合,準確劃分出每粒種子芽、根區域,并逐一進行芽、根骨架提取[13]。之后對得到的骨架線進行8連通區域[12]分析,找出骨架線中所有的端點,通過比較坐標位置提取芽的頂端點P(x,y),再利用深度優先搜索算法(depth-first search, DFS)找出最長主骨架線。DFS算法的實現步驟如下。
步驟1:從P點開始沿相鄰像素點遍歷整個骨架線,設相鄰像素點為Q(x,y)。
步驟2:當Q點的8連通域值為2時,表示該點為連接點;當Q點的8連通域值為3時,表示該點為分叉點,將該點入棧S保存,隨機選一分支繼續搜索;當Q點的8連通域值為1時,表示該點為端點,此分支遍歷結束。對當前已遍歷路徑進行標記并統計像素點的個數,當某分支遍歷結束時,記錄最長分支路徑與像素個數。
步驟3:判斷棧S是否為空,如果不為空,取棧頂像素點T(x,y),判斷T是否有未遍歷分支,若有,選擇一個分支,返回至步驟2;若無,將T從S中刪除,繼續步驟3,直至棧S為空,整個骨架線遍歷結束。
步驟4:返回骨架線最長主路徑與像素總數。
最后利用模型定位的種子位置與掩膜,提取種子質心坐標,以質心坐標作為芽和根的分界點,實現芽和根主骨架線像素數量的自動統計,進而可根據像素尺寸計算種子芽和根的長度[12-13]。玉米種子識別定位、芽根圖像的分割和骨架線的提取結果如圖8所示。

圖8 玉米種子識別定位、芽根圖像的分割和骨架提取結果Fig.8 Corn seed recognition positioning, bud root image segmentation and skeleton extraction results
從試驗圖像中挑選出4幅圖像,總共20株幼苗用于驗證芽根長度算法的有效性。人工和算法測量結果對比分析如圖9和表2所示。從表2中可以看出,芽長誤差均小于根長誤差,這主要因為芽的特征比根的特征簡單;而根的絕對誤差相對較大,由于在種子附近須根與主根交織在一起,形成閉環,在用算法填充空洞時,須根和主根融為一體,以致在細化提取骨架線時,與主根中心線發生偏移,導致算法統計結果要小于實際測量結果,這與圖2的結果也是一致的;另外,提取的種子質心與發芽點位置也存在偏差,從而導致芽和根的絕對誤差相對較大。

表2 玉米幼苗芽長、根長誤差分析Table 2 Error analysis of bud length and root length of corn seedling

圖9 人工測量和算法測量的芽長、根長比較Fig.9 Comparison of bud length and root length measured by manual measurement and algorithm measurement
目前,國外已有相關設備和系統可以自動獲取種子標準發芽試驗的發芽率等相關指標和發芽種子表型特征,如英國Anglia A.I.公司的PhenoSeed自動化種子發芽分析系統和德國LemnaTec種子發芽檢測系統Germination Scanalyzer,主要用于測量種子大小、顏色、形狀、發芽率、發芽時間等參數,而國內未見相關設備和系統的出現。
本文針對傳統種子發芽試驗在實際操作中面臨的問題,引入深度卷積神經網絡Mask RCNN算法框架,解決種子圖像處理中種子位置的精準定位問題。通過對不同發芽階段的玉米種子圖像進行采集,建立了玉米種子發芽圖像樣本集,且利用深度學習的遷移訓練方法,基于TensorFlow-gpu框架訓練了Mask RCNN玉米種子定位與分割模型,實現了不同發芽階段玉米種子的準確定位;由于所使用的種子圖像背景簡單,當設置目標檢測算法的置信度為0.7時,該模型對玉米種子的檢測率可達到100%,且無誤檢,這為圖像中種子數量的準確統計,以及種子、芽和根的準確分割奠定了基礎。
本試驗設計了一種種子發芽檢測方法,主要是利用模型定位的種子掩膜區域,根據掩膜的外接橢圓設定一個橢圓觀察區域,當種子發芽后胚根或胚芽觸及該區域閾值,即可標識該種子為發芽狀態。該方法對測試集50粒種子的檢測結果表明,該方法能夠有效識別出種子的發芽狀態,可有效避免人為統計帶來的主觀因素影響,實現種子每天發芽數量和發芽率的自動統計;對于標識為發芽狀態的種子,可根據定位出的種子位置,快速統計種子幼苗的芽長和根長。
另外,本試驗僅對玉米種子進行了試驗,后期將對小麥、水稻等種子發芽過程進行圖像采集,建立多種種子發芽過程圖像樣本庫,并訓練對應的檢測模型,以對該方法進行驗證,提高該方法的普適性。
本文利用深度學習框架Mask RCNN實現種子位置的定位,設計了一種自動識別種子發芽的檢測方法,實現了種子發芽率、發芽勢、芽長和根長等相關指標的自動統計,這說明通過圖像處理技術可替代人工實現種子發芽過程相關指標的獲取,這為后期種子發芽過程的自動化裝備研制與實時監測提供了一定的理論參考。