鄔厚民,吳衛祖
(1.廣州科技貿易職業學院 信息工程學院,廣東 廣州 511442;2.廣東海洋大學 信息學院,廣東 湛江 524088)
由于智能交通領域處理的對象主要是行人和車輛,因此行人與車輛兩類目標的檢測在智能交通領域應用需求更為旺盛[1-3]。在行人和車輛檢測方面,目前已經涌現出了許多有意義的方法,如采用Haar-like、方向梯度直方圖(HOG)特征,以及Adaboost、支持向量機(SVM)、深度網絡檢測行人和車輛[4-9]。就現有技術而言,行人和車輛檢測方法在背景比較簡單、目標遮擋不嚴重的條件下已經取得了較好的檢測效果。然而,對于實際的交通視頻而言,背景非常復雜,而且目標在行進過程中通常存在較為嚴重的遮擋,這樣情況下,現有方法的目標檢測性能不高,而且處理速度較慢。針對這一問題,本文提出一種思路,將運動檢測和目標跟蹤融合到目標檢測過程中,通過運動檢測來剔除復雜背景干擾,并降低在背景區域進行目標檢測所消耗的時間;通過目標跟蹤來預測真實目標的位置,修正目標檢測器的檢測得分,降低目標的虛檢或漏檢現象,進而提高目標檢測性能。
運動檢測是利用場景中的前景變化而背景不變的特性,將前景和背景進行分離。目前運動檢測方法主要分為3類:幀間差分法、背景減除法和光流法[10]。其中,背景減除法能夠適應背景的一些變化,抗干擾能力較強,是目前應用最廣的一類運動檢測方法。該方法通常需要先對背景進行建模,然后再通過當前幀圖像與背景模型之間的差異來檢測變化區域,提取前景目標。
目標檢測的基本原理是先通過訓練數據集學習一個目標檢測器,然后對于測試圖像,采用不同尺度的窗口滑動掃描整幅圖像,對每一個滑動窗口的圖像塊提取特征,并輸入目標檢測器進行分類,判斷是否為待檢測的目標。目標檢測的關鍵環節有兩個,一是特征提取,二是特征分類。常用的特征有Haar-like和HOG特征,常用的分類器有Adaboost和SVM。也可以直接將圖像輸入到深度網絡(如卷積神經網絡)中提取特征和進行分類。
目標跟蹤依據目標的顏色信息或者運動信息預測目標位置,常用的目標跟蹤方法有CamShift、光流跟蹤法和粒子濾波法[11]。其中,粒子濾波法是目前應用廣泛的目標跟蹤方法,其核心思想是隨機采樣和重采樣。在初始條件下通過隨機采樣分布粒子,后續依據特征相似度計算每個粒子的重要性,對重要區域分布更多的粒子,而對不重要區域降低粒子數量,從而在粒子數量有限的條件下更關注重要區域,提高跟蹤效率和精度。
在智能交通領域,從監視視頻中智能檢測行人和車輛是一項基礎性且極具挑戰性的工作。目前行人檢測研究比較成熟,相關方法也比較多,在一些背景較為簡單的數據集上測試也取得了較好的結果。但是,在真實的交通監視視頻中,行人遮擋和被遮擋的現象比較嚴重,行人的視角也經常變化,再加上實際場景中背景可能非常復雜,導致行人檢測的虛警率和漏警率都偏高。而車輛檢測目標效果更差,因為車輛的視角變化更大,且不同車輛的特征穩健性不強。這都給行人和車輛的可靠檢測帶來了很大挑戰。為了解決實際監控視頻中行人和車輛檢測虛警率和漏警率偏高的問題,本文在現有行人和車輛檢測思路的基礎上,引入了運動檢測和目標跟蹤預測策略,通過運動檢測過濾復雜背景并降低虛警現象,通過將目標跟蹤與預測結果反饋給行人和車輛檢測器,修正行人與車輛的檢測得分,降低虛警和漏警。同時,在行人和車輛位置的多尺度計算結果濾波方面,采用非極大值抑制方法過濾冗余結果,提高行人和車輛位置檢測的精確度。基于這一思路,本文設計的行人與車輛檢測方法的實現流程如圖1所示。

