石 強(qiáng),葛 源,袁志敏,韓娟娟,崔養(yǎng)浩
(中國核動力研究設(shè)計(jì)院,成都 610005)
傳統(tǒng)的多攝像機(jī)人體定位思想來源于物體三維重建,雖然能夠取得高精度的目標(biāo)定位,但是該方法需要標(biāo)定的參數(shù)眾多,導(dǎo)致該算法的實(shí)時(shí)性太差。因此,基于單應(yīng)矩陣的人體定位得到迅速發(fā)展。目前,基于單應(yīng)矩陣的多攝像頭場景定位算法主要有兩種:一是基于主軸的場景人體定位算法;二是基于像素的人體定位算法。基于主軸的場景人體定位算法雖然實(shí)時(shí)性好,但是無法處理人體遮擋的情況。基于像素的人體定位算法雖然精度較高,但是實(shí)時(shí)性較差。因此,本文重新設(shè)計(jì)了一種結(jié)合采樣單應(yīng)投影和權(quán)值篩選的場景人體定位算法。
約束1:在多相機(jī)環(huán)境下,將人體目標(biāo)理想化成一根垂直于場景平面的垂線,那么這根垂線在各個(gè)攝像機(jī)下的單應(yīng)投影交于一點(diǎn),這個(gè)點(diǎn)就是該垂線的垂足,也就是人體目標(biāo)的腳點(diǎn)[1]。
約束2:在單相機(jī)環(huán)境下,假設(shè)在場景平面的不同位置有一簇垂線,那么這些垂線在該攝像機(jī)下的單應(yīng)投影線交于一點(diǎn),這個(gè)點(diǎn)和該攝像機(jī)中心在場景平面上的投影點(diǎn)重合[1]。
單應(yīng)矩陣表示攝影幾何學(xué)中真實(shí)世界中的平面到像平面的可逆齊次變換[2]。假定場景平面中的二維點(diǎn)Xi與圖像平面中的點(diǎn)xi表示若干組對應(yīng)點(diǎn),其中xi=(xi,yi, 1)T表示,存在三維矩陣H表示,可以使下式成立:


其中×代表叉乘,根據(jù)文獻(xiàn)[4]可以得出最終的形式 。

其中,H jT代表H的第j行。利用直接線性變化和6組對應(yīng)的點(diǎn)就可以求出單應(yīng)矩陣H[4]。
人體檢測時(shí),通常用矩形框框出人體目標(biāo)。因此,如圖1所示,本文可以利用矩形框代表人體的所有前景信息,矩形框的上邊可以近似地表示人體的頭部位置,矩形框的下邊代替人體的腳部位置。基于上述分析,本文根據(jù)多攝像機(jī)環(huán)境下的幾何約束條件1和2,將人體當(dāng)作垂直于場景平面的一個(gè)圓柱體,那么將人體頭部位置即矩形框的上邊進(jìn)行采樣,然后單應(yīng)投影,那么從而可以得到投影點(diǎn)與攝像機(jī)中心線相連的交點(diǎn),這些點(diǎn)被稱之為候選人體腳點(diǎn),也就是人體在場景平面的候選位置。

圖1 人體前景等效圖Fig.1 Equivalent diagram of the human body foreground

圖2 頭部投影法示意圖Fig.2 Schematic diagram of head projection method
需要定位出人體在場景中的空間位置,至少需要兩個(gè)攝像機(jī)在兩個(gè)角度對人體進(jìn)行攝像。為了分析簡便,本文假設(shè)場景中只存在一個(gè)人體目標(biāo),然后總共存在兩個(gè)攝像頭,如圖2所示。
攝像機(jī)中心在場景平面的投影坐標(biāo)C1C2,對雙攝像頭而言,將每一個(gè)攝像頭上的圖像平面上的人體矩形框上邊(頭部)的N個(gè)點(diǎn)(為分析方便,此處N=2)的坐標(biāo)利用單應(yīng)矩陣H投影到場景平面上,得到4個(gè)點(diǎn)連接對應(yīng)的投影點(diǎn),得到4條直線可以得到4個(gè)候選腳點(diǎn)P1,P2,P3,P4。求交點(diǎn)的具體方法為:假定在攝像機(jī)C1,人體目標(biāo)A矩形框在圖像平面的采樣點(diǎn)坐標(biāo)為在攝像機(jī)C2上,人體目標(biāo)A矩形框采樣點(diǎn)在圖像平面的坐標(biāo)為利用單應(yīng)矩陣可以將這4個(gè)點(diǎn)投影到場景平面為設(shè)攝像機(jī)C1中心在場景平面的投影為gC1(xc1,yc1),攝像機(jī)C2中心在場景平面的投影為為直線l1,設(shè)為直線l2;k1=x1-x0/y1-y0,k2=x3-x2/y3-y2,那么可以根據(jù)已知的坐標(biāo)值求出候選腳點(diǎn)P1,其他候選腳點(diǎn)可以依次推出:

