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