圖1 實現流程
由圖1可見,本文方法主要包括5個部分:運動檢測、目標檢測、目標篩選、目標跟蹤和檢測得分修正。其中,目標跟蹤結果反饋給目標檢測環節,通過修正目標檢測得分來為最終的目標檢測結果提供依據,這是本文的核心。具體描述如下。
考慮到智能交通應用中車輛和行人目標總會存在運動特性,因此本文先對視頻或圖像序列進行運動檢測,剔除復雜背景干擾,并降低在背景區域進行目標檢測所消耗的時間。運動檢測方法很多,本文在前一節已經綜述了目前運動檢測的常用方法。考慮到視頻處理對時效性的較高要求,同時為了避免造成目標漏檢或者不完整,本文選取目前運算效率較高、運動目標漏檢少而且運動目標提取較為完整的EVibe算法,該算法是一種基于背景模型的運動檢測算法,其背景模型構建過程引入了隨機理論,可以僅依據單幀圖像構建背景模型,非常簡便快捷。該方法的實現過程詳見文獻[12],本文不再贅述。
目標檢測方法在前一節也有綜述。本文主要考慮行人和車輛兩類目標,選用文獻[5]所述的目標檢測器。該目標檢測器所用的特征為HOG特征,所用的分類器為SVM分類器,詳細實現過程可以參考文獻[5]。其中,分類所需的訓練樣本在實驗部分詳述。在目標檢測過程,針對運動檢測所得到的運動區域圖像塊,采用多尺度的檢測窗口來遍歷該圖像塊,提取檢測窗口內的圖像HOG特征,然后輸入已訓練好的SVM分類器,得到輸出結果。對于每一個運動區域圖像塊,目標檢測器的輸出結果記為{Di|i=1,2,…,N}。 其中,N表示該運動圖像塊檢測到的目標總數。Di表示檢測到的第i個目標,該結果可以用一個三元組來表示,記為Di={CDi,WDi,SDi}。 其中,CDi表示第i個目標的質心,WDi表示第i個目標的外接矩形,SDi表示第i個目標的檢測得分。這里需要說明的是,第一,設定一個得分閾值To,僅保留超過閾值的目標檢測結果,也即在保留的目標集合 {Di|i=1,2,…,N} 中,有SDi>Ts,i=1,2,…,N。 在本文中,To取經驗值0.3。第二,為了在后續的過程中依據檢測得分來輸出最終的檢測結果,這里目標檢測器的輸出結果集合 {Di|i=1,2,…,N} 是有序的,具體是按照檢測得分SDi的大小降序排列,也即,SD1≥SD2≥…≥SDN。
對于圖像中的某一目標,目標檢測的檢測器通常會在該目標附近的不同位置和尺度上得到許多檢測結果,如圖2(a)所示。對于同一目標而言,這些檢測結果是存在冗余的,只需要篩選出一個結果作為該目標的最終檢測結果,如圖2(b)所示。本文采用非極大值抑制方法進行目標篩選,對冗余檢測結果進行清理。

圖2 目標篩選
對于每一個運動圖像塊的檢測結果集合,其目標篩選過程的實現偽代碼描述如下:
輸入: {Di|i=1,2,…,N};
過程: (1) For(i=1;i≤N;i++)
(2) For(j=i+1;j≤N;j++){
(3) 計算兩個外接矩形的重合度o(SDi,SDj);
(4) if(o(Di,Dj)>To)
(5) 刪除Dj;
(6) }