圖3 腳部投影法示意圖Fig.3 Schematic diagram of foot projection method

第二種求人體目標(biāo)候選腳點(diǎn)的方法本文稱之為腳部投影法。當(dāng)攝像頭固定時(shí),人體腳部通常緊挨著地面,根據(jù)單應(yīng)矩陣變換原理,通過對矩形框下邊進(jìn)行采樣,然后將這些點(diǎn)進(jìn)行場景平面投影,也能估計(jì)出人體的候選腳點(diǎn)的大致位置。為分析簡便,本文假定場景中只存在一個(gè)人體,兩個(gè)攝像頭產(chǎn)生人體候選腳點(diǎn)的示意圖如圖3所示。
假定攝像機(jī)中心在場景平面的投影坐標(biāo)C1,C2,對雙攝像頭而言,將每一個(gè)攝像頭上的圖像平面上的人體矩形框下邊(腳部)的N個(gè)點(diǎn)(為分析方便,此處N=2)的坐標(biāo)利用單應(yīng)矩陣H投影到場景平面上,得到4個(gè)點(diǎn)這4個(gè)點(diǎn)即為人體目標(biāo)候選腳點(diǎn)。雖然這種方法也可以求出人體目標(biāo)候選腳點(diǎn),但是由于人體腳部在室內(nèi)環(huán)境中通常會被遮擋,導(dǎo)致產(chǎn)生的候選腳點(diǎn)位置可能不準(zhǔn)。因此,這種方法只能用產(chǎn)生人體目標(biāo)的候選腳點(diǎn)的大概位置。

圖4 無遮擋情況Fig.4 No occlusion

圖5 有遮擋情況Fig.5 With occlusion
在室內(nèi)場景中,人體目標(biāo)位置定位通常分為兩種情況。第一種情況是非常理想的,即人體不存在遮擋,如圖4所示,通常這種方法可以利用頭部投影法或者腳部投影法直接求出人體目標(biāo)候選腳點(diǎn)位置。
第二種是在室內(nèi)場景中,由于物體和人體之間以及人體和人體之間相互遮擋,會導(dǎo)致在攝像機(jī)C1,C2, 中人體目標(biāo)相互遮擋,如圖5所示。
假定整個(gè)場景中存在兩個(gè)人體目標(biāo),從視角2可以看出,這兩個(gè)人體不存在遮擋,完整地顯現(xiàn)出來;但是從視角1可以看出,兩個(gè)人體目標(biāo)遮擋較為嚴(yán)重。在該種情況下,為了減少定位的誤差,本文利用對人體目標(biāo)框進(jìn)行采樣來獲取候選人體目標(biāo)腳點(diǎn)。遮擋情況下候選人體目標(biāo)腳點(diǎn)(以頭部投影法為例)產(chǎn)生示意圖如圖6所示。
從圖6中可以看出,當(dāng)場景中存在兩個(gè)人體目標(biāo),而且人體目標(biāo)相互遮擋時(shí),在一個(gè)攝像機(jī)圖像平面中只有一個(gè)人體目標(biāo)矩形區(qū)域,而在另外一個(gè)攝像機(jī)圖像平面中有兩個(gè)人體目標(biāo)矩形區(qū)域。
利用頭部投影法獲得人體目標(biāo)候選腳點(diǎn),圖中用三角形表示,記為,人體候選目標(biāo)點(diǎn)集合為。利用腳部投影法獲取的人體目標(biāo)候選腳點(diǎn),圖中用小黑點(diǎn)表示,記為,人體候選目標(biāo)點(diǎn)集合為。

