劉學(xué)君 常夢(mèng)潔 孔祥旻 晏 涌 李柏燦 龔泓博
(北京石油化工學(xué)院信息工程學(xué)院 北京 102617)
危險(xiǎn)化學(xué)品生產(chǎn)和使用數(shù)量的不斷增加對(duì)危化品倉(cāng)儲(chǔ)安全的監(jiān)管提出了更高的要求[1-2]。對(duì)?;穫}(cāng)庫(kù)進(jìn)行三維重建,能夠?qū)崟r(shí)、準(zhǔn)確地獲取危化品周圍的環(huán)境信息,實(shí)現(xiàn)?;穫}(cāng)庫(kù)環(huán)境的可視化,確保監(jiān)測(cè)預(yù)警的實(shí)時(shí)性和安全性[3]。雙目視覺(jué)技術(shù)基于視差原理對(duì)目標(biāo)進(jìn)行三維重建[4],與TOF相機(jī)、結(jié)構(gòu)光、激光雷達(dá)等獲取場(chǎng)景深度信息的方式相比,雙目視覺(jué)技術(shù)不受限于物體表面的材質(zhì),可獲取均勻密集的場(chǎng)景三維信息,對(duì)硬件和成本的要求較低,在?;穾?kù)內(nèi)安全監(jiān)測(cè)方面一定的具有應(yīng)用前景。
三維重建的效果和精度由匹配算法直接決定[5],其關(guān)鍵步驟是尋找兩幅圖像中的同名點(diǎn),即進(jìn)行立體匹配。絕對(duì)誤差和(Sum of Absolute Differences,SAD)算法是一種經(jīng)典的塊匹配算法,作為實(shí)時(shí)系統(tǒng)的典型算法,該算法的復(fù)雜度低、速度快、實(shí)時(shí)性好,得到的稠密視差圖可以用于密集型的三維重建[6-7]。但在較為復(fù)雜的場(chǎng)景應(yīng)用傳統(tǒng)SAD算法,直接將兩個(gè)像素塊對(duì)應(yīng)數(shù)值之差的絕對(duì)值求和會(huì)產(chǎn)生一定的誤差,得到的結(jié)果精確度不足,且因匹配窗口內(nèi)視差發(fā)生變化而導(dǎo)致視差圖出現(xiàn)空洞,影響重建后的三維模型[8-10]。本文對(duì)傳統(tǒng)SAD算法進(jìn)行改進(jìn),經(jīng)過(guò)計(jì)算得到初始視差圖,然后對(duì)初始視差圖進(jìn)行優(yōu)化,得到最終視差圖。利用標(biāo)準(zhǔn)數(shù)據(jù)集及倉(cāng)庫(kù)模型進(jìn)行實(shí)驗(yàn)驗(yàn)證,證明本文算法的有效性。
雙目立體視覺(jué)成像模型一般為兩個(gè)平行放置的相機(jī),如圖1所示,兩相機(jī)光心Ol和Or之間的距離為基線距離b,空間中一點(diǎn)p在左右相機(jī)的坐標(biāo)分別為pl(xl,yl)和pr(xr,yr),視差d定義為某一點(diǎn)在兩成像平面中相應(yīng)點(diǎn)的位置差:d=xl-xr[11-14]。