重合度o(SDi,SDj) 的計算公式為
(1)
式中:Area(SDi∩SDj) 表示兩個外接矩形SDi和SDj相交區域的面積,Area(SDi∪SDj) 表示兩個外接矩形SDi和SDj所圍成的整個區域的面積。
粒子濾波跟蹤是目前目標跟蹤領域的一種性能優異且高效的跟蹤算法。該算法的基本原理是依據重要程度對粒子進行重采樣,越重要的區域散布的粒子數量越多,從而提高跟蹤的精度。本文選擇粒子濾波算法進行目標跟蹤。在本文中,粒子濾波器由一定數量隨時間變化的跟蹤器表示,記為Tk,其中,k是跟蹤器的序號,是一個不小于零的整數。對于第t幀視頻圖像,跟蹤器的總數隨時間t變化,記為K(t),因此k小于等于K(t)。每個跟蹤器Tk包含n個粒子。記第t幀第k個跟蹤器的第j個粒子為pt,k,j, 該粒子可以由目標的質心坐標、檢測尺度和速度所組成的三元組來表示,記為pt,k,j={Ct,k,j,σt,k,j,vt,k,j}。 其中,Ct,k,j表示質心坐標,σt,k,j表示檢測尺度,vt,k,j表示速度。每個粒子對應一個權重值,記為wt,k,j。 每一個跟蹤器維護一個跟蹤狀態,記為Xt,k, 跟蹤狀態包含了該跟蹤器的質心坐標Ct,k、 檢測尺度σt,k和速度vt,k。 跟蹤器的參數主要包括:出生概率Pb、死亡概率Pd、概率增加步長P+、概率減小步長P-、位置重采樣參數σ1、尺度重采樣參數σ2、速度重采樣參數σ3。在本文的跟蹤過程中,將粒子濾波分為預測、關聯、觀測和重采樣4個階段。詳細說明如下。
(1)預測階段
考慮到幀與幀之間時間間隔很短,假設兩幀之間的目標運動是線性勻速運動。這樣,粒子在當前幀的狀態可以通過前一幀的狀態預測得到,有
σt|t-1,k,j=σt-1,k,j
(2)
vt|t-1,k,j=vt-1,k,j
(3)
Ct|t-1,k,j=Ct-1,k,j+vt|t-1,k,j
(4)
(2)關聯階段

目標Di與跟蹤器Tk的相似度計算公式為

(5)
式中:G(μ,σ) 表示均值為μ、方差為σ的高斯函數。跟蹤器的速度計算公式為
(6)
對于分配了目標的跟蹤器,其概率增加一個步長,表示為
Pt,k=Pt-1,k+P+
(7)
而對于未分配目標的跟蹤器,其概率減小一個步長,表示為
Pt,k=Pt-1,k-P-
(8)
需要說明的是,在增加或者減小跟蹤器概率時,要保證概率值在0~1之間。
對于為目標新分配的跟蹤器,其初始概率與出生概率相同,表示為
Pt,k=Pb
(9)
本文依據跟蹤器的概率來計算跟蹤器中每一個粒子的權重,公式為
(10)
式中:Nt,k表示跟蹤器Tk所包含的粒子數量。
(3)觀測階段
當新的觀測值分配給跟蹤器之后,對于該跟蹤器的每一個新觀測值和新的粒子,計算粒子與觀測值之間的相似度,然后對跟蹤器的權重進行更新,權重更新公式為
wt,k,i=wt,k,i+simDi,Tk
(11)
(4)重采樣階段
如果跟蹤器的概率值Pt,k低于死亡概率Pd,則刪除該跟蹤器。否則,采用隨機高斯波動對其粒子進行重采樣。如果一個跟蹤器的概率Pt,k小于1,則增加重采樣的參數值,記為
(12)
(13)
(14)
另外,新跟蹤器的狀態可以內部所有粒子的狀態的平均值來校正,表示為
(15)
在本文中,相關參數取值為經驗值,具體為:Pb=0.5,Pd=0.5,P+=0.05,P-=0.05,σ1、σ2和σ3的初始值都設置為2。
跟蹤器通過粒子濾波方法跟蹤目標,計算每一個粒子的權重,該權重反映了預測目標與真實目標的關聯程度。然后將該結果反饋給目標檢測器,修正目標檢測器的檢測得分,公式為
(16)

