孫海迅,羅健欣,潘志松,張艷艷,鄭義桀
(陸軍工程大學(xué) 指揮控制工程學(xué)院,江蘇 南京 210001)
單應(yīng)性矩陣反映了空間中的點(diǎn)在兩個(gè)投影平面的坐標(biāo)變換關(guān)系,在圖像拼接[1]、三維重建[2]等計(jì)算視覺(jué)領(lǐng)域有廣泛應(yīng)用。
在多視圖幾何中,單應(yīng)性矩陣求解的一種經(jīng)典方法是基于圖像特征點(diǎn)匹配的隨機(jī)抽樣一致性算法(RANSAC)[3]與總體最小二乘(Total Least Squares,TLS)[4]相結(jié)合的方法。其中,特征點(diǎn)匹配主要是找到不同視角的圖像上特征點(diǎn)的對(duì)應(yīng)關(guān)系,特征點(diǎn)檢測(cè)可采用SIFT[5]、SURF[6]等方法;RANSAC算法的作用主要是從特征點(diǎn)對(duì)中消除誤匹配,準(zhǔn)確找出正確的匹配對(duì)(內(nèi)點(diǎn)),根據(jù)內(nèi)點(diǎn)的對(duì)應(yīng)關(guān)系構(gòu)造線(xiàn)性方程組用TLS求解。
由于經(jīng)典RANSAC方法存在迭代次數(shù)多、需要人為定義內(nèi)點(diǎn)閾值等問(wèn)題,研究人員提出了多種魯棒方法[7-14]。例如將RANSAC求解過(guò)程與貝葉斯方法結(jié)合起來(lái)的MAPSAC[8],應(yīng)用圖分割方法進(jìn)行局部?jī)?yōu)化的GC-RANSAC[9],通過(guò)加權(quán)最小二乘擬合優(yōu)化求解的MAGSAC[10]及其改進(jìn)版本MAGSAC++[11],將各種現(xiàn)有RANSAC類(lèi)方法進(jìn)行了有機(jī)融合的USACv20[12]。另外,還有利用特征點(diǎn)的幾何位置關(guān)系進(jìn)行誤匹配濾除方法,如文獻(xiàn)[7]提出了一種基于改進(jìn)RANSAC的方法,利用了特征點(diǎn)的距離信息;文獻(xiàn)[13]利用四個(gè)特征點(diǎn)構(gòu)成的幾何形狀,提出了一種基于保序性約束和相似性度量的估計(jì)方法;文獻(xiàn)[14]提出了一種單應(yīng)性矩陣自適應(yīng)估計(jì)方法,克服了RANSAC需要人為設(shè)置閾值的缺點(diǎn)。
當(dāng)前求解單應(yīng)性矩陣各種方法的研究重點(diǎn)大都在于如何濾除誤匹配點(diǎn)得到內(nèi)點(diǎn),在得到內(nèi)點(diǎn)后采用傳統(tǒng)的TLS方法求解線(xiàn)性方程組,而對(duì)于內(nèi)點(diǎn)噪聲普遍較大的情況下,如何精確求解單應(yīng)性矩陣研究較少。事實(shí)上,當(dāng)內(nèi)點(diǎn)坐標(biāo)比較準(zhǔn)確時(shí),用TLS方法能準(zhǔn)確求解單應(yīng)性矩陣,而當(dāng)內(nèi)點(diǎn)噪聲較大時(shí),用TLS求解精度會(huì)有所下降。本文針對(duì)以上問(wèn)題,對(duì)方程組中噪聲矩陣的結(jié)構(gòu)進(jìn)行分析研究,充分考慮到噪聲列之間的相關(guān)性,提出了一種基于約束總體最小二乘(CTLS,Constrained Total Least Squares)[15]的單應(yīng)性矩陣優(yōu)化求解方法。
如圖1所示,若空間中一平面π方程為:nTX+d=0,其中,n∈R3×1表示平面法向量,X∈R3×1表示平面上任一點(diǎn)的三維坐標(biāo),d∈R3×1為一常數(shù)向量,文中上標(biāo)T均表示矩陣或向量的轉(zhuǎn)置,上標(biāo)-1均表示矩陣的逆;圖中O1、O2為兩個(gè)相機(jī)的光心,R∈R3×3、t∈R3×1為相機(jī)的旋轉(zhuǎn)矩陣和平移向量。
圖1 空間中平面在不同視角投影示意圖
則空間點(diǎn)X對(duì)應(yīng)的兩幅圖像上的投影像素x1,x2∈R3×1有如下關(guān)系:
(1)
(2)
當(dāng)匹配點(diǎn)對(duì)大于4對(duì)時(shí),令H33=1,并構(gòu)建方程組Ax=b,即:
(3)
其中,上標(biāo)(i)表示第i對(duì)匹配點(diǎn)。求解以上方程的經(jīng)典方法是TLS,即認(rèn)為在系數(shù)矩陣A∈R2n×8和向量b∈R2n×1同時(shí)含有高斯噪聲,對(duì)應(yīng)的噪聲矩陣和噪聲向量分別為E和e,于是將方程重新構(gòu)造為:
(A+E)x=b+e
(4)
B=UΣVT
(5)
最小奇異值對(duì)應(yīng)的右奇異向量V8=(v0,v1,…,v8)T∈R9×1,則方程組的解為:
(6)
以上方法雖然速度較快,但單純假設(shè)系數(shù)矩陣A上存在高斯噪聲并不符合方程的原型,通過(guò)觀(guān)察發(fā)現(xiàn),A的某些元素(如第3列與第6列)是常數(shù),不存在噪聲。另外,A的最后兩列是兩個(gè)坐標(biāo)相乘的形式,疊加在其上的噪聲并不是高斯噪聲。
約束總體最小二乘法(CTLS)常被作為對(duì)經(jīng)典TLS和普通最小二乘法(Ordinary Least Squares,OLS)的一種改進(jìn)方法,在國(guó)內(nèi)也有相關(guān)的研究[16-20]。文獻(xiàn)[17]提出了一種基于CTLS的到達(dá)時(shí)差到達(dá)頻差無(wú)源定位算法,降低了定位誤差;文獻(xiàn)[20]還將CTLS應(yīng)用于點(diǎn)云拼接,提高了參數(shù)求解精度。
對(duì)于單應(yīng)性矩陣的求解,更合理的方法是考慮到A與b上噪聲列的相互關(guān)系,將方程求解問(wèn)題重新構(gòu)造為CTLS問(wèn)題,即假定高斯噪聲存在于像素坐標(biāo)(u2,v2)T和(u1,v1)T上,所有的噪聲形成一個(gè)基本的噪聲向量w,而疊加在B上的噪聲矩陣D的每一列都可以由w生成,它們具有一定的線(xiàn)性關(guān)系,即可寫(xiě)成如下形式:
D=[F0w,F1w,…,F8w]
(7)
其中,F(xiàn)0,F1,…,F8為不同的系數(shù)矩陣,則根據(jù)文獻(xiàn)[15],這一CTLS問(wèn)題的求解即變成如下的優(yōu)化問(wèn)題:
(8)
并且可以通過(guò)最小化以下?lián)p失函數(shù)得到方程解:
(9)
其中,
(10)
具體實(shí)現(xiàn)方法如下:
設(shè)第i對(duì)匹配點(diǎn)的像素坐標(biāo)為:
i=0,1,…,n-1
(11)
疊加在其上的高斯噪聲為:
(12)
于是,可得基本的噪聲向量:
(13)
設(shè)bj為矩陣B的第j行,則bj對(duì)si的雅各比矩陣(一階偏導(dǎo)數(shù))為:
Jsibj=
當(dāng)j=2i,i=0,1,…,n-1
(14)
Jsibj=
當(dāng)j=2i+1,i=0,1,…,n-1
(15)
于是,疊加在B的第k列的一階噪聲擾動(dòng)可表示為:
Dk=Fkw∈R2n×1,k=0,1,…,8
(16)
(17)
(18)
(19)
(20)
(21)
于是,便可以利用梯度下降法進(jìn)行優(yōu)化求解,損失E對(duì)z的梯度為:
Jsibj·z)
(22)
Jsibj·z)
(23)
另外,為增強(qiáng)計(jì)算的魯棒性,常采用歸一化圖像坐標(biāo)進(jìn)行計(jì)算,歸一化的方式為:
(24)
其中,u、v表示歸一化之前的像素坐標(biāo),l表示圖像的像素寬度,u0、v0表示圖像中心點(diǎn)的像素坐標(biāo),歸一化之后的圖像坐標(biāo)介于[-0.5,0.5]。
為了對(duì)比實(shí)驗(yàn)效果,在此加入其他兩種方法——OLS和數(shù)據(jù)最小二乘法(Data Least Squares,DLS)。OLS的求解可在通用矩陣教材中找到,DLS的求解由文獻(xiàn)[21]給出。
對(duì)于最小二乘問(wèn)題Ax=b各種求解方法總結(jié)如下:
(1)普通最小二乘法(OLS)。
xOLS=(ATA)-1ATb
(25)
(2)數(shù)據(jù)最小二乘法(DLS)。
(26)
其中,vDLS是矩陣Pb·A最小奇異值對(duì)應(yīng)的右奇異向量,Pb=(I-b(bTb)-1bT)是一投影矩陣,I是單位矩陣。
(3)總體最小二乘法(TLS)。
(27)
其中,vTLS是矩陣B=(A|b)最小奇異值對(duì)應(yīng)的右奇異向量,vlast是vTLS的最后一位元素。
(4)約束總體最小二乘法(CTLS)。
(28)
相關(guān)符號(hào)說(shuō)明見(jiàn)公式(10)。
評(píng)價(jià)標(biāo)準(zhǔn)為:
(1)平均坐標(biāo)轉(zhuǎn)換損失。
Transfer Loss=
(29)
其中,n表示匹配點(diǎn)對(duì)的數(shù)量,上標(biāo)(i)表示第i對(duì)匹配點(diǎn),合成數(shù)據(jù)采用n=50。
(2)與真實(shí)H0矩陣之差的Frobenius范數(shù)平方。
(30)
從圖2中可以看出,當(dāng)噪聲較小時(shí),四種方法都能求解準(zhǔn)確,噪聲標(biāo)準(zhǔn)差在1~5像素時(shí),四種方法的平均坐標(biāo)轉(zhuǎn)換損失在4個(gè)像素以下,且互相之間的求解結(jié)果相差不到1像素;但隨著噪聲標(biāo)準(zhǔn)增大,CTLS的平均坐標(biāo)轉(zhuǎn)換損失小于其他幾種方法,且相同條件下δH的Frobenius 范數(shù)也較小。
單應(yīng)性矩陣中不同元素的偏差對(duì)坐標(biāo)轉(zhuǎn)換的影響不盡相同,所以δH的F范數(shù)與相應(yīng)的坐標(biāo)轉(zhuǎn)換損失沒(méi)有嚴(yán)格的正相關(guān)關(guān)系,如圖2所示,但在噪聲相同的情況下,δH的F范數(shù)仍能從一個(gè)側(cè)面反映出四種方法的求解精度。
單應(yīng)性矩陣常用在圖像拼接上,下面選取在不同視角下拍攝的圖像。首先利用SURF提取特征點(diǎn),用RANSAC去除誤匹配,再分別用以上OLS、TLS、CTLS三種方法求單應(yīng)性矩陣(從實(shí)驗(yàn)3.1發(fā)現(xiàn)DLS與TLS求解結(jié)果接近,下面不再單獨(dú)展示),用單應(yīng)性矩陣對(duì)圖像拼接,拼接的結(jié)果可以從直觀(guān)上驗(yàn)證H矩陣的求解精度。
圖2 合成數(shù)據(jù)下4種方法的平均坐標(biāo)轉(zhuǎn)換損失對(duì)比與δH的F范數(shù)平方對(duì)比
由于SIFT、SURF等方法在清晰圖像上的特征點(diǎn)檢測(cè)比較準(zhǔn)確,包含在特征點(diǎn)圖像坐標(biāo)上的噪聲較小,經(jīng)典的TLS可以將圖像拼接的較為準(zhǔn)確。但對(duì)于模糊圖像,由于噪聲影響,特征點(diǎn)檢測(cè)變得不準(zhǔn)確,拼接效果會(huì)打折扣,下面選取兩組圖像,第一組中相機(jī)位置只進(jìn)行旋轉(zhuǎn),第二組中相機(jī)位置變化主要是平移。對(duì)每組中第二幅圖采用不同的滑動(dòng)窗口進(jìn)行均值模糊(5-10),在特征點(diǎn)匹配的基礎(chǔ)上,分別用求單應(yīng)性矩陣并拼接,為對(duì)比實(shí)驗(yàn)效果,未對(duì)圖像接縫處采取平滑處理。
對(duì)第一組圖像,實(shí)驗(yàn)發(fā)現(xiàn),OLS對(duì)圖像的拼接結(jié)果存在錯(cuò)位(框處),TLS雖能拼接準(zhǔn)確,但右側(cè)建筑出現(xiàn)了傾斜和形變,CTLS拼接效果較好,如圖3、圖4所示。
圖3 待測(cè)圖像(右圖經(jīng)過(guò)均值模糊(滑動(dòng)窗口10*10))
圖4 不同方法對(duì)圖3的拼接結(jié)果(上:OLS,中:TLS,下:CTLS)
第二組圖像拼接對(duì)比結(jié)果如圖5與圖6所示,用OLS和TLS拼接結(jié)果都出現(xiàn)錯(cuò)位,CTLS能對(duì)圖像拼接準(zhǔn)確。
圖5 待測(cè)圖像(右圖經(jīng)過(guò)均值模糊(滑動(dòng)窗口5*5)(原圖來(lái)自ETH3D數(shù)據(jù)集[22]))
圖6 不同方法對(duì)圖5的拼接結(jié)果(上:OLS,中:TLS,下:CTLS)
在計(jì)算機(jī)視覺(jué)領(lǐng)域,單應(yīng)性矩陣常用來(lái)表示兩個(gè)平面的坐標(biāo)變換關(guān)系。傳統(tǒng)的基于RANSAC和TLS的求解方法在某些情況下的求解精度會(huì)下降,而當(dāng)前關(guān)于特征點(diǎn)坐標(biāo)噪聲較大時(shí)的求解方法研究較少。該文在文獻(xiàn)[4]和文獻(xiàn)[15]的基礎(chǔ)上,提出了一種基于CTLS的單應(yīng)性矩陣求解方法,將像素坐標(biāo)上存在高斯噪聲作為基本假設(shè),考慮了噪聲矩陣列之間的相關(guān)性,并給出了具體求解步驟。分別在合成數(shù)據(jù)和真實(shí)圖像上驗(yàn)證算法的求解精度,證明了在特征點(diǎn)噪聲誤差較大的情況下,基于CTLS的單應(yīng)性矩陣求解要優(yōu)于經(jīng)典的TLS與OLS、DLS方法。另一方面,由于CTLS問(wèn)題目前還沒(méi)有閉式解,只能通過(guò)梯度下降等優(yōu)化方法求解,速度不如求解TLS等其他方法快。未來(lái)對(duì)于CTLS求解速度的提升具有一定的研究?jī)r(jià)值。