馬聰,陳學東,周慧
(寧夏農林科學院農業經濟與信息技術研究所,銀川市,750002)
雙孢菇又名白蘑菇、洋蘑菇、圓蘑菇,菌肉色質白嫩、口感鮮美、營養豐富,市場消費需求量逐年攀升。雙孢菇栽培具有原料多樣、環境限制少、收益率高等優勢,標準化種植、批量生產成為產業發展的趨勢。隨著栽培技術和信息技術的發展,工廠化生產菇房已經實現了環境監測及設備調控的自動化或智能化控制,但是雙孢菇長勢監測及采收等工作目前尚未完全實現無人化[1]。據寧夏某雙孢菇生產企業調研,出菇期需要每天專人巡檢2~3次,人工記錄出菇數量和大小,根據長勢統計數據并及時調整環境控制參數;單批次雙孢菇采菇時間一般為25~30天,采菇周期1~2天,人均每天采菇約100 kg,盛菇時期每間中等規模的菇房需要15~20人全天采收。人工巡檢及采摘的效率無法應對規模化雙孢菇生產的需求,且人工成本較高、采收季勞動力缺少等問題也是制約產量提升的因素。因此,研制高效率、高可靠性的智能型長勢監測及采收設備十分必要。目標提取是智能設備視覺系統研究的重要內容,通過處理分析采集的圖像,去除背景和噪聲,準確地提取目標,在此基礎上計算目標空間位置、數量、大小等信息,輸入系統進行長勢監測及預判,或控制末端執行器完成采摘動作[2-5]。雙孢菇菌蓋整體呈白色,栽培基質呈灰黑色,雙孢菇圖像中目標顏色與背景顏色存在明顯差異。因此,主要采用設置圖像灰度閾值的方法,分析蘑菇中心點以及尋找邊界,此方法效率高,適用于光照均勻、菌菇生長規則等環境條件[6]。但是在實際生產中,由于管理方法、環境參數等外部條件存在差異性,雙孢菇生長過程中還存在菌菇成簇粘連、菌柄傾斜、白色菌絲繁盛等復雜情況,采用常規方法提取目標的結果不佳,無法完全適應實際生產要求,因此需要進一步研究算法以改進完善雙孢菇圖像的目標提取方法。
本文以工廠化栽培方式的雙孢菇圖像為對象,采用改進的隨機霍夫變換圓形檢測算法與滑動平均聚類算法結合的方法,研究實際生產環境下雙孢菇復雜圖像的目標準確提取和計數。
數據采集試驗地位于寧夏銀川市某雙孢菇種植生產基地,該基地安裝了遠程視屏監測及自動控制系統,可以擴展搭載目標提取及計數算法等程序,實現食用菌無人化巡檢和產量動態監控功能,具備將研究結果推廣應用的產業基礎和軟硬件基礎。
在實際生產環境下,采集不同菇房、不同生長區域的產菇期的雙孢菇原始圖像,共500張作為測試樣本集。圖像采集器分辨率為4 608像素×3 456像素,焦距為3.97 mm,將采集器固定在距離菇床基質面正上方20 cm處,數據采集時通過外置光源補光保證圖像清晰。采集目標為菌蓋半徑范圍為1~6 cm的雙孢菇,圖像包含了菌蓋潔凈、菌菇均勻分布、菌菇間擠壓堆積以及菌絲成片等不同生長情況。
1.2.1 改進隨機霍夫變換及均值漂移聚類方法
1) 數據預處理。對采集到的原始圖像進行預處理,去除干擾噪聲,并將雙孢菇圖像區域與背景區域分離。圖像預處理流程如圖1所示。

