于越
摘要:區域生長算法(Region seeds growing, RSG)一般可以通過以下方法實現,輸入圖像中屬于目標物體的一個或多個種子點(seed point)或者一個或多個種子區域,再以該種子點(或區域)為起點,考察鄰域像素點,并依照一定的準則將符合要求的鄰域點添加進生長區域中,最后將目標物體在圖像中呈現的所有像素點結合成一個連通的區域。
關鍵詞:圖像分割;物體定位;區域生長算法
中圖分類號:TP391 文獻標識碼:A 文章編號:1007-9416(2018)01-0140-01
Kinect感應器可以同時獲取色彩與深度信息,本文將結合兩種信息進行圖像分割以實現物體定位。融合顏色信息與深度信息的區域生長算法進行物體定位的的思路可以總結出三個關鍵點,依次為種子點選取、生長準則設定以及生長終止條件設定。區域生長算法的固有缺點是會造成過分割,因此需要對具體問題做具體分析。本文在圖像分割過程中采用區域生長算法并盡可能利用彩色信息與深度信息針對其三個關鍵點進行具體應用與優化。
1 種子點自動選擇
區域生長的第一步是確定種子點的位置以及種子點的特征,根據自動分割的要求,需要實現種子點的自動選擇。針對待抓取物體統一為同一種木頭材質的特點,第一反應是通過比較顏色模板,甚至可以直接進行閾值分割,但那樣顯然太過簡單和粗糙:一是不精確;二是不可擴展與優化,不能推廣至其他物體的識別;三是不能適應較復雜圖像的分割要求。在不同光照環境下得到的圖像中,同一物體的色彩是有比較大的區分的,因此希望尋找一種方式表達顏色,能夠將同一材質物體的顏色與光照條件區分開。經過對顏色的表達方法的學習,發現HSV顏色空間下顏色的色調可以更好的表示顏色的特征,其中,H代表色調(Hue),S代表飽和度(Saturation),V代表明度(Value)。HSV六角椎體模型表示顏色的示意圖如下:
因此,選取種子點前需要先將經過空間變換后的彩色圖像由RGB三通道表示轉換為由HSV空間下的三通道表示,其計算方式如圖1:
(1)
(2)
(3)
由于在OpenCV庫中圖像存儲于8位三通道的矩陣中,即單通道灰度級為0到255,而色調分360°表示,在以圖像表示時,需要進行標準化(歸一化)。同理,此后若從圖像中讀取像素值再計算色調值時需要注意換算真實值。提取色調單通道圖像表示如圖2:
由對比圖可以看出,HSV空間中的色調通道可以用來進行一定程度的顏色區分。接下來遍歷圖像選擇符合色調模板的像素點為種子點,為減少程序運行時間,考慮到目標像素點實際必然屬于一個區域,因此并不進行所有像素點的遍歷,而是隔若干行選取一行進行種子點條件判斷。
2 顏色與深度決定的區域生長準則
實際上環境中總會有非目標物體的像素符合種子點選取原則,因此在生長過程中需要選定一些準則對其進行剔除。本文選擇的生長準則有二,一是上文提到過的色調要求,其為上下限閾值;二是根據深度信息判斷待區分點是否與種子區域屬于同一物體。之所以要有第二個條件,一是因為實際圖像中物體的色調并非完全獨立于光照條件,數值往往為某一范圍內的上下波動,這也是色調上下限的來源,存在目標像素色調值波動超出上下限的情況,故不能單純的依據色調取舍;二是考慮到存在色調相近的干擾物體或者背景,比如在夜間室內環境下,在強光照情況下,圓柱體邊緣像素與背景板的色調相近。比如在平面(如陶瓷地板)反光的情況下,如圖3,只憑借色調無法對物體下面反光的倒影進行分辨。這些情況下都可以通過對深度值計算得到的點間距設置閾值進行非目標像素的剔除。
由上圖可以看到,在物體下方由于地面反光,導致色調趨同,所以僅憑色調條件是無法進行成功的分割的。在顏色閾值的條件限制下,增加深度條件(當鄰域點與中心點距離小于或等于5mm時,可認為兩點在同一物體上),實際程序執行結果如上圖4,圖4中球體下方有明顯倒影,在分割結果圖中也可以看到球體下方有一小塊區域被分割出來,然而由于深度條件的限制,下方多余區域并未與球體區域連通,證明在區域生長時色調與深度信息組合可以進行較完整的分割。需要注意的是,由于物體邊界僅僅是一條線,而像素點也是有其真實寬度的,圖像中得到的物體邊界線必然是模糊而位置不確定,所以當嘗試獲取邊界點對應的深度數據時,得到的數據大多數情況下并非真實值,故此處得到的點集分割結果比真實物體在圖像中投影得到的點集要小,這是無法避免的。