王朋豪,張鵬程,楊滟濤,謝婷婷,楊祖恒,陳美松
(西南石油大學理學院,四川 成都 610500)
近10年來,隨著相機的普及,視頻圖像分析不斷發(fā)展。特別是在當前熱門的移動機器人、無人駕駛、計算機視覺和無人機偵察等領域,應用需求較大。在設計未來智能交通系統(tǒng)時,科研人員使用雙目視覺系統(tǒng)、多目視覺系統(tǒng)、特殊配置的單目視覺系統(tǒng)獲取相關信息,但在某些特定條件下,分析人員所能利用的只有普通的圖像或視頻,其中的信息需要綜合考慮各種影響因素,并利用適當?shù)臄?shù)學模型來提取。本文選擇視頻的關鍵幀——“單幅圖像”作為研究對象,對單幅圖片進行分析研究,提取視頻中關鍵目標的大小、距離和速度等信息,具有很強的現(xiàn)實應用價值。
近些年,單幅圖像建模的研究越來越受到人們的關注。由于單幅圖像無法完全重構出對應的三維模型,眾多研究者利用圖像中已知的幾何信息對目標物體進行三維重建從而得到想要獲取的關鍵信息[2]。在國外,CAPRILE和TORRE首先提出利用滅點進行攝像機標定的思想[3],在證明了滅點屬性的基礎上,根據(jù)滅點與攝像機內參數(shù)的關系,由單幅圖像確定攝像機的內參數(shù);同時結合特定模板計算攝像機的外參數(shù);GUILLOU等提出了一種利用滅點實現(xiàn)單幅圖像中三維物體重建的方法等將目標物體的幾何形狀作為相應參數(shù),實現(xiàn)結構化場景的交互式建模[4]。在國內,對利用單幅圖像進行建模工作的研究也很多,張祖勛通過分析滅點幾何建立了影響直線段與方位元素的直接聯(lián)系,根據(jù)最小乘二平差的有關理論給出迭代計算影像的內外方位元素的方法[3]。
本文將利用一種未定標相機構造三維模型的方法,該方法利用3個滅點確定相機的內部參數(shù)矩陣,通過分解基礎矩陣求解出相機的外部參數(shù),從而完成相機的定標過程,在此基礎上,實現(xiàn)圖片信息提取,且本方法更易操作實現(xiàn)。
常用的坐標系有像素坐標系、圖像坐標系、相機坐標系和世界坐標系。
像素坐標系用(u,O,v)表示,O為坐標原點,位于圖象左上角。u,v分別表示橫縱坐標軸并相互垂直,u與水平方向平行,v與水平方向垂直。該坐標系可以表示以像素為單位的圖像,如圖1所示。
圖1 像素坐標系
像素坐標系中的坐標只表示存儲位置,無法表示像素的物理位置。為了有效表示像素點在成像平面上的物理位置建立圖像坐標系。將該坐標表示為坐標原點為光心在像平面的投影。圖像中心的像素坐標是(u0,v0),dx,dy分別為物理尺寸及單個像素的寬和高,圖像坐標系的坐標(x,y)與像素坐標系的坐標(u,v)之間的關系可以表示為:
則:
圖像坐標系、相機坐標系和世界坐標系的關系為:相機坐標系表示為(Xc,Yc,Zc),以光心為原點,Xc、Yc分別與圖像坐標系的x軸、y軸平行,Zc軸和相機的光軸重合并垂直于成像平面。光心和與成像平面間的物理距離即為成像焦距f。對于相機坐標系下的任意一點P(Xc,Yc,Zc),圖像坐標系下對應的點為p(x,y),由相機成像模型可知:
變換后得:
世界坐標系表示為(Xw,Yw,Zw),也稱為絕對參考坐標系,假設物理空間中一點在世界坐標系和相機坐標系下其次坐標分別為(Xw,Yw,Zw,1)T,(Xc,Yc,Zc,1)T,則它們之間的關系為:
式(5)中:R、t分別為旋轉矩陣和平移向量。
結合題意定義的世界坐標系是以光心為坐標原點,根據(jù)題目并結合自身分析需要,明確定義兩坐標系之間不存在平移現(xiàn)象。將式(3)、式(4)代入式(5)可得世界坐標系與其他坐標系的轉換關系:
相機坐標系如圖2所示。
圖2 相機坐標系
同一坐標系方向的平行直線的交點為圖片的滅點,采用邊緣檢測算法,可以準確找到圖片中所出現(xiàn)的直線,進而對直線上的關鍵點進行標定,從而計算出圖片的滅點。Canny算法基于最優(yōu)化算法的邊緣檢測算子,具有良好的信噪比和檢測精度[6],因此選取Canny算法進行圖片邊緣檢測,然后用數(shù)學軟件進行坐標標定,墻體部分邊緣檢測結果如圖3所示。
圖3 墻體部分檢測結果
通過邊緣檢測,在平行于坐標軸的3個方向上選取多個點進行標定,用數(shù)學軟件找到點的坐標,然后聯(lián)立直線的方程找圖像的3個方向的滅點。
相機內參求取:根據(jù)滅點原理可知“連接滅點和垂心的相關的單位向量是兩兩正交”,假設3個滅點的坐標分別為(x1,x2,1)、(y1,y2,1)、(z1,z2,1),設O為3個滅點形成的三角形的垂心坐標O(u0,v0),VxP、VyP、VzP為相互正交向量,焦距f為OP的連線。則:
將已經求出的圖片的滅點代入式(7)求取u0,v0、f。
旋轉矩陣R求?。涸谑澜缱鴺讼迪?,令v1、v2、v3分別為與Fu、Fv、Fw這3個滅點相關的單位向量;V為由v1、v2、v3形成的3×3矩陣,其列向量分別為v1、v2、v3。在相機坐標系下,令分別為與Fu、Fv、Fw這3個滅點相關的單位向量;為由形成的3×3矩陣,其列向量分別為由滅點的屬性可得,VRV'= 。在世界坐標系中,滅點為3個方向上無窮遠處的點,令這3個方向分別為世界坐標系的X軸、Y軸、Z軸方向,則有v1(1,0,0)、v2(0,1,0)、v3(0,0,1)。
因此,矩陣V為單位矩陣,又由VRV'= 得:
熱水器如圖4所示,計算熱水機的高度,先進行邊緣檢測。邊緣檢測如圖5所示。
圖4 熱水器
圖5 邊緣檢測
選取圖片上與坐標軸平行的直線上面的點的像素坐標[8],像素坐標如表1所示。
表1 像素坐標
表1(續(xù))
計算滅點、內參、旋轉矩陣,滅點如表2所示,內參如表3所示。
表2 滅點
表3 內參
旋轉矩陣為:
點和距離如表4所示。
表4 點和距離
基于單幅圖片的信息提取,利用圖像中的滅點進行相機標定,克服了傳統(tǒng)圖片信息提取過程中需要參照物來進行相機標定的復雜性;所采用的方法能夠快速根據(jù)單幅圖片中的直線尋找滅點,并求取圖片滅點,進而得到相機內外參數(shù),最終快速求取目標信息,具有很強的現(xiàn)實應用價值。