馬志揚, 傅慧妮, 趙 博, 楊忠琳, 姜雨彤,朱夢琪, 孫偉琛, 李興鑫
(中國北方車輛研究所,北京 100072)
目前基于視頻圖像的運動目標檢測方法主要分為包括:幀差法[1, 2]、背景減除法[3-5]、光流法[6-8]、基于深度神經(jīng)網(wǎng)絡(luò)的檢測方法[9-11].幀差法依據(jù)連續(xù)幀之間背景區(qū)域圖像與運動目標的差異性進行判定,通過相鄰圖像的差分運算,確定運動目標區(qū)域,其優(yōu)點在于計算簡單,但是計算容易受噪聲干擾;背景減除法通過建立背景模型,采用當前幀圖像與背景模型減除獲取差異,進而獲得動目標區(qū)域,且通常采用高斯混合模型及相關(guān)優(yōu)化模型實現(xiàn)背景建模,其優(yōu)點在于通過預(yù)處理與背景建模降低攝像機及外部干擾帶來的噪聲影響,但是受背景建模影響較大,在光電平臺轉(zhuǎn)動或運動時,需要獲取連續(xù)多幀進行建模,時效性受到較大影響[12];光流法以相鄰幀間物體灰度守恒為前提對光流場進行估計[13],利用基于光流閾值約束技術(shù)進行目標檢測,無需背景先驗知識,但是運算量較高并受噪聲影響較大;基于深度學(xué)習(xí)的方法通過對視頻時序中目標的學(xué)習(xí)可以較好解決目標時空信息的關(guān)聯(lián)問題,但是對紋理不清、小尺寸目標、光電運動等場景的處理存在限制,且運算量較大.此外,傳統(tǒng)的運動目標檢測方法無法上報目標類型信息.以光電載荷平臺的運動目標檢測為研究目標,針對背景建模時間長、幀間匹配易受圖像噪聲影響、全局運動估計受限的問題,提出基于光電轉(zhuǎn)臺全局運動補償與YOLOv3網(wǎng)絡(luò)模型的運動目標檢測算法,在無需背景建模的條件下,獲取目標類型、像素坐標,實現(xiàn)幀間目標連續(xù)性匹配,提出目標運動程度估值計算方法,以此判定目標運動狀態(tài),并實現(xiàn)在邊緣端推理平臺的測試驗證.
本研究算法可以劃分為三個部分:首先通過神經(jīng)網(wǎng)絡(luò)模型對單幀視頻圖像中的目標進行檢測,獲得目標類型、像素坐標位置,然后獲取光電平臺信息補償視頻全局運動信息并對連續(xù)幀圖像中的目標進行唯一性匹配與運動估計,最后計算目標運動狀態(tài).
在基于陸地場景的視頻圖像中,目標運動狀態(tài)可以劃分為水平向(X)、垂直向(Y)及混合運動.因此,通過對視頻連續(xù)幀中目標位置狀態(tài)的矢量分析,可以獲取目標位置、動/靜狀態(tài)、運動速度、運動方向等信息.
該算法整體框架如圖1所示.目標檢測模塊的功能是采用YOLOv3模型獲取單幀圖像中目標在相應(yīng)時刻屬性,包括每一幀圖像目標的類型、目標中心坐標、目標框尺寸等信息.目標匹配模塊的功能是以T幀圖像作為滑動時間窗口,計算窗口內(nèi)第1幀到第T幀圖像中相鄰圖像的目標匹配性.在計算過程中,模塊通過獲取光電系統(tǒng)每一幀對應(yīng)的外部位置信息,對目標像素坐標進行補償,去除由于平臺轉(zhuǎn)動造成的全局運動.通過獲取目標的匹配關(guān)系,可以獲得T幀圖像對應(yīng)連續(xù)時刻的目標像素軌跡.運動狀態(tài)計算模塊的功能是通過對每一個目標的連續(xù)T幀軌跡進行平滑,去除抖動或噪聲造成的影響,計算該目標在每一幀的軌跡變動量,并與第T+1幀圖像中的目標進行比較,最終獲得第T+1幀中所有目標的運動狀態(tài)信息.
圖1 算法流程圖
YOLOv3網(wǎng)絡(luò)模型屬于one-stage目標檢測神經(jīng)網(wǎng)絡(luò)模型,由Joseph Redmon、Ali Farhadi提出[14],在原來YOLOv1、YOLOv2模型的基礎(chǔ)上,建立更大的骨干網(wǎng)絡(luò)DarkNet-53,實現(xiàn)多尺度預(yù)測與跨尺度特征融合,通過引入FPN(Feature Pyramid Networks)結(jié)構(gòu)能夠從上采樣層的特征和早期特征映射的細粒度信息進行融合,進而解決小尺寸目標的檢測問題.在傳統(tǒng)運動目標檢測中,小尺寸目標在背景建模過程中存在分割難、易于噪聲混淆的問題,但是通過YOLOv3可以很好規(guī)避傳統(tǒng)背景建模帶來的問題.YOLOv3網(wǎng)絡(luò)的輸入是單幀圖像,輸出結(jié)果是圖像中目標的類型、坐標信息、置信度.相比于其他神經(jīng)網(wǎng)絡(luò)模型,YOLOv3與SSD、RetinalNet等網(wǎng)絡(luò)精度相當,而且速度提高3倍.從精度、計算量、運算速度而言,采用YOLOv3網(wǎng)絡(luò)模型可以很好解決目標屬性與定位的檢測問題.算法運行過程中無需建?;?qū)B續(xù)幀圖像進行預(yù)處理.
在YOLOv3單幀檢測的基礎(chǔ)上,選取匹配觀察窗口,即對連續(xù)T幀的視頻圖像進行檢測,并記錄對應(yīng)幀號的目標檢測結(jié)果,如圖2所示.
據(jù)此,可以得到連續(xù)T幀圖像的目標信息列表,如公式(1),(2)所示:
I1={Det1,1,Det1,2,Det1,3,…,Det1,i,…,Det1,n},I2={Det2,1,Det2,2,Det2,3,…,Det2,i,…,Det2,n},……Im={Detm,1,Detm,2,Detm,3,…,Detm,i,…,Detm,n},……IT={DetT,1,DetT,2,DetT,3,…,DetT,i,…,DetT,n}.
(1)
Detm,i={Classm,i,CXm,i,CYm,i,Widthm,i,Heightm,i},
(2)
式中:m表示連續(xù)圖像幀序號,且1 通過YOLOv3與觀察窗口中連續(xù)幀圖像的計算,基于視頻流幀序的目標檢測信息可以很好地表征相應(yīng)目標的像素軌跡,可以用于解決目標信息連續(xù)性與一致性問題.但是,通過圖像識別獲取的目標軌跡信息不僅包含目標自身運動引起的像素位移,同時包括由于光電轉(zhuǎn)臺轉(zhuǎn)動導(dǎo)致的全局運動信息.因此,計算連續(xù)視頻幀之間的全局運動信息是進行目標匹配與計算目標運動狀態(tài)的前提.在本研究中,通過光電轉(zhuǎn)臺位置傳感器獲取光電觀察視場的全局運動狀態(tài),具體表示如公式(3)所示. CamXY1={CamX1,CamY1},CamXY2={CamX2,CamY2},……CamXYm={CamXm,CamYm},……CamXYT={CamXT,CamYT}, (3) 式中:CamXYm表示光電攝像頭在第m幀時的水平(X)、垂直(Y)像素坐標. 光電觀察視場的全局運動變化可以具體表示為上述像素坐標的差值,如式(4)所示. MoveCamXY2,1={CamX2-CamX1,CamY2-CamY1},……MoveCamXYm,m-1={CamXm-CamXm-1,CamYm-CamYm-1},……MoveCamXYT,T-1={CamXT-CamXT-1,CamYT-CamYT-1}. (4) 經(jīng)過光電相機視場角與圖像像素分辨率的關(guān)系,可以計算得到在第m幀時刻由于光電轉(zhuǎn)臺運動導(dǎo)致的圖像全局運動像素坐標變化,如式(5)所示. PixelCamXm,m-1=(CamXm-CamXm-1)/CamX_angle·CamX_res,PixelCamYm,m-1=(CamYm-CamYm-1)/CamY_angle·CamY_res, (5) 式中:CamX_angle表示水平向視場角;CamX_res水平向像素分辨率;CamY_angle表示垂直向視場角;CamY_res垂直向像素分辨率. 從每一幀目標檢測結(jié)果中剔除全局運動帶來的影響,可以得到由于自身運動狀態(tài)導(dǎo)致的像素坐標信息變化.以第m幀第i個目標檢測結(jié)果為例,目標檢測結(jié)果進行更新,如式(6)所示. (6) 依據(jù)去除全局運動的每一幀目標信息,計算相鄰幀號圖像的每一個目標的匹配關(guān)系,并確定幀間每一個目標的連續(xù)性.視頻幀之間的目標匹配機制采用目標屬性與IoU(Intersection over Union交并比)計算匹配方法.目標屬性的匹配,是指相比較的兩個目標必須具有相同的類型.IoU計算機制,是指相比較的兩個目標框計算交并比.當交并比大于某一個閾值時,判定為同一目標;當存在某個目標框與多個目標框比較時,優(yōu)先判定IoU最大值的目標為同一目標.如圖3所示. 圖3 IoU計算示意圖 IoUm,m-1|i,k=交集像素總數(shù)/并集像素總數(shù). (7) 如圖4所示,以第m幀中第i個目標為例,以第m,i目標表示.假設(shè)第m-1幀存在n個目標,匹配過程如下: 圖4 目標匹配計算流程 1)第m,i目標與第m-1幀的目標集比較目標類型.當目標類型一致時,計算目標框交并比IoU.如果不存在相同的目標類型,上溯第m-2幀進行比較. 2)當IoU大于設(shè)定閾值時,判定為“具有連續(xù)性”. 3)遍歷第m-1幀的剩余目標進行比較,計算IoU最高的目標框,并以此目標作為與第m,i目標匹配度最高的目標,判定為“具有一致性”. 本研究中,目標運動狀態(tài)估算包括目標水平向、垂直向像素速度(像素/幀),同時包括目標運動程度估值,并依次計算目標是否為運動目標. 獲得目標的光電軌跡后,依據(jù)其每一幀對應(yīng)時刻像素變化量可以估算出目標的運動像素速度,從而獲得靜/動狀態(tài)的判定.假設(shè)第T,i目標在觀察窗口內(nèi)的匹配目標均為每一幀中的第k個目標.據(jù)此可以計算出幀間變化量,如公式(8)所示. (8) 式中:VXT,i表示目標在T幀內(nèi)的水平向像素速度(像素/幀);VYT,i表示目標在T幀內(nèi)的垂直向像素速度(像素/幀). 由于目標在不同視場角、不同距離、不同姿態(tài)下,運動變化量不唯一,通過幀間變化量無法直接體現(xiàn)目標運動的程度,考慮采取計算目標像素變化量相對于目標本身幅度的比率進行判定.定義該比率值為目標運動程度估值,如公式(9)所示. (9) 式中:RXT,i表示目標在水平向的運動程度估值;RYT,i表示目標垂直運動程度估值. 當RXT,i、RYT,i高于設(shè)定的閾值(ThXi,ThYi)時,可以判定目標為“運動目標”.此外,該策略可以依據(jù)目標類型、目標物理高度、目標物理寬度、目標最低需檢測物理運動速度等方式設(shè)置判定閾值,提高對目標運動狀態(tài)的穩(wěn)定性.具體計算方式如公式(10)所示. ThXi=VXobject/Widthobject,ThYi=VYobject/Heightobject, (10) 式中:ThXi,表示水平向運動程度判定閾值;ThYi,表示垂直向運動程度判定閾值;VXobject是最低需檢測目標的水平向物理運動速度,單位m/s;VYobject是最低需檢測目標的垂直向物理運動速度,單位m/s;Widthobject是目標寬度,單位m;Heightobject是目標高度,單位m.目標寬度與高度依據(jù)可識別的目標類型數(shù)據(jù)庫進行設(shè)定,例如汽車寬度與高度. 當系統(tǒng)接收最新幀的圖像數(shù)據(jù)時(假設(shè)最新一幀為第T+1幀),通過目標檢測模塊獲取該幀的所有目標信息.以前T幀數(shù)據(jù)為基準進行匹配,可以獲得第T+1幀中相應(yīng)的目標的運動狀態(tài).當?shù)赥+1幀中沒有識別到前T幀中的目標時,可以通過運動估計的方式,實現(xiàn)對漏檢目標的短時估計,提高目標檢測率. 以coco、voc等公開數(shù)據(jù)集為訓(xùn)練集,采用現(xiàn)實場景中的車輛視頻為測試用例.本研究通過英偉達TX2、NX邊緣端推理平臺實現(xiàn)算法布置與驗證. 部分測試輸入視頻與輸出視頻結(jié)果如圖5所示.經(jīng)過處理后,原始視頻中目標車輛可以穩(wěn)定地被檢測,實線框為目標識別框,字母為目標類型.視頻分辨率為1280×960,視場角為3°×2.25°;視頻幀率為25 fps;單幀圖像檢測耗時為32 ms.以圖5為例,連續(xù)4幀圖像中,目標識別結(jié)果為:目標類型“ORV(越野車)”、“目標識別框像素坐標位置(如圖中矩形框)”,試驗數(shù)據(jù)如表1所示. 圖5 視頻序列連續(xù)4幀的檢測結(jié)果 表1 目標檢測結(jié)果信息 依據(jù)基于光電轉(zhuǎn)臺傳感器反饋的位置信息實現(xiàn)對圖像全局運動像素位置變化的補償,對連續(xù)幀的視頻進行測試.考慮單幀圖像檢測的耗時,選取10幀作為窗口觀察期.依然以圖5中檢測結(jié)果為例,選取連續(xù)4幀窗口,計算幀間目標識別框IoU數(shù)值如表2所示,并依次判定幀間目標是否為連續(xù)的同一目標,進而可以獲得目標匹配一致性關(guān)系如圖6所示. 表2 幀間目標IoU計算與一致性計算結(jié)果 圖6 視頻序列連續(xù)4幀的檢測結(jié)果 圖6中車輛目標被覆蓋區(qū)域表示前后幀重疊區(qū)域,其中重疊越多,對應(yīng)的IoU越大,也說明目標運動程度越低.觀察第4幀圖像可以看到,此時車輛發(fā)生明顯加速,相應(yīng)的運動程度越高,IoU降低. 通過獲取幀間目標的一致性,可以獲取目標在不同時刻的軌跡信息.以圖6中越野車目標與光電轉(zhuǎn)臺速度為例,以英偉達TX2平臺算法處理速度作為幀間時間差(140 ms).據(jù)此可以得到越野車目標在去除光電轉(zhuǎn)臺全局運動后的水平向、垂直向像素速度(VX,VY),并計算得到目標在水平向、垂直向的運動程度估值(RX,RY).進一步以運動車輛目標最低需檢測物理運動速度為10 km/h為條件,可以得到水平向、垂直向運動程度判定閾值(ThXi,ThYi).上述結(jié)果如表3所示.通過對運動程度估值的判定,最終上報目標的運動狀態(tài)為“運動”,如圖7中所示,且以箭頭指示方向為主運動方向. 表3 目標運動程度估值與運動狀態(tài)判定結(jié)果 圖7 目標運動狀態(tài)檢測結(jié)果 依據(jù)算法原理中目標匹配的分析,當同一視場存在多個目標時,連續(xù)幀圖像中各目標的識別框IoU匹配關(guān)系最密切的為上一幀圖像中對應(yīng)的同一個目標.因此在多目標場景中,算法依然可以同時對圖像中的目標運動狀態(tài)進行判定.以多目標視頻圖像為測試對象,試驗結(jié)果如圖8所示,在同一視場中,行駛的越野車和卡車均可分別判定屬于“運動目標”,且運動方向如箭頭所示,即該算法能夠?qū)崿F(xiàn)對多目標場景的有效處理. 圖8 多目標運動狀態(tài)檢測結(jié)果 以典型的邊緣端機器學(xué)習(xí)平臺為測試硬件,選取TX2、NX作為測試平臺分別進行測試.試驗結(jié)果如表4所示.可以看出,該算法在邊緣端平臺具備實時處理能力.但是,需要注意的是,在TX2平臺上,目標匹配的計算間隔為140 ms.因此,當目標橫向運動速度(角速度)較高,且在初始階段無法對目標框進行速度估計時,例如目標框在140 ms內(nèi)的橫向像素位移大于目標框X方向像素數(shù)時,連續(xù)幀間的目標框無法進行匹配,此時算法無法有效判定目標的運動狀態(tài).基于此,在邊緣端布置算法時,應(yīng)當充分考慮偵察目標的可能運動情況與邊緣端機器學(xué)習(xí)平臺的計算能力,進而在保證時效性的情況下確定算法對相應(yīng)場景下的運動目標能夠檢測到. 表4 邊緣端平臺算法運行速度 針對傳統(tǒng)動目標檢測算法背景建模慢、圖像噪聲影響大等問題,以光電轉(zhuǎn)臺位置信息、目標識別、幀間目標匹配、運動狀態(tài)估計為切入點,提出基于光電轉(zhuǎn)臺全局運動補償與YOLOv3網(wǎng)絡(luò)模型的運動目標檢測算法,以車輛視頻圖像為測試對象,結(jié)果表明:1)采用基于連續(xù)幀的YOLOv3目標檢測模型,無需背景建模,能夠獲取連續(xù)幀中目標的識別類型、像素坐標,提高了目標的檢測穩(wěn)定性與幀間匹配的關(guān)聯(lián)程度,降低了由于圖像噪聲導(dǎo)致的干擾影響;2)引入光電轉(zhuǎn)臺位置信息剔除全局運動影響;3)采用IoU匹配機制,解決連續(xù)幀中多目標的連續(xù)性匹配問題,并獲得每一個目標的像素坐標軌跡;4)提出目標運動程度估值計算方法,獲得目標運動狀態(tài)信息,并通過目標類型自動調(diào)整判定閾值,提高了運動狀態(tài)判斷的穩(wěn)定性;5)可以在邊緣端平臺較好處理運動目標檢測問題,保證目標運動狀態(tài)信息實時上報.1.3 基于光電轉(zhuǎn)臺全局運動補償?shù)哪繕似ヅ?/h3>
1.4 目標運動狀態(tài)估算
2 算法驗證
2.1 目標檢測
2.2 目標匹配
2.3 目標運動狀態(tài)估算
2.4 多目標場景下運動目標檢測測試
2.5 算法運行速度
3 結(jié) 論