萬卓仁,賴?yán)诮?/p>
(上海工程技術(shù)大學(xué)機(jī)械與汽車工程學(xué)院,上海 201620)
近年來,基于線結(jié)構(gòu)光的三維視覺檢測技術(shù)以高精度、非接觸性和快速等優(yōu)點(diǎn),被廣泛應(yīng)用于缺陷檢測、非接觸檢測等領(lǐng)域[1]。在線結(jié)構(gòu)光視覺測量系統(tǒng)中,快速、準(zhǔn)確地提取光條中心,是得到目標(biāo)物體三維信息的關(guān)鍵步驟[2]。有學(xué)者提出以光條的高斯分布中心為結(jié)構(gòu)光中心的方法,來確定光條中心位置?;谶@一思想,發(fā)展了極值法、閾值法[3]、灰度重心法[4]、曲線擬合法[5]和Steger法[6]等方法。
本文提出了一種基于自適應(yīng)窗口的灰度重心法,用于提取結(jié)構(gòu)光光條中心。該方法融合了其曲線擬合法和灰度重心法的各種特點(diǎn)。首先,對數(shù)字圖像進(jìn)行預(yù)處理;其次,進(jìn)行高斯曲線初步擬合,根據(jù)高斯曲線的特性自動(dòng)選取閾值,能夠自適應(yīng)地確定窗口范圍;最后,使用灰度重心法確定光條中心位置。
本文基于上述分析,提出了一種自適應(yīng)選擇光條寬度的線結(jié)構(gòu)光光條中心提取算法。算法的詳細(xì)步驟如下。
①利用八鄰域差值濾波法對數(shù)字圖像進(jìn)行濾波。
②使用Otsu法進(jìn)行圖像分割。
③取部分樣本數(shù)據(jù)進(jìn)行高斯擬合,并記錄高斯曲線的均值和標(biāo)準(zhǔn)差。
④根據(jù)光條每行或每列的均值和標(biāo)準(zhǔn)差,使用高斯曲線能量分布的3σ準(zhǔn)則自適應(yīng)選取窗口大小,并計(jì)算窗口內(nèi)數(shù)據(jù)灰度重心。
在實(shí)際工業(yè)環(huán)境下,高斯噪聲和椒鹽噪聲對數(shù)字圖像的影響是巨大的。因此,首先要對噪聲進(jìn)行處理。由于光源的不穩(wěn)定性和被測物自身的反光,導(dǎo)致各位置光條中心的灰度都不相同,所以通過中值濾波的方式無法把握統(tǒng)一尺度[7]。
本文提出了自適應(yīng)八鄰域差值法,用于濾波處理。具體方法如下。
①運(yùn)用3×3的八領(lǐng)域模板,如圖1所示。
圖1 八鄰域模板Fig.1 Eight-neighborhood template
②在二維數(shù)字圖像中滑動(dòng),使模板中心與圖像中的像素點(diǎn)Pmn重合,模板中心外八鄰域像素值分別記為P1,P2,…,P8。
③計(jì)算各個(gè)像素點(diǎn)與中心像素灰度值的差值V1=|P1-Pmn|V2=|P2-Pmn|,…,V8=|P8-Pmn|,并設(shè)定閾值T。
(1)
將以上八個(gè)差值與T相比,如果大于T則認(rèn)為該像素點(diǎn)是噪聲,應(yīng)當(dāng)剔除。通過該方法,可以有效剔除大部分噪聲,完全剔除遠(yuǎn)離光條中心的噪聲,且不影響光條的邊緣,保留了圖像的細(xì)節(jié)。
圖像分割就是將一副圖像分割成不同的部分(被測目標(biāo)與背景),舍去背景部分,保留目標(biāo)信息。該方法大大減少了計(jì)算時(shí)的數(shù)據(jù)量,提高了檢測精度。在分割圖像中,閾值分割較為常用,特別適合目標(biāo)灰度值和背景灰度值有較大差異的圖像。Otsu法[8]作為一種自適應(yīng)的圖像分割方法,被認(rèn)定是最合理的圖像閾值分割方法。因此,本文將Otsu法作為圖像分割方法,在MATLAB中能通過函數(shù)直接實(shí)現(xiàn)。
理想情況下,由激光器發(fā)射的激光在被測物體表面形成的光條,在其法向方向的截面上光條的能量強(qiáng)度呈高斯分布[9],光條橫截面的像素值近似服從高斯分布,所以可以用高斯曲線擬合的方法進(jìn)行初步擬合。設(shè)高斯曲線表達(dá)式為:
(2)
式中:f(x)為灰度值函數(shù);A為幅值;μ為均值,即條紋中心;σ為標(biāo)準(zhǔn)差。
對式(2)的等式兩邊同時(shí)取對數(shù),得到:
(3)
此時(shí),就可以把高斯擬合看作二次多項(xiàng)式擬合。
逐行掃描分割后的圖像,在每一行中記錄光條寬度以及邊緣坐標(biāo)。在光條總寬上等距取N個(gè)點(diǎn)進(jìn)行初步擬合。這N個(gè)采樣點(diǎn)可以記為]xi,f(xi)]。其中,xi為該行的第i個(gè)像素點(diǎn)的列坐標(biāo)。利用最小二乘法進(jìn)行多項(xiàng)式的擬合,就可以確定[μ,σ,A]的值。
服從高斯分布的概率密度函數(shù)為:
(4)
根據(jù)概率密度的特性,68.27%的高斯能量聚集在[μ-σ,μ+σ]的范圍內(nèi),95.45%的高斯能量聚集在[μ-1.96σ,μ+1.96σ]的范圍內(nèi),99.74%的高斯能量聚集在[μ-3σ,μ+3σ]的范圍。只要將擬合得到的高斯曲線乘上系數(shù)A*,即可得到g(x)。
(5)
雖然每個(gè)點(diǎn)的灰度值大小發(fā)生變化,但是能量分布卻不會(huì)發(fā)生變化,條紋中心的位置也不會(huì)發(fā)生變化,同樣滿足概率密度的分布。
王順等根據(jù)各種情況下的高斯模型比較,提出以光條橫截面所具有的能量和為光條中心點(diǎn)信度的評價(jià)依據(jù)是符合實(shí)際情況的[10]。因此,可以以激光的能量分布情況來確定條紋中心的位置。在高斯模型中,條紋中心落在[μ-3σ,μ+3σ]以外的概率小于0.3%。在實(shí)際應(yīng)用中,常認(rèn)為該事件是不會(huì)發(fā)生的,基本可以將這個(gè)區(qū)間看作是條紋中心取值區(qū)間。這就是高斯分布的“3σ原則”。因此,可以根據(jù)被測對象的特性來選取合適倍數(shù)的σ,作為灰度度心法的計(jì)算區(qū)間。本文根據(jù)3σ原則,自適應(yīng)地確定區(qū)間長度,采用高斯擬合的方法求出每行3σ和μ的值,并使用[μ-3σ,]μ+3σ]作為該行灰度重心法的計(jì)算窗口,在此范圍內(nèi)使用灰度重心法。
(6)
當(dāng)所有行全部執(zhí)行結(jié)束后,即可得到提取出的光條中心。
為驗(yàn)證光條提取算法有效性,本文搭建了基于單線結(jié)構(gòu)光的視覺測量系統(tǒng)。系統(tǒng)使用大恒圖像的MER-130-30UM型數(shù)字相機(jī),其分辨率為1 280×1 024;鏡頭使用大恒新紀(jì)元科技股份有限公司的GCO-260611物方遠(yuǎn)心測微鏡頭。試驗(yàn)中,利用線型激光器向被測對象發(fā)射激光,攝像機(jī)拍攝被測對象,并用本文提出的算法對光條圖像進(jìn)行處理。其中,攝像機(jī)、激光器以及被測工件這三者之間的位置滿足三角法測量系統(tǒng)的位置分布要求[11]。
圖2是攝像機(jī)采集到的原始激光圖像,即線結(jié)構(gòu)光照射到一個(gè)圓臺(tái)表面形成的曲線圖像。
圖2 原始激光圖像Fig.2 Original laser image
對圖2進(jìn)行自適應(yīng)八鄰域差值濾波,并采用Otsu法分割后,得到預(yù)處理后圖像,如圖3所示。
圖3 預(yù)處理后圖像Fig.3 Pre-processed image
光條中心圖像如圖4所示。圖4(a)為通過自適應(yīng)窗口的灰度重心法求出的光條中心,圖4(b)為圖4(a)的局部放大。
圖4 光條中心圖像Fig.4 Image of light stripes center
以上提取出的光條中心曲線是在噪聲很小、光照理想的情況下得到的。實(shí)際工業(yè)環(huán)境卻較為惡劣,所以需要通過加噪聲,改變外部光照條件來模擬實(shí)際的環(huán)境。圖5是攝像機(jī)在同一個(gè)位置、不同光照強(qiáng)度和噪聲下采集的激光條紋圖像。圖5(a)~圖5(c)分別是在不同光照下得到的圖像,圖5(d)是在圖5(b)的基礎(chǔ)上人為加入了椒鹽噪聲以及高斯噪聲后,得到的中等光照圖像。
圖5 不同外部條件下的線結(jié)構(gòu)光條紋圖像Fig.5 Images of line structured light stripes under different external conditions
分別采用傳統(tǒng)的灰度重心法、梅俊華等人提出的融合極值法的灰度重心法、基于自適應(yīng)窗口的灰度重心法提取激光條紋中心。對比每種方法的第400、450行提取結(jié)果,如表1所示。
由于在實(shí)際測量中,光條真實(shí)中心無法測量,因此常用殘差v代替真差,然后按照Bessel公式計(jì)算標(biāo)準(zhǔn)誤差的值:
(7)
表1 不同條件下提取光條中心的對比Tab.1 Comparison of strip centers extgracted by different methods
由表1可知,對比圖序號(hào)圖5(b)和圖5(d),可驗(yàn)證噪聲對光條中心提取的影響:人為加入噪聲后對于傳統(tǒng)的灰度重心法平均殘差為1.96 pixels,對于融合極值法的灰度重心法平均殘差為0.33 pixels,對于自適應(yīng)窗口的灰度重心法平均殘差幾乎為0。由此可以說明工業(yè)噪聲對于傳統(tǒng)方法的影響較大,不能滿足實(shí)際工業(yè)需求。而融合極值法的灰度重心法和基于自適應(yīng)窗口的灰度重心法的抗噪聲能力高于傳統(tǒng)的灰度重心法。
對比圖5(a)~圖5(c),可驗(yàn)證光照強(qiáng)度對光條中心提取的影響。圖5光照強(qiáng)度由強(qiáng)變?nèi)酰簜鹘y(tǒng)灰度重心法在較強(qiáng)光、中等光、弱光下的平均殘差分別為2.36 pixels、0.55 pixels、0.10 pixels;融合極值法的灰度重心法在3種光強(qiáng)下的平均殘差分別為1.51 pixels、0.09 pixels、1.57 pixels;本文算法在3種光強(qiáng)下的平均殘差分別為0.62 pixels、0.64 pixels、0.14 pixels。在實(shí)際應(yīng)用中多采用弱光條件。 因此,基于自適應(yīng)窗口的灰度重心法魯棒性和精確度優(yōu)于其他兩種算法。
對比以上四種條件下的標(biāo)準(zhǔn)誤差,基于自適應(yīng)窗口的灰度重心法(0.54)比傳統(tǒng)的灰度重心法(2.01)和融合極值法的灰度重心法(1.27)效果更好。綜上所述,基于自適應(yīng)窗口的灰度重心法具有很好的魯棒性和精確度。
同時(shí),在光照和噪聲一致的環(huán)境下,對比近些年來最新提出的光條中心提取算法(融合極值法的灰度重心法、劉劍等提出的基于海森矩陣和區(qū)域增長的提取方法[12]、甘宏等提出的雙閾值自適應(yīng)分割方法和本文提取方法)的標(biāo)準(zhǔn)誤差和運(yùn)行時(shí)間。同一條件下,不同方法標(biāo)準(zhǔn)方差和運(yùn)行時(shí)間的對比如表2所示。
表2 同一條件下不同方法標(biāo)準(zhǔn)方差和運(yùn)行時(shí)間的對比Tab.2 Comparison of standard variance and running time of different methods under the same condition
由表2可知,隨著標(biāo)準(zhǔn)誤差的減小,運(yùn)行時(shí)間不斷增大。融合極值法的灰度重心法運(yùn)行時(shí)間最快(0.43 s),但是標(biāo)準(zhǔn)誤差(1.27)較大,精度不能滿足檢測需求?;诤I仃嚭蛥^(qū)域增長的提取方法和雙閾值自適應(yīng)分割方法精度比較高。但這兩種方法運(yùn)行時(shí)間已經(jīng)不能滿足實(shí)時(shí)性的要求。本文所提出改進(jìn)的算法在計(jì)算速度和預(yù)測精度之間達(dá)到了平衡,比較適合實(shí)際的工業(yè)環(huán)境。
線結(jié)構(gòu)光光條中心提取是視覺測量的主要步驟,直接決定了整個(gè)視覺測量系統(tǒng)的優(yōu)劣。本文提出一種自適應(yīng)窗口線結(jié)構(gòu)光光條中心高精度算法。該方法將高斯曲線特性和傳統(tǒng)的灰度重心法相結(jié)合,通過自適應(yīng)窗口灰度重心法提取得到的光條中心位置的最大殘差、標(biāo)準(zhǔn)誤差和運(yùn)行時(shí)間均優(yōu)于傳統(tǒng)方法下得到的光條中心的最大殘差、標(biāo)準(zhǔn)誤差和運(yùn)行時(shí)間。試驗(yàn)結(jié)果表明,通過分析高斯曲線能量分布自適應(yīng)地調(diào)整窗口大小,再進(jìn)行灰度重心的計(jì)算,能很好地消除實(shí)際工業(yè)環(huán)境中噪聲和外部光照強(qiáng)度改變帶來的影響,使精度與運(yùn)行時(shí)間達(dá)到一定的平衡。這對于線結(jié)構(gòu)光在工業(yè)領(lǐng)域應(yīng)用意義更加突出。