王 玲 徐 偉 杜開煒 盧 偉 朱家豪 張 俊
(1.南京農業大學工學院, 南京 210031; 2.江蘇省現代設施農業技術與裝備工程實驗室, 南京 210031)
褐蘑菇是一種名貴的高蛋白、低脂肪、無膽固醇、色味俱全、藥食兼優的美味食用菌[1],價格昂貴,市場缺口很大。根據菇形大小,褐蘑菇可分為大褐菇(Portabella)與小褐菇(Crimini),其價格與蘑菇的直徑大小有關,因此,褐蘑菇種植企業需要選擇性采摘特定尺寸的蘑菇。目前國內外均采用人工方式采摘褐蘑菇,費工費時、成本高、勞動強度大,急需研究一種能夠替代人工進行蘑菇原位在線測量、采摘的智能蘑菇采摘機器人設備。
現有的蘑菇圖像分割、識別及定位研究都是基于二維彩色相機的。陳紅等[2-4]針對流水線上藍色背景的蘑菇,利用形狀、紋理特征和模式識別算法實現了蘑菇的在線檢測。周云山等[5]和俞高紅等[6]利用苗床、蘑菇邊界、蘑菇中心的灰度值逐漸增加的特點,考慮到蘑菇的中心不重疊,用一個較高的閾值搜索蘑菇的中心區域,然后由中心向某一方向搜索蘑菇的邊界點,再沿著邊界的切線方向搜索其余邊界點,提取蘑菇的邊界、周長、面積和中心坐標。可見,現有蘑菇圖像的背景分割借助了苗床與蘑菇灰度的顯著差異或人工背景,并且尚未進一步分割粘連的蘑菇,基于二維圖像坐標系下定位的蘑菇并未轉換到三維世界坐標系下。
近年來,由于果實的分割與檢測對顏色空間高度敏感,針對光照條件不穩定并且果實與背景的顏色區分不顯著的情形,基于有源測距獲得的深度圖像在高通量植物表型檢測方面已逐漸顯露出優勢[7],基于農業場景深度信息采集玉米、草莓冠層、果樹等植物表面的三維點云,實現了植物表面的三維重建[8-15],通過測量棉株、玉米、油菜花、甜椒的直徑、高度、3D曲面特征等株型參數來評價其生長狀態和產量[16-20]。可見,與灰度圖像相比,深度圖像不受光照陰影及物體光滑表面紋理干擾,可以得到更可靠的果實幾何信息,為實現田間果實圖像的背景分割、識別及定位積累了豐富的經驗。
本文針對褐蘑菇工廠化種植環境光照不均勻,菇床土壤中含有大量菌絲,菌絲不斷地出茬、生長,蘑菇的灰度與土壤背景沒有顯著差異的情況,采用基于深度圖像的背景分割方法,對蘑菇圖像背景進行分割,進一步分割粘連的蘑菇,并測量蘑菇在世界坐標系下的位置、直徑、傾斜角等。
以揚州奧吉特生物科技有限公司的褐蘑菇生產菇房為實驗地,現場采集不同光源環境下的菇床深度視頻流,總計185幅深度圖像;其中,頂層光源下采集的51幅圖像光照均勻、亮度較高,側光源下采集的60幅圖像光照不均勻,菇房中央采集的74幅圖像光照較均勻、亮度較低。可見,工廠光照條件不穩定。視頻采集現場如圖1所示。