圖1 雙目視覺(jué)模型
由雙目視覺(jué)模型可知,△pOlOr∽△pplpr,根據(jù)三角相似原理可得:
式中:Zc表示p點(diǎn)的深度,f表示相機(jī)的焦距。由式(1)可知視差值d與深度值Zc成反比,當(dāng)視差值d越小,深度值Zc越大,表示該點(diǎn)距離相機(jī)越遠(yuǎn);反之,表示該點(diǎn)距離相機(jī)越近。實(shí)際情況下兩相機(jī)無(wú)法做到嚴(yán)格并排放置,需要通過(guò)外極線校正使得yl=yr,這樣搜索維度會(huì)從二維降為一維,降低匹配的復(fù)雜程度,提高匹配效率[15-16]。
SAD是圖像立體匹配中基于灰度的塊匹配算法[17]。其原理求取模板圖像塊與搜索圖像塊內(nèi)像素值差的絕對(duì)值的和,進(jìn)而度量?jī)蓚€(gè)圖像塊是否匹配,其定義表示如下[18]:
PR(i+h,j+k+d)|
(2)
式中:d為視差值,PL(i,j)表示模板圖像塊內(nèi)像素的灰度值,PR(i,j)表示搜索圖像塊內(nèi)像素的灰度值。利用式(2)計(jì)算得到的SAD矩陣值越小,兩個(gè)圖像塊越相似。
對(duì)于復(fù)雜場(chǎng)景來(lái)說(shuō),利用兩個(gè)像素塊中像素點(diǎn)差值的相似程度來(lái)匹配圖像塊,一旦場(chǎng)景內(nèi)連續(xù)圖像塊的像素點(diǎn)出現(xiàn)相似像素值,匹配必然產(chǎn)生誤差。為提高兩個(gè)圖像塊的匹配精度,針對(duì)SAD目標(biāo)函數(shù),引入均值為零的二維高斯分布的加權(quán)系數(shù)ω(i,j)[19]:
式中:σ2為方差,取σ2=0.5n,n為塊半徑。
二維高斯分布是一維正態(tài)分布向二維的推廣。如圖2所示,均值為零的二維高斯分布在XOZ面和YOZ面上的投影都是一個(gè)標(biāo)準(zhǔn)正態(tài)分布,在XOY面上的投影是一個(gè)橢圓。

圖2 二維高斯分布圖
將式(3)和式(2)結(jié)合,可得改進(jìn)的SAD算法如式(5)所示。
|PL(i+h,j+k)-PR(i+h,j+k+d)|
(5)
引入高斯分布后的改進(jìn)SAD更偏重于圖像塊中心像素的匹配精度,符合客觀實(shí)際,可以有效提高整體匹配精度。
利用加權(quán)后的SAD算法得到初始視差圖后,發(fā)現(xiàn)當(dāng)匹配塊內(nèi)像素點(diǎn)的視差變化時(shí),會(huì)導(dǎo)致視差圖出現(xiàn)空洞。為了對(duì)空洞進(jìn)行填充,引入灰度共生矩陣(Gray-level Co-occurrence Matrix,GLCM)對(duì)空洞周圍紋理區(qū)域進(jìn)行度量,然后選用合適的窗口大小求取視差均值進(jìn)行空洞填充。
GLCM通過(guò)研究灰度的空間相關(guān)特性來(lái)描述圖像的紋理。GLCM用G(i,j)(i,j=0,1,2,…,L-1)表示,其中L表示圖像的灰度級(jí),i和j表示像素的灰度,d表示兩個(gè)像素的間距,n表示窗口大小。θ為GLCM的生成方向,通常取0°、45°、90°和135°[20-21]。
圖3為θ=0°,d=1的灰度矩陣的生成過(guò)程。

圖3 生成灰度共生矩陣
在基于GLCM的14個(gè)紋理特征中,選用角二階矩(Angular Second Moment,ASM)、熵(Entropy,ENT)、對(duì)比度(Contrast,CON)和相關(guān)性(Correlation,COR)組成一個(gè)四維特征向量綜合描述圖像中區(qū)域的紋理屬性[22]。
如式(6)所示,利用歐氏距離(Euclidean distance,ED)來(lái)描述兩個(gè)相鄰紋理區(qū)域特征向量(ASM1、ENT1、CON1、COR1)和(ASM2、ENT2、CON2、COR2)的相似度[24]:
兩個(gè)相鄰區(qū)域紋理特征向量的ED越大,說(shuō)明兩個(gè)區(qū)域的紋理屬性差別越大,那么這兩個(gè)區(qū)域不屬于同一物體的概率越大,不能直接求取視差均值賦給空洞位置;若兩個(gè)相鄰區(qū)域紋理特征向量的ED越接近于0,說(shuō)明兩個(gè)區(qū)域?qū)儆谕晃矬w的概率越大,其平均視差可以賦值給空洞位置。根據(jù)圖像紋理信息進(jìn)行視差填充窗口的自適應(yīng)調(diào)節(jié),可以正確、有效地進(jìn)行視差填充,獲取良好的視差圖。
本文算法的總體流程如圖4所示。利用改進(jìn)的加權(quán)SAD算法求出初始視差圖,然后對(duì)視差圖中因視差發(fā)生變化造成的空洞進(jìn)行篩選,確定空洞位置后,以空洞為中心,通過(guò)變化窗口的半徑,分別求取ASM、ENT、CON、COR值,進(jìn)而求得ED。在得到的所有ED值中找到最小值,得到其對(duì)應(yīng)的最小窗口,將窗口內(nèi)視差求均值賦給空洞位置,重復(fù)操作直到所有空洞填充為止。

