?

室內環境下線結構光光條提取方法

2018-09-27 08:09方夏章
傳感器與微系統 2018年10期
關鍵詞:環境光極值光源

方夏章, 李 垚, 方 毅

(中國科學技術大學 電子科學與技術系,安徽 合肥 230022)

0 引 言

結構光[1~5]圖像處理的關鍵在于提取出圖像的光條部分。在簡單背景環境下,極值法廣泛使用。極值法以圖像的一列(或一行)中灰度最大的點(極值點)作為光條的粗略中心,為了提高精度,在極值法的基礎上使用灰度重心法,高斯擬合法等處理方法[6~9]。這些方法以極值法確定粗略中心,并利用極值點附近一定范圍內的像素進行光條中心精確定位。以上方法在致力于精度的同時忽略了魯棒性。本文基于室內環境情況復雜,受被測物體與光源距離、背景灰度變化的影響,整幅圖像中光條的亮度不一,且存在環境光干擾(光滑表面對環境光的反射),這種干擾在圖像上的亮度可能達到甚至超過光條的亮度,因此,以極值法來提取光條粗略中心變得不可靠。

本文提出了一種適用于室內環境的實時光條圖像分割算法。為了便于表達,該算法由閾值法分割圖像,分割結果包含強光源區域圖像中光條亮度較高的區域的光條以及圖像中亮度較高的環境光干擾;利用邊緣檢測去除分割結果中的環境光干擾部分,根據邊緣檢測的結果劃分出圖像中的弱光源區域(圖像中光條亮度較低的區域);根據截面灰度分布特征提取出弱光源區域的光條。

1 強光源區域光條提取方法

1.1 直方圖最右峰法

強光源區域光條亮度大,采用閾值法可分割出強光源區域的光條。本文提出直方圖最右峰法,可快速自適應獲取閾值。該方法的原理為:若光條亮度高,有一定面積,則會在直方圖最右邊引入一個峰值。因此可在直方圖中根據最右邊的峰確定分割閾值,分割出光條部分。

本文使用水平線結構光,為了更好地適應背景整體灰度的變化,首先將圖像從左到右分為16個子圖像,每個子圖像的寬度為原圖像寬度的1/16。然后為每個子圖像分別確定分割閾值Gcut:

1)建立子圖像灰度直方圖;

2)找到直方圖最右邊(灰度最大)的峰;

3)找到最右峰左邊第1個谷,則Gcut為該谷對應的灰度值。

為了初步區分強弱光源區域,設定一個強光閾值Gstro。對每個子圖像,根據其平均灰度Gavg自適應獲得Gstro:Gstro=s×Gavg,s為強光因子,取1.2~1.4。

a.如果Gcut>Gstro,該子圖像可能處于強光源區域,分割閾值有效;

b.如果Gcut

1.2 邊緣檢測去除環境光干擾

根據有效Gcut分割后的圖像也可能包含環境光干擾,如圖1(a)左下部分。相比真正的光條環境光的干擾沒有明顯的邊緣特性,因此,采用邊緣檢測法區分環境干擾和光條。

圖1 環境光干擾對圖像分割的影響

首先用各子圖像的有效Gcut進行圖像二值化,然后進行連通域標記。

連通域標記以后,先進行面積約束,將面積過小的連通域認為是噪聲去除。對保留下來的連通域,提取其輪廓點,分為上輪廓點和下輪廓點。然后將sobel邊緣檢測算子僅應用于這些輪廓點在原圖中對應的位置,以減少邊緣檢測的計算時間。因為本文中光條為水平光條,所以使用縱向的sobel算子。

如圖1(c)顯示圖1(b)中環境光形成的連通域被去除,強光源區域光條被準確提取。弱光源區域也被準確劃分出來,即暫時沒有提取出光條的列都為弱光源區域。

2 弱光源區域光條提取方法

2.1 光條截面灰度分布特征

弱光源區域一種可能的情況如圖2所示,光條出現在A點,但該列灰度最大值出現在B點,且整列還有很多點的灰度等于或高于光條所在點,極值法,閾值法均難以在弱光源區域識別出光條。因此,本文以列為單位分析光條的截面灰度特征,以此來提取出弱光源區域的光條。