圖6 人體遮擋候選腳點(diǎn)產(chǎn)生示意圖Fig.6 Schematic diagram of human body occlusion candidate foot points
當(dāng)獲取候選人體腳點(diǎn)時(shí),如何利用一定的規(guī)則定位人體腳點(diǎn)在場景中的位置,同時(shí)保持誤差較小變得尤為重要。本文為候選目標(biāo)腳點(diǎn)定權(quán)的規(guī)則是:首先計(jì)算出所有的目標(biāo)腳點(diǎn),然后根據(jù)場景中人體的數(shù)量進(jìn)行聚類,距離聚類中心越遠(yuǎn)的候選腳點(diǎn)權(quán)重越小,距離聚類中心越近的候選腳點(diǎn)權(quán)重越大。
假定i代表第i個(gè)攝像頭,集合G代表所有候選人體目標(biāo)腳點(diǎn)的集合代表第i個(gè)攝像頭中存在的人數(shù),K值定義為:

定義K值為攝像頭視域中的人體數(shù)目的最大值是因?yàn)閳鼍爸腥梭w可能存在遮擋。對G利用K-means++算法進(jìn)行聚類,最終得到K個(gè)聚類G={G1,G2,G3…Gk}和K個(gè)聚類中心對于聚類Gm,其聚類中心為m=1,2,3...k,Pl為該聚類中的候選人體目標(biāo)腳點(diǎn),l=1, 2, 3…s,s代表在聚類Gm中候選人體目標(biāo)腳點(diǎn)數(shù),pl∈Gm。為了減小定位誤差,本文為每一個(gè)候選人體目標(biāo)腳點(diǎn)賦予一定的權(quán)值Wj,記dj為候選腳點(diǎn)距離聚類中心的距離越大rj越小,為第j個(gè)人體候選點(diǎn)權(quán)重wj定義權(quán)重為:

由于引入人體候選腳點(diǎn)的過程中,難免會產(chǎn)生噪聲,因此需要設(shè)定閾值去除一些候選人體目標(biāo)腳點(diǎn)閾值WH定義如下:

獲得閾值后,當(dāng)候選人體目標(biāo)腳點(diǎn)的權(quán)值小于閾值WH,則舍棄。若大于閾值WH,則保留,假定最終留下的候選目標(biāo)腳點(diǎn)數(shù)為v,那么最終獲得人體腳點(diǎn)位置即最終的人體在場景中的定位位置為O,則

權(quán)值wj的大小實(shí)際上是候選腳點(diǎn)與聚類中心的匹配程度,權(quán)值越大,匹配程度越高。在人體目標(biāo)之間不存在遮擋時(shí),wj較小的候選腳點(diǎn)指的是人體前景矩形框上邊頭部區(qū)域和人體前景區(qū)域下邊腳部區(qū)域附近的干擾點(diǎn)。當(dāng)人體目標(biāo)間存在遮擋時(shí),wj較小的候選腳點(diǎn)通常由兩類點(diǎn)構(gòu)成:一類是人體前景矩形框上邊頭部區(qū)域和人體前景區(qū)域下邊腳部區(qū)域附近的干擾點(diǎn),另一類是其他人體的前景點(diǎn)。其他人體的前景點(diǎn)相對于該人體頭部和腳部輪廓點(diǎn)來說,與腳點(diǎn)重心的匹配程度更低,因此權(quán)重也更加的小。對權(quán)值設(shè)定閾值,然后對低于閾值的人體目標(biāo)候選腳點(diǎn)舍棄有助于降低噪聲的干擾,降低人體定位誤差。
以N個(gè)攝像頭為例,本文提出的場景定位算法流程大致為:
1)首先,在人體檢測或者人體追蹤的基礎(chǔ)上,測定攝像機(jī)中心在場景平面的投影點(diǎn)坐標(biāo),利用實(shí)驗(yàn)方法計(jì)算出兩個(gè)攝像機(jī)對同一個(gè)場景的單應(yīng)矩陣(通常指室內(nèi)場景的地面)H1...HN,便于將圖像平面的點(diǎn)映射到場景平面中去。
2)t時(shí)刻,攝像頭1...N獲取人體目標(biāo),得到人體矩形框。
3)t+1,對人體目標(biāo)矩形框頭部進(jìn)行采樣投影,然后利用單應(yīng)矩陣將其投影到場景平面,將這些采樣點(diǎn)和攝像頭投影點(diǎn)進(jìn)行連接,求出這些直線的交點(diǎn),即人體目標(biāo)候選腳點(diǎn)集合。
4)t+1,對人體矩形框的腳部進(jìn)行單應(yīng)投影,獲得了人體目標(biāo)候選腳點(diǎn)集合。
6)t+3,對于每一個(gè)聚類根據(jù)到聚類中心賦予相應(yīng)的權(quán)值wj。
7)t+4,計(jì)算權(quán)值閾值wH,對小于閾值的人體候選腳點(diǎn)進(jìn)行舍棄。
8)t+5,最后獲得人體最終角度位置O,最后跳轉(zhuǎn)2)。