圖1 視頻采集現場Fig.1 Video capture scenes
每一間菇房里有2個蘑菇架,每一個菇架有6層,每一層有18個菇床,每一個菇床上方空間長1 340 mm、寬1 400 mm、高400 mm,菇床里的營養土含有大量菌絲,土面高出邊框至多50 mm;根據市場需求將褐蘑菇分為香啡、貴啡、牛排、大褐4種,對應菌蓋直徑為40~50 mm、60~70 mm、80~90 mm、100 mm,對應菌柄高度為20、30、30、55 mm,主產牛排菇。擬研制的蘑菇采摘機器人沿著菇架自動滑行、停靠、升降于菇床旁邊,機械臂伸入菇床自動完成采摘任務。采摘過程中,機械臂呈S型遍歷菇床,安裝在機械臂末端的3D相機沿途采集菇床深度視頻流并實時送入工控機,由工控機計算每個蘑菇在世界坐標系下的位置以及直徑和傾斜度,供機械手選擇性采摘直徑為80~90 mm的牛排菇。
依據菇床上方空間400 mm的高度限制,本實驗選用尺寸為110 mm×12.6 mm×4.1 mm的消費級Intel RealSense Camera SR300型嵌入式結構光3D相機,其為RGB+Depth型彩色、紅外雙目相機。相機工作時,紅外激光發射器向被測物體表面發射結構光斑,紅外攝像頭捕獲紅外光斑的相位偏移后獲取深度圖像,可避免彩色圖像受限于光照條件的影響。其工作參數為:深度量程200~1 500 mm,測量誤差不超過1%,在實際應用中可增加到2%;紅外激光發射器波長860 nm,發射角72.5°×60°;紅外攝像頭視角71.5°×55°,視頻采集速率60 f/s。
選用研龍HS201-6C型工控機,載有Intel酷睿 I5 CPU,支持USB3.0、RS485、RS232通信接口,安裝64位Windows 10系統、C/C++語言編譯器Visual Studio 2015、計算機視覺函數庫OpenCV-3.1和相機驅動程序Intel RealSense SDK,以采集菇床深度視頻流。
3D相機所采集的菇床深度圖像為分辨率為640像素×480像素的灰度圖像,其灰度值代表相機平面至菇床表面點云的距離(單位:mm),因而蘑菇表面呈深灰色,土壤表面呈淺灰色(圖2a)。觀察發現,相機的成像特性使得結構光投射到凹凸表面易發生測不到現象,產生了177 054個灰度為零的噪聲點,因而蘑菇邊緣區域、土壤凹凸不平區域以及圖像邊緣存在部分零噪聲點(圖2b),剔除這些噪聲點,統計深度圖像的直方圖(圖2c)可知,菇床表面點云的灰度在200~400之間。
由于土壤表面不一定平整,圖像二值化時須確立一個動態閾值來適應相機的移動。計算灰度圖像中130 140個非零像素灰度的均值為321,大于該均值的非零像素的灰度眾數能夠表示土壤表面點云,其眾數為346,蘑菇高度至少20 mm,考慮5 mm的高度裕度,設定動態灰度閾值為331,對灰度圖像進行二值化,確保提取出特定直徑的蘑菇區域(圖2d)。相機的成像特性使得二值圖中蘑菇邊界失去了其本身的光滑輪廓,有必要對二值圖進行形態學開運算、高斯濾波等邊緣平滑處理(圖2e),使零噪聲也落在蘑菇邊界輪廓上(圖2f)。

圖2 深度圖像背景分割Fig.2 Background segmentation of depth image
由于菇床上出茬的蘑菇不同程度地傾斜、粘連,其二值圖通常呈現類圓形,這與圓形Hough變換檢測的標準圓有一定的偏差,為了獲取蘑菇的原始邊界輪廓,可考慮先借助圓形Hough變換初步檢測圓心和半徑,再結合蘑菇本身的邊界輪廓來分割相互粘連的蘑菇,獲取單體蘑菇邊界輪廓的二維坐標。
傳統圓形Hough變換的基本思想是將圖像的空間域變換到參數空間,用大多數邊界點滿足的某種參數形式來描述圖像中的邊緣曲線,通過累加投票求得峰值對應點。具體方法為,將X-Y平面上的圓轉換到X-Y-R參數空間,則圖像空間中過任意一點的圓對應于參數空間中的一個三維錐面,圖像空間中同一圓上的點對應于參數空間中所有三維錐面相交的一點,通過累積投票可求得這一點的圓參數。傳統圓形Hough變換對噪聲不敏感,能夠檢測變形或缺失的圓,但由于采用一到多的參數映射,計算開銷大,占用內存空間大,難于確定參數量化間隔標準。針對以上不足,研究者們提出了多種改進算法,較為常用的2-1圓形Hough變換[16]將傳統圓形Hough變換的三維Hough空間降到二維,具體步驟為:

