本發(fā)明涉及計(jì)算機(jī)視覺(jué)、攝影測(cè)量領(lǐng)域,具體而言,涉及一種低維度的集束調(diào)整計(jì)算方法與系統(tǒng)。
背景技術(shù):
集束調(diào)整(bundleadjustment),即從多幅視圖中恢復(fù)三維場(chǎng)景點(diǎn)坐標(biāo)、運(yùn)動(dòng)參數(shù)及相機(jī)參數(shù),是計(jì)算機(jī)視覺(jué)和攝影測(cè)量等領(lǐng)域的核心技術(shù)之一。集束調(diào)整技術(shù)的目標(biāo)是使得圖像點(diǎn)的重投影誤差最小化,而重投影誤差可表示為三維場(chǎng)景點(diǎn)坐標(biāo)、運(yùn)動(dòng)參數(shù)及相機(jī)參數(shù)的非線性函數(shù)。對(duì)于有m個(gè)三維場(chǎng)景點(diǎn)和n幅視圖的情形,參數(shù)空間為3*m+6*n維。由于三維場(chǎng)景點(diǎn)的數(shù)目通常很大,造成待優(yōu)化的參數(shù)空間的維度巨大。目前,集束調(diào)整的主流方法是采用考慮參數(shù)雅克比(jacobian)矩陣稀疏性的非線性優(yōu)化算法實(shí)現(xiàn),以提升計(jì)算速度,但主流方法的參數(shù)空間的維度較多,仍有待于進(jìn)一步改進(jìn),以適應(yīng)實(shí)時(shí)計(jì)算的需求。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的是提供一種低維度的集束調(diào)整計(jì)算方法與系統(tǒng)。本發(fā)明將多幅視圖的景深表示為兩兩視圖的相對(duì)運(yùn)動(dòng)參數(shù)的函數(shù),實(shí)現(xiàn)了從多幅視圖直接恢復(fù)運(yùn)動(dòng)參數(shù),再?gòu)倪\(yùn)動(dòng)參數(shù)中解析獲得三維場(chǎng)景點(diǎn)坐標(biāo)。
根據(jù)本發(fā)明提供的一種低維度的集束調(diào)整計(jì)算方法,包括如下步驟:
步驟1:確定運(yùn)動(dòng)參數(shù)的初值;
步驟2:對(duì)運(yùn)動(dòng)參數(shù)的目標(biāo)函數(shù)進(jìn)行最小化計(jì)算,得到優(yōu)化后的運(yùn)動(dòng)參數(shù);
步驟3:根據(jù)優(yōu)化后的運(yùn)動(dòng)參數(shù),計(jì)算三維場(chǎng)景點(diǎn)坐標(biāo)。
優(yōu)選地,所述步驟1包括如下步驟:
步驟1.1:對(duì)于第j幅和第j+1幅視圖構(gòu)成的雙視圖,j=1,2,...,n-1,對(duì)該雙視圖上的公共匹配特征點(diǎn)集{j,j+1}所對(duì)應(yīng)的圖像特征點(diǎn),采用直接線性變換算法,求解第j+1幅視圖相對(duì)于第j幅視圖的相對(duì)位姿(rj,j+1,tj,j+1);
其中:
n為參與集束調(diào)整的視圖數(shù)目;
rj,j+1為第j+1幅視圖相對(duì)于第j幅視圖的相對(duì)姿態(tài);
tj,j+1為第j+1幅視圖相對(duì)于第j幅視圖的單位相對(duì)位移向量,即||tj,j+1||=1;
計(jì)算公共匹配特征點(diǎn)集{j,j+1}所對(duì)應(yīng)的第i個(gè)匹配圖像點(diǎn)對(duì)在第j幅視圖坐標(biāo)系下的三維坐標(biāo)
其中:
i=1,2,...,m(j,j+1);
m(j,j+1)表示第j幅和第j+1幅視圖組成的雙視圖中的匹配圖像點(diǎn)對(duì)數(shù)目;
步驟1.2:固定||t1,2||=1;對(duì)于第j-1幅、第j幅以及第j+1幅視圖構(gòu)成的三視圖,j=2,3,...,n-1,根據(jù)該三視圖上的公共匹配特征點(diǎn)集{j-1,j,j+1},計(jì)算相對(duì)位移的尺度||tj,j+1||/||tj-1,j||,得到尺度統(tǒng)一的相對(duì)位移向量tj,j+1:
tj,j+1=||tj,j+1||tj,j+1;
其中:
t1,2為第2幅視圖相對(duì)于第1幅視圖的相對(duì)位移向量;
tj,j+1為第j+1幅視圖相對(duì)于第j幅視圖的相對(duì)位移向量;
tj-1,j為第j幅視圖相對(duì)于第j-1幅視圖的相對(duì)位移向量;
m(j-1,j,j+1)表示第j-1幅、第j幅以及第j+1視圖幅構(gòu)成的三視圖中的公共匹配圖像點(diǎn)對(duì)數(shù)目;
tj,j+1為第j+1幅視圖相對(duì)于第j幅視圖的單位相對(duì)位移向量;
步驟1.3:根據(jù)第j幅視圖的絕對(duì)位姿(rj,tj),計(jì)算得到第j+1幅視圖的絕對(duì)位姿(rj+1,tj+1):
rj+1=rj,j+1rj
tj+1=tj,j+1+rj,j+1tj
其中:
rj表示第j幅視圖的絕對(duì)姿態(tài);
rj+1表示第j+1幅視圖的絕對(duì)姿態(tài);
rj,j+1為第j+1幅視圖相對(duì)于第j幅視圖的相對(duì)姿態(tài);
tj表示第j幅視圖的絕對(duì)位移向量;
tj+1表示第j+1幅視圖的絕對(duì)位移向量;
tj,j+1為第j+1幅視圖相對(duì)于第j幅視圖的相對(duì)位移向量;
當(dāng)以第一幅視圖為參考時(shí):
(r1,t1)≡(i3,03×1)
其中:
r1表示第一幅視圖的絕對(duì)姿態(tài);
t1表示第一幅視圖的絕對(duì)位移向量;
i3表示3維的單位矩陣;
03×1表示3行1列的零矩陣。
優(yōu)選地,在所述步驟2中,所述運(yùn)動(dòng)參數(shù)的目標(biāo)函數(shù)具體如下:
運(yùn)動(dòng)參數(shù)θ=(rj,tj)j=1,2,...n的最小化目標(biāo)函數(shù)δ(θ)如下給出:
e3=[001]t
其中:
θ表示所有視圖的絕對(duì)位姿參數(shù)集合;
δ(·)表示最小化目標(biāo)函數(shù);
m(j,k)表示第j幅和第k幅視圖組成的雙視圖中的匹配圖像點(diǎn)對(duì)數(shù)目;
rj,k為第k幅視圖相對(duì)于第j幅視圖的相對(duì)姿態(tài);
tj,k為第k幅視圖相對(duì)于第j幅視圖的相對(duì)位移向量。
優(yōu)選地,所述步驟2中給出的運(yùn)動(dòng)參數(shù)θ=(rj,tj)j=1,2,...n的最小化目標(biāo)函數(shù)δ(θ)的前提是:相同三維場(chǎng)景點(diǎn)到相同視圖的距離相等。
優(yōu)選地,所述步驟3包括如下步驟:
根據(jù)優(yōu)化得到的運(yùn)動(dòng)參數(shù)θ=(rj,tj)j=1,2,...n,對(duì)于第j幅和第k幅視圖構(gòu)成的雙視圖,加權(quán)計(jì)算三維場(chǎng)景點(diǎn)的坐標(biāo)如下:
tj,k=tk-rj,ktj
其中:
xi表示第i個(gè)三維場(chǎng)景點(diǎn)的三維坐標(biāo),該三維場(chǎng)景點(diǎn)xi對(duì)應(yīng)第j幅和第k幅視圖構(gòu)成的雙視圖中的第s個(gè)圖像特征點(diǎn);
rj表示第j幅視圖的絕對(duì)姿態(tài);
tj,k為第k幅視圖相對(duì)于第j幅視圖的相對(duì)位移向量;
rk表示第k幅視圖的絕對(duì)姿態(tài);
tj表示第j幅視圖的絕對(duì)位移向量;
tk表示第k幅視圖的絕對(duì)位移向量;
rj,k表示第k幅視圖相對(duì)于第j幅視圖的相對(duì)姿態(tài);
tj,k表示第k幅視圖相對(duì)于第j幅視圖的相對(duì)位移向量。
優(yōu)選地,所述低維度的集束調(diào)整計(jì)算方法,考慮相機(jī)已標(biāo)定的情形,并假設(shè)已經(jīng)確定了各視圖間的匹配圖像點(diǎn)對(duì)。
根據(jù)本發(fā)明提供的一種低維度的集束調(diào)整計(jì)算系統(tǒng),包括存儲(chǔ)有計(jì)算機(jī)程序的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述的低維度的集束調(diào)整計(jì)算方法的步驟。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:
本發(fā)明是一種初始化簡(jiǎn)便、魯邦性好、計(jì)算速度更快、計(jì)算精度更高的低維度集束調(diào)整方法。本發(fā)明可用作無(wú)人車/無(wú)人機(jī)視覺(jué)導(dǎo)航、視覺(jué)三維重建、增強(qiáng)現(xiàn)實(shí)等應(yīng)用的核心計(jì)算引擎。
附圖說(shuō)明
通過(guò)閱讀參照以下附圖對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
圖1為根據(jù)本發(fā)明提供的低維度集束調(diào)整方法的步驟流程圖。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。以下實(shí)施例將有助于本領(lǐng)域的技術(shù)人員進(jìn)一步理解本發(fā)明,但不以任何形式限制本發(fā)明。應(yīng)當(dāng)指出的是,對(duì)本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變化和改進(jìn)。這些都屬于本發(fā)明的保護(hù)范圍。
本發(fā)明將景深表示為運(yùn)動(dòng)參數(shù)的函數(shù),從而將三維場(chǎng)景點(diǎn)坐標(biāo)從集束調(diào)整的參數(shù)優(yōu)化過(guò)程中剔除。對(duì)于有m個(gè)三維場(chǎng)景點(diǎn)和n幅視圖的情形,參數(shù)空間為6*n維。相比當(dāng)前的主流方法,本發(fā)明提出的集束調(diào)整方法大幅降低了參數(shù)空間的維度。
本發(fā)明考慮相機(jī)已標(biāo)定的情形,并假設(shè)已經(jīng)確定了各視圖間的匹配圖像點(diǎn)對(duì)。
下面對(duì)代式的一般形式進(jìn)行解釋說(shuō)明定義:
假定n為集束調(diào)整的視圖數(shù)目,依次編號(hào)為視圖1,視圖2,…視圖n;
(ri,ti)表示第i幅視圖的絕對(duì)位姿;
ri表示第i幅視圖的絕對(duì)姿態(tài);
ti=||ti||ti表示第i幅視圖的絕對(duì)位移向量;
ti表示第i幅視圖的單位絕對(duì)位移向量,即||ti||=1;
θ表示所有視圖的絕對(duì)位姿參數(shù)集合;
tj,k≡tk-rjktj表示第k幅視圖相對(duì)于第j幅視圖的相對(duì)位移向量;
tj,k=||tj,k||tj,k,tj,k為第k幅視圖相對(duì)于第j幅視圖的單位相對(duì)位移向量,即||tj,k||=1;
(rj,k,tj,k)表示第k幅視圖相對(duì)于第j幅視圖的相對(duì)位姿;
{j}表示第j幅視圖上所有的特征點(diǎn)集;
{j,k}表示第j幅和第k幅視圖上的公共匹配特征點(diǎn)集,{j,k,...}以此類推,表示三幅以上視圖上的公共匹配特征點(diǎn)集;
(j,k)表示第j幅和第k幅視圖組成的雙視圖;
m(j,k)表示第j幅和第k幅視圖組成的雙視圖中的匹配圖像點(diǎn)對(duì)數(shù)目;
根據(jù)本發(fā)明提供的一種低維度集束調(diào)整方法,包括如下步驟:
步驟1:確定運(yùn)動(dòng)參數(shù)的初值;
步驟2:對(duì)運(yùn)動(dòng)參數(shù)的目標(biāo)函數(shù)進(jìn)行最小化計(jì)算,得到優(yōu)化后的運(yùn)動(dòng)參數(shù);
步驟3:根據(jù)優(yōu)化后的運(yùn)動(dòng)參數(shù),計(jì)算三維場(chǎng)景點(diǎn)坐標(biāo)。
下面對(duì)各個(gè)步驟進(jìn)行詳細(xì)說(shuō)明。
所述步驟1包括如下步驟:
步驟1.1:對(duì)于第j幅和第j+1幅視圖構(gòu)成的雙視圖,j=1,2,...,n-1,對(duì)該雙視圖上的公共匹配特征點(diǎn)集{j,j+1}所對(duì)應(yīng)的圖像特征點(diǎn),采用直接線性變換(dlt,directlineartransformation)算法,求解第j+1幅視圖相對(duì)于第j幅視圖的相對(duì)位姿(rj,j+1,tj,j+1);
其中:
n為參與集束調(diào)整的視圖數(shù)目;
rj,j+1為第j+1幅視圖相對(duì)于第j幅視圖的相對(duì)姿態(tài);
tj,j+1為第j+1幅視圖相對(duì)于第j幅視圖的單位相對(duì)位移向量,即||tj,j+1||=1;
計(jì)算公共匹配特征點(diǎn)集{j,j+1}所對(duì)應(yīng)的第i個(gè)匹配圖像點(diǎn)對(duì)在第j幅視圖坐標(biāo)系下的三維坐標(biāo)
其中:
i=1,2,...,m(j,j+1);
m(j,j+1)表示第j幅和第j+1幅視圖組成的雙視圖中的匹配圖像點(diǎn)對(duì)數(shù)目;
步驟1.2:不失一般性,固定||t1,2||=1;對(duì)于第j-1幅、第j幅以及第j+1幅視圖構(gòu)成的三視圖,j=2,3,...,n-1,根據(jù)該三視圖上的公共匹配特征點(diǎn)集{j-1,j,j+1},計(jì)算相對(duì)位移的尺度||tj,j+1||/||tj-1,j||,得到尺度統(tǒng)一的相對(duì)位移向量tj,j+1:
tj,j+1=||tj,j+1||tj,j+1;
其中:
t1,2為第2幅視圖相對(duì)于第1幅視圖的相對(duì)位移向量;
tj,j+1為第j+1幅視圖相對(duì)于第j幅視圖的相對(duì)位移向量;
tj-1,j為第j幅視圖相對(duì)于第j-1幅視圖的相對(duì)位移向量;
m(j-1,j,j+1)表示第j-1幅、第j幅以及第j+1視圖幅構(gòu)成的三視圖中的公共匹配圖像點(diǎn)對(duì)數(shù)目;
tj,j+1為第j+1幅視圖相對(duì)于第j幅視圖的單位相對(duì)位移向量;
步驟1.3:根據(jù)第j幅視圖的絕對(duì)位姿(rj,tj),計(jì)算得到第j+1幅視圖的絕對(duì)位姿(rj+1,tj+1):
rj+1=rj,j+1rj
tj+1=tj,j+1+rj,j+1tj
其中:
rj表示第j幅視圖的絕對(duì)姿態(tài);
rj+1表示第j+1幅視圖的絕對(duì)姿態(tài);
rj,j+1為第j+1幅視圖相對(duì)于第j幅視圖的相對(duì)姿態(tài);
tj表示第j幅視圖的絕對(duì)位移向量;
tj+1表示第j+1幅視圖的絕對(duì)位移向量;
tj,j+1為第j+1幅視圖相對(duì)于第j幅視圖的相對(duì)位移向量;
當(dāng)以第一幅視圖為參考時(shí):
(r1,t1)≡(i3,03×1)
其中:
r1表示第一幅視圖的絕對(duì)姿態(tài);
t1表示第一幅視圖的絕對(duì)位移向量;
i3表示3維的單位矩陣;
03×1表示3行1列的零矩陣;
需要說(shuō)明的是:
--在步驟1.1中,j的取值為j=1,2,...,n-1;
--在步驟1.2中,j的取值為j=2,3,...,n-1;
--在步驟1.3中,j的取值為j=1,2,...,n-1。
在所述步驟2中,所述運(yùn)動(dòng)參數(shù)的目標(biāo)函數(shù)具體如下:
在相同三維場(chǎng)景點(diǎn)到相同視圖的距離相等的前提下,運(yùn)動(dòng)參數(shù)θ=(rj,tj)j=1,2,...n的最小化目標(biāo)函數(shù)δ(θ)如下給出:
e3=[001]t
其中:
θ表示所有視圖的絕對(duì)位姿參數(shù)集合;
δ(·)表示最小化目標(biāo)函數(shù);
m(j,k)表示第j幅和第k幅視圖組成的雙視圖中的匹配圖像點(diǎn)對(duì)數(shù)目;
rj,k為第k幅視圖相對(duì)于第j幅視圖的相對(duì)姿態(tài);
tj,k為第k幅視圖相對(duì)于第j幅視圖的相對(duì)位移向量;
由于通過(guò)步驟2已對(duì)步驟1得到的運(yùn)動(dòng)參數(shù)的初值進(jìn)行了優(yōu)化,得到了運(yùn)動(dòng)參數(shù)的優(yōu)化值,因此,步驟3是根據(jù)運(yùn)動(dòng)參數(shù)的優(yōu)化值進(jìn)行計(jì)算。具體地,所述步驟3包括如下步驟:
根據(jù)優(yōu)化得到的運(yùn)動(dòng)參數(shù)θ=(rj,tj)j=1,2,...n,對(duì)于第j幅和第k幅視圖構(gòu)成的雙視圖,加權(quán)計(jì)算三維場(chǎng)景點(diǎn)的坐標(biāo)如下:
tj,k=tk-rj,ktj
其中:
xi表示第i個(gè)三維場(chǎng)景點(diǎn)的三維坐標(biāo),該三維場(chǎng)景點(diǎn)xi對(duì)應(yīng)第j幅和第k幅視圖構(gòu)成的雙視圖中的第s個(gè)圖像特征點(diǎn);
rj表示第j幅視圖的絕對(duì)姿態(tài);
tj,k為第k幅視圖相對(duì)于第j幅視圖的相對(duì)位移向量;
rk表示第k幅視圖的絕對(duì)姿態(tài);
tj表示第j幅視圖的絕對(duì)位移向量;
tk表示第k幅視圖的絕對(duì)位移向量;
rj,k表示第k幅視圖相對(duì)于第j幅視圖的相對(duì)姿態(tài);
tj,k表示第k幅視圖相對(duì)于第j幅視圖的相對(duì)位移向量。
以上對(duì)本發(fā)明的具體實(shí)施例進(jìn)行了描述。需要理解的是,本發(fā)明并不局限于上述特定實(shí)施方式,本領(lǐng)域技術(shù)人員可以在權(quán)利要求的范圍內(nèi)做出各種變化或修改,這并不影響本發(fā)明的實(shí)質(zhì)內(nèi)容。在不沖突的情況下,本申請(qǐng)的實(shí)施例和實(shí)施例中的特征可以任意相互組合。