圖4 本文算法流程
Middlebury和KITTI提供了立體匹配算法的評(píng)估測(cè)試數(shù)據(jù)集。Middlebury大學(xué)立體視覺(jué)網(wǎng)站是計(jì)算機(jī)視覺(jué)行業(yè)公認(rèn)的評(píng)估和數(shù)據(jù)集存儲(chǔ)庫(kù),在最新的V3數(shù)據(jù)集中,提供了更加復(fù)雜的場(chǎng)景和更加精確的視差估計(jì)。KITTI數(shù)據(jù)集填充了Middlebury數(shù)據(jù)集僅對(duì)室內(nèi)場(chǎng)景進(jìn)行采集的不足,由行駛中的車輛對(duì)室外環(huán)境進(jìn)行拍攝采集。
本文采用Middlebury V3數(shù)據(jù)集和KITTI 2015數(shù)據(jù)集對(duì)匹配算法進(jìn)行測(cè)試。測(cè)試實(shí)驗(yàn)以MATLAB R2020a為算法仿真軟件,在Intel(R) Xeon(R) CPU E5-2650 v4 @2.20 GHz、128 GB內(nèi)參的電腦上運(yùn)行。Middlebury V3數(shù)據(jù)集測(cè)試結(jié)果
4.2.1MiddleburyV3數(shù)據(jù)集測(cè)試結(jié)果
將本文算法與傳統(tǒng)SAD算法及差值平方和(Sum of Squared Differences,SSD)算法[24]、半全局匹配(Semi-Global Matching,SGM)算法[25]做比較,設(shè)置匹配塊半徑n=7,Middlebury V3訓(xùn)練集視差最值分別為(290,256,640,280,280,260,260,300,330,290,290,260,240,256,760),視差圖空洞填充窗口半徑ng=1,2,3。
四種算法在Middlebury V3數(shù)據(jù)集中Adirondack場(chǎng)景下的視差圖如圖5所示,可以看到,通過(guò)本文算法得到的視差圖邊界清晰,能較好地保留原圖中的細(xì)節(jié)特點(diǎn),有利于后期三維重建對(duì)場(chǎng)景的完整恢復(fù)。

(a) 原始左圖 (b) 標(biāo)準(zhǔn)視差圖
表1給出了四種算法在Middlebury V3數(shù)據(jù)集的測(cè)試結(jié)果,主要從視差誤匹配百分比、運(yùn)行時(shí)間、視差空值個(gè)數(shù)等3方面進(jìn)行實(shí)驗(yàn)數(shù)據(jù)評(píng)估分析。結(jié)果顯示,本文算法的誤差百分比較傳統(tǒng)SAD算法和SSD算法降低了21.31%和21.32%,較SGM算法增加了0.12%;算法運(yùn)行時(shí)間較SAD算法和SSD算法增加38.36%和38.98%,較SGM算法降低了77.81%;視差空洞個(gè)數(shù)較SAD算法和SSD算法降低了83.18%和96.83%,較SGM算法增加了13.69%。