圖3 圓檢測Fig.3 Cyclo detection
(1)檢測圓心:標記二值圖中的連通域并通過Canny算子檢測其邊緣點,繪出所有邊緣點的法線,經反復試驗設定閾值為30,法線交匯點處的累加法線數量大于該閾值的點即為圓心(x0,y0),分別為1號(154, 142)、2號(529, 309)、3號(266, 109)、4號(408, 62)、5號(229, 354)、6號(431, 217)、7號(301, 436)(圖3a)。
(2)推導半徑:計算某一圓心到所有邊緣點的距離,并設定最小半徑閾值為25像素、最大半徑閾值為300像素、最小圓心距為45像素,在所限定的25~300像素范圍內對檢測圓進行半徑排序并依次計數,經反復試驗設定計數閾值為30,投票數大于該閾值的半徑46、50、59、50、64、47、41為檢測出的圓半徑r0。
由圖3a可知,圓形Hough變換檢測的圓并不能準確擬合蘑菇的邊界點,可考慮以其結果為初始圓心和初始半徑,找出二值圖(圖2e)中每一個初始圓心所在的連通域,用八鄰域跟蹤法順序遍歷其邊界輪廓(圖3b),分割粘連的蘑菇,獲取單體蘑菇邊界輪廓的二維坐標。

圖4 5號蘑菇邊界擬合Fig.4 Boundaries fitting of mushroom 5
針對粘連的蘑菇,以5號蘑菇為例,順序提取其圓心周圍1.3倍半徑范圍內的邊界點直角坐標(圖4a),并轉換為極坐標系下的半徑ρ和角度θ,將角度θ升序排列(圖4b),依次計算相鄰兩角角度差記為Δθ(圖4c),當k=289時,Δθ=10.9767°,對應角度序號j為236和314(圖4d),試驗證明,蘑菇邊緣粘連處的Δθ通常在5°~355°之間,據此判斷粘連處在紅圈與綠圈之間(圖4e),去除紅、綠點之間的邊界噪聲(圖4f),計算初始圓心到紅、綠點的半徑,在極坐標系下的紅、綠點之間插補一系列角間距為1°的圓弧點(圖4g,表1),由此獲取單體蘑菇邊界輪廓的二維坐標。

表1 5號蘑菇插補的圓弧點Tab.1 Points interpolation in arc of mushroom 5
假設SR300相機的世界坐標系XYZ是以紅外攝像頭光心為原點的右手螺旋型,Z為光心到物體表面的距離,由于圖像坐標系xy通常以圖像左上角為原點且灰度圖像的灰度z等于Z,則由深度相機的視場角和圖像分辨率可推導出圖像中某像素點(x,y)對應的世界坐標系坐標(X,Y,Z)。
為了獲取相機世界坐標系下單體蘑菇的圓心位置、直徑、偏向角和傾斜角等參數,首先,校準相機的世界坐標系;然后,驗證相機世界坐標系下原位測量陶瓷圓板的圓心位置、直徑、偏向角和傾斜角的精度。
相機固定在鋁支架上,置于可移動桌面上方,采集并顯示桌面的深度視頻流,調用視頻窗口的回調函數獲取鼠標指向位置的深度值,將鼠標依次指向桌面的4個角,微調相機的擺放角度,直至4個角均顯示圖像灰度近似290,表明相機擺放基本平整。
桌面上擺放一張刻度為10 mm的方格坐標紙,為了在坐標紙上尋找相機的X軸,將一個平整的黑色盒子邊緣與網格線重合,采集桌面的深度視頻流,并顯示其二值圖(圖5a),調用視頻窗口的回調函數獲取鼠標指向位置的Y坐標值,將鼠標指向黑盒子的底邊,輕微移動桌子,直至黑盒子底邊上各點Y坐標值近似207(圖5b),表明相機X軸與網格線平行。
為了在坐標紙上尋找相機的坐標原點,將一個圓柱體置于坐標紙中間的某十字線上,采集并顯示桌面的深度視頻流(圖5c),調用視頻窗口的回調函數獲取鼠標指向位置的X、Y坐標值,將鼠標指向圓柱體的中心,微調圓柱體的位置,直至圓柱體的中心點坐標顯示(320,240)(圖5d)。

圖5 相機坐標系校準Fig.5 Coordinate system’s calibration of camera
為了模擬褐蘑菇,取一塊直徑為100 mm的標準陶瓷圓板以X軸向下傾斜15°(偏向角為-90°,傾斜角為15°)立于世界坐標系原點附近(圖6a),采集桌面的深度圖像(圖6b、6c),經上述圖像分割算法獲取陶瓷圓板的邊界點的二維坐標,基于此,驗證圓板的圓心位置、直徑、偏向角和傾斜角的測量精度,步驟為:
(1)圓心位置:計算陶瓷圓板邊界點的二維坐標的均值,獲取陶瓷圓板的圓心(x0,y0)及其灰度z0,由相機的視場角和圖像分辨率推導出世界坐標系下陶瓷圓板的圓心坐標為(-7.014 9 mm,-0.54 mm,256 mm),基本在世界坐標系原點附近。