表1 空間坐標(biāo)點(diǎn)和圖像坐標(biāo)點(diǎn)對應(yīng)關(guān)系Table 1 Correspondence between space coordinate points and image coordinate points
從上文分析可知,要定位出人體在場景平面的位置,首先要求出攝像頭1和攝像頭2到場景平面的單應(yīng)矩陣H1,H2。實(shí)驗(yàn)步驟如下:首先在場景中步驟6個(gè)白色的標(biāo)示點(diǎn),然后測量這些點(diǎn)在場景中的位置坐標(biāo)。表1為6個(gè)標(biāo)示點(diǎn)中場景空間坐標(biāo)和圖像1與圖像2坐標(biāo)的對應(yīng)關(guān)系。
最終獲得攝像機(jī)1和攝像機(jī)2與場景平面的單應(yīng)矩陣H1、H2如下 :

得到單應(yīng)矩陣后,本文的實(shí)驗(yàn)環(huán)境為5m×7m的房間,雙攝像頭布置在房間的兩角,如圖7所示。
本文分別對人體不發(fā)生遮擋、人體發(fā)生遮擋,利用基于像素的人體定位算法和本文的算法進(jìn)行實(shí)驗(yàn)仿真。
1)不發(fā)生遮擋
為了避免攝像頭不同步造成的人體定位干擾,本文在進(jìn)行人體場景定位實(shí)驗(yàn)時(shí)采用了靜態(tài)實(shí)驗(yàn)的策略。具體方法為:兩個(gè)人體靜止在場景中不發(fā)生遮擋,使用攝像頭1和攝像頭2對其拍照,然后根據(jù)獲取的單應(yīng)矩陣和本章的人體場景定位算法求出其在場景中的位置(采樣點(diǎn)數(shù)N=4),不發(fā)生遮擋實(shí)驗(yàn)結(jié)果如圖8所示。
2)發(fā)生遮擋

圖7 實(shí)驗(yàn)環(huán)境部署圖Fig.7 Experimental environment deployment diagram

圖8 不發(fā)生遮擋實(shí)驗(yàn)結(jié)果Fig.8 No occlusion experiment results
為了避免攝像頭不同步造成的人體定位干擾,本文在進(jìn)行人體場景定位實(shí)驗(yàn)時(shí)采用了靜態(tài)實(shí)驗(yàn)的策略。具體方法為:兩個(gè)人體靜止在場景中發(fā)生遮擋,使用攝像頭1和攝像頭2對其拍照,然后根據(jù)獲取的單應(yīng)矩陣和本章的人體場景定位算法求出其在場景中的位置(采樣點(diǎn)數(shù)N=4),不發(fā)生遮擋實(shí)驗(yàn)結(jié)果如圖9所示。
實(shí)驗(yàn)結(jié)果顯示,本文的算法平均用時(shí)0.056s/幀,而基于像素的場景人體定位算法平均用時(shí)0.449s/幀,顯然本文的算法在速度上提高了8倍。從實(shí)驗(yàn)8和實(shí)驗(yàn)9可以看出,在無遮擋的情況下,本文的算法和基于像素的定位誤差都比較小,而本文的平均誤差要低于基于像素的人體定位誤差3.2%。在有遮擋的情況下,兩種算法的誤差都有所增加,但是本文的算法的平均誤差仍然低于基于像素的場景定位算法1.2%。因此,本文提出的多攝像頭人體場景定位是一種高效的人體追蹤算法。