方夏章, 李 垚, 方 毅
(中國科學(xué)技術(shù)大學(xué) 電子科學(xué)與技術(shù)系,安徽 合肥 230022)
結(jié)構(gòu)光[1~5]圖像處理的關(guān)鍵在于提取出圖像的光條部分。在簡單背景環(huán)境下,極值法廣泛使用。極值法以圖像的一列(或一行)中灰度最大的點(極值點)作為光條的粗略中心,為了提高精度,在極值法的基礎(chǔ)上使用灰度重心法,高斯擬合法等處理方法[6~9]。這些方法以極值法確定粗略中心,并利用極值點附近一定范圍內(nèi)的像素進(jìn)行光條中心精確定位。以上方法在致力于精度的同時忽略了魯棒性。本文基于室內(nèi)環(huán)境情況復(fù)雜,受被測物體與光源距離、背景灰度變化的影響,整幅圖像中光條的亮度不一,且存在環(huán)境光干擾(光滑表面對環(huán)境光的反射),這種干擾在圖像上的亮度可能達(dá)到甚至超過光條的亮度,因此,以極值法來提取光條粗略中心變得不可靠。
本文提出了一種適用于室內(nèi)環(huán)境的實時光條圖像分割算法。為了便于表達(dá),該算法由閾值法分割圖像,分割結(jié)果包含強光源區(qū)域圖像中光條亮度較高的區(qū)域的光條以及圖像中亮度較高的環(huán)境光干擾;利用邊緣檢測去除分割結(jié)果中的環(huán)境光干擾部分,根據(jù)邊緣檢測的結(jié)果劃分出圖像中的弱光源區(qū)域(圖像中光條亮度較低的區(qū)域);根據(jù)截面灰度分布特征提取出弱光源區(qū)域的光條。
強光源區(qū)域光條亮度大,采用閾值法可分割出強光源區(qū)域的光條。本文提出直方圖最右峰法,可快速自適應(yīng)獲取閾值。該方法的原理為:若光條亮度高,有一定面積,則會在直方圖最右邊引入一個峰值。因此可在直方圖中根據(jù)最右邊的峰確定分割閾值,分割出光條部分。
本文使用水平線結(jié)構(gòu)光,為了更好地適應(yīng)背景整體灰度的變化,首先將圖像從左到右分為16個子圖像,每個子圖像的寬度為原圖像寬度的1/16。然后為每個子圖像分別確定分割閾值Gcut:
1)建立子圖像灰度直方圖;
2)找到直方圖最右邊(灰度最大)的峰;
3)找到最右峰左邊第1個谷,則Gcut為該谷對應(yīng)的灰度值。
為了初步區(qū)分強弱光源區(qū)域,設(shè)定一個強光閾值Gstro。對每個子圖像,根據(jù)其平均灰度Gavg自適應(yīng)獲得Gstro:Gstro=s×Gavg,s為強光因子,取1.2~1.4。
a.如果Gcut>Gstro,該子圖像可能處于強光源區(qū)域,分割閾值有效;
b.如果Gcut 根據(jù)有效Gcut分割后的圖像也可能包含環(huán)境光干擾,如圖1(a)左下部分。相比真正的光條環(huán)境光的干擾沒有明顯的邊緣特性,因此,采用邊緣檢測法區(qū)分環(huán)境干擾和光條。 圖1 環(huán)境光干擾對圖像分割的影響 首先用各子圖像的有效Gcut進(jìn)行圖像二值化,然后進(jìn)行連通域標(biāo)記。 連通域標(biāo)記以后,先進(jìn)行面積約束,將面積過小的連通域認(rèn)為是噪聲去除。對保留下來的連通域,提取其輪廓點,分為上輪廓點和下輪廓點。然后將sobel邊緣檢測算子僅應(yīng)用于這些輪廓點在原圖中對應(yīng)的位置,以減少邊緣檢測的計算時間。因為本文中光條為水平光條,所以使用縱向的sobel算子。 如圖1(c)顯示圖1(b)中環(huán)境光形成的連通域被去除,強光源區(qū)域光條被準(zhǔn)確提取。弱光源區(qū)域也被準(zhǔn)確劃分出來,即暫時沒有提取出光條的列都為弱光源區(qū)域。 弱光源區(qū)域一種可能的情況如圖2所示,光條出現(xiàn)在A點,但該列灰度最大值出現(xiàn)在B點,且整列還有很多點的灰度等于或高于光條所在點,極值法,閾值法均難以在弱光源區(qū)域識別出光條。因此,本文以列為單位分析光條的截面灰度特征,以此來提取出弱光源區(qū)域的光條。 圖2 弱光源區(qū)域某列灰度分布 觀察光條的截面灰度分布,有如下特征:在局部范圍內(nèi),光條中心像素灰度表現(xiàn)為峰值;在光條的范圍內(nèi),光條橫截面灰度分布滿足高斯分布。本文方法的思路為: 1)檢索出符合特征一的像素點:將一列的灰度分布看作一條曲線g(y),對g(y)進(jìn)行1次均值平滑減少噪聲,然后找出曲線中所有的峰值點,再對峰值點進(jìn)行非極大值抑制,如圖2。 2)檢測這些峰值點是否符合特征二,分析高斯分布函數(shù) (1) 用Yc表示峰值點坐標(biāo),Yu和Yd分別代表峰值點上下梯度最大點的坐標(biāo),則條件(a)~條件(c)表示為 (2) 一列中同時滿足條件(a)~條件(c)的峰值點才是光條中心,找到這個峰值點并根據(jù)其上下梯度最大的點即可提取出該列的光條。 上述灰度分布特征法兩個比較關(guān)鍵的閾值Gdiff和Ggrad與影響因子s1,s2的設(shè)定相關(guān)。由于噪聲的影響,會使得某些列光條的截面灰度分布與高斯分布相似性降低。若影響因子設(shè)定的較為嚴(yán)格,則部分列的光條會因噪聲影響而被排除,即漏提取;若影響因子設(shè)定較為寬松,則會加大引入誤提取的可能。 考慮到光條橫向分布的連續(xù)特性:圖像某列存在一個峰值點B,其相鄰列存在已經(jīng)被確認(rèn)為光條的峰值點A,且A,B點的縱坐標(biāo)很接近,則峰值點B為光條中心的可能性很大。亦即對于峰值點B,可以適當(dāng)放寬閾值。 本文根據(jù)以上特性,采用雙閾值法,將Gdiff和Ggrad分別擴展成1對閾值,包括1個寬松閾值和1個嚴(yán)格閾值。 設(shè)某列一峰值點縱坐標(biāo)為Y,寬度為W(由其邊界點確定),若其相鄰列縱坐標(biāo)在(Y±W)區(qū)間內(nèi)存在光條,則使用寬松Gdiff和Ggrad;否則,使用嚴(yán)格Gdiff和Ggrad。 圖3為使用雙閾值法的結(jié)果,與僅使用單一閾值相比,雙閾值法顯著提高了光條提取的魯棒性。 圖3 雙閾值法提取光條結(jié)果 本文實驗基于主頻為1 GHz的smart—210嵌入式核心板,選取了幾個典型室內(nèi)場景,如圖4。 圖4 幾種典型室內(nèi)場景 對于這些場景,極值法和本文方法提取光條的準(zhǔn)確率(準(zhǔn)確提取出光條的列占總列數(shù)的比例)如表1。從表1可以看出,極值法在較簡單的場景(即圖像幾乎全是強光源區(qū)域)下,能夠保持較高的準(zhǔn)確率。但面對稍復(fù)雜的場景,其準(zhǔn)確率大幅下降。而本文方法在上述4種場景下,均有接近100 %的準(zhǔn)確率,表現(xiàn)良好。 表1 光條提取方法準(zhǔn)確率對比 圖5為圖4中場景3的圖像處理結(jié)果。對比極值法可知,本文方法提取的光條與原圖像中的光條幾乎完全重合,且準(zhǔn)確判斷出哪些列存在光條哪些列不存在光條。 此外,本方法處理一幀分辨率為640×240的結(jié)構(gòu)光圖像平均時間在50 ms左右,滿足實時性要求。 圖5 場景3的光條提取結(jié)果 實驗證明,本文提出的方法在復(fù)雜的室內(nèi)環(huán)境下,能準(zhǔn)確快速地提取出光條。另外,本方法還自適應(yīng)地獲取了光條在不同列的寬度,只需在該寬度內(nèi)使用高斯擬合等方法即可精確定位光條中心,因此,本方法同樣適用于對精度要求高的應(yīng)用場合。1.2 邊緣檢測去除環(huán)境光干擾
2 弱光源區(qū)域光條提取方法
2.1 光條截面灰度分布特征
2.2 雙閾值法
3 實驗與分析
4 結(jié)束語