由于二值化后的邊緣平滑處理,陶瓷圓板邊界點的灰度存在零噪聲(圖6e、6f),可由噪聲邊界點(x1,y1)與圓心(x0,y0)建立兩點式直線方程(y-y0)/(y1-y0)=(x-x0)/(x1-x0),獲取圓心至邊界半徑線上所有點的灰度(圖6g),并沿著半徑方向取零噪聲點附近的灰度替代零噪聲(圖6h),進一步對圓板邊界灰度進行滑動平均以便更好地擬合蘑菇邊緣深度(圖6i)。
(3)偏向角和傾斜角:求取圓邊界上全部515個點的灰度標準差為9.748 8,經試驗統計,標準差大于7可判斷為傾斜。求取13條直徑端點的最低點(-58.530 5,2.296 9,272.235 3)和最高點 (39.350 7,-1.036 3,245.641),計算兩點連線在X-Y平面上的投影與Y軸的偏向角為-88.094 3°,誤差為1.905 7°,與X-Y平面向下的傾斜角為15.199 6°(圖6j),誤差為0.199 6°。

圖6 原位測量精度驗證Fig.6 Verification of measurement accuracy in site
對蘑菇房現場采集的185幅深度圖像進行上述蘑菇圖像分割、粘連蘑菇識別及蘑菇原位測量算法試驗,以驗證本文算法的性能和精度。
對185 幅深度圖像進行蘑菇圖像分割試驗,自適應設定動態閾值,對深度圖像進行二值化,以較少的噪聲提取蘑菇區域為分割效果的評價標準,結果表明,準確分割177幅圖像,蘑菇圖像分割正確率為95.68%。部分圖像分割不準確的原因是,手持相機采集圖像時,難以確保相機平面的水平性。
統計185幅圖像中含粘連蘑菇的圖像共146幅,粘連蘑菇大多兩兩粘連、少數閉環粘連(圖7),對其進行粘連蘑菇識別試驗,結果表明,正確識別粘連蘑菇圖像146幅,粘連蘑菇識別正確率為100%。

圖7 粘連蘑菇識別結果Fig.7 Effect of image recognition of adhesive mushrooms
選取不同光源下不同菇床區域的14個蘑菇,用游標卡尺人工測量其直徑,目測其傾斜角(表2),再以這14個蘑菇為中心采集菇床深度圖像,對其進行基于陶瓷圓板的原位測量算法試驗,測量單體蘑菇的圓心位置、直徑、偏向角和傾斜角,結果表明,機器測量的直徑均在香啡、貴啡、牛排的菌蓋直徑范圍內,直徑誤差最大為5.57 mm、傾斜角誤差最大為6.3°(表2),測量結果符合實際,測量算法實際有效。
由于視頻流保存的圖像視野范圍連續漸變,故選取不同菇床位置的17幅深度圖像,記錄其運行時間,并統計每一幅圖像的蘑菇數量(圖8),結果表明,隨著圖像中蘑菇數量的增加,運行時間也隨之增加,每幅圖像的平均運行時間為206 ms;單體蘑菇的平均運行時間為44 ms,粘連蘑菇的運行時間略長。

表2 蘑菇原位測量精度試驗結果Tab.2 Results of measurement accuracy in site of mushroom

圖8 每幅圖像運行時間Fig.8 Run speed of each image
(1)針對褐蘑菇的菌絲大,干擾背景,在深度圖像中利用蘑菇菌柄高度至少20 mm,結合土壤表面深度的眾數,自適應選擇動態閾值,從菇床背景中快速、準確地提取了蘑菇菌蓋二值圖。
(2)針對菇床上傾斜、粘連的類圓形蘑菇,基于2-1圓形Hough變換初步檢測了圓心、半徑,以此為種子對蘑菇的邊界輪廓進行跟蹤、去噪、插補,分割粘連的蘑菇,準確擬合蘑菇的邊界點,獲取了單體蘑菇邊界點的二維坐標。
(3)校準了相機坐標系,針對標準陶瓷圓板深度圖像,利用原位測量方法得出圓板直徑誤差為0.87 mm,傾斜角誤差為0.199 6°。
(4)現場試驗表明,深度圖像對光源不敏感,圖像分割效果良好,蘑菇直徑的誤差最大為5.57 mm,傾斜角的最大誤差為6.3°;視頻幀的平均運行時間為206 ms,單體蘑菇的平均運行時間為44 ms。