圖1 雙孢菇圖像預處理流程圖
圖像轉換。為提高數據處理效率,將原始圖像等比例縮小至標準模式,對標準圖像進行灰度化及濾波處理,進一步降低圖像干擾并保留目標特征,在此基礎上采用自適應閾值方法將圖像轉為二值化圖像。
圖像處理。栽培基質與雙孢菇的顏色差異較大,按照灰度值提取雙孢菇圖像目標速度最快,但在實際雙孢菇出菇過程中,存在菌蓋附著泥土、菌絲面積大于菌菇、蘑菇較大面積堆疊等復雜情況,易影響圖像的目標提取結果,需在預處理過程中盡量減少背景中的干擾因素。工廠化條件下同批次蘑菇生長速度差異較小,菌蓋半徑在可知范圍,據此在圖像二值化基礎上,設置聯通區域閾值,刪除小于閾值面積的圖像點,即可快速地剔除背景中部分干擾性斑塊或斑點。對處理后的圖像進行腐蝕和膨脹處理,使圖像進一步平滑、完整。
2) 改進隨機霍夫變換檢測圓形。完整的雙孢菇菌蓋類似于圓形,圖像識別算法中通常采用Hough變換方法檢測類圓幾何形狀。Hough變換實質是利用點與線的對偶性轉換坐標,將圖像空間線條變為參數空間聚集點,計算滿足圓參數形式的邊界點,判斷中心點投票是否達到峰值,以此檢測圖像內圓形特征邊緣。
Hough變換對圖像中圓度較好的圓形檢測效率較高,但是由于雙孢菇圖像并非標準的圓形,直接運用Hough變換檢測圓形效果不好,且直接應用于多個雙孢菇粘連生長或菌絲較多的圖像時,Hough變換會產生識別率低、錯誤率較高等問題。
隨機霍夫變換(RHT,Randomized Hough Transform)方法是對Hough變換方法的改進,在圖像邊緣點集合中隨機選取多個點計算圓參數,投票累加至滿足閾值時確定目標圓。RHT減少了參與計算的邊緣點數量,但是處理復雜圖像時,容易產生無效樣本累積、虛假圓形過多等問題[7-9]。雙孢菇圖像具有類圓形目標多、背景干擾多的特點,直接采用RHT方法處理圖像效率低、計數不準。
針對上述問題,本文通過改進邊緣點取樣方式及投票器累加的方法,提高雙孢菇外圓的識別能力。將雙孢菇邊緣曲線看作是由多段曲線片段相接組成,離散化的曲線片段對應在邊緣點集合中是不同的分組連續點。隨機選取曲線片段進行圓形檢測計算,充分利用了雙孢菇圓弧形邊緣的特點,從而避免整體識別雙孢菇非標準外輪廓圓形產生的誤識別或遺漏。
本文采用的改進RHT圓形檢測方法原理如圖2所示。以圖像提取后的輪廓構建邊緣點集合,以固定間隔長度選取的邊緣點進行空間變換,獲得圓的半徑長度。霍夫變換的坐標系下,圓弧上的連續點表現為點坐標在[rmin,rmax]區間分布。結合圖像大小和計算速度對比測試,本文將邊緣點集合按照10點一組劃分為多組數據。通過多組隨機取樣,同一圓上的邊緣點計算出的圓心位置將指向同一區域,經過霍夫變換計算得到邊緣點集合所屬的圓心位置或像素點區域。

圖2 改進RHT圓形檢測方法原理
建立投票機制,以霍夫變換確定的圓心點或區域進行投票器累加,計算出累加值最高的圓心C和半徑r的位置。以累加值最高的圓形參數作為最終確定圓。剔除半徑超出菌蓋半徑范圍的圓形參數,完成圓形識別。
改進RHT圓形檢測方法流程如圖3所示。