表1 四種算法在Middlebury v.3數(shù)據(jù)集上測(cè)試結(jié)果對(duì)比
4.2.2KITTI2015數(shù)據(jù)集測(cè)試結(jié)果
設(shè)置KITTI 2015數(shù)據(jù)集視差范圍為(0,228),其余參數(shù)與MiddleburyV3數(shù)據(jù)集參數(shù)保持一致。四種算法在KITTI 2015數(shù)據(jù)集中000000_10場(chǎng)景下的視差圖如圖6所示,可以看出本文算法在室外場(chǎng)景下得到的視差圖整體分布較為均勻,仍具有較好的適用性。

(a) 原圖左圖 (b) 標(biāo)準(zhǔn)視差圖
從表2可以看出,隨著KITTI 2015數(shù)據(jù)集中圖片分辨率的增大,四種算法的運(yùn)行時(shí)間均有所增加,且室外環(huán)境較為復(fù)雜,導(dǎo)致平均誤匹配百分比都處于較高的結(jié)果,但本文算法的平均誤匹配百分比較SAD算法和SSD算法降低了11.07%和11.00%,較SGM算法增加了0.38%;平均運(yùn)行時(shí)間較SAD算法和SSD算法增加292.15%和200.81%,較SGM算法降低了18.24%;平均視差空值個(gè)數(shù)較SAD算法和SSD算法降低了24.40%和22.88%,較SGM算法降低了38.20%。

表2 四種算法在KITTI 2015數(shù)據(jù)集上測(cè)試結(jié)果對(duì)比
為驗(yàn)證本文算法在真實(shí)危化品倉(cāng)庫(kù)中的效果,在實(shí)驗(yàn)室內(nèi)搭建了危化品倉(cāng)庫(kù)模型,利用木塊及鐵桶模擬實(shí)際倉(cāng)庫(kù)堆垛碼放狀態(tài),在倉(cāng)庫(kù)頂部的頂角位置放置雙目相機(jī),圖7(a)、(b)分別為雙目相機(jī)采集到的左右視角圖片,已經(jīng)過(guò)極線校正處理。

(a) 左視角 (b) 右視角圖7 危化品倉(cāng)庫(kù)模型內(nèi)雙目相機(jī)采集到的圖片
圖8至圖12分別為當(dāng)匹配塊半徑n等于1、5、10、15、20時(shí)SAD算法及本文算法對(duì)倉(cāng)庫(kù)圖片的處理效果對(duì)比。分析圖8至圖12可得,受倉(cāng)庫(kù)內(nèi)光照不均、地面反光、堆垛、地面、墻面紋理較少影響,本文算法和SAD算法均出現(xiàn)不同面積的空洞問(wèn)題,反映到視差圖中為黑色區(qū)域。隨著匹配塊半徑的增大,相較于SAD算法,本文算法引入的高斯權(quán)重能在視差平滑化過(guò)程中保持較好的匹配結(jié)果,且本文算法利用紋理信息對(duì)空洞進(jìn)行填補(bǔ),能較好地將空洞區(qū)域縮小,結(jié)果優(yōu)于傳統(tǒng)SAD算法,具有較好的實(shí)用性。

(a) SAD算法處理結(jié)果(b) 本文算法處理結(jié)果圖8 匹配塊半徑n=1

(a) SAD算法處理結(jié)果(b) 本文算法處理結(jié)果圖9 匹配塊半徑n=5

(a) SAD算法處理結(jié)果(b) 本文算法處理結(jié)果圖11 匹配塊半徑n=15

(a) SAD算法處理結(jié)果(b) 本文算法處理結(jié)果圖12 匹配塊半徑n=20
本文通過(guò)引進(jìn)二維高斯分布系數(shù)對(duì)SAD匹配算法進(jìn)行加權(quán),得到初始視差圖后,針對(duì)視差圖中存在空洞的像素點(diǎn),利用GLCM度量的紋理信息選定窗口進(jìn)行空洞填充。相較于SAD算法,本文算法得到的視差圖更精確,能夠?yàn)楹笃趫?chǎng)景的三維重建做準(zhǔn)備。在今后的研究中,將針對(duì)本算法應(yīng)用于復(fù)雜場(chǎng)景的圖像匹配做進(jìn)一步的優(yōu)化,完成危化品倉(cāng)庫(kù)三維重建的監(jiān)測(cè)預(yù)警工作。