圖2 弱光源區域某列灰度分布

觀察光條的截面灰度分布,有如下特征:在局部范圍內,光條中心像素灰度表現為峰值;在光條的范圍內,光條橫截面灰度分布滿足高斯分布。本文方法的思路為:

1)檢索出符合特征一的像素點:將一列的灰度分布看作一條曲線g(y),對g(y)進行1次均值平滑減少噪聲,然后找出曲線中所有的峰值點,再對峰值點進行非極大值抑制,如圖2。

2)檢測這些峰值點是否符合特征二,分析高斯分布函數

(1)

用Yc表示峰值點坐標,Yu和Yd分別代表峰值點上下梯度最大點的坐標,則條件(a)~條件(c)表示為

(2)

一列中同時滿足條件(a)~條件(c)的峰值點才是光條中心,找到這個峰值點并根據其上下梯度最大的點即可提取出該列的光條。

2.2 雙閾值法

上述灰度分布特征法兩個比較關鍵的閾值Gdiff和Ggrad與影響因子s1,s2的設定相關。由于噪聲的影響,會使得某些列光條的截面灰度分布與高斯分布相似性降低。若影響因子設定的較為嚴格,則部分列的光條會因噪聲影響而被排除,即漏提取;若影響因子設定較為寬松,則會加大引入誤提取的可能。

考慮到光條橫向分布的連續特性:圖像某列存在一個峰值點B,其相鄰列存在已經被確認為光條的峰值點A,且A,B點的縱坐標很接近,則峰值點B為光條中心的可能性很大。亦即對于峰值點B,可以適當放寬閾值。

本文根據以上特性,采用雙閾值法,將Gdiff和Ggrad分別擴展成1對閾值,包括1個寬松閾值和1個嚴格閾值。

設某列一峰值點縱坐標為Y,寬度為W(由其邊界點確定),若其相鄰列縱坐標在(Y±W)區間內存在光條,則使用寬松Gdiff和Ggrad;否則,使用嚴格Gdiff和Ggrad。

圖3為使用雙閾值法的結果,與僅使用單一閾值相比,雙閾值法顯著提高了光條提取的魯棒性。

圖3 雙閾值法提取光條結果

3 實驗與分析

本文實驗基于主頻為1 GHz的smart—210嵌入式核心板,選取了幾個典型室內場景,如圖4。

圖4 幾種典型室內場景

對于這些場景,極值法和本文方法提取光條的準確率(準確提取出光條的列占總列數的比例)如表1。從表1可以看出,極值法在較簡單的場景(即圖像幾乎全是強光源區域)下,能夠保持較高的準確率。但面對稍復雜的場景,其準確率大幅下降。而本文方法在上述4種場景下,均有接近100 %的準確率,表現良好。

表1 光條提取方法準確率對比

圖5為圖4中場景3的圖像處理結果。對比極值法可知,本文方法提取的光條與原圖像中的光條幾乎完全重合,且準確判斷出哪些列存在光條哪些列不存在光條。

此外,本方法處理一幀分辨率為640×240的結構光圖像平均時間在50 ms左右,滿足實時性要求。

圖5 場景3的光條提取結果

4 結束語

實驗證明,本文提出的方法在復雜的室內環境下,能準確快速地提取出光條。另外,本方法還自適應地獲取了光條在不同列的寬度,只需在該寬度內使用高斯擬合等方法即可精確定位光條中心,因此,本方法同樣適用于對精度要求高的應用場合。

猜你喜歡
環境光極值光源
極值點帶你去“漂移”
極值點偏移攔路,三法可取
Vishay新型高靈敏度環境光傳感器用于可穿戴設備
一類“極值點偏移”問題的解法與反思
單幀圖像下的環境光遮蔽估計
綠色光源
兩種LED光源作為擬南芥生長光源的應用探究
超贊柔性屏幕
借助微分探求連續函數的極值點
科技連載:LED 引領第三次照明革命——與傳統照明的對比(一)
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合