圖3 改進RHT圓形檢測方法流程圖
3) 雙孢菇圓形聚類及計數。通過改進的霍夫變換,仍有部分虛假圓的存在,同一雙孢菇可能會識別出兩個以上的圓形目標。同一雙孢菇識別出的多個圓形目標具有圓心坐標相近、圓形面積重合較大的特點,以雙孢菇圖像檢測出的所有圓形為目標,采用均值漂移(Mean Shift)聚類算法合并同類圓形,繪制目標輪廓并計算數量,降低識別錯誤。
Mean Shift是圓形滑動窗口沿著密度上升方向尋找聚簇點的迭代方法,窗口初始中心點為樣本隨機點,窗口半徑依據樣本特征設置,偏移均值是窗口內所有點到中心點的距離向量的平均值,新區域中心點是上一時刻中心點疊加偏移均值后的位置[10-14]。窗口滑動是重復計算均值、中心點移動的過程,通過反復迭代計算不斷逼近最佳中心點,當滿足預先設置的約束條件時均值漂移結束,聚類完成。Mean Shift優點是不需要預先明確聚類的數量,不限制聚類的形狀,受窗口均值影響較小,普適性強,滿足本文雙孢菇圖像目標聚類要求。
本文采用的雙孢菇圓形聚類及計數流程如圖4所示。對全部聚類后判別為同一個體的蘑菇進行再次判斷,設置判斷規則,進一步確認聚類是否合理。判斷規則是根據圓形檢測與原圖對應分布特點設計:聚類圓形內存在背景色較多(二值化后黑色區域大于50%),認為是背景紋理產生的虛假圓形,不計入目標輪廓(圓弧投票產生的誤識別);聚類在一起的圓形邊緣包含多個角點,認為是多個小面積圓形相接的效果,各圓形分屬于不同目標輪廓,不能聚類成為一個目標。聚類判斷完成后,完整提取聚類后目標邊緣,統計圖像內封閉曲線數量作為雙孢菇計數結果。

圖4 雙孢菇圓形聚類及計數流程圖
1.2.2 對比方法
通過對雙孢菇圖像目標識別及分級等相關文獻資料分析,目前雙孢菇識別主要采用閾值分割、分水嶺算法等方法處理雙孢菇圖像。為對比驗證本文改進RHT及均值漂移聚類方法識別效果,采用全局閾值分割與分水嶺算法提取相同圖像數據,對比算法結果。
全局閾值法是通過反復迭代計算后得到圖像最佳分割閾值的方法。基本計算流程:初始化,計算雙孢菇圖像的平均灰度值T0,作為圖像分割的初始值,分割圖像:圖像分割,計算大于T0的像素點集合的平均灰度值g1,計算小于等于T0的像素點集合的平均灰度值g2;閾值計算,計算g1、g2平均值,作為分割閾值新值T1。多次重復圖像分割、閾值計算的步驟,當分割閾值新值之間的差小于5即認為獲得最佳分割閾值T,停止計算。
將雙孢菇圖像轉為灰度圖,對灰度值大于T的像素點賦值1,其他像素點賦值0。將0值區域標記為圖像背景,通過計算從灰度圖像中去除背景點,獲得目標區域圖像。
對已提取的圖像區域采用標記符控制的分水嶺算法提取目標。基本計算流程:對提取的圖像區域灰度化并進行濾波,獲得處理圖像;采用分水嶺算法對圖像變換,得到帶有區域標記的圖像;符合雙孢菇面積的獨立或近似獨立區域識別為目標,較大區域以外側隨機點為起始點并獲取該點區域的標記值(N),將與起始點區域連通的標記值為[N-1,N+1](雙孢菇中心亮度與邊緣差異值統計值差值為1)區域與起始區域合并,計算為識別目標。去除識別目標后迭代識別后續目標。
2.1.1 雙孢菇圖像預處理
本文分別選取了雙孢菇出菇過程中呈現的規則、邊緣粘連、堆疊等生長不同狀態的圖像,作為本文算法應用示例。圖像原圖及預處理結果如圖5~圖7所示。

(a) 原圖

(a) 原圖

(a) 原圖
預處理后的圖像,去除了部分菌絲干擾,目標邊緣輪廓清晰。提取所有邊緣點構建點集合,作為后續圓形檢測的基礎。
2.1.2 基于改進隨機霍夫變換的雙孢菇圖像圓形檢測結果
基于改進RHT方法檢測雙孢菇圖像中的圓形目標,處理結果如圖8~圖10所示。

