王昂千
(諸暨市公安局 浙江省諸暨市 311800)
當(dāng)視頻監(jiān)控攝像機(jī)的鏡頭光圈開至最大,并對準(zhǔn)無限遠(yuǎn)景物調(diào)焦時,在成像靶面上呈現(xiàn)出的影像均位于一圓形面積內(nèi),而圓形以外則漆黑無影像。有影像的圓形面積稱為該鏡頭的最大像場,在最大像場范圍的中心部位,有能使無限遠(yuǎn)處的景物結(jié)成清晰影像的區(qū)域,這個區(qū)域稱為清晰像場。攝像機(jī)成像靶面一般都位于清晰像場之內(nèi),這一限定范圍稱為有效像場。
當(dāng)把鏡頭對準(zhǔn)無限遠(yuǎn)調(diào)焦時,凡是通過鏡頭主軸的平面,必與有效像場的邊緣相交于兩點(diǎn),從這兩點(diǎn)引兩條直線相交于鏡頭的像方主點(diǎn),所形成的夾角被稱為有效像角。由于有效像場通常是長方形或正方形,因此有效像角可歸納為三種,即水平像角、垂直像角和對角線像角。
像場所對應(yīng)的景物范圍被稱為視場(Scene),凡通過鏡頭主軸的平面,從與視場邊緣相交的兩點(diǎn)引直線至物方主點(diǎn),同樣形成三種視角,即水平視角、垂直視角和對角線視角。
在視頻監(jiān)控系統(tǒng)建設(shè)中,作為前端感知設(shè)備的監(jiān)控攝像機(jī),需要根據(jù)實(shí)際監(jiān)控場景需求,選擇不同的攝像機(jī)、鏡頭、采用不同的安裝角度以有效地監(jiān)控某一區(qū)域,此區(qū)域即為該攝像機(jī)的視場。
兩個相鄰且具備同樣功能需求的攝像機(jī),有可能出現(xiàn)視場重合的情況,當(dāng)兩個攝像機(jī)的視場重合度(Scene Intersection)超過一定比例時,則表示攝像機(jī)的監(jiān)控區(qū)域有重復(fù),安裝角度或監(jiān)控選點(diǎn)可能存在問題。
兩臺攝像機(jī)的視場重合區(qū)域是一個三維空間區(qū)域,為了簡化計算,本方法采用攝像機(jī)在水平面上投影所形成的區(qū)域,作為攝像機(jī)重合度計算指標(biāo)。因此攝像機(jī)視場投影重合度(Scene Intersection Projection)可認(rèn)為是兩個攝像機(jī)的視場在水平面上各自投影,所形成兩個平面多面體之間交集的面積,與各自攝像機(jī)投影面積的比例。
如圖1中所示,攝像機(jī)CA在水平面上的投影為△ABC,攝像機(jī)CB在水平面上的投影為△DEF,△ABC與△DEF交集為多邊形CGEH。多邊形面積SCGEH/三角形SABC或者SDEF的值,即為CA與CB攝像機(jī)的視場投影重合度。
圖1:CA、CB攝像機(jī)各自在水平面上的投影示例
一臺攝像機(jī)的視場,由其控制距離r、水平視場角α、垂直視場角β、安裝角度θ、安裝高度h所決定。其視場投影是攝像機(jī)視場在水平面上的投影所構(gòu)成,如圖2所示。
如圖2所示,攝像機(jī)在水平面上的投影為一等腰梯形DEBC。AM為攝像機(jī)的主軸線,OM為攝像機(jī)的控制半徑r,其中∠CAB為攝像機(jī)的水平視角α,∠KAN為攝像機(jī)的垂直視角β,∠OAK為攝像機(jī)的安裝角度θ。
圖2:攝像機(jī)在水平面上的實(shí)際投影
不同的攝像機(jī)根據(jù)實(shí)際功能需求,具有不同的控制距離,該控制距離一般根據(jù)實(shí)際應(yīng)用經(jīng)驗(yàn)估算得到,并取決于監(jiān)控攝像機(jī)所采用的成像靶面尺寸以及鏡頭焦距,不同的廠家有不同的設(shè)定。
攝像機(jī)視場角包括水平方向上的水平視場角,以及垂直方向的視場角,同樣取決于所采用的成像靶面尺寸以及鏡頭焦距,不同的鏡頭及攝像機(jī),具有不同的視場角,如水平、垂直方向視場角。
攝像機(jī)視場在垂直方向的投影,如圖3所示。
圖3:攝像機(jī)視場在垂直方向上的投影
其中AM為攝像機(jī)主軸線,攝像機(jī)安裝高度為h,OM為攝像機(jī)控制半徑r,攝像機(jī)安裝角度為θ,攝像機(jī)垂直視場角為β。則有如下公式:
攝像機(jī)在水平方向上的投影如圖4所示。
圖4:攝像機(jī)視場在水平面上的投影
攝像機(jī)水平視場角為α,則根據(jù)公式(5),可得:
根據(jù)公式(2)、(3)以及(6),可得:
由上述公式可知,一臺安裝高度為h攝像機(jī)在水平面上的投影為一等腰梯形CDEB,相對于攝像機(jī)的四角坐標(biāo)如圖5所示。
圖5:攝像機(jī)視場在水平面上投影的坐標(biāo)
計算兩個攝像機(jī)CA、CB的視場投影重合度,首先以攝像機(jī)在水平面的投影點(diǎn)為原點(diǎn),攝像機(jī)主軸在水平面的投影為X軸,建立各自的視場投影坐標(biāo)系,并根據(jù)2.3節(jié)中的方法得到每個攝像機(jī)投影各自的四個頂點(diǎn)的坐標(biāo),分別設(shè)為A{a1,a2,a3,a4},B{b1,b2,b3,b4}。其中A、B分別為CA、CB攝像機(jī)的投影,其形狀為一等腰梯形。如圖6所示。
圖6:攝像機(jī)CA、CB各自的投影坐標(biāo)
在計算CA、CB投影重合度時,需要在同一坐標(biāo)系方可計算。本方法以CA攝像機(jī)坐標(biāo)系為基準(zhǔn),通過對CB攝像機(jī)的坐標(biāo)系進(jìn)行平移、偏轉(zhuǎn),將CB攝像機(jī)的投影轉(zhuǎn)換成以CA攝像機(jī)為基準(zhǔn)的坐標(biāo)系中。
3.1.1 平移
設(shè)R為地球半徑,根據(jù)CA、CB攝像機(jī)的地理坐標(biāo)(本方法采用WGS84),其中CA的經(jīng)緯度為(CA.lng,CA.lat),CB的經(jīng)緯度坐標(biāo)為(CB.lng,CB.lat)。以CA坐標(biāo)系為基準(zhǔn),則CB攝像機(jī)坐標(biāo)系統(tǒng)平移量分別為:
經(jīng)平移后,CB攝像機(jī)在CA攝像機(jī)坐標(biāo)系統(tǒng)的坐標(biāo)分別如下:
CB攝像機(jī)位于(δx,δy);
CB攝像機(jī)投影四個頂點(diǎn)坐標(biāo)為{c1,c2,c3,c4}:
3.1.2 旋轉(zhuǎn)
在實(shí)際應(yīng)用中,CA、CB攝像機(jī)的軸線角度φ、φ是以大地坐標(biāo)系統(tǒng)進(jìn)行采集得到,如圖7所示。
圖7:CA、CB攝像機(jī)的主軸方向
CB攝像機(jī)的軸線方向與CA攝像機(jī)軸線方向往往是不同,兩者之間存在一定的夾角φ,CB攝像機(jī)坐標(biāo)系經(jīng)平移后,須向CA方向旋轉(zhuǎn)φ,才能將CB坐標(biāo)統(tǒng)一至CA坐標(biāo)系中。CB坐標(biāo)旋轉(zhuǎn)變換后的投影坐標(biāo)為{d1,d2,d3,d4}:
經(jīng)平移及旋轉(zhuǎn)后,實(shí)現(xiàn)了CA、CB攝像機(jī)投影坐標(biāo)基于CA攝像機(jī)坐標(biāo)系統(tǒng)的統(tǒng)一,如圖8所示。
圖8:CA、CB攝像機(jī)投影在CA坐標(biāo)系中的交集
CA、CB攝像機(jī)在CA坐標(biāo)系中,其交集為一凸多邊形MNPK。攝像機(jī)CA投影為一等腰梯形A,其四個頂點(diǎn)坐標(biāo)分別為{a1,a2,a3,a4},攝像機(jī)CB投影同樣為一等腰梯形B,其四個頂點(diǎn)坐標(biāo)分別{d1,d2,d3,d4}。
顯然,A、B兩個投影的交集為C,要計算投影重合度,首先需要確定C的頂點(diǎn)坐標(biāo),而后計算C的面積。
交集C的頂點(diǎn)應(yīng)該出自下面的兩類點(diǎn):
(1)A或B的頂點(diǎn);
(2)A、B的邊的交點(diǎn)。
第一類點(diǎn)的求法:顯然如果一個梯形的某個頂點(diǎn)在另一個梯形內(nèi)(包括在邊上)則該頂點(diǎn)是交集的一個頂點(diǎn),因此我們只需依次對兩個梯形A、B的頂點(diǎn)進(jìn)行判斷,檢驗(yàn)其是否包含在另一個梯形中,即可求出第一類點(diǎn)。本方法利用待判斷點(diǎn)與另一個梯形的全部邊按順序組成的三角形的面積總和與此梯形的面積進(jìn)行大小比較,來判斷該點(diǎn)的歸屬,若大則在該梯形的外部,不屬于第一類點(diǎn);否則,是交集C的頂點(diǎn)。
第二類點(diǎn)的求法:兩個梯形相交可能有兩條邊重合(包括部分重合)的情況,顯然重合的部分必是交集的一條邊,這條邊的頂點(diǎn)是已知兩個多邊形的頂點(diǎn),即應(yīng)屬于第一類點(diǎn),在第一類點(diǎn)的求法中顯然已包括了這種頂點(diǎn),因此我們在求A、B兩個梯形的邊的交點(diǎn)時,可以不計算兩條邊重合時的交點(diǎn),而只計算兩條邊相交〔不平行〕時的交點(diǎn)。在本程序的算法中為了求兩條邊的交點(diǎn),我們采用線段的參數(shù)方程表示法,即:
x=a*t+b
x=c*t+d 其中0<=t<=1;
設(shè)線段的兩個端點(diǎn)坐標(biāo)分別是(x0,x0)和(y1,y1),則線段的參數(shù)方程可寫成:
x=(x1-x0)*t+x0
y=(y1-y0)*t+y0 其中 0<=t<=1;
據(jù)此可以求兩條邊的交點(diǎn)。
如果某個梯形的頂點(diǎn)在另一個梯形的邊上,由上面的算法可知它將被分別計入兩類點(diǎn)當(dāng)中,因此我們最后求得的交集C的頂點(diǎn)可能有部分是重復(fù)的,但由多邊形的面積算法可知這不會影響面積的大小,因此在確定兩類點(diǎn)時,不需要做精細(xì)的劃分。
當(dāng)?shù)玫浇患疌的頂點(diǎn)坐標(biāo)后,按照各頂點(diǎn)的X坐標(biāo)大小排序,再根據(jù)Y坐標(biāo)大小排序,從而得到一個有向多邊形,如圖8中所示,交集C的頂點(diǎn)為M、N、P、K,將該多邊形切分成三角形,如圖9所示。
圖9:攝像機(jī)投影A、B的交集C
如圖9,攝像機(jī)投影的交集C可劃分成兩個有向三角形△MNP和△PKM,C的面積可Sc=S△+S△得到。而三角形的面積可以有海倫公式得到。
其中a、b、c分別為三角形三條邊長,p =(a+b+c)/ 2。
計算兩個攝像機(jī)CA、CB的視場投影重合度,需分別計算攝像機(jī)投影A、B的交集C的面積與A、B面積之比,得到投影重合度r、r。當(dāng)r或r超過預(yù)設(shè)的閾值時,則表示這兩個攝像機(jī)重合度過高。