欒桂芬
(泰州機電高等職業(yè)技術(shù)學校 信息工程系,江蘇 泰州 225300)
無人機(UAV)航拍圖像具有分辨率高、視野大以及目標小的特點,攜帶攝像機的UAV可在任務區(qū)域開展實時空中監(jiān)視[1]。空中監(jiān)視可用于行人檢測與跟蹤、車輛檢測與跟蹤、人機交互和智能交通系統(tǒng)等領域[2]。UAV攜帶固定攝像機檢測運動目標時,通過檢索每幀像素中的目標變化對運動目標進行提取和識別[3]。然而,UAV在實際工況中不可避免的受到環(huán)境因素干擾難以檢測運動目標。因此,UAV攜帶非固定攝像機檢測運動目標已成為研究重點。
利用非固定攝像機檢測運動目標時,通常運用目標分割技術(shù)[4]進行檢測。文獻[5]利用不變矩和動態(tài)場景運動分割模型提取1s內(nèi)的幀差實現(xiàn)檢測,但檢測速度較慢且無法實時檢測。文獻[6]使用兩個或多個連續(xù)幀的像素間偏差來識別靜止目標和運動目標,但檢測結(jié)果依賴于光流計算的準確性和徑向畸變量。為了實現(xiàn)非固定攝像機實時檢測運動目標,文獻[7]通過自適應閾值法消除圖像序列背景運動得到前景分割,結(jié)合均值漂移分割方法對檢測到的前景進行細化完成運動目標檢測。文獻[8]通過融合時空差異和局部運動軌跡,利用前景估計分割識別運動目標。然而,上述方法并沒有充分證明非固定攝像機實時檢測多運動目標的可靠性。
為了有效地對航拍圖像中的多運動目標實時檢測與識別,本文將靜止目標和運動目標分別定義為背景和前景,利用圖像穩(wěn)化技術(shù)將航拍圖像序列中的每幀與相鄰幀對齊,克服UAV飛行動作對攝像機轉(zhuǎn)動拍攝圖像的影響。通過加速魯棒特征(SURF)算法檢測先前幀和當前幀之間相似的局部特征,結(jié)合仿射變換在齊次坐標中估計的特征位置實現(xiàn)位移估計。使用卡爾曼(Kalman)濾波器克服UAV飛行動作引起的幀位置變化,從而對圖像中的每幀進行位移補償。選取圖像中的行人和車輛作為運動目標候選(前景),分別使用哈爾(Haar-like)特征和級聯(lián)分類器對圖像中的目標進行檢測和識別,確定運動目標所在區(qū)域并標記前景和背景。利用密集光流計算兩幅連續(xù)圖像的運動矢量,從而區(qū)分靜止目標(背景)和運動目標(前景),最終圖像結(jié)果僅保留運動目標所在區(qū)域。
本文使用Visual Studio C++在雙核3.40 GHz CPU和8 GB RAM的計算機上處理UAV航拍圖像。利用天津大學發(fā)布的DroneVehicl航拍數(shù)據(jù)集作為研究視頻,數(shù)據(jù)集記錄了大型UAV在100~150 m的不同飛行高度所采集的圖像序列。選取分辨率為960×540的三類航拍圖像序列(視頻1、視頻2和視頻3)驗證本文方法的性能。其中,視頻1和視頻2是由UAV在相似高度(約110 m)拍攝以行人和車輛為主要目標的圖像序列,視頻3是在150 m高度拍攝的圖像序列,并且圖像中的各目標呈現(xiàn)效果更小。
利用非固定攝像機對多運動目標同時檢測需將靜止目標(背景)和運動目標(前景)進行區(qū)分,通過圖像穩(wěn)化技術(shù)克服UAV飛行動作對攝像機轉(zhuǎn)動拍攝圖像影響。UAV飛行動作對攝像機轉(zhuǎn)動拍攝圖像影響的建模,如圖1所示。
圖1 UAV飛行動作對攝像機轉(zhuǎn)動拍攝圖像影響的建模
非固定攝像機轉(zhuǎn)動相對應的背景運動受UAV在偏航、俯仰和翻轉(zhuǎn)三個軸向運動變化的影響。因此,還需要有效的仿射變換匹配特征點。本文設計的實時運動目標檢測和識別系統(tǒng)框架,如圖2所示。
圖2 UAV實時運動目標檢測和識別系統(tǒng)
系統(tǒng)結(jié)構(gòu)又可分為三個主要步驟:(1)航拍圖像穩(wěn)化;(2)目標檢測與識別;(3)運動矢量分類。
(1)
分別在x方向和y方向上計算dx和dy對應的Haar小波[10],圍繞每個特征點形成描述符矢量為:
v=(∑dx,∑dy,∑|dx|,∑|dy|)
(2)
以特征點為中心構(gòu)建4×4的數(shù)組,每個向量具有四個方向。因此,每個特征點總共有64個長度矢量。
(3)
其中:H為齊次仿射矩陣:
(4)
其中:aij為關于旋轉(zhuǎn)角θ的參數(shù),Tx和Tx分別為x軸和y軸上平移T的參數(shù)。仿射矩陣可以表示為最小二乘問題:
(5)
(6)
(7)
公式(5)中的最優(yōu)估計h通過高斯消元法來最小化均方根誤差(RMSE):
(8)
由于仿射變換不能表示圖像中發(fā)生的三維運動,因此在位移估計中會產(chǎn)生異常值。為了解決這個問題,在估計過程中采用隨機樣本一致性(RANSAC)[13]過濾異常值。
(9)
其中,初始狀態(tài)由z(0)=[0,0,0]定義,誤差的協(xié)方差可以估計為:
(10)
其中:初始誤差的協(xié)方差由e(0)=[1,1,1]定義,Ωp為過程噪聲的協(xié)方差。最佳Kalman增益計算為:
(11)
其中:Ωm為測量噪聲的協(xié)方差。誤差的協(xié)方差可通過以下方式進行補償:
(12)
z(t)=z(t)+K(t)(Γ(t)-z(t))
(13)
(14)
因此,得到的新軌跡為:
[σx(t),σy(t),σθ(t)]
(15)
(16)
其中:Φ(t)為比例因子:
(17)
航拍圖像的每幀通過圖像穩(wěn)化技術(shù)確定背景和前景,其中,前景由圖像中的候選運動目標(行人和車輛)組成。本文分別使用Haar-like特征[15]和增強級聯(lián)分類器[16]對前景進行檢測和識別。
Haar-like特征主要檢測圖像中不同尺寸的目標。Haar-like特征的模板,如圖3所示。
圖3 Haar-like特征的模板
每個特征模板內(nèi)有白色和黑色兩種矩形組組成,白色組和黑色組中的像素強度值分別累積,相鄰組之間的區(qū)別給出了亮區(qū)和暗區(qū)。因此,Haar-like特征適合于定義圖像中的信息,從而尋找不同尺寸的目標。
Haar-like特征值計算為像素灰度值在黑色矩形和整個特征區(qū)域上的加權(quán)和,使用積分圖[17]最小化圖像矩形區(qū)域像素總和中的數(shù)組。本文所采用的航拍圖像示例,如圖4所示。其中,圖4(a)和圖4(b)為本文要研究的主要運動目標示例,圖4(c)為非運動目標示例,即路標、柵欄、道路圖案、草地、電線、路障等。
圖4 圖像示例
使用AdaBoost算法[18]對所選分類器的特征進行組合,選擇分類器作為閾值來確定每個特征的最佳分類函數(shù)。訓練樣本設置為(αs,βs),s=1,2,…,N,其中,αs表示樣本的類標簽,βs=0或1分別表示負標簽或正標簽。將每個樣本轉(zhuǎn)換為灰度,然后按比例縮小到檢測器的基準分辨率。AdaBoost算法為迭代中的所有訓練樣本創(chuàng)建權(quán)重向量。所有樣本(α1,β1),…,(αN,βN)的初始權(quán)重向量設置為ω1(s)=1/N,則與所選分類器相關的誤差為:
(18)
λi(αs)=0或1分別是負標簽或正標簽的選定分類器,i=1,…,I為迭代數(shù)量。所選分類器將權(quán)重向量更新為:
(19)
其中:當類標簽αs分類正確時,則rs=0;否則,rs=1。δi為權(quán)重參數(shù):
(20)
最終的分類器W(α)是每個區(qū)域的標記結(jié)果:
W(α)=
(21)
用于目標檢測與識別的級聯(lián)分類器結(jié)構(gòu),如圖5所示。
圖5 目標檢測與識別的級聯(lián)分類器
圖5中的子窗口在圖像上滑動來識別包含目標的區(qū)域,區(qū)域在每個分類器被標記為正或負。如果區(qū)域標記為正,則分類器將進入下一階段,即該區(qū)域識別目標。否則,該區(qū)域?qū)擞洖樨摬⑾?。最后顯示處運動目標候選區(qū)域,而非運動目標區(qū)域不顯示在圖像中。如果運動目標候選區(qū)域與非運動目標相同,則該區(qū)域作為前景被消除。令第n個前景區(qū)域表示為:
Obj[n]=[(xmin(n),ymin(n)),(xmax(n),ymax(n))]
(22)
其中:(xmin(n),ymin(n))和(xmax(n),ymax(n))分別是矩形前景像素位置的最小位置和最大位置。通過與非運動目標區(qū)域的比較,可以消除運動目標候選區(qū)域的誤檢,從而減少計算時間。
利用密集光流計算兩幅連續(xù)圖像的運動矢量,使得靜止目標(背景)和運動目標(前景)之間的運動方向更加清晰便于區(qū)別。運動方向定義為背景和前景之間高度重復運動矢量的值。其中,背景的運動方向受攝像機轉(zhuǎn)動的影響。如果前景與背景具有相同的運動方向,則目標從前景中忽略。因此,最終圖像結(jié)果僅保留運動目標所在區(qū)域。
采用Farneback光流法[19]得到兩幅連續(xù)圖像的運動矢量。假設在10×10像素的窗口G(j)內(nèi)選擇像素j,通過使用多項式展開,G(j)中的每個像素可以由f(t-1)處的多項式來近似:
(23)
其中:p為向量,A(t-1)為對稱矩陣,b(t-1)為向量,c(t-1)為標量。f(t)處的局部坐標系可以定義為:
(24)
bT(t-1)(p-Δt)+c(t-1)=pTA(t-1)p+
(b(t-1)-2A(t-1)Δt)Tp+
ΔTtA(t-1)Δt-bT(t-1)Δt-c(t-1)
(25)
公式(24)和公式(25)的系數(shù)可以等效為:
(26)
因此,運動目標所在區(qū)域中提取的總位移為:
(27)
公式(27)中的位移是由x軸(Δxt)和y軸(Δyt)組成的每個對應運動目標所在區(qū)域的平移,因此,運動矢量的角度值為:
(28)
由于每個10×10像素的鄰域計算運動矢量,總位移為(圖像寬度/10)×(圖像高度/10)的矩陣。因此,新的第n個前景區(qū)域為:
(29)
利用Farneback光流估計的示例,如圖6所示。其中,圖6(a)的運動目標所在區(qū)域分別標記行人和車輛的運動目標候選(前景),圖6(b)為估計的運動矢量分布示例。
圖6 Farneback光流估計
在固定攝像機航拍圖像中,背景中的運動矢量為零,即運動方向值為零,則兩個連續(xù)幀之間沒有移動(由箭頭方向表示)。在本文的示例中,圖像由非固定攝像機拍攝,背景中的運動矢量有不同的方向,如圖6(b)所示。上面的運動目標所在區(qū)域是分類為非運動目標的停放車輛,其運動矢量與背景中的大多數(shù)運動矢量相似。下面的運動目標所在區(qū)域是分類為運動目標的行人,其運動向量與背景中的大多數(shù)運動矢量不同。因此,每個運動目標候選上的運動方向作為每個的運動目標所在區(qū)域中出現(xiàn)次數(shù)最多的運動矢量。在背景中,運動方向可以作為除前景外圖像中出現(xiàn)次數(shù)最多的運動矢量。運動矢量分類和運動目標選擇的流程圖,如圖7所示。
圖7 運動矢量分類和運動目標選擇的流程圖
UAV攜帶非固定攝像機的航拍圖像具有不穩(wěn)定性,從而導致圖像關于靜態(tài)(非運動)目標和動態(tài)(運動)目標的運動矢量不適合區(qū)分與辨別。無圖像穩(wěn)化和有圖像穩(wěn)化的運動矢量結(jié)果,分別如圖8和圖9所示。其中,圖8(a)和圖9(a)給出了背景中的運動矢量。圖8(b)和圖9(b)給出了作為靜態(tài)目標(停放車輛)的運動矢量。圖8(c)和圖9(c)給出了作為動態(tài)目標(行人)的運動矢量。
圖8 無圖像穩(wěn)化的運動矢量結(jié)果
圖9 有圖像穩(wěn)化的運動矢量結(jié)果
從圖8可以看出,動態(tài)目標和靜態(tài)目標的運動矢量基本相同,但與背景中的運動矢量略有不同。因此,無圖像穩(wěn)化的運動矢量結(jié)果不準確。圖9(b)中,停放車輛(靜態(tài)目標)的運動矢量與背景中的運動矢量基本相同。圖9(c)中,行人(動態(tài)目標)的運動矢量與背景中的運動矢量有很大不同。因此,經(jīng)過圖像穩(wěn)化后的運動矢量結(jié)果適用于區(qū)分靜態(tài)目標和動態(tài)目標。
視頻1、視頻2和視頻3的運動目標的檢測和識別結(jié)果,分別如圖10、圖11和圖12所示。
圖10 視頻1中的運動目標檢測結(jié)果
圖11 視頻2中的運動目標檢測結(jié)果
圖12 視頻 3中的運動目標檢測結(jié)果
由圖10至圖12可見,本文方法利用運動矢量的分類結(jié)果將區(qū)域未被識別為前景的目標進行了消除,從而對多運動目標進行檢測與識別。在圖12中包含5個行人,而圖12(a)和圖12(c)僅檢測到4個行人。因此,如果目標只有微小的位移,則很難區(qū)分運動矢量,而最終導致誤檢為非運動目標。
本文方法對DroneVehicl航拍數(shù)據(jù)集中視頻1至視頻3的計算時間性能結(jié)果,如表1所示。
表1 計算時間性能
本文利用真陽性(TP)、假陽性(FP)、假陰性(FN)、精度(PR)、召回率(R)和F統(tǒng)計量(F值)作為檢測性能的指標。其中,TP是與運動目標對應的檢測區(qū)域。FP是檢測到的與運動目標無關的區(qū)域。FN是與未檢測到的運動目標相關聯(lián)的區(qū)域。因此,精度(PR)、召回率(R)和F統(tǒng)計量(F值)可以分別計算為:
(30)
(31)
(32)
本文方法對DroneVehicl航拍數(shù)據(jù)集中視頻1至視頻3的檢測性能結(jié)果,如表2所示。
表2 檢測性能結(jié)果
由表2可見,視頻1具有最高的精度和召回率,視頻2精度最低,視頻3召回率最低。這是由于視頻1中只有少量目標且目標尺寸相對較大,視頻2中存在與被檢測目標(行人和車輛)相似的目標,例如樹木、柵欄、路標、房屋和灌木叢,而視頻3中的目標移位較小。
將本文方法與現(xiàn)有文獻方法對DroneVehicl航拍數(shù)據(jù)集中視頻1至視頻3的檢測進行了比較,其他方法包括:動態(tài)運動分割[7]、軌跡分類[8]、計算機視覺[21]、多圖匹配[22]和區(qū)域生長算法[23]。本文方法與其他方法的性能結(jié)果對比,如表3所示。
表3 本文方法與其他方法的性能結(jié)果對比
由表3可見,本文方法在多運動實時檢測與識別中的性能最佳,每秒平均幀數(shù)達到47.08 fps,比其他方法快,并且平均精度和召回率分別為0.94和0.91。實驗結(jié)果表明,本文方法通過Farneback光流計算兩個連續(xù)幀之間的運動矢量場,并且具有快速的計算時間。進一步證明了利用運動矢量分類的重要性,這是由于運動矢量分類可對靜止目標和運動目標進行區(qū)分,確定背景和前景中的運動方向,從而有效的檢測并識別UAV航拍圖像中的多個運動目標。
本文提出了一種面向攜帶非固定攝像機UAV的航拍圖像多運動目標實時檢測與識別方法。通過圖像穩(wěn)化技術(shù)將航拍圖像序列中的每幀與相鄰幀對齊,克服UAV飛行動作對攝像機轉(zhuǎn)動拍攝圖像的影響。選取圖像中的行人和車輛作為前景,分別使用哈爾(Haar-like)特征和級聯(lián)分類器對圖像中的目標進行檢測和識別。利用密集光流計算兩幅連續(xù)圖像的運動矢量,結(jié)合運動矢量分類方法消除運動方向與背景相似的運動目標候選,從而區(qū)分靜止目標(背景)和運動目標(前景),最終圖像結(jié)果僅保留運動目標所在區(qū)域。通過對不同航拍圖像序列的結(jié)果進行比較,驗證了本文方法在復雜背景下具有計算速度快和精度高的特點。
由于多運動目標實時檢測與識別是從航拍圖像穩(wěn)化開始,如果目標位移較小,則SURF算法檢測局部特征變化較小。因此,本文方法的局限性在于檢測精度取決于目標在圖像中的位移變化。在未來的研究中,利用更有效的圖像穩(wěn)化技術(shù)逐步提升目標位移估計。