圖8 規則生長狀態雙孢菇圖像圓形檢測結果

圖10 菌蓋變形狀態雙孢菇圖像圓形檢測結果
通過圓形檢測結果可以看出:對于邊緣清晰、菌蓋間有間隙或堆疊、背景干擾少、菌菇直立的雙孢菇圖像,采用改進RHT方法可以快速、準確地提取出雙孢菇菌蓋輪廓;對于存在菌柄傾倒、大片菌絲、菌蓋堆積嚴重等情況的復雜圖像,提取結果出現了菌柄或菌絲被識別為圓形的現象。因此在圓形檢測基礎上,本文采用聚類分析方法進一步處理圓形提取結果。
2.1.3 雙孢菇圖像圓形聚類結果
以改進RHT的雙孢菇圖像圓形檢測結果為基礎進行平滑聚類計算,目標圓形聚類結果如圖11~圖13所示。

圖11 規則生長狀態雙孢菇圖像目標提取結果

圖12 粘連生長狀態雙孢菇圖像目標提取結果

圖13 菌蓋變形狀態雙孢菇圖像目標提取結果
對比圓形檢測與聚類目標提取結果可以看出:對于邊緣清晰、菌蓋間有間隙或堆疊、背景干擾少、菌菇直立的雙孢菇圖像,目標提取結果一致;對于存在菌柄傾倒、大片菌絲等情況的復雜圖像,屬于同一雙孢菇菌蓋的不同圓形聚類合并成同一目標,菌柄和菌絲被檢測出的圓形沒有劃為目標輪廓。
采用全局閾值與分水嶺算法結合的方法提取雙孢菇圖像目標,以不同顏色及對應數字標注出雙孢菇目標,處理結果如圖14~圖16所示。

圖14 規則生長狀態雙孢菇圖像對比算法提取結果

圖15 粘連生長狀態雙孢菇圖像對比算法提取結果

圖16 菌蓋變形狀態雙孢菇圖像對比算法提取結果
通過提取結果可知:分水嶺算法分割圖像的結果整體不佳,對于邊緣緊密相接或者堆疊狀態的雙孢菇目標幾乎無法分割。圖像灰度值是分水嶺算法分割準確性的關鍵因素,在圖像分割過程中出現誤差的主要原因:當菌蓋邊緣與中間部位顏色略有差別時,采用分水嶺算法易出現過度分割、同一目標被劃分為不同區域的結果;當菌蓋粘連較多、不同菌菇圖像顏色接近時,采用分水嶺算法易出現多個目標被分割成同一區域的結果。
為驗證本文研究方法的可用性和有效性,隨機從樣本集中選取雙孢菇圖像80張。人工標注并統計每張圖像內半徑大于20像素的雙孢菇數量,分別采用改進RHT及均值漂移聚類方法、對比方法處理雙孢菇圖像自動提取雙孢菇輪廓及數量。以人工識別計數的結果作為評定標準,統計各方法的提取正確率。采用不同方法提取目標的結果見表1。

表1 不同方法的目標提取結果Tab. 1 Object extraction results of different methods
通過自動識別計數結果與標準對比可知:采用改進RHT及均值漂移聚類方法,單張圖像的識別正確率最低為82%、最高為100%,圖像識別平均正確率為96%;采用全局閾值與分水嶺方法,單張圖像的識別正確率最低為50%、最高為90%,圖像識別平均正確率為68%。本文采用的方法針對復雜雙孢菇圖像的目標提取正確率顯著高于對比方法,更適用于實際生產過程。
在此基礎上,針對改進RHT及均值漂移聚類方法的提取結果進行分析。按照雙孢菇生長分布特點將測試圖像分為4類,分別統計每類圖像的平均正確率,計算結果見表2。

