本發(fā)明涉及本發(fā)明涉及數(shù)字圖像處理與計算機視覺領域,具體是對一段時間拍攝的圖片序列,估計出攝像機的位姿,生成2D全景視頻的方法。
背景技術:
圖像的特征提取和描述是基于特征的圖像處理和計算機視覺的基礎環(huán)節(jié),特征檢測算子的檢測性能和描述算子的表征性能直接決定了圖像處理的效率和精度。在實際問題中圖像可能受到噪聲、背景的干擾,也可能發(fā)生視角、光照、尺度、平移、旋轉、仿射等,選擇合理的圖像特征和描述算子,使得這些特征不僅具有良好的表征性而且具有良好的魯棒性是一個十分關鍵的問題。
三角測量法用于從二維的圖像對或者視頻序列中恢復出相應的三維信息,其中包括成像攝像機的位姿信息以及場景的結構信息。
Bundleadjustment在計算機視覺中是每一個基于特征的三維重建算法的最好的優(yōu)化算法,該算法用于優(yōu)化計算出來的相機光心和重建的三維點。
技術實現(xiàn)要素:
發(fā)明目的:本發(fā)明的目的是為了解決現(xiàn)有技術的不足,提供一種基于相機位姿估計的2D全景視頻生成方法,通過對圖片序列的位姿估計,再將位姿信息投影到采樣空間生成2D全景視頻。
技術方案:為了實現(xiàn)以上目的,一種基于相機位姿估計和空間采樣的2D全景視頻生成,該方法的具體步驟如下:
(1)根據(jù)輸入的一組視頻幀,利用相鄰視頻幀圖像間的匹配特征點信息和多視角模型標定出相機的初始位置和姿態(tài),并利用bundle adjustment算法優(yōu)化每一幀對應的相機位置和姿態(tài),最終獲得每一視頻幀所對應的精確的相機位置和姿態(tài),構成相機位姿集合;
(2)根據(jù)相機位姿集合中的相機的位置和姿態(tài)在空間中的分布情況,擬合出一個2D采樣曲面,并在采樣2D曲面上選取n個采樣點;
(3)根據(jù)步驟2中所述相機的位置和姿態(tài)定義空間度量距離,對于每一個采樣點,在相機位姿集合中選取距離當前采樣點最近鄰相機所對應的視頻幀作為當前采樣點的圖像;
(4)在空間2D采樣曲面上選一條路徑,被所述路徑穿過的采樣點圖像構成一個圖像序列,展示圖像序列所記錄的場景內容,構成一個空間全景視圖。
步驟(1)所述的具體操作步驟為:
a)通過公式判別特征點p是否是一個特征點,其中I(x)為圓周任一點像素值,I(p)為候選點像素值,ε為相差閥值,,N為圓周上有N個點滿足則為角點,用機器學習的方法篩選最優(yōu)特征點,用非極大值抑制算法去除臨近位置多個特征點;
b)建立多尺度空間的圖像金字塔,實現(xiàn)特征點的多尺度不變性;
c)特征點的旋轉不變性,通過矩來計算特征點以r為半徑范圍內的質心,特征點坐標到質心形成一個向量作為該特征點的方向;
d)利用張正友標定法,計算出相機的內參數(shù)矩陣K,相機畸變系數(shù)矩陣M;
e)利用相鄰圖像間的匹配特征點對的極線約束關系,對任一匹配特征點對x和x′,都符合x′FTx=0,使用RANSAC方法隨機抽樣n個特征點對進行基礎矩陣F的計算;
f)將基礎矩陣F轉換至歸一化圖像坐標下的本征矩陣E=K′FTK,將本征矩陣E進行奇異值分解,得到相鄰相機的外參數(shù)矩陣Rt2的四個可能的相機外參數(shù)矩陣;
g)利用四個可能的相機外參數(shù)矩陣對三維點進行三角測量,并利用三維點始終在相機前這一空間位置關系篩選出四個可能的相機外參數(shù)矩陣中的唯一一個正確的相機外參數(shù)矩陣,并在所有雙視角模型的外參數(shù)矩陣計算完畢后,將其進行平均化處理,減小最大誤差;
h)將所述雙視角模型統(tǒng)一坐標系,轉換至攝像機坐標系中,然后對整個多視角模型進行捆綁調整,通過調整相機的位姿、三維點云的位置最小化重投影誤差,將所有雙視角模型都添加進多視角模型中就完成多視角模型的創(chuàng)建。
步驟(2)中所述的,根據(jù)相機位姿集合中的相機的位置和姿態(tài)在空間中的分布情況,擬合出一個2D采樣曲面,并在采樣2D曲面上選取n個采樣點的具體操作步驟為,基于生成的相機位姿信息,插值生成2D采樣曲面;
具體為一個平面可被其法向量定義為n=(a,b,c),由點到平面的距離公式可定義平面為ax+by+cz+d=0,令C=1;則該公式可變?yōu)閍x+by+cz=-d;對所有相機坐標點有
利用最小二乘法:
可得
取所有視頻幀位姿信息質心為坐標原點,可以去掉第三行:
根據(jù)克拉默法則可得平面方程:
根據(jù)克拉默法則可得平面方程:
D=∑xx*∑yy-∑xy*∑xy
a=(∑yz*∑xy-∑xz*∑yy)/D
b=(∑xy*∑xz-∑xx*∑yz)/D
n=[a,b,1]T
b)生成n個采樣點Q=(x,y,z,q0,q1,q2,q3)T。
步驟(3)中所述的根據(jù)相機的位置和姿態(tài)定義空間度量距離,對于每一個采樣點,在相機位姿集合中選取距離當前采樣點最近鄰相機所對應的視頻幀作為當前采樣點的圖像,其具體操作步驟為:
將每一幀的6DOF位姿q=(X,R)∈S投影到采樣空間則相鄰幀的距離定義成p(q0,q1)=Wt*||F(X0,X1)||+Wr*||f(R0,R1)||;
利用定義的距離p,得到距離采樣點最近的K個視頻幀作為采樣點所對應的圖像。
步驟(4)中所述的在空間2D采樣曲面上選一條路徑,被這條路徑穿過的采樣點圖像構成一個圖像序列,展示這些圖像序列所記錄的場景內容,整個路徑上的圖像構成一個空間全景視圖,具體操作步驟為:
a)在擬合出的采樣空間中二維采樣曲面中選一條路徑;
b)每個采樣點展示的圖像序列為在采樣空間中離采樣點最近的相機位姿距離的圖像序列。其中距離定義采用了步驟(3)的空間度量距離定義。
有益效果:本發(fā)明所述的一種基于相機位姿估計和空間采樣的2D全景視頻生成,通過對圖片序列的位姿估計,再將位姿信息投影到采樣空間進行視頻采樣,這種圖像序列能夠很好的對物體進行全方位的展示。
附圖說明
圖1本發(fā)明流程圖;
圖2為高斯金字塔模型;
圖3為相機外參數(shù)矩陣Rt矩陣的四種可能解。
具體實施方式
下面結合附圖和實施例,進一步闡明本發(fā)明。
實施例
如圖1所示,本發(fā)明所述的一種基于相機位姿估計和空間采樣的2D全景視頻生成,該方法的具體步驟如下:
步驟(1)通過將拍攝的圖像序列使用二維圖像特征點的提取與匹配,實現(xiàn)在圖片序列上對特征點的追蹤:
1.1)判別點p是否是一個特征點,可以通過判斷以該特征點p為中心畫圓,該圓過16個像素點,設在圓周上的16個像素點中是否最少有n個連續(xù)的像素點滿足都比Ip+t大,或者都比Ip-t?。贿@里Ip指的點p的灰度值,t是一個閾值;如果滿足這樣的要求,則判斷p點是一個特征點,否則p點不是特征點,n的值一般設為12,計算公式為
其中I(x)為圓周任一點像素值,I(p)為候選點像素值,ε為相差閥值,N為圓周上有N個點滿足則為角點;
1.2)采用機器學習的方法篩選最優(yōu)特征點;具體就是使用ID3算法訓練一個決策樹,將1.1中特征點圓周上的16個像素輸入決策樹中,以此來篩選出最優(yōu)的FAST特征點;
1.3)非極大值抑制去除局部較密集特征點,具體為使用非極大值抑制算法去除臨近位置多個特征點,為每一個特征點計算出其響應大小,其計算方式是特征點P和其周圍16個特征點偏差的絕對值和;在比較臨近的特征點中,保留響應值較大的特征點,刪除其余的特征點;
1.4)建立多尺度空間的圖像金字塔,實現(xiàn)特征點的多尺度不變性,設置一個比例因子scaleFactor(默認為1.2)和金字塔的層數(shù)nlevels(默認為8);將原圖像按比例因子縮小成nlevels幅圖像;縮放后的圖像為:
I’=I/scaleFactork(k=1,2,…,nlevels);nlevels幅不同比例的圖像提取特征點總和作為這幅圖像的特征點;
1.5)特征點的旋轉不變性:使用矩(moment)法來確定FAST特征點的方向;即通過矩來計算特征點以r為半徑范圍內的質心,特征點坐標到質心形成一個向量作為該特征點的方向,矩定義如下:
其中,I(x,y)為圖像灰度表達式。該矩的質心為:
假設角點坐標為O,則向量的角度即為該特征點的方向。計算公式如下:
1.6)對于每一個特征點,考慮其31x31鄰域;不同于原始BRIEF算法的地方是,這里在對圖像進行高斯平滑之后,在31x31的窗口中,產生一對隨機點后,以隨機點為中心,取5x5的子窗口,比較兩個子窗口內的像素和的大小進行二進制編碼,而非僅僅由兩個隨機點決定二進制編碼這樣特征值更加具備抗噪性;
1.7)特征點匹配:設定一個閥值,當兩張圖片的描述符子的相似度大于其時,判斷為相同特征點。
步驟(2)利用相鄰圖像間的匹配點對信息標定出相機的位置和姿態(tài),利用三角測量方法計算出圖像匹配點所對應的三維點,求解出相機的位姿姿態(tài),并利用bundle adjustment優(yōu)化每一幀對應的相機姿態(tài),具體為:
利用張正友標定法,計算出相機的內參數(shù)矩陣
2.2)利用相鄰圖像間的匹配點對的極線約束關系,對任一個匹配點對X和X′,都符合X′FTX=0,使用RANSAC方法隨機抽樣n個特征點(默認為8)對進行基礎矩陣F的計算;
2.3)將基礎矩陣F轉換至歸一化圖像坐標下的本征矩陣E=K′FTK;將本征矩陣E進行奇異值分解,得到第一個相機外參數(shù)矩陣記為:
則相鄰相機的外參數(shù)矩陣Rt2的四個可能解為:
Rt2=(UWVT|+u3)
Rt2=(UWVT|-u3)
Rt2=(UWTVT|+u3)
Rt2=(UWTVT|-u3)
;
2.4)利用四個可能的相機外參數(shù)矩陣對三維點進行三角測量,兩個相機視線交會處即為三維點的空間位置,在此通過多個相機投影方程xi=K·Rti·X計算得到,并利用三維點始終在相機前這一空間位置關系篩選出四個可能解中的唯一一個正確解,并在所有雙視角模型的外參數(shù)矩陣計算完畢后,將其進行平均化處理,減小最大誤差;
2.5)對雙視角模型進行捆綁調整,將相機內參數(shù)矩陣,標定出的相機位姿矩陣,三維點云以及點云中每個點對應的二維圖像投影點坐標輸入非線性擬合函數(shù),使用Levenberg-Marquardt算法進行擬合,對三維點云的空間位置進行調整,從而降低三維點重投影到二維圖像上與原始點之間的重投影誤差;
2.6)將所有雙視角模型統(tǒng)一坐標系,轉換至攝像機坐標系中,選擇第一個雙視角模型作為多視角模型的姿態(tài)的參考值,計算出后續(xù)雙視角模型中相機的外參數(shù)矩陣Rt相對于多視角模型中對應相機矩陣的初始值的變換矩陣,利用此變換矩陣將雙視角模型坐標系下的三維點信息轉換至多視角模型中,然后對整個多視角模型進行捆綁調整,通過調整相機的位姿、三維點云的位置最小化重投影誤差;將所有雙視角模型都添加進多視角模型中就完成了多視角模型的創(chuàng)建。
步驟(3)將相機的位姿(6DOF)投影到采樣空間,對圖像序列進行6DOF位姿采樣和等采樣空間距離采樣,具體為:
3.1)將每一幀的6DOF位姿q=(X,R)∈S投影到采樣空間則相鄰幀的距離定義成p(q0,q1)=Wt*||F(X0,X1)||+Wr*||f(R0,R1)||;
其中Wt、Wr為權重系數(shù),Wr*||f(R0,R1)||=Wr*(1-R0R1)
3.2)利用定義的距離p,得到所有圖片序列的距離和,再進行采樣空間內采樣和等采樣空間距離采樣。
步驟(4)擬合出一個在采樣空間中二維采樣平面,并在采樣平面上選取n個采樣點生成2D全景視頻,具體為:。
4.1)擬合一個在采樣空間中二維采樣平面,生成n個采樣點Q=(x,y,z,q0,q1,q2,q3)T;
4.2)每個采樣點展示的圖像序列為在采樣空間中離采樣點最近的相機位姿向量距離的圖像序列;其數(shù)學描述為:
Distance=argminP(Q,X)
(其中p為采樣空間中的距離函數(shù),Q為采樣點,X為在采樣空間內的每一幀相機位姿點)。
上述實施方式只為說明本發(fā)明的技術構思及特點,其目的是讓熟悉該技術領域的技術人員能夠了解本發(fā)明的內容并據(jù)以實施,并不能以此來限制本發(fā)明的保護范圍。凡根據(jù)本發(fā)明精神實質所做出的等同變換或修飾,都應涵裝置在本發(fā)明的保護范圍之內。