譙 帥
(四川大學網(wǎng)絡(luò)空間安全學院,成都 610207)
隨著計算機視覺技術(shù)的快速發(fā)展,利用視頻監(jiān)控來進行安防工作的應(yīng)用越來越普遍。通過實時分析監(jiān)控視頻畫面內(nèi)容,對危險行為做出預(yù)警是基于計算機視覺的安防工作的主要任務(wù)。在實際應(yīng)用中獲取目標的實際位置往往是危險行為識別的基礎(chǔ)。但是從視頻畫面中獲取的是目標的像素坐標位置,需要通過攝像機標定將其轉(zhuǎn)化為世界坐標系位置。攝像機標定的目的就是建立從圖像像素空間到現(xiàn)實世界空間的映射,研究攝相機標定的方法首先需要研究攝像機成像的原理和過程。因為存在攝像機畸變的問題,這種映射通常不是線性的。但實際運用中我們通常用線性關(guān)系來近似模擬,表達為:[像]=M[物]。攝像機標定問題即求解M的過程。
一般攝像機標定可以分為三種方式。
傳統(tǒng)的攝像機標定方法通過特定的標定道具來實現(xiàn)。通過標定道具上的三維坐標點與對應(yīng)圖像上的坐標之間的關(guān)系,來獲取相機模型的參數(shù)。傳統(tǒng)攝像機標定方法精度比較高且適用于任何相機模型。但標定中必須用到精準的標定道具,且標定過程費時費力。常用的傳統(tǒng)攝像機標定方法有雙平面標定法、Tsai 兩步法等。
主動視覺攝像機標定方法主要是利用已知的攝像機的運動信息,根據(jù)運動時圖像的變化來計算相機參數(shù),但不適用于攝像機運動信息無法得到的情況。
攝像機自標定的方法只依靠固定攝像機拍攝圖像中相同目標點的對應(yīng)關(guān)系來實現(xiàn)攝像機自動標定。實現(xiàn)方法靈活,應(yīng)用起來方便,但場景依賴度高,通常方法只適用于一種特殊場景。
也有一些綜合的方法,如張正友標定法,結(jié)合了攝像機自標定方法和傳統(tǒng)攝像機標定方法的優(yōu)點。吳建平等則利用標準化的車道線長度和車道寬度進行自動標定。但不管哪種方法都比較麻煩,要么需要專業(yè)人員使用特定標定道具,要么針對于某一種特定場景。
實際安防監(jiān)控場景中,攝像頭的角度往往根據(jù)需要會發(fā)生變化,每次變化后都要重新進行標定。而攝像機操作人員往往是非專業(yè)人員,加之監(jiān)控場所人員活動復(fù)雜,上述方法在部署上存在一定困難。本文在研究攝像機成像原理和一般視頻監(jiān)控特點的基礎(chǔ)上,提出了一種基于針孔成像原理利用世界坐標已知固定點位置的快速標定方法。
在實際情況中,攝像機因其品質(zhì)的不同,以及攝像距離和目標的位置而存在不同程度的畸變情況。攝像機的主要畸變有兩種,一種是徑向畸變(Radial Distortion),另一種是切向畸變(Tangential Distortion),本質(zhì)上描述的是直線在投影過程中產(chǎn)生的偏移,這種偏移使直線經(jīng)過投影就不再是一條直線。徑向畸變通常源于攝像頭鏡頭形狀的誤差,切向畸變通常源于攝像機的組裝過程,如圖1所示。除了徑向畸變和切向畸變,還存在其他類型的畸變,但一般來講以這兩種畸變最為顯著。
圖1 徑向畸變和切向畸變
考慮到監(jiān)控攝像頭架設(shè)高度通常不會太低,且使用的是高精度的CCD 攝像頭,畸變情況比較小,而一般監(jiān)控場景下定位并不要求非常精確。因此,在大部分情況下可以忽略攝像機畸變的影響,以采取簡易的方式進行標定,提高系統(tǒng)的易用性。
世界坐標系(World Coordinate)是描述客觀世界的笛卡爾直角坐標系,其原點可以任意設(shè)置,通常表示為(x,y,z)。
相機坐標系(Camera Coordinate)與世界坐標系相對應(yīng),描述客觀世界經(jīng)過小孔成像后的位置。它的原點與攝像機光心重合,軸與軸的方向與相面兩邊的方向一致,軸與攝像機的光軸重合。表示為(,,)。世界坐標系與相機坐標系的關(guān)系可以表示為:
其中表示圖像旋轉(zhuǎn),它是一個3×3 的矩陣,也叫旋轉(zhuǎn)矩陣(Rotation Matrices)。表示圖像平移,它是一個3 維列向量,也叫平移向量(Translation Vectors)。
像素坐標系()即我們?nèi)粘D像處理時用到的坐標系,它的原點與圖像的左上角重合,軸和軸沿著圖像的兩邊延伸。因為它的度量單位是像素點,所以是整數(shù)。整數(shù)無法直接與現(xiàn)實世界坐標相對應(yīng),所以需要建立圖像坐標系(),它的單位是毫米。它的原點是圖像中點,軸、軸平行于像面兩邊。像素坐標系與圖像坐標系之間的關(guān)系如圖2所示。
圖2 像素坐標系與圖像坐標系
用,分別表示一個像素點沿軸和軸占據(jù)的大?。ê撩祝?)表示圖像坐標的原點,他們之間的關(guān)系可以表示為:
在不考慮畸變的情況下,攝像機成像的理想模型為針孔模型,如圖3所示。光心即鏡頭的中心,亦即針孔的位置。光軸即經(jīng)過光心與感光平面垂直的直線,圖中與軸重合。光軸與感光平面的交點為圖像中心。代表焦距,即針孔到感光平面的距離。
圖3 針孔成像模型
不妨假設(shè)世界坐標系與相機坐標系平行,(,,)代表現(xiàn)實空間中任意一點的相機坐標系坐標,(,)代表該點在感光平面的投影。根據(jù)相似三角形的原理有以下等式:
將其表達為矩陣形式可以寫為:
其中為平衡元素個數(shù)引入的因子,也稱為比例因子。上式也可以寫為:
將式(2)、式(6)與式(1)聯(lián)立,即可從世界坐標系轉(zhuǎn)換到像素坐標系:
a=/稱為軸 尺 度因 子,a=/稱 為軸尺度因子。為攝像機的內(nèi)部參數(shù)矩陣,為攝像機的外部參數(shù)矩陣,統(tǒng)稱為攝像機的投影矩陣。
將式(7)寫為:
其中,(,)是圖像像素坐標,(x,y,z)是世界坐標。在大部分監(jiān)控場景中目標位于同一平面,例如室內(nèi)地板或室外平面,目標起伏可以忽略不計,故將上式中z置為0,可寫為:
再進一步簡化參數(shù)。s 作為矩陣的倍乘可以直接移入右邊矩陣消去,同樣的道理我們可以設(shè)=1,并不會對上式運算結(jié)果產(chǎn)生影響。所以可將上式寫為:
經(jīng)過恒等變形,相機參數(shù)總共有8 個。顯然,通過真實世界中道路平面的最少4個點的世界坐標,并找到他們在圖像空間中的坐標位置,我們可以建立8 個方程,求解出這8 個參數(shù),進而完成攝像機的標定。
下面介紹實際環(huán)境中如何使用本方法簡便快捷地完成標定工作。圖4 是用Pyhton 自帶的Tkinter 庫實現(xiàn)的監(jiān)控攝像機標定界面。顯示的是典型的某單位大門監(jiān)控截取的畫面。
圖4 監(jiān)控攝像機標定界面
先需要選取至少4個固定的目標點,再到現(xiàn)地去測量他們的距離并算出對應(yīng)的世界坐標。通常可選取地面明顯的固定目標作為標定物,且即使攝像頭角度調(diào)整他們通常也還在鏡頭之內(nèi),避免重復(fù)現(xiàn)地測量。本系統(tǒng)默認選取地面標線4個點如圖4所示。經(jīng)實地測量點1、點2距離為130米,點3、點4距離為11米,點1到點3、點4連線距離為17米。以點1為世界坐標系原點,1至3方向為軸,則4 個點的坐標可表示為1(0,0),2(0,130),3(-5.5,17),4(5.5,17)。這樣便確定到了世界坐標系的4個點及其坐標。
接下來在系統(tǒng)圖形設(shè)置界面輸入這四個點的坐標,并依次在視頻截圖畫面點選1、2、3、4這四個點,程序即可在后臺自動獲得這四個點的像素坐標,并計算出變換矩陣,存儲在配置文件中供其他模塊調(diào)用。在圖4 所示監(jiān)控畫面中,像素坐標分別為1(1122,496),2(140,61),3(273,284),4(831,233),經(jīng)計算得到的變化矩陣為:
[-9.1323 20.616 20.952]
[ 5.807 26.064 -19443]
[ 0.0029394 -2.172 1]
即使攝像頭角度改變,也只需要重新在視頻截圖中再次點選這幾個點,即可簡單快速完成攝像機標定工作。具體方法如下:在攝像頭標定文本框中,會依次顯示用于標定的實地坐標和圖像像素坐標。點擊“修改”按鈕后,需要在文本框中輸入至少4 個實地坐標(世界坐標系),默認不輸入的話,表示實地坐標繼承上一次的設(shè)置。輸入完實地坐標點擊“確定”按鈕,按鈕變?yōu)榛疑@示“在圖中依次標出這些點”。同樣,在左側(cè)畫面中依次點擊實地坐標對應(yīng)的點,會實時顯示為深紅色小圓點并配有數(shù)字編號,點擊右鍵可撤銷上一步選擇的點,并在畫面實時顯示。當點選的點與輸入的點個數(shù)達到一致時,再次點擊鼠標左鍵將提示“標定完成”。點擊“確定”后,文本框?qū)@示新的標定數(shù)據(jù)。如圖5所示。
圖5 攝像機標定文本框內(nèi)容變化
選取實地坐標系中軸值為-5.5、0、5.5,軸值為0~130間隔為10的14個值,根據(jù)標定結(jié)果可畫出42 個均勻分布于道路平面的坐標點。如圖6所示。
圖6 不同角度標定結(jié)果顯示
兩種不同攝像機角度下的路面標定情況。將與軸平行的3 個點分別用線段連接起來,可得向?qū)嵉剌S方向擴展的間距10 米、寬11 米的14 條平行線??梢钥吹骄€條均勻覆蓋了道路平面,沒有出現(xiàn)明顯變形。所有橫向線段兩側(cè)都在路面白線上,表明軸距離上的準確性。圖像上距離最寬兩條直線的距離經(jīng)實地測量確為10米,實地原點和(0,130)點與相應(yīng)標定點重合,表明了軸距離上的準確性。
實驗測量了攝像機在兩種不同角度下,相同實地目標點A、B、C、D 之間的距離,所有測量結(jié)果實時計算并顯示在交互圖形界面上,如圖6所示。測量結(jié)果匯總于表1。
表1 測距結(jié)果和誤差
從實驗結(jié)果來看,該標定方法總體效果較好,最低誤差0.8%、最高誤差2.6%、平均誤差1.9%,總體誤差在5%以內(nèi),可滿足一般監(jiān)控場景下的需求。
但實驗中也注意到手工選點會帶來一定的誤差,所以標定時應(yīng)盡可能選擇菱角分明的目標點,以便提高手工選點的準確性,使得標定更加準精。
本文在分析常用攝像機標定方法的基礎(chǔ)上,結(jié)合視頻監(jiān)控場景特點和攝像機成像的一般原理,提出了一種基于針孔成像原理的監(jiān)控攝像機標定方法。經(jīng)實驗驗證,該標定方法不需要專用標定道具,不依賴于特定場景標志物特征,操作簡便、誤差較小,為基于計算機視覺的其他安防工作提供了基礎(chǔ),具有實際應(yīng)用價值。