表2 本文方法目標提取結果Tab. 2 Target extraction results of the method in this paper
通過提取結果分析,本文采用的方法識別正確率與目標生長狀態的復雜程度緊密相關。根據圖像的識別正確率是否大于90%,將出現誤差的測試圖像分為兩類。
1) 菌菇均勻分布、菌蓋少量附土、菌蓋間少量堆疊或變形較小等狀態的雙孢菇圖像,圖像預處理能去除大部分背景干擾因素,改進RHT可以快速、準確地檢測出大部分類圓目標輪廓,Mean Shift處理能正確地合并同一雙孢菇的圓形、剔除誤識別虛假圓形,算法處理速度較快,此類圖像目標提取正確率均大于92%。
2) 大面積菌絲包圍菌菇、菌菇成簇倒伏、不同菌菇的菌柄傾斜交錯、不同規格的菌菇密集摻雜、菌蓋相互堆積或嚴重擠壓變形等狀態的復雜雙孢菇圖像,改進RHT和Mean Shift處理過程中存在不同程度的目標誤判和漏判,此類圖像目標提取正確率最低為82%。
分析處理過程數據可知,目標提取出現錯誤的主要原因是圓形檢測不準確。
1) 雙孢菇輪廓被擠壓變形或與多個雙孢菇邊緣粘連。菌蓋變形后邊緣處于不規則形狀,圓弧片段少、與圓形差距大,目標邊緣點集通過霍夫變換后參數投票數不滿足設置值,圓形檢測失敗。因此此類雙孢菇在圓形檢測無法檢出,出現目標漏判。
2) 成簇菌柄傾斜、菌絲與雙孢菇粘連。邊緣點集中任意點(xi,yi)對應在a-b-r坐標系中是一個圓,同一個雙孢菇邊界的點在a-b-r坐標系中是多個相交圓,圓形數量最多的交點是最終圓心。當不同目標的邊界粘連,粘連處弧線段上的點分別與不同邊界點所屬圓形相交,圓心投票數滿足設定閾值時劃分點集所屬目標。因此多個雙孢菇邊界粘連時,處于中間位置的雙孢菇所屬弧線段的圓心投票數小于其他目標獲得的投票,此類目標均被劃為其他雙孢菇范圍,出現目標漏識別。
本文提出的算法具有實用性,可將算法嵌入在智能控制系統中,滿足工廠化菌菇生產過程中長勢自動監測、出菇統計、預測預警等需求。通過算法處理識別計算出的圖像中各雙孢菇中心點位置,基本處于菌蓋中心區域范圍,目標輪廓曲線與菌蓋邊緣基本吻合,因此可將計算出的中心和邊緣參數作為采摘機器人末端執行器運動數據基礎,為自動采摘目標抓取提供數據支撐。在生產銷售環節,雙孢菇按照菌蓋半徑分為不同等級商品,采摘后需要人工二次分選,存在增加勞動量、菌菇磕碰的問題,可在本文目標提取基礎上,結合立體定位技術,進一步研究基于圖像的動態快速分級方法,驅動采摘機器人按照設定尺寸分級采摘,提高采收效率。
本文采用改進的RHT與Mean Shift結合的方法研究了雙孢菇圖像目標提取和計數,通過對目標圓形檢測及聚類,實現對雙孢菇輪廓的準確提取和數量檢測,對于規則圖像的提取正確率達到92%,對于復雜圖像的提取正確率達到82%,采用的算法數據處理量小、計算速度快、適應性強。根據實際生產過程調研反饋,針對復雜狀態的雙孢菇圖像,輪廓識別和計數正確率大于80%時,即可滿足長勢動態監測、日常巡檢和趨勢預測的統計需求,因此算法提取結果可滿足應用實際要求。針對復雜圖像出現的部分提取不準確的問題,在后續研究中將通過改造圖像采集設備、優化自適應算法等方法進一步提升目標提取正確率。