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