周曉慧,丁曉鳳,熊赟暉,彭長歆
基于2個滅點(diǎn)和局部尺度的三維空間尺度估計
周曉慧1,丁曉鳳1,熊赟暉1,彭長歆2
(1. 華南理工大學(xué)數(shù)學(xué)學(xué)院,廣東 廣州 510641;2.華南理工大學(xué)建筑學(xué)院,廣東 廣州 510641)
三維空間尺度估計是三維重建中的一個重要工作,現(xiàn)實世界中也存在一些基于單幅圖像進(jìn)行三維空間尺度估計的需求。通常情況下,尺度估計需先對相機(jī)進(jìn)行標(biāo)定。根據(jù)單目圖像符合透視原理的特性,提出了一種基于2個滅點(diǎn)和局部尺度信息的方法對相機(jī)進(jìn)行標(biāo)定,從而得到單目圖像物體中三維空間尺度信息的估計。首先,從單目圖像中選擇2組互相正交的平行線組,得到對應(yīng)2個滅點(diǎn)的坐標(biāo);然后,利用滅點(diǎn)坐標(biāo)和焦距信息得到世界坐標(biāo)系和相機(jī)坐標(biāo)系之間的旋轉(zhuǎn)矩陣,再利用滅點(diǎn)的性質(zhì)和已知局部尺度信息得到平移向量,完成單目相機(jī)的標(biāo)定;最后,還原二維圖像中像素點(diǎn)對應(yīng)的三維世界坐標(biāo)值,計算出圖像中2個像素點(diǎn)在三維空間的尺度信息。實驗結(jié)果表明,該方法能有效地對單幅圖像中的建筑物體進(jìn)行尺度估計。
單幅圖像;滅點(diǎn);局部尺度信息;相機(jī)標(biāo)定;尺度估計
恢復(fù)單幅或多幅二維圖像中建筑物體的三維幾何結(jié)構(gòu),即三維重建技術(shù)[1-3]是計算機(jī)視覺的基礎(chǔ),也是當(dāng)前人工智能、虛擬現(xiàn)實等眾多前沿領(lǐng)域的研究難點(diǎn)和熱點(diǎn)。其中,現(xiàn)實世界中存在一些基于單幅圖像進(jìn)行三維重建[4-6]的需求,例如:從古建筑照片復(fù)原照片中的建筑信息。要想從單幅照片或少量照片中對建筑物復(fù)原出相同大小的建筑物就需要知道需恢復(fù)的建筑物體各部分的尺度信息,這幾乎是一個不可能完成的任務(wù)。但在已知照片中某些局部尺度的情況下,通過本文的方法,可獲取到照片中一些其他物體的尺度信息。通常情況下,尺度估計需先對相機(jī)進(jìn)行標(biāo)定[7-9],確定相機(jī)的內(nèi)部參數(shù),再獲取三維世界坐標(biāo)和相機(jī)坐標(biāo)變換中的旋轉(zhuǎn)和平移,之后便可完成一些建筑物體的尺度信息計算工作。由于單目圖像符合透視原理的特性及其計算的復(fù)雜性,利用滅點(diǎn)的屬性進(jìn)行相機(jī)標(biāo)定[10-15]是一個比較合適的方法。
本文在文獻(xiàn)[10]的基礎(chǔ)上提出了利用2個滅點(diǎn)及已知局部尺度進(jìn)行三維空間尺度估計的方法。該方法只需做出假設(shè):輸入的單目圖像可以供用戶至少選取2組正交的平行線用以計算相應(yīng)的2個滅點(diǎn);圖像中包含已知真實尺度的參照物體;投影中心是圖像中心。其步驟如下:
(1) 從單目圖像上選擇2組互相正交的平行線組,計算平行線所構(gòu)成的2個滅點(diǎn)的坐標(biāo);
(2) 通過2個滅點(diǎn)坐標(biāo)和與平行線組平行的一條已知線段的真實尺度,計算單目圖像相機(jī)標(biāo)定的旋轉(zhuǎn)矩陣和平移向量;
(3) 將像素坐標(biāo)轉(zhuǎn)化為世界坐標(biāo),根據(jù)三維空間物體各點(diǎn)的世界坐標(biāo)和拓?fù)潢P(guān)系,估計三維空間物體的尺度。
1990年,文獻(xiàn)[11]首次提出利用滅點(diǎn)進(jìn)行相機(jī)標(biāo)定,并證明了滅點(diǎn)的3個屬性,還根據(jù)這些屬性找到了相機(jī)內(nèi)外參數(shù)與滅點(diǎn)之間的關(guān)系。
文獻(xiàn)[10]利用2個滅點(diǎn)和一已知線段長度進(jìn)行相機(jī)標(biāo)定和粗略的三維重建,但該方法并未充分利用滅點(diǎn)的性質(zhì)使得計算略顯繁瑣。文獻(xiàn)[12]提出一種基于滅點(diǎn)的代數(shù)測距方法,通過平行共面空間直線的2個正交集即滅點(diǎn)和參考平面上2個不平行線段的長度,可以唯一地確定參考平面上任意2點(diǎn)之間的距離。但該方法固定的模型參數(shù)和參考平面的選擇會對尺度估計結(jié)果產(chǎn)生不良影響。
文獻(xiàn)[13]在總結(jié)滅點(diǎn)屬性的基礎(chǔ)上,提出了一種基于滅點(diǎn)的三維物體重建方法,首先利用滅點(diǎn)計算相機(jī)的內(nèi)、外部參數(shù),再計算出物體上各點(diǎn)的三維空間坐標(biāo),然后通過對物體的繪制及紋理映射,實現(xiàn)三維物體的重建。文獻(xiàn)[14]結(jié)合三維真實場景中的滅點(diǎn)提取、車道檢測和車輛檢測3個主要步驟,提出了基于攝像機(jī)標(biāo)定的攝像機(jī)與正面車輛之間的距離估計方法。文獻(xiàn)[15]提出了一種在人工環(huán)境下使用滅點(diǎn)檢測進(jìn)行自標(biāo)定的算法,假設(shè)主點(diǎn)為圖像的中心,以滿足3個滅點(diǎn)的正交性,用于焦距的估計。但文獻(xiàn)[13,15]基于滅點(diǎn)的標(biāo)定方法,則要求圖像中存在3組兩兩正交的平行線組,在實際應(yīng)用中很難滿足該條件,因此應(yīng)用范圍受到制約。
本文尺度估計的具體方法如圖1所示,首先在單目圖像上選擇2組互相正交的平行線組,進(jìn)行相應(yīng)2個滅點(diǎn)坐標(biāo)的計算;然后利用計算所得的2個滅點(diǎn)坐標(biāo)和已知局部尺度信息進(jìn)行相機(jī)標(biāo)定;最后恢復(fù)2組平行線組所張成的平面上任意2點(diǎn)間的尺度信息。
圖1 尺度估計主要流程
圖2 滅點(diǎn)示意圖
在小孔成像的基礎(chǔ)上,相機(jī)模型的內(nèi)外參數(shù)決定了像素坐標(biāo)、圖像坐標(biāo)、相機(jī)坐標(biāo)和世界坐標(biāo)之間的轉(zhuǎn)換。利用滅點(diǎn)的屬性進(jìn)行相機(jī)標(biāo)定需做如下假設(shè):
(1) 輸入的單目圖像可以供用戶至少選取2組正交的平行線用以計算相應(yīng)的滅點(diǎn);
(2) 圖像中包含已知真實尺度的參照物體;
(3) 投影中心是圖像中心。
2.2.1 旋轉(zhuǎn)矩陣的計算
如圖3所示,世界坐標(biāo)系以點(diǎn)作為原點(diǎn),由3個方向的正交基向量,,(=×)構(gòu)成:=(,,,);相機(jī)坐標(biāo)系以點(diǎn)為原點(diǎn),由3個方向的正交基向量,,(=×)構(gòu)成:=(,,,);像平面坐標(biāo)系為=(,,),其中點(diǎn)為相機(jī)中心在像平面上的正交投影。世界坐標(biāo)系到相機(jī)坐標(biāo)系的旋轉(zhuǎn)矩陣為,則有
2.2.2 平移向量的計算
如圖5所示,像素坐標(biāo)[,]向世界坐標(biāo)[X,Y,Z]的轉(zhuǎn)化實質(zhì)是:先由像素坐標(biāo)轉(zhuǎn)化為圖像坐標(biāo),再由圖像坐標(biāo)轉(zhuǎn)化為相機(jī)坐標(biāo),最后由相機(jī)坐標(biāo)轉(zhuǎn)化至世界坐標(biāo)。
圖5 像素坐標(biāo)系與世界坐標(biāo)系示意圖
以圖像左上角為原點(diǎn)0建立笛卡爾直角坐標(biāo)系-(單位:像素),圖像在計算機(jī)數(shù)組中的列數(shù)與行數(shù)是像素的橫坐標(biāo)和縱坐標(biāo)。定義圖像坐標(biāo)系的原點(diǎn)1為成像平面和相機(jī)光軸的交點(diǎn)且在-坐標(biāo)系下的坐標(biāo)設(shè)為(0,0);軸與軸平行,軸與軸平行;每個像素在橫軸和縱軸上的物理尺寸為d和d。則圖像中每個像素在-坐標(biāo)系下與在-坐標(biāo)系下的坐標(biāo)之間存在如下關(guān)系,即
假設(shè)圖像坐標(biāo)系以毫米作為物理單位,則的單位為毫米/像素,/的單位為像素,式(10)可表示為
至此完成了像素坐標(biāo)到圖像坐標(biāo)的轉(zhuǎn)化。
可得:和。至此完成了像素坐標(biāo)到相機(jī)坐標(biāo)的轉(zhuǎn)化。
而相機(jī)坐標(biāo)到世界坐標(biāo)的轉(zhuǎn)化實際上是一種剛體變化,對坐標(biāo)進(jìn)行旋轉(zhuǎn)和平移操作即可得到轉(zhuǎn)化關(guān)系,二者之間的剛體變換數(shù)學(xué)表示為
將上述所示的轉(zhuǎn)換過程合并可得像素坐標(biāo)和世界坐標(biāo)之間的數(shù)學(xué)關(guān)系,即
在計算的過程中,假設(shè)生成滅點(diǎn)的2組平行線組所在平面的世界坐標(biāo)值是相同的,則推導(dǎo)出二維圖像點(diǎn)的三維世界坐標(biāo)為
算法實驗使用CPU i5-8500,8 G內(nèi)存Windows10系統(tǒng)中Visual Studio 2015環(huán)境和Python3.7環(huán)境實現(xiàn)主要代碼,還采用了OpenCV,Numpy,PIL等第三方代碼庫。實驗主要研究對象是室外場景單目圖像,其包含一些已知尺度信息的參照物(如已知尺度信息的墻磚或地磚)。
在單幅單目圖像中,基于2個滅點(diǎn)和局部尺度信息的三維空間尺度估計算法(3D spatial scale estimation,SSE)步驟如下:
輸入:單目圖像和一條線段的真實尺度值。
輸出:圖像建筑尺度估計值。
步驟1.用戶從圖像中選擇2組互相正交的平行線組,計算出2個滅點(diǎn)的坐標(biāo);
步驟2. 通過2個滅點(diǎn)坐標(biāo)和圖像中這2組平行線所在平面中的一條已知線段的真實尺度,計算單目圖像相機(jī)標(biāo)定的旋轉(zhuǎn)矩陣和平移向量;
步驟3. 將像素坐標(biāo)轉(zhuǎn)化為世界坐標(biāo),即可得到這2組平行線所在平面上建筑物體的估計尺度。
通過人工實地測量的方式得到圖像參照物的真實尺度值,再利用算法的計算結(jié)果得到圖像建筑物的真實尺度估算值。用相對誤差來對SSE算法的有效性進(jìn)行評估。
用戶對于平行線組的選取和相應(yīng)的滅點(diǎn)計算如圖7所示。圖中紅色和綠色2組平行線在真實場景中互相正交,并確定了尺度估計所需的2個滅點(diǎn)。對于每個滅點(diǎn),用戶(用鼠標(biāo))選擇一組建筑物上存在的平行線。為了使選擇更加容易,輸入圖像是超大分辨率原圖,且未進(jìn)行縮小。具體的滅點(diǎn)坐標(biāo)計算見2.1節(jié)。
圖7 滅點(diǎn)計算示意圖
圖8中的#1,#2和#3行表示同一建筑物不同視角下的圖像。圖8(a)為同一個建筑物體不同觀測角度下所拍攝的圖像;圖8(b)為用戶在相應(yīng)圖像上選擇的2組正交平行直線(紅、綠線組)結(jié)果,用以計算平行線組形成的滅點(diǎn)坐標(biāo);圖8(c)為單目圖像建筑物體尺度估計的結(jié)果,其中紅線為建筑物體尺度估計的范圍。
圖8 同一建筑物體不同視角下的尺度估計((a)單目圖像;(b)平行線選擇;(c)尺度估計結(jié)果)
表1顯示了同一建筑物不同視角下SSE算法的實驗誤差結(jié)果。由表1可知,SSE算法在不同視角下對同一建筑物體進(jìn)行尺度估計均可獲得較好的結(jié)果。
表1 同一建筑物體不同視角下尺度估計的誤差
圖9為不同方法對同一建筑物體進(jìn)行尺度估計的比較結(jié)果。圖9(a)為建筑物體室外場景的單目圖像;圖9(b)為SSE算法的尺度估計效果,其中紅線區(qū)域即為建筑物體尺度估計的范圍;圖9(c)為文獻(xiàn)[12]運(yùn)用滅點(diǎn)和單應(yīng)性矩陣方法得到的尺度估計效果;圖9(d)為文獻(xiàn)[13]運(yùn)用3個滅點(diǎn)進(jìn)行相機(jī)標(biāo)定后的尺度估計效果。其中圖9(d)前2行尺度估計值在圖像上沒有展示的原因是,圖像中無法準(zhǔn)確找到3組兩兩正交的平行線組。
圖9 不同算法間建筑物體尺度估計的比較((a)單目圖像;(b) SSE算法;(c)文獻(xiàn)[12]算法;(d)文獻(xiàn)[13]算法)
表2顯示了不同方法對同一建筑物體進(jìn)行尺度估計的誤差結(jié)果,其中“-”表示未得到相應(yīng)估計值。從表中可以看出,SSE算法效果較好,文獻(xiàn)[12-13]所提出的尺度估計方法誤差相對較大。其中文獻(xiàn)[12]的方法是基于提前設(shè)置好的相機(jī)模型參數(shù)、參考平面和垂直于參考平面的一個參照尺度,進(jìn)行與參考平面垂直平面上的相關(guān)尺度估計。這種固定的模型參數(shù)和參考平面的選擇會對估計結(jié)果產(chǎn)生一定的影響。而文獻(xiàn)[13]的方法則是基于3組兩兩垂直的滅點(diǎn)對相機(jī)進(jìn)行標(biāo)定從而得到待測物體的尺度比例關(guān)系。理論上來說,3個滅點(diǎn)相較于2個滅點(diǎn)進(jìn)行標(biāo)定應(yīng)該更加精準(zhǔn),但是在真實場景的圖像中可能因為很難找到相互正交的3組平行線形成的3個滅點(diǎn),反而造成更大的誤差。文獻(xiàn)[13]算法需要采用2張同一物體在同一方向、不同角度下的圖像來對其進(jìn)行優(yōu)化,研究更多的是針對建模和仿真,主要是恢復(fù)圖像中物體尺度的比例關(guān)系,更多的是滿足虛擬現(xiàn)實系統(tǒng)的需求,因此在對真實場景的單目圖像中物體進(jìn)行估計時會造成較大的誤差。
表2 不同方法進(jìn)行建筑物體尺度估計的誤差
由于單目圖像符合透視原理的特性,用滅點(diǎn)對圖像建筑物體進(jìn)行尺度估計是一個比較好的方法。在實際應(yīng)用中,有些建筑圖像(包括古建筑殘存的圖像)找不到符合要求的3組兩兩正交的平行線組形成的滅點(diǎn),因此無法用基于3個滅點(diǎn)的算法來計算。對于這些圖像,如果可以從圖像中找到一些已知尺度的物體(如:某個時期古建筑中采用固定尺寸的磚塊、地磚和瓦片等),通過這些已知尺度物體信息,再結(jié)合2個滅點(diǎn)就可對圖像中建筑物體的某些區(qū)域進(jìn)行尺度估計?;谠撍枷氡疚奶岢隽死?個滅點(diǎn)和局部尺度信息進(jìn)行三維空間尺度估計的方法。
實驗結(jié)果表明,與文獻(xiàn)[12-13]的尺度估計算法相比較,本文算法有比較好的計算結(jié)果。并且該算法對輸入的圖像限制和所需的幾何約束較少,適用于更多的場景,泛化性高。但是由于本文算法存在已知尺度線段需平行于某一組所選平行線的限制條件,實際應(yīng)用中如果已知尺度線段不平行于任何一組平行線,可以考慮將其投影到其中一組平行線后再進(jìn)行平移向量的計算。同時,因為本文算法是基于傳統(tǒng)滅點(diǎn)理論來進(jìn)行尺度估計,故和其他滅點(diǎn)算法一樣,缺乏對圖像中各像素點(diǎn)的深度估計,只能計算2組平行線所在平面上的2個像素點(diǎn)間的距離,還無法做到計算圖像中任意2點(diǎn)間的距離。
[1] 董鵬輝, 柯良軍. 基于圖像的三維重建技術(shù)綜述[J]. 無線電通信技術(shù), 2019, 45(2): 115-119.
DONG P H, KE L J. Overview of 3D reconstruction techniques based on images[J]. Radio Communications Technology, 2019, 45(2): 115-119 (in Chinese).
[2] LIU C X, KONG D H, WANG S F, et al. Deep3D reconstruction: methods, data, and challenges[J]. Frontiers of Information Technology & Electronic Engineering, 2021, 22(5): 652-672.
[3] TAHIR R, SARGANO A B, HABIB Z. Voxel-based 3D object reconstruction from single 2D image using variational autoencoders[J]. Mathematics, 2021, 9(18): 2288.
[4] LI G Q, WU Z H, LIU Y X, et al. 3D hand reconstruction from a single image based on biomechanical constraints[J]. The Visual Computer, 2021, 37(9-11): 2699-2711.
[5] YAN C G, SHAO B Y, ZHAO H, et al. 3D room layout estimation from a single RGB image[J]. IEEE Transactions on Multimedia, 2020, 22(11): 3014-3024.
[6] CHEN Y, TU Z, KANG D, et al. Joint hand-object 3D reconstruction from a single image with cross-branch feature fusion[J]. IEEE Transactions on Image Processing, 2021, 30: 4008-4021.
[7] MAALEK R, LICHTI D D. Automated calibration of smartphone cameras for 3D reconstruction of mechanical pipes[EB/OL]. [2021-07-10]. https://arxiv.org/abs/2012.02899.
[8] 王沛, 鐘凱, 顏福鹍, 等. 基于相位移編碼圓的相機(jī)離焦快速標(biāo)定方法[J]. 光學(xué)技術(shù), 2021, 47(4): 494-499.
WANG P, ZHONG K, YAN F K, et al. Fast calibration method of camera defocus based on phase shift coding circle[J]. Optical Technique, 2021, 47(4): 494-499 (in Chinese).
[9] 赫美琳, 高明慧, 李爽, 等. 一種單目相機(jī)標(biāo)定算法研究[J]. 數(shù)字通信世界, 2018(5): 11-14.
HE M L, GAO M H, LI S, et al. Research on a monocular camera calibration algorithm[J]. Digital Communication World, 2018(5): 11-14 (in Chinese).
[10] GUILLOU E, MENEVEAUX D, MAISEL E, et al. Using vanishing points for camera calibration and coarse 3D reconstruction from a single image[J]. The Visual Computer, 2000, 16(7): 396-410.
[11] CAPRILE B, TORRE V. Using vanishing points for camera calibration[J]. International Journal of Computer Vision, 1990, 4(2): 127-139.
[12] WANG G H, WU Y H, HU Z Y. A novel approach for single view based plane metrology[C]//2002 International Conference on Pattern Recognition. New York: IEEE Press, 2002: 556-559.
[13] 余燁, 劉曉平. 基于滅點(diǎn)的三維物體重建[J]. 系統(tǒng)仿真學(xué)報, 2008, 20(15): 4069-4072.
YU Y, LIU X P. 3D object reconstruction using vanishing points[J]. Journal of System Simulation, 2008, 20(15): 4069-4072 (in Chinese).
[14] BOUGHARRIOU S, HAMDAOUI F, MTIBAA A. Vehicles distance estimation using detection of vanishing point[J]. Engineering Computations, 2019, 36(9): 3070-3093.
[15] LEE S J, HWANG S S. Fast and accurate self-calibration using vanishing point detection in manmade environments[J]. International Journal of Control, Automation and Systems, 2020, 18(10): 2609-2620.
3D spatial scale estimation based on two vanishing points and local scale
ZHOU Xiao-hui1, DING Xiao-feng1, XIONG Yun-hui1, PENG Chang-xin2
(1. School of Mathematics, South China University of Technology, Guangzhou Guangdong 510641, China; 2. School of Architecture, South China University of Technology, Guangzhou Guangdong 510641, China)
3D spatial scale estimation is of great significance to 3D reconstruction, and is in demand in the real world in the case of a single image. Generally, the camera must be calibrated before the scale estimation. According to the perspective principle of the monocular image, a method based on two vanishing points and local scale information was proposed to calibrate the camera, thereby obtaining the estimation of the 3D scale information in the monocular image. Firstly, two orthogonal groups of parallel lines were selected from the monocular image to produce the coordinates of two vanishing points. Then the rotation matrix between the world coordinate system and the camera coordinate system was yielded using the vanishing point coordinate and the focal length information. The translation vector was also acquired through the property of vanishing point and the known local scale information. Finally, the 3D world coordinates corresponding to the pixels in the 2D image were restored to calculate the 3D scale information. Experimental results show that this method can effectively estimate the scale of building objects in a single image.
single image; vanishing point; local scale information; camera calibration; scale estimation
TP 391
10.11996/JG.j.2095-302X.2022030370
A
2095-302X(2022)03-0370-07
2021-09-02;
2021-09-28
2 September,2021;
28 September,2021
國家自然科學(xué)基金項目(51978271)
National Natural Science Foundation of China (51978271)
周曉慧(1998-),女,碩士研究生。主要研究方向為相機(jī)標(biāo)定和三維重建。E-mail:autoffier@163.com
ZHOU Xiao-hui (1998-), master student. Her main research interests cover camera calibration and 3D reconstruction. E-mail:autoffier @163.com
熊赟暉(1972–),男,副教授,博士。主要研究方向為圖像和視頻處理、幾何建模和處理、3D重建、3D打印等。E-mail:yhxiong@scut.edu.cn
XIONG Yun-hui (1972–),professor, Ph.D. His main research interests cover image and video processing, geometry modeling and processing, 3D reconstruction, 3D printing, etc. E-mail:yhxiong@scut.edu.cn