(17)
(18)
最后,依據修正后的檢測得分篩選目標,得到最終的目標檢測結果。
本文主要面向智能交通應用,針對行人和車輛兩類目標進行檢測。下面采用本文方法以及行人和車輛檢測領域的優秀方法分別進行對比實驗,其中,行人檢測實驗選擇文獻[4]~文獻[6]所述方法進行對比實驗,車輛檢測實驗選擇文獻[7]~文獻[9]所述方法進行對比實驗。所有方法都在相同的實驗平臺上進行。其中,計算機平臺性能參數為:3.2 GHZ 4核CPU、8 G內存、Windows 7操作系統、Visual Studio 2012軟件環境。實驗數據分為行人數據集和車輛數據集兩個部分,具體構建方法在下面的實驗中分別介紹。實驗時統計各種方法檢測到的目標窗口,通過與標記的目標窗口進行比較,來確定檢測到的目標是否正確。具體地,判斷目標是否被正確檢出的依據是,檢測到的目標外接矩形與數據集中標記的目標外接矩形的重合度超過50%,重合度的計算公式如式(1)。根據這些統計結果,計如下3個評價指標:
(1)真正率:正確檢出的目標數量與需要檢出的目標數量的比值,該值越大越好。
(2)假正率:錯誤檢出的目標數量與檢出的目標總數的比值,該值越小越好。
(3)處理幀率:平均每秒能處理的視頻幀數量,該值越大越好。
依據這些指標來評價不同方法的性能。下面分別介紹行人檢測實驗和車輛檢測實驗及對比結果。
在進行行人檢測實驗前,本文方法和文獻[4]~文獻[6]所述方法都需要訓練一個行人目標檢測器。因此,需要一個訓練數據集。本文選擇國際上常用的INRIA數據集進行訓練,該數據集包含行人圖像3548幅、非行人圖像1716幅。4種方法按照各自所選的特征及分類器來構建目標檢測器。之后,進行行人檢測實驗。考慮到智能交通應用場景,本文選擇Caltech數據集作為行人檢測實驗的測試數據集。該數據集是將真實的街景視頻存儲為圖像序列形式,視頻幀率為30 fps,圖像尺寸為640×480。本文方法利用圖像序列之間的幀間信息進行運動檢測和跟蹤,而其它3種方法都是只針對單幅圖像進行行人檢測的。需要說明的是,4種方法在采用多尺度窗口掃描圖像時,檢測窗口最大和最小尺寸一致,分別為80×160和24×48,窗口步長為1.2像素。表1給出了4種方法的實驗結果統計。

