費建軍
摘要:本文主要研究的是對同一物體的不同方向的兩張圖片進行分析,并完成曲面重建。從同一的兩個不同角度獲取兩張圖像,并對其進行特征匹配處理和密集匹配,最終可以得到一個形成3D點模型,經(jīng)過適當處理可得模型。關鍵研究工作內(nèi)容如下:1)關于SIFT特征匹配的研究應用SIFT特征匹配算法具有更好的優(yōu)勢,因為它能獲取更穩(wěn)定的特征點,并能在圖像發(fā)生運動時依舊能正確匹配,具有較強的魯棒性,在目前匹配性能中表現(xiàn)最為突出,在基于特征的匹配中研究最普及的匹配算法。2)M估計抽樣一致性算法(MSAC算法)的研究應用利用MSAC算法去除誤匹配點。
關鍵詞:三維重建;MSAC;SIFT匹配
中圖分類號:TP391 文獻標識碼:A 文章編號:1007-9416(2017)07-0137-05
隨著VR/AR技術的興起與推廣,人們將其作為人類與計算機虛擬環(huán)境交互的一種手段。把虛擬現(xiàn)實技術看做推動科技進步的新工具。認為其可以改變?nèi)祟惪茖W研究、工業(yè)設計和生產(chǎn)實踐的方式。雖然虛擬現(xiàn)實技術還存在著諸多技術難題,但已經(jīng)引起了人們的廣泛關注[1]。
VR技術中涉及到大量模型的使用,并且對模型的復雜度和真實還原度有著更高的要求。傳統(tǒng)的三維建模技術成熟,但是建模所需要的人力和時間消耗過大,人們急于尋求一種快捷的建模方式??紤]到人們能以現(xiàn)實中的物體作為模型的基礎,現(xiàn)在學者提出利用計算機對獲取圖像進行處理,提取出圖像中的模型,這樣生成的模型不僅快捷方便,而且更具真實感[2]。
利用圖片建模具有時間短,逼真度較高的優(yōu)點[3]。伴隨著計算機視覺技術的研究和發(fā)展,它也呈現(xiàn)出豐富的發(fā)展趨勢,越來越多的方法被開發(fā)出來,它們都涉及了計算機視覺個個方面的知識[4]。
該文對常見的五種常規(guī)建模方式進行了說明(基于單幅圖像重建幾何模型、采用立體視覺方法重建幾何模型、同時恢復場景的幾何和相機的運動、基于側(cè)影輪廓線重建幾何模型、基于深度圖像重建幾何模型)對比其優(yōu)缺點。在經(jīng)過對比并且結(jié)合本文論點:快捷簡單地生成模型,所以采用了立體視覺方法重建幾何模型為重點闡述對象。
1 常規(guī)模型優(yōu)缺點講解
1.1 基于單幅圖像重建幾何模型
現(xiàn)在已有技術使用輸入的滅點信息和幾何不變量實現(xiàn)分片平面的幾何重建。利用用戶輸入的約束系統(tǒng)能從圖像中恢復基本的集合模型。通過一些基本幾何模型實現(xiàn)建筑環(huán)境的交互建模。這些方法都存在這一些缺陷,即需要大量的人機交互,并且需要很強的邏輯能力實現(xiàn),沒有達到簡單快捷的建模目的。
1.2 采用立體視覺方法重建幾何模型
該方法利用兩幅及以上的圖像進行模型重建,通過尋找兩幅圖像中的對應點建立起點云模型,再進一步處理成模型。其中,尋找對應點是立體視覺中最困難的部分,實際物體表面復雜,還存在外界環(huán)境影響,這些都需要解決。
1.3 同時恢復場景的幾何和相機的運動
在傳統(tǒng)的圖像建模中,都需要對拍攝的相機進行標定,但近年來,開始有學者研究如何免除這一步。他們希望通過多幅未標定圖像同時恢復場景的幾何和相機的運動,使用未標定的圖像有許多好處,例如不會受到相機自身參數(shù)的影響,并且可以改變相機的焦距等。這方面的創(chuàng)始人是 Tomasi 團隊,他們利用放射分解的方法從一系列的圖像中實現(xiàn)了這些成果。該方法相對較好,但是對設備要求很高,對圖像噪聲極為敏感。
1.4 基于側(cè)影輪廓線重建幾何模型
該方法是通過物體的側(cè)影輪廓線去了解物體的幾何形狀,當以透視投影去多視角地分析空間物體時,我們能得到每個物體的側(cè)影輪廓線。分析輪廓線和對應的透視投影中心,就能得到三維空間中一個一般形狀的錐體,所有這些椎體復合相交構(gòu)成了物體的空間包絡,它被稱為物體的可見外殼。該方法缺點在于十分耗時,沒有體現(xiàn)其建??旖菪?。
1.5 基于深度圖像重建幾何模型
上述方法均為基于亮度圖像的幾何模型重建,而那些方法的模型重建出來的模型往往存在不同的缺陷,模型精度和復雜度難以得到保證,此時基于深度圖像重建幾何模型重建得到了廣泛應用?;谏疃葓D像模型重建方法為主動方法,其他類似的方法還有基于陰影重建模型和柵格投影方法。主動方法需要控制光照或利用特殊方式獲取三維物體信息,而亮度圖像只能被動地接受物體的亮度信息,因此它們被稱為被動法。相對于被動法,主動法能得到更加精確的模型,但是對設備的要求很高,同時實現(xiàn)過程復雜,無法達到該文簡單建模的要求[5]。
2 雙路圖像采集中的三維模型構(gòu)建分析
本文主要主要目的是如何快捷便利的生成模型,故而重建幾何模型時采用的是立體視覺法。該方法是圖像建模方法的一個分支,是基于圖像幾何建模問題,主要研究如何從圖像中能夠抽取三維信息,并使之構(gòu)成萬為模型?;趫D像的幾何建模是將圖像中存在大量信息(光線、強度、物體輪廓等等)與相機參數(shù)相關聯(lián),利用成像原理進行逆運算恢復物體三維信息。
2.1 關鍵技術分析
2.1.1 相機標定
物體成像時,其表面的三維空間位置和圖像間存在的對應關系是由相機成像參數(shù)規(guī)定。所以相機參數(shù)是三維成像的關鍵,為了換算出相機參數(shù),就必須對相機進行標定。
其中有三個重要的坐標:
(1)世界坐標(xw,yw,zw):為了準確描述物體和相機的物理位置而建立的三維坐標。如圖1所示。
(2)攝像機坐標系(xc,yc,zc):用來描述相機相關信息的坐標系。
(3)圖像坐標系為了表示圖像中的點而建立,可分為:圖像物理坐標系(uov),以毫米為單位;圖像像素坐標系(xoy),以像素為單位;如圖2所示。
世界坐標與相機坐標的關系:
設三維空間中存在一點P,它的坐標為:世界坐標系:(Xw,Yw,Zw)、相機坐標系:(Xc,Yc,Zc),他們之間的關系為:endprint
其中,參數(shù)R為3x3的正交旋轉(zhuǎn)矩陣,參數(shù)t為三維平移向量。通過研究針孔模型,透鏡成像焦距f,物距u和相距v的關系可由下列式子表示:
我們可對上面的式子進行轉(zhuǎn)化,以更好表示它們之間的關系:
相機標定原理:上述部分所建立的坐標系,是為了將圖像中的點與空間中的點產(chǎn)生對應關系,以便能將從圖像中獲取的點正確放入所建三維模型中,可以通過坐標對應關系了解畸變原因以便修正。如圖3所示。
將上述公式導入針孔模型公式中得到可得
其中K代表相機的內(nèi)部參數(shù),參數(shù)R為3x3的正交旋轉(zhuǎn)矩陣,參數(shù)t為三維平移向量。
2.1.2 尺度不變特征變換(SIFT)
SIFT是通過檢測圖像局部特征而獲得特征點的算法,該算法通過求一幅圖像中的特征點以及有關尺度和方位,進行圖像特征匹配,具有良好的效果。
通過求圖像中的特征點等參數(shù),進行圖像匹配。一般需要做以下四步工作:
(1)尺度空間極值檢測:需要檢測圖像的的物理位置和尺度空間,為了更精細的探查尺度空間的不確定位置和沒有發(fā)現(xiàn)的特征點,采用了高斯差分函數(shù)進行驗證。
(2)關鍵點定位:可以將關鍵點定位在圖像的所有候選點,這時還需要測試這些點的穩(wěn)定性,來確保獲得優(yōu)良數(shù)據(jù)。
方向分配:所有關鍵點都有自己的方向,對于已分配的方向,所有后續(xù)操作都是針對其來執(zhí)行的。
(3)方向分配:每個關鍵點位置需要有自己的方向,數(shù)量可為一個或多個,對于已經(jīng)分配方位,比例和位置的特征,以后所有的操作都是針對它們執(zhí)行的。
(4)關鍵點描述符:在每個關鍵點附近的區(qū)域中需要測量局部圖像梯度,這時可以使用所選擇的尺度測量,這樣的轉(zhuǎn)化允許了一定量的圖像顯著形狀失真和光照的改變。該方法的使用提升了匹配能力,能夠從圖像中獲取涉及各個尺度和位置區(qū)域的特征。在Lowe的實驗中得知尺度500x500像素的典型圖像可以產(chǎn)生大約2000個穩(wěn)定特征(這個數(shù)值會受到圖像內(nèi)容和各種參數(shù)選擇的影響)[7]。特征的數(shù)量對于對象識別特別重要,例如在檢測雜亂背景中的小物體,至少要正確匹配3個特征才能進行可靠的識別。
2.1.3圖像預處理(MSAC處理)-離群點移除
這里介紹了一種魯棒估計器MSAC,可用于廣泛的各種估計任務。特別地,MSAC非常適合估算復雜表面的物體。在這里應用于對由剛性運動相關的圖像之間存在的多個視圖關系的幾個估計。這些是兩個或多個視圖中的相應圖像點之間的關系,并且包括例如對極幾何和投影,這些圖像關系用于幾個目的:(a)匹配;(b)結(jié)構(gòu)恢復;(c)運動切割;(d)運動模型選擇。
MSAC可以消除因匹配集相似度產(chǎn)生的誤匹配,即對初次匹配的特征點進行進一步的刪選。首先對初次匹配得到的匹配點進行隨機采樣,然后通過反復迭代的方法,使得匹配點對的漢明距離和的代價比我們設定的閾值小,從而消除錯誤匹配。
3 三維模型構(gòu)建的簡單展示
3.1 標定過程
3.1.1 輸入圖像(圖4)
3.1.2 輸入標定板中方塊長寬(圖5)
通過計算得到的相機內(nèi)參數(shù)矩陣如圖6。
參數(shù)保存在文本文件中,之后進行讀取。同時分析對外參數(shù),可得如圖7所示。
3.2 SIFT特征點提取及匹配
(1)關鍵點檢測:分為建立尺度空間(高斯差分金字塔:高斯模糊與圖像降采樣),檢測DoG尺度空間極值點,特征點優(yōu)化(精確定位與消除邊緣響應);
(2)關鍵點描述:特征點方向分配,局部圖像描述符;
(3)關鍵點匹配。
部分關鍵代碼詳解:
fprintf(SIFT:用構(gòu)造尺度空間DoG...\n);tic;
scalespace=gaussian(I,sigmaN,O,S,omin,-1,S+1,sigma0);
fprintf(高斯尺度空間計時:(%.3fs)\n,toc);tic;
difofg=diffofg(scalespace);
fprintf(構(gòu)建相減尺度空間:(%.3fs)\n,toc);
for o=1:scalespace.O
fprintf(SIFT:計算“組” %d\n,o-1+omin);
tic;
%scale space structure構(gòu)建尺度空間
L.O=O;L.S=S;L.sigma0=sigma0;L.omin=omin;L.smin=smin;
L.smax=smax;
%%First Octave第一組
%初始化第一組%
L.octave{1}=zeros(M,N,smax-smin+1);
%初始化第一層%
sig=sqrt((sigma0*k^smin)^2-(sigmaN/2^omin)^2);
L.octave{1}(:,:,1)=smooth(I,sig);
%other sub-levels其它層%
for s=smin+1:smax
dsigma=k^s * dsigma0;
L.octave{1}(:,:,s+so)=smooth(...squeeze(L.octave{1}(:,:,s-1+so)),dsigma);
End
%只是記錄下了和用到的層數(shù),并不為每層確定具體的尺度值,sigma0
%具體尺度值可推導出來%
%轉(zhuǎn)化所有組%endprint
foro=2:O%接下來從第二組開始%
sbest=min(smin+S,smax);
TMP=halvesize(squeeze(L.octave{o-1}(:,:,sbest+so)));
%以第四層降采樣%
sigma_next=sigma0*k^smin;
sigma_prev=sigma0*k^(sbest-S);
if(sigma_next>sigma_prev)
sig=sqrt(sigma_next^2-sigma_prev^2);
TMP=smooth(TMP,sig);
End
[M,N]=size(TMP);
L.octave{o}=zeros(M,N,smax-smin+1);%初始化下一組
L.octave{o}(:,:,1)=TMP;%降采樣得到圖像作為該組第一層
%other sub-levels其它層%
fors=smin+1:smax
dsigma=k^s*dsigma0;
L.octave{o}(:,:,s+so)=smooth(...
squeeze(L.octave{o}(:,:,s-1+so)),dsigma);
end
end
再經(jīng)過關鍵點檢測-檢測DoG尺度空間極值點、關鍵點檢測-特征點優(yōu)化、關鍵點描述-特征點方向分配、關鍵點描述-局部圖像描述符
關鍵點匹配:這里用的是歐氏距離的鄰近搜索方法,建立樹結(jié)構(gòu),縮小搜索范圍。其中鄰域取值是關鍵,越大越準確,然而計算量也越大。
3.3 MSAC 消除誤匹配
for trails=1:maxtrails
sampleIndicies=randperm(nPoints,8);
f=eightPoint(points1homo(:,sampleIndicies),points2homo(:,...sampleIndicies));
pfp=(points2homo*f);
pfp=pfp.*points1homo;
d=sum(pfp,1).^2;
inliers=coder.nullcopy(false(1,nPoints));
inliers(d≤threshold)=true;
nInliers=sum(inliers);
% MSAC檢測
Dist=cast(sum(d(inliers)),double)+threshold*(nPoints-...nInliers);
if bestDist>Dist
bestDist=Dist;
bestInliers=inliers;
end
end
3.4 模型分析與進一步處理
在光線不足的情況下由于生成的匹配點過少,導致模型存在錯漏,為了更好地完成模型,在戶外選取的物體,并對其四面進行了拍攝,通過上述處理建模后,對結(jié)果進行了拼接,如圖8所示。
拼合所得模型可生成如下點云模型,如圖9所示。
最后,通過對模型進行進一步的處理,恢復其表面,如圖10所示。
通過圖10可以看出,物體表面越平整,恢復得越好。而雜亂無章的花草及拼合處依然有缺陷,需要對模型進行進一步人工細化和平整。
4 總結(jié)與展望
由于虛擬現(xiàn)實中的仿真模擬具有突出的特點,所以VR技術不單位科學研究提供了新的認知工具,并且已經(jīng)在而且會更將繼續(xù)的引起制造工業(yè)的巨大變革。在科學研究中,研究人員可以形象的討論高抽象的研究對象,并能精確的對其施加影響。利用圖片進行三維模型的復原,以后也必將成為虛擬現(xiàn)實技術中的重要手段之一。
由于圖像和相機所限,復雜模型的表面不夠細致,整體粗糙,同時暗光部分重建有待提高。同時由于時間,經(jīng)驗和知識水平有限,整體過程存在諸多不足,例如特征點匹配可換做SURF方法。之后的模型處理也沒有完成,根據(jù)查閱的資料,可使用meshlab對后續(xù)點云模型進行處理。
本文只起到了拋磚引玉的作用,希望各位同行提起興趣,為促進虛擬現(xiàn)實技術的發(fā)展添磚加瓦。
參考文獻
[1]DA.simon M.Hebert T. Techniques for Fast and Accurate Intra Surgical Registration. Journal of Image Guided Surgery,1995:17-29.
[2]PJ.Besl N. A Method for Registration of 3D Shapes. IEEE Transactions on Pattern Analysis and Machine Intelligence,1992:239-256.
[3]張志佳,王博實,李雅紅,齊芳,張威.基于雙視角的可見外殼三維重建研究[J].計算機技術與發(fā)展,2015(03):50-53.
[4]高岑,李清光,李德華.一種基于多視角三維表面重建的方法[J].武漢理工大學學報, 2007(08):128-130.
[5]Edelsbrunner H M. Three Dimensional Alpha Shapes. ACM Transactions onGraphics, 1988.
[6]劉凌云,錢新恩.基于3D標靶的攝像機標定方法的改進[J].湖北汽車工業(yè)學院學報,2008(01): 33-36.
[7]G.Lowe D. Distinctive Image Features from Scale-Invariant Keypoints. University of British Columbia Vancouver,B.C.,Canada: Computer Science Department, 2004.endprint