王裕東, 呂學(xué)勤, 湯宇豪, 瞿 艷
(上海電力學(xué)院 自動(dòng)化工程學(xué)院, 上海 200090)
雙目視覺(jué)傳感器從多個(gè)不同角度獲取豐富的場(chǎng)景信息,通過(guò)三角法等視差原理獲得場(chǎng)景內(nèi)目標(biāo)物的深度信息,可有效解決單目傳感器無(wú)法測(cè)得目標(biāo)深度信息的難點(diǎn)[1]?;陔p目視覺(jué)傳感器的雙目立體視覺(jué)技術(shù)已逐漸應(yīng)用于各個(gè)領(lǐng)域中[2]。雙目立體視覺(jué)技術(shù)包括圖像獲取,攝像機(jī)標(biāo)定、圖像預(yù)處理和立體匹配4個(gè)過(guò)程。
從二維焊縫圖像中提取焊縫特征點(diǎn)的三維信息,需通過(guò)視覺(jué)傳感器標(biāo)定獲取視覺(jué)傳感器的外部參數(shù)和內(nèi)部參數(shù)。目前,視覺(jué)傳感器標(biāo)定方法主要有射影標(biāo)定法、自標(biāo)定法、正交消隱法、相機(jī)純旋轉(zhuǎn)標(biāo)定法和平面模板兩步法等[3]。2016年,長(zhǎng)春理工大學(xué)的張超等學(xué)者[4]提出了一種基于位姿約束的標(biāo)定算法,是將相對(duì)位姿作為約束條件解出雙目視覺(jué)的初始內(nèi)部參數(shù),再通過(guò)重復(fù)迭代剔除誤差率較大的標(biāo)定圖像,當(dāng)誤差率小于指定值時(shí)得到較精確的雙目視覺(jué)內(nèi)部參數(shù)。2018年,南京航天航空大學(xué)的姜濤課題組[5]采用單應(yīng)性矩陣求解雙目視覺(jué)內(nèi)外參數(shù),有效解決了現(xiàn)有變焦鏡頭標(biāo)定方法難度大、精度低的問(wèn)題。
對(duì)焊縫圖像的預(yù)處理可以避免焊接過(guò)程中產(chǎn)生的弧光飛濺,但會(huì)給焊縫圖像帶來(lái)噪聲污染,影響后續(xù)立體匹配的效果[6]。2018年,上海交通大學(xué)的王志剛等研究者[7]采用一種焊縫圖像預(yù)處理算法,提高了算法的精度和實(shí)時(shí)性。該方法在消除噪聲的同時(shí),通過(guò)保留信號(hào)的邊緣,極大程度地提高了焊縫圖像處理的細(xì)節(jié)。
匹配的復(fù)雜性是立體匹配的關(guān)鍵。立體匹配是基于若干不同視角拍攝的圖像找出匹配點(diǎn)的對(duì)應(yīng)關(guān)系,利用視差得到深度信息[8]。正確的選擇和研究匹配算法是一個(gè)難點(diǎn),這是由于對(duì)于一幅圖像上的某個(gè)像素或特征,另一幅圖像可能有若干特征與之相似。近年來(lái),基于圖切割和置信度傳遞的優(yōu)化算法被廣泛應(yīng)用。2018年,西悉尼大學(xué)的MITCHELL D等學(xué)者[9]研究了一種立體置信度估計(jì)的深度體系結(jié)構(gòu),與現(xiàn)有的基于深度卷積神經(jīng)網(wǎng)絡(luò)只依賴匹配代價(jià)估計(jì)視差圖不同,該網(wǎng)絡(luò)通過(guò)同時(shí)使用兩個(gè)異構(gòu)輸入估計(jì)立體置信度,對(duì)提高立體匹配算法的精度具有重要意義。這種結(jié)構(gòu)的局限性是對(duì)缺乏紋理的圖像匹配精度較低,也會(huì)影響視差精度。
獲取物體的深度信息可根據(jù)來(lái)自不同相機(jī)的圖像求解視差?;谝陨戏治?針對(duì)焊件表面大多是弱紋理且缺乏獨(dú)特的特征點(diǎn)導(dǎo)致立體匹配困難的問(wèn)題,本文提出了一種弱紋理檢測(cè)跨尺度聚合的立體匹配算法,通過(guò)檢測(cè)弱紋理區(qū)域利用不同的梯度進(jìn)行跨尺度聚合,來(lái)提高立體匹配的精度。
焊縫圖像預(yù)處理的第一步是圖像濾波。中值濾波既可以有效去除圖像噪聲又可以保留焊縫圖像的邊緣細(xì)節(jié),為后續(xù)準(zhǔn)確提取焊縫特征點(diǎn)提供有利條件。濾波后,為減少背景因素干預(yù),再對(duì)焊縫圖像進(jìn)行二值化處理,整個(gè)過(guò)程如圖1所示。圖像二值化把焊縫圖像中灰度值超過(guò)所設(shè)灰度閾值的線結(jié)構(gòu)光條紋區(qū)域定義為目標(biāo)區(qū)域,g(x,y)表示像素灰度值(其中x,y分別表示二維圖像的橫坐標(biāo)值和縱坐標(biāo)值),T表示設(shè)定的灰度閾值。公式如下
(1)
圖1 焊縫圖像預(yù)處理
采用張氏標(biāo)定法標(biāo)定雙目視覺(jué)傳感器。首先,通過(guò)相機(jī)拍攝標(biāo)定板對(duì)不同位置的各個(gè)角度的圖像進(jìn)行標(biāo)定。采用16×20的棋盤(pán)格作為相機(jī)的標(biāo)定物,每個(gè)格子邊長(zhǎng)為1 mm,共采集12對(duì)焊縫標(biāo)定板圖片,如圖2所示。然后,通過(guò)誤差分析、角點(diǎn)剔除和角點(diǎn)再提取得到左攝像機(jī)相對(duì)標(biāo)定板的位置和左右攝像機(jī)的相對(duì)位置,從而得到雙目視覺(jué)傳感器的參數(shù)。
圖2 雙目視覺(jué)標(biāo)定結(jié)果
視差和深度的關(guān)系如圖3所示。
圖3 深度和視差的關(guān)系
B為兩個(gè)傳感器之間的距離。Z為目標(biāo)到傳感器的距離,即深度。P點(diǎn)為目標(biāo)位置。Pl,Pr為目標(biāo)在左右兩個(gè)傳感器上的成像點(diǎn)。Cl,Cr為左右攝像機(jī)位置。f為傳感器鏡頭焦距。ax為傳感器參數(shù)。用xl,xr表示目標(biāo)兩個(gè)成像的坐標(biāo)。由中心映射關(guān)系得
(2)
xl-xr為目標(biāo)位置P點(diǎn)的視差,用d表示,則式(2)可表示為
(3)
可以看出,物體的深度與視覺(jué)傳感器參數(shù)、基線的長(zhǎng)度以及像素點(diǎn)的視差有關(guān),物體的深度信息與像素點(diǎn)的視差成反比關(guān)系。標(biāo)定得到傳感器參數(shù)后,即可通過(guò)立體匹配得到視差值[10]。
只要找到焊縫左右圖像中的匹配對(duì)應(yīng)點(diǎn)并求出視差,即可得到深度信息。匹配對(duì)應(yīng)點(diǎn)即匹配代價(jià)最小的點(diǎn)。以左焊縫圖像為基準(zhǔn)圖,檢測(cè)焊縫圖像的紋理情況,將焊縫圖像分割成紋理區(qū)域和弱紋理區(qū)域,利用輸入左右焊縫圖像的色彩信息以及梯度信息計(jì)算匹配代價(jià)。
弱紋理區(qū)域的實(shí)質(zhì)是其灰度信息在圖像中的變化很小甚至幾乎不變化。范海瑞課題組根據(jù)兩個(gè)特征對(duì)弱紋理區(qū)域進(jìn)行檢測(cè):一是固定區(qū)域內(nèi)的顏色變化;二是像素的梯度變化[11]。實(shí)驗(yàn)發(fā)現(xiàn)顏色值的變化對(duì)最后的匹配結(jié)果影響很小,因此實(shí)驗(yàn)中對(duì)焊縫圖像進(jìn)行紋理和弱紋理區(qū)域的分割時(shí),根據(jù)焊縫圖像像素灰度梯度特性變化就可以提取出焊縫圖像弱紋理區(qū)域,設(shè)圖像I中任意像素(x,y),如果此像素(x,y)屬于弱紋理區(qū)域,則滿足以下公式
(4)
其中,
式中:gT,δT——灰度閾值;
N——窗口像素的個(gè)數(shù);
W(x,y)——以像素(x,y)為中心的窗口;
I(u,v)——像素的灰度值;
圖4為焊縫圖像弱紋理區(qū)域檢測(cè)結(jié)果,其中虛線框中白色部分表示焊縫圖像弱紋理區(qū)域,其余黑色部分表示焊縫圖像紋理區(qū)域。
圖4 焊縫圖像弱紋理檢測(cè)結(jié)果
差的絕對(duì)值之和(Sum of Absolute Differences,SAD)算法是一種圖像匹配算法,具有匹配精度高、速度快等優(yōu)點(diǎn),缺點(diǎn)是在邊緣區(qū)域匹配精度不高[12]。基于圖像梯度的代價(jià)計(jì)算法在圖像邊緣也能得到較高的匹配精度,能夠彌補(bǔ)SAD算法的缺點(diǎn)。因此,在計(jì)算匹配代價(jià)中,采用截?cái)囝伾詈徒財(cái)嗵荻炔罱M合,同時(shí)加入x方向和y方向梯度算子進(jìn)行代價(jià)計(jì)算。設(shè)焊縫圖像對(duì)左圖像IL,右圖像IR,p是左圖像中一點(diǎn),匹配代價(jià)如下
(7)
其中,
其中:C(p,d)——視差為d時(shí)點(diǎn)p的匹配代價(jià);
α——顏色差和梯度差之間的平衡因子;
R,G,B——彩色圖像的3個(gè)通道;
TAD,Tgrad——顏色和梯度的截?cái)嚅撝?
代價(jià)聚合本質(zhì)是對(duì)代價(jià)計(jì)算的結(jié)果進(jìn)行去噪,去噪包含特定濾波核實(shí)則是加權(quán)最小二乘(Weighted Least Square,WLS)優(yōu)化問(wèn)題,因此匹配代價(jià)聚合公式如下
(11)
z——期望優(yōu)化目標(biāo)值;
q——p的鄰域像素點(diǎn);
d——視差值;
W(p,d)——高斯濾波核,衡量像素點(diǎn)之間相似性的相似性核。
式(11)的最小二乘優(yōu)化解如下
(12)
目前大多數(shù)研究都是最細(xì)尺度,即原圖像尺度上進(jìn)行的代價(jià)聚合。在原圖像尺度下,代價(jià)聚合可以在紋理區(qū)取得良好的效果。但是在立體匹配的對(duì)應(yīng)搜索中,不同尺度上的信息是交互處理的。因此,代價(jià)聚合不能像傳統(tǒng)方法只在最細(xì)尺度上進(jìn)行操作,應(yīng)該采用由粗到細(xì)的跨尺度算法。
為了確保匹配的準(zhǔn)確性,保證多尺度視差的一致性,對(duì)于圖像的弱紋理和無(wú)紋理區(qū)域,在不同尺度上進(jìn)行代價(jià)聚合[13-14]。式(11)僅包含單一尺度圖片,不涉及其他尺度的圖片信息,根據(jù)尺度空間理論,將式(11)擴(kuò)展為如下公式
(13)
s——尺度參數(shù);
S——尺度個(gè)數(shù),即第幾個(gè)尺度;
zs——第s個(gè)尺度上的期望優(yōu)化目標(biāo)值;
ps,qs——第s個(gè)尺度上的像素點(diǎn)及其鄰域像素點(diǎn);
Cs(qs,ds)——像素qs在s尺度上的匹配代價(jià)。
C0為圖像原始尺度匹配代價(jià)。將原左右圖像IL,IR使用高斯金字塔變換分解到 0,1,2…S高斯分解層,分別在第 0,1,2…S高斯分解層下計(jì)算匹配代價(jià)并獨(dú)立進(jìn)行代價(jià)聚合,得到匹配代價(jià)卷C0,C1,C2…CS。圖5為跨尺度代價(jià)聚合流程圖。
圖5 跨尺度代價(jià)聚合視差圖提取流程
(14)
式(14)的解為每個(gè)尺度上分別進(jìn)行高斯平滑代價(jià)聚合的結(jié)果,對(duì)于任意s尺度的高斯平滑代價(jià)聚合結(jié)果為
(15)
為了得到最后的視差圖,對(duì)每層匹配代價(jià)進(jìn)行融合,保證相鄰尺度相同像素一致性是融合的關(guān)鍵,式(13)引入正則化約束項(xiàng),則
(16)
式中:λ——正則化因子。
(17)
圖像分解為S+1個(gè)尺度,因此有S+1個(gè)線性方程,此方程組可表示為
(18)
A是(S+1)×(S+1)維的對(duì)角矩陣,即
A矩陣可逆,可得
(19)
感知焊接過(guò)程中環(huán)境實(shí)時(shí)變化,實(shí)施調(diào)整焊槍位置是研究的重點(diǎn)。用雙目視覺(jué)傳感器能夠采集豐富的信息,適應(yīng)環(huán)境性好,具有非接觸不易干擾的良好特性,避免了環(huán)境的不確定性對(duì)焊接成品質(zhì)量的影響。由于焊縫屬于精密檢測(cè),要求傳感器獲取的焊縫圖像質(zhì)量高,圖像系數(shù)畸變小,所以本文選擇攝像效果良好的MER-132-30UM/C,USB接口幀曝光CCD工業(yè)數(shù)字相機(jī)。鏡頭的選擇取決于鏡頭的焦距f的大小,根據(jù)實(shí)際情況,實(shí)驗(yàn)平臺(tái)選擇f=35 mm的鏡頭。
實(shí)驗(yàn)過(guò)程中,雙目視覺(jué)傳感器從不同位置拍攝焊縫全貌。然后,對(duì)焊縫圖像進(jìn)行中值濾波、二值化處理得到焊縫信息。通過(guò)視覺(jué)傳感器標(biāo)定,得到傳感器參數(shù)。根據(jù)代價(jià)計(jì)算和代價(jià)聚合得到最小的匹配代價(jià),即焊縫左右圖像匹配對(duì)應(yīng)點(diǎn),從而得到焊縫視差圖。再?gòu)囊暡钪谢謴?fù)深度信息,得到焊槍的高度信息,實(shí)時(shí)調(diào)整焊槍高度。圖6為位置1焊縫左圖像,圖7為處理之后的焊縫視差圖。從焊縫視差圖中獲取最小視差可得到焊縫到傳感器距離(焊縫深度信息)。
圖6 焊縫左圖像
圖7 焊縫視差
改變傳感器到焊縫距離,進(jìn)行多次實(shí)驗(yàn),用SAD算法和本文提出的算法分別對(duì)焊縫圖像進(jìn)行立體匹配,記錄下每次的實(shí)驗(yàn)數(shù)據(jù)。統(tǒng)計(jì)結(jié)果如表1和表2所示。
表1 本文算法測(cè)得焊縫深度信息
表2 SAD測(cè)得焊縫深度信息
對(duì)比表1和表2可知,跨尺度代價(jià)聚合算法得到的焊縫深度信息誤差率均小于10%,相對(duì)于SAD算法,本文提出的算法誤差率更低。實(shí)驗(yàn)結(jié)果表明,本文提出的跨尺度代價(jià)聚合法實(shí)現(xiàn)立體匹配精度更高,提取焊縫深度信息效果更好。
針對(duì)雙目視覺(jué)傳感器的焊縫深度信息提取研究,本文采用了弱紋理檢測(cè)跨尺度聚合的立體匹配算法來(lái)獲得焊縫圖像視差圖。首先,通過(guò)雙目視覺(jué)傳感器獲取焊縫圖像,對(duì)焊縫圖像進(jìn)行中值濾波、二值化處理,去除圖像噪聲,減少圖像背景干擾。然后,通過(guò)標(biāo)定得到視覺(jué)傳感器參數(shù),進(jìn)一步得到視差和深度的關(guān)系。最后,采用弱紋理檢測(cè)跨尺度聚合算法進(jìn)行立體匹配,獲取焊縫圖像視差圖,得到焊縫視差。與SAD算法比較,由跨尺度代價(jià)聚合算法計(jì)算得到的焊縫深度信息誤差率均小于10%,提取焊縫深度信息效果更好。