表1 行人檢測實驗結果統計
由表1可見,本文方法的假正率和處理幀率指標相對于其它3種方法而言優勢非常明顯,這是因為本文方法充分利用了圖像序列幀間的相關信息。具體地,本文方法先采用運動檢測方法,剔除了大量背景區域。于是,進行行人檢測的圖像區域面積大幅降低,盡管本文方法與其它方法相比在目標檢測步驟上還多了運動檢測和目標跟蹤兩個步驟,但這些步驟的運算復雜度遠低于目標檢測的運算復雜度,因此這些步驟的計算量相對于在整幅圖像上進行目標檢測而言是很小的,尤其是像文獻[6]那樣采用深度學習方法進行行人檢測時,在整幅圖像上進行檢測的效率非常低。同時,運動檢測剔除了大量復雜背景區域,可以有效降低這些區域上可能存在的行人目標誤檢現象,從而大幅降低了假正率指標。另外,本文方法還通過目標篩選和目標跟蹤兩個策略,進一步對目標進行確認,對于降低假正率指標也起到了很大作用。從真正率指標來看,本文方法也是4種方法中最高的,這得益于本文方法依據跟蹤結果修正檢測器的檢測得分,從而使得行人目標在運動過程中能夠持續被檢出,避免行人目標在運動過程中由于遮擋或視角變化等因素影響而降低了檢測得分,從而間接提高了目標的正確檢出率。本文方法所用的特征和分類器與文獻[5]方法相同,但是從真正率指標來看,本文方法相對于文獻[5]方法提高了17.2%,這說明融合運動檢測和目標跟蹤之后,漏檢的目標數量得以有效控制,正確檢測的目標數量明顯增多。
車輛檢測與行人檢測類似,只是目標由行人改變為車輛。同樣,需要先訓練目標檢測器。由于目前公開的車輛數據集很少,本文使用的車輛訓練樣本集是通過互聯網收集建立的,訓練集包括2000幅車輛圖像和6000幅非車輛圖像,為了標記方便,每一幅車輛圖像中都只包含一臺車輛,而且車輛圖像經過人工裁剪,尺寸為100×100,車輛周圍大約留有10個像素的背景區域。同樣地,4種方法按照各自所選的特征及分類器來構建車輛目標檢測器,之后進行車輛檢測實驗。考慮到智能交通應用場景,測試用的車輛數據集選用的是Changedetect.net上的baseline子集中的highway測試圖像序列,該序列的圖像尺寸為320×240。4種方法在采用多尺度窗口掃描圖像時,檢測窗口最大和最小尺寸一致,分別為100×100和30×30,窗口步長仍為1.2像素。表2給出了4種方法的實驗結果統計。

表2 車輛檢測實驗結果統計
由表2可見,盡管與表1相比,本文方法在3項指標方面的優勢有所下降,但本文方法所得到的3項指標仍然是4種方法中最優的,尤其是假正率和處理幀率兩個指標。這說明,不論是行人目標還是車輛目標,本文方法都能夠大幅降低目標的虛檢現象,并大幅提高目標的檢測效率。與表1相比,這里所對比的3種方法的處理幀率明顯高于表1中3種方法,而本文方法的處理幀率與表1相差不大,原因主要是車輛檢測處理的圖像尺寸小于行人檢測處理的圖像尺寸,這樣情況下,對整幅圖像進行目標檢測時,由于搜索范圍減少很多,導致算法的處理幀率都有較大提升。而本文方法只在運動區域圖像塊上進行目標檢測,與整幅圖像的尺寸關系不大,因此本文方法在檢測車輛目標和行人目標時處理幀率的差異不大。
行人和車輛檢測是智能交通系統的基礎研究課題之一,通過檢測行人和車輛的位置有助于對交通行為進行分析和預測,對于提高交通系統的智能化水平有著重要意義。目前,基于計算機視覺的行人和車輛檢測方法較多,但多數是針對背景簡單的視頻或者圖像進行的,在復雜的交通場景中往往會由于復雜背景或者目標遮擋的影響而降低目標檢測性能。本文針對這一問題,將運動檢測和目標跟蹤技術引入到目標檢測過程中,通過運動檢測技術來降低復雜背景的干擾,通過目標跟蹤技術來修正目標檢測器的檢測得分,降低目標遮擋等引起的檢測得分下降問題,提高目標的檢出率。本文在Caltech數據集上進行行人檢測實驗,在highway測試圖像序列上進行車輛實驗,通過與現有的行人和車輛檢測方法進行對比分析,驗證了本文方法可以取得更高的真正率、更低的假正率和更高的處理幀率,尤其是在假正率和處理幀率兩個指標方面,本文方法具有顯著的優勢。目前,本文在目標跟蹤時對慢速移動的行人目標和快速移動的車輛目標采用相同的參數,理論上這不是最佳的解決方案,后續我們將針對這一問題進行深入研究,提出更好的解決思路。