馮曉丹, 李呈祥, 喬祎
(1. 北京首都國際機場股份有限公司信息科技部, 北京 101399; 2. 北京首都國際機場股份有限公司運行控制中心, 北京 101399; 3. 中國民用航空總局第二研究所科研中心, 成都 610041)
隨著中國民航業(yè)快速發(fā)展,機場作為重要的交通樞紐面臨越來越大的運行壓力。由于近年來機場場面安全事故頻發(fā),計算機視覺技術越來越多的參與到了機場監(jiān)控工作中來[1-2]。機場監(jiān)控中使用的大多是計算機視覺中最基本的目標檢測以及目標跟蹤技術[3],然而隨著機場運輸吞吐量暴漲,這種簡單的應用遠遠無法滿足機場需求。
目前有關行為識別的研究基本都是針對單目標的行為識別,并且針對如何在視頻中找出行為主體關注較少[4]。傳統(tǒng)的行為識別方法主要是基于手動提取特征的方法[5],其特征提取方式主要包括全局特征提取[6]和局部特征提取[7],然而識別機場場面中飛行器的行為不僅需要目標在時間上的特征,還需要目標所處的位置背景特征,行為識別方法都是以人工智能為基礎的,而它們又可以大致分為單流網(wǎng)絡和雙流網(wǎng)絡兩種。其中雙流網(wǎng)絡將視頻分為空間流和時間流,空間流大都輸入普通的(red-green-blue,RGB)圖像,利用卷積神經(jīng)網(wǎng)絡訓練目標與背景的空間位置關系;時間流主要訓練的是目標前后幀之間的運動狀態(tài),因此光流[8]、運動矢量[9]等可以表征運動信息的圖像都可以作為它的輸入。由于該方法在輸入RGB圖像的同時需要額外準備其他輸入,因此在數(shù)據(jù)準備階段耗時較多,近年來雙流方法傾向于建立一種端到端的網(wǎng)絡結構,在網(wǎng)絡內(nèi)部提取光流而不是事先準備光流作為輸入,但是由于其計算量相對而言依然較大,因此對機場實際應用價值不大。單流網(wǎng)絡旨在直接輸入RGB圖像完成行為識別,希望通過單流的輸入同時完成對空間上位置信息和時間上的運動信息的訓練。單流網(wǎng)絡主要采用三維卷積[10-11]和多圖像的二維卷積[12]兩種方式,目前三維卷積針對復雜行為的識別精度更高,但是由于三維卷積的參數(shù)量遠大于二維卷積,運行速度過慢是它長期存在的問題。與之相比,二維卷積通過提取相鄰幀信息與多幀全局信息,在進行了時序信息建模的同時可以有效地降低網(wǎng)絡復雜度[13]。近兩年出現(xiàn)了三維遷移學習算法[14]以及無監(jiān)督的行為識別算法[15],然而這些算法大都經(jīng)過了遷移學習,而目前不存在機場場面數(shù)據(jù),因此也不具備遷移學習的條件。
針對機場場面的行為識別,目前主要還存在兩個方面的問題。首先是大多數(shù)情況下,機場場面監(jiān)控視頻中都存在多個飛行器目標,如何準確且快速的定位這些目標是一個重要問題。其次,機場監(jiān)控對于實時性的需求意味著無論是針對目標的定位還是行為識別都必須使用計算量較小的算法,使用盡量簡單的方法完成準確的定位以及行為識別是研究的重點。
由于機場場面是一個獨特的場景,它與普通區(qū)域的不同在于它有額外的手段輔助視頻進行目標定位。因此現(xiàn)選擇使用機場獨有的廣播式自動相關監(jiān)視系統(tǒng)(automatic dependent surveillance-broadcast,ADS-B)信息進行輔助定位。該方法通過現(xiàn)場標定以及坐標轉換,僅使用很小的計算量就可以準確定位場面上所有飛行器。而在單個目標的行為識別方面,由于設置的機場場面飛行器行為只有7種,并且其形變小、運動模式簡單,因此采用時間尺度的二維融合卷積來進行機場場面的行為識別,該算法僅在單流網(wǎng)絡中使用二維卷積,因此計算量遠小于雙流網(wǎng)絡以及三維卷積算法。綜上所述,現(xiàn)提出一種基于ADS-B的機場場面飛機行為識別方法,首先利用ADS-B信息,通過透視變換的方法對視頻中的所有飛機進行定位,然后利用歷史軌跡預測飛機一定距離之后的位置,通過歷史以及預測的目標位置劃定每一架飛機的運動區(qū)域,從而將多目標行為識別轉換為多個單目標行為識別任務。在每一架飛機的運動區(qū)域中,通過多時間尺度的融合卷積完成對所有飛機的行為識別。針對性地制作一個包含飛機各種行為的小型數(shù)據(jù)集為基于融合卷積的行為識別算法提供訓練和測試,同時在多個具有ADS-B數(shù)據(jù)以及相應標定數(shù)據(jù)的場面監(jiān)控視頻中進行驗證。
飛行器定位算法首先獲取ADS-B系統(tǒng)發(fā)出的廣播數(shù)據(jù),然后從其中提取各飛行器目標的WGS84(World Geodetic System84)坐標數(shù)據(jù)。由于該數(shù)據(jù)與圖像數(shù)據(jù)處于不同的坐標系,因此要先轉換坐標系以實現(xiàn)不同坐標系之間的數(shù)據(jù)映射,然后在圖像中找到飛行器具體位置。
ADS-B系統(tǒng)即廣播式自動相關監(jiān)視系統(tǒng),由多地面站和機載站構成,以網(wǎng)狀、多點對多點方式完成數(shù)據(jù)雙向通信。在機場智能化建設中ADS-B占有很重要的地位,它被認為是下一代航空運輸系統(tǒng)的核心。ADS-B的概念如圖1所示。飛機從全球導航衛(wèi)星系統(tǒng)例如全球定位系統(tǒng)(global positioning system, GPS)中獲得其地理坐標。然后,通過安裝在飛機上的廣播雷達以ADS-B報文的形式將航班號、位置、速度等信息進行廣播。地面站接收并解析ADS-B信息后,將其發(fā)送給機場塔臺、管制中心等位置,其廣播周期為每秒兩次。與用于地面監(jiān)視的傳統(tǒng)二次監(jiān)視雷達相比,ADS-B有許多優(yōu)勢,例如更精確的數(shù)據(jù)和更少的基礎設施。目前ADS-B系統(tǒng)已經(jīng)在加拿大、中國、瑞典、澳大利亞和阿聯(lián)酋等國家實施。從2020年開始,ADS-B美國大部分飛機將逐步強制性使用該數(shù)據(jù)。
圖1 ADS-B信號的概念圖Fig.1 The concept of ADS-B
ADS-B數(shù)據(jù)鏈路的兩個主要標準是1 090 MHz擴展頻閃器(1090ES)和通用接入收發(fā)器(UAT)[16]。由于UAT需要特殊的硬件,目前僅用于通用航空,而1090ES廣泛應用于商用飛機[17]。所采用的1090ES消息格式如圖2所示,長度為112位,由5個字段組成:下行格式(DF)、編碼格式(CF)、ICAO飛機地址(AA)、ADS-B數(shù)據(jù)(data)、奇偶校驗位(PC),使用AA字段和ADS-B字段[17]。AA字段攜帶24位的飛機唯一標識符即國際民用航空組織(ICAO)地址,ADS-B數(shù)據(jù)字段包含航班號、位置、速度、時間戳等[18]。國際民航組織的地址或呼號可作為每架飛機的標識符。
視頻圖像中,飛機在機場場面中的運動可以視為在一個平面上的運動,而根據(jù)ADS-B計算出的WGS84坐標同樣可以映射到該平面位置,因此將WGS84坐標轉換為地面坐標后,通過單應變換可以將飛機的像素坐標和實際坐標關聯(lián)起來。
要實現(xiàn)坐標關聯(lián),首先需要坐標標定,即獲取圖像像素坐標與相應地面坐標的組合。由于機場場面屬于軍事管制區(qū)域,進入手續(xù)煩瑣,因此只在成都雙流國際機場的多個視角下進行了標定,由于機場場面視角寬闊、區(qū)域極大,在每個視角下都進行了80組坐標標定,各坐標點都是均勻采樣得到。
坐標轉換使用最普遍的方法是單應變換方法,即通過建立矩陣表示同一平面上任意兩個點之間的對應關系,由于WGS84坐標使用的是極坐標系,并且很明顯與圖像不在一個平面,因此從WGS84 坐標到圖像坐標需要經(jīng)過兩次坐標轉換。首先是WGS84坐標系到以地球為中心的笛卡爾坐標系再到機場地面的局部笛卡爾坐標系的轉換,然后是局部笛卡爾坐標系到圖像坐標系的轉換。
如圖2所示,在WGS84坐標系中,點P的坐標可以用緯度N、經(jīng)度E和大地高度H來表示。緯度N是指P點與地球球心O的連線和赤道面XOY所成的線面角,經(jīng)度E為過P點的橢球面與本初子午面的夾角。由于針對的是機場地面目標,因此H默認為0。在以地球為中心的笛卡爾坐標系中,點P的坐標為(X,Y,Z),很明顯,向量OP可以表示為
圖2 WGS84坐標系和以地球為中心的笛卡爾坐標系Fig.2 The WGS84 coordinate system and earth-centered Cartesian coordinate system
(1)
式(1)中:e為橢球偏心率;R為地球半徑。之后在機場地面的局部笛卡爾坐標系UVW選擇各坐標軸上一點,再通過向量之間的映射計算就可以得到點P的局部笛卡爾坐標。
在局部笛卡爾坐標系中,使用OP所在直線作為W軸,由于機場所在地面是一個平面,故可以忽略該坐標系下所有W值。因此機場地面每一個點的坐標都可以與圖像平面上的齊次坐標形成一一映射關系,且該關系是基于單應性的,表達式為
(2)
式(2)中:H為單應矩陣,其中至少有4個參數(shù)是未知的,故至少需選擇4個點對參與計算。由于機場場面視角寬闊、區(qū)域極大,因此將整個視角劃分為4塊,采用20組標定結果分別計算每一塊的映射關系,最后將結果進行整合。之所以每一塊使用20組標定結果,是因為有可能不是所有的點對都適應這個嚴格的單應變換,也就是說,有一些異常值,在這種情況下,需要使用魯棒性算法對數(shù)據(jù)進行處理。在20組結果中任意取4組點形成一個子集,找到所有排列組合的結果,使用每一個子集和一個簡單的最小二乘算法來估計單應性矩陣,然后使用RANSCA方法計算得到每一個單應性矩陣的質量。
通過歷史以及預測的目標位置劃定每一架飛機的運動區(qū)域,從而將多目標行為識別轉換為多個單目標行為識別任務。在每一架飛機的運動區(qū)域中,通過多時間尺度的融合卷積完成對飛機的行為識別,算法在自制的數(shù)據(jù)集上進行訓練和測試。
在一個具有多架飛機的視頻中進行行為識別,首先需要把每一架飛機單獨區(qū)分出來,因此首先進行了運動區(qū)域劃分。由于飛機在機場中的行為不止與運動模式有關,也和周圍環(huán)境有關(如飛機進港需要包含對應的指廊才能與飛機直行進行區(qū)別),需要通過對飛機位置的預測將飛機進行某一個動作包含的所有區(qū)域分割出來,作為單個飛機的行為輸入行為識別網(wǎng)絡。顯然,飛機位置的預測是運動區(qū)域劃分的關鍵。由于ADS-B數(shù)據(jù)的存在,可以直接使用全球定位系統(tǒng)(GPS)坐標在圖像中精確定位飛機,從而避免了目標檢測帶來的耗時以及計算誤差,這無疑對算法的實時性提供了巨大的幫助。利用ADS-B數(shù)據(jù),可以得到一系列各飛機離散的歷史位置信息,利用這些信息可以很容易地對未來飛機位置進行預測。
飛機在機場場面中的運動軌跡非常單一,其前期運動模式可以很大程度上決定它的后續(xù)運動,并且非常復雜或者突然性的運動變化都不可能在飛機運動中出現(xiàn),因此運動函數(shù)擬合是最簡單有效的預測手段,同時,以7種行為的軌跡為基礎,選擇的擬合函數(shù)是一個簡單的一元二次方程,表達式為
F(x)=ax2+bx+c
(3)
式(3)中:a、b、c為需要擬合的參數(shù)。
相對于整幅圖像而言,飛機在機場場面的運動速度較慢,因此可以選擇較多的點進行函數(shù)擬合,選擇前5 s的所有位置進行擬合,由于ADS-B數(shù)據(jù)通常每0.5 s發(fā)送一次,因此總共有10個位置信息。很顯然,選取的20個點數(shù)量遠大于未知參數(shù)數(shù)量,為了避免坐標轉換可能的誤差,需要使用最小二乘法進行參數(shù)求解。在這里,自變量x為ADS-B的計數(shù)值,函數(shù)值為ADS-B計數(shù)值相對應的圖像坐標值,由最小二乘法方程組[式(4)]可求得3個參數(shù)a、b、c的值。
(4)
式(4)中:n為選取點的個數(shù)。通過函數(shù)預測飛機后續(xù)的所有位置直到在圖像中距離當前位置200像素或預測時間超過20 s,結合前5 s的歷史位置以及之后的預測位置可以將飛機某個動作的運動區(qū)域劃分出來。
完成運動區(qū)域劃分后,需要將所有劃分的視頻輸入卷積神經(jīng)網(wǎng)絡(convolutional neural networks,CNN)網(wǎng)絡進行行為識別。主要通過數(shù)據(jù)集制作、時間關系定義以及算法整體網(wǎng)絡3個方面對提出的飛機行為識別算法進行說明。
2.2.1 數(shù)據(jù)集制作
目前絕大多數(shù)行為識別的研究都是基于人進行的,針對飛機的行為識別基本都是通過跟蹤進行判斷的。自然也沒有基于飛機的公開數(shù)據(jù)集來提供行為識別的訓練,因此首先制作了一個小型的飛機行為識別數(shù)據(jù)集。該數(shù)據(jù)集包含直行、轉彎、短暫排隊、起飛、降落、進港、出港7種行為,共700段視頻,其中每一種行為包含80段訓練集和20段測試集,這些視頻包含了多個尺度、姿態(tài)、種類的飛機,每一段視頻只針對一個目標,所有視頻的分辨率被統(tǒng)一設置為360×256。
由于目標是在多目標視頻中對每一個目標進行行為識別,通過劃分每一架飛機的運動區(qū)域,因此數(shù)據(jù)集中的所有視頻都是在真實監(jiān)控視頻中通過前面提到的區(qū)域劃分方法劃分得到的。由于設置的7個動作判定方式、持續(xù)時間各不相同,因此整個數(shù)據(jù)集中視頻長度會因為動作不同而改變。其中,包含直行、轉彎、短暫排隊3個動作的視頻長度在20 s左右;將飛機距離指廊50 m開始的算作飛機進港,因此進港視頻長度約在25 s左右;出港動作包含所有推車向后推飛機的過程,因此其長度約在1 min左右;起飛、降落兩個動作由于速度較快,在一個視角中的停留時間不長,因此長度基本在15 s左右。
視頻儲存格式仿照UCF-101進行,按照動作分類將所有視頻放在7個文件夾中,并在train文件中存放訓練視頻名稱,test文件存放測試視頻名稱,classInd文件存放7種行為名稱。另外,數(shù)據(jù)集中單獨放置了20段完整的包含不超過4架運動飛機的監(jiān)控視頻,每一段視頻都有相應的ADS-B數(shù)據(jù)。為了方便表述,將該數(shù)據(jù)集命名為飛機動作識別(airplane action recognition,APAR)。
2.2.2 時間關系定義
假設輸入視頻為V,則其包含的所有圖像為{f1,f2,…,fn},定義該視頻所有視頻幀兩兩之間的關系為
(5)
式(5)中:Hβ、Gφ分別為相應的權重和激活函數(shù)。測試了最大池化、橫向連接等多種融合方式,發(fā)現(xiàn)使用全連接的方式可以得到最好的效果。相應的,把兩幀間的關系遞推到3幀中,表達式為
(6)
很顯然,當幾幀圖像距離很近時,圖像變化很小,融合計算意義不大,因此為了提高算法運行效率,沒有將所有的組合對相加,而是均勻地采樣第i、j、k幀并在每一對中按照先后進行排序。
對于上述第二種情況,采用運動矢量進行預估計,即先通過運動矢量來估計下一幀圖像中的準確位置,然后通過Mean Shift跟蹤算法進行跟蹤,這樣能彌補快速動目標而導致目標丟失的問題。理論上來說,可以通過對多個幀間關系的融合捕捉多個時間尺度下的時間關系,表達式為
MR(V)=R2(V)+R2(V)+…+R2(V)
(7)
相對于人的行為而言,飛機的行為種類較少,且形態(tài)改變程度遠不如人體,考慮到計算成本和實時性的需求,只考慮了3幀間的關系。
2.2.3 算法網(wǎng)絡結構
本文算法整體網(wǎng)絡結構如圖3所示,輸入為運動區(qū)域劃分將每個目標運動區(qū)域切分出來的圖像,之后將圖片按順序劃分為3部分,通過均勻采樣得到多個圖片組合,之后使用一個3D卷積核融合輸入的3張圖像,然后將結果輸入卷積神經(jīng)網(wǎng)絡,最后每個組合都將得到所有分類的得分,將所有得分取均值即可得到行為識別最終結果。
圖3 針對飛行器的行為識別算法結構圖Fig.3 Structure diagram of action recognition algorithm for airplane
圖像組合可以有更多的方式,例如兩幀間的組合可以加入算法訓練,與三幀的組合相結合。對二、三幀組合進行了測試,其結果與單獨使用三幀組合相比提升效果不明顯,因此最終選擇了3幀組合的方式,在CNN網(wǎng)絡模塊,使用Resnet-152網(wǎng)絡。
實驗搭建的環(huán)境配置為:Intel? Core CPU i9-9900@ 3.6 GHz;32 G內(nèi)存;GTX 2080Ti 16 GB顯卡。測試實驗計劃在本文提出的數(shù)據(jù)集APAR以及使用較為廣泛UCF-101,Jester中進行。UCF-101數(shù)據(jù)集是使用最廣泛的行為識別數(shù)據(jù)集,它包含101類動作,共13 320段視頻,每一段視頻長度都超過10 s且每一類動作至少100段視頻。Jester數(shù)據(jù)集是一個包含27類的手勢識別視頻數(shù)據(jù)集,它總共包含148 092段視頻,這些視頻都是人類在筆記本電腦攝像頭或網(wǎng)絡攝像頭前執(zhí)行的預先定義的手勢。
行為識別算法的輸入端將輸入圖像大小調整為360×256。CNN基礎網(wǎng)絡模型在ILSVRC數(shù)據(jù)集上進行了預訓練,批處理大小設置為32,設置的學習速率為0.001。當精確度趨于穩(wěn)定時,學習速率除以10。由于APAR數(shù)據(jù)集較小,訓練集數(shù)量遠無法與開源數(shù)據(jù)集相比,因此對每一組輸入圖像都采用了隨機縮放、水平翻轉等手段增加訓練量。
表1是7種算法在UCF-101、Jester數(shù)據(jù)集實驗對比,其中UCF-101更重視目標的空間幾何關系,其中大多數(shù)動作都可以根據(jù)目標各部分的空間位置直接判斷,而Jester數(shù)據(jù)集更注重目標在時間上的特征(即不同時間目標所在的位置不同)。由實驗結果可以看出,本文算法在Jester數(shù)據(jù)集的表現(xiàn)遠好于UCF-101數(shù)據(jù)集,這是因為本文算法更關注時間尺度上的訓練,這也很符合APAR數(shù)據(jù)集的特點。另外,在兩個公開數(shù)據(jù)集中表現(xiàn)與現(xiàn)有最優(yōu)秀的算法有一定差距,但這并不影響算法在機場環(huán)境下的實用性,由于針對機場飛機的行為識別難度不大且與人的行為識別有較大差別,因此較為簡單且具有針對性的結構反而在實時性上有很大的優(yōu)勢。
表2是7種算法分別從計算量以及識別精度兩個方面在機場飛機數(shù)據(jù)集中進行了實驗對比,對比結果如表2所示,其中TSN、TSM兩個算法的網(wǎng)絡結構為雙流網(wǎng)絡,它們會花費較大的計算資源在光流等時間流表征上,因此在這里其計算量不參與討論,雖然TSM識別精度很高,但是很明顯雙流網(wǎng)絡短時間內(nèi)都無法達到實時處理的水平。ResNet-50、ResNet-152是使用較多的殘差網(wǎng)絡,實驗中,視頻圖像作為輸入直接進入了兩個殘差網(wǎng)絡中,可以看到雖然其計算量不高,但是識別精度與其他算法有明顯的差別。C3D以及Res3D是兩種經(jīng)典的三位卷積的網(wǎng)絡模型,可以看到雖然其精度也達到了較高的水平,但是其計算量距離本文算法仍有較大差距。總的來說,雖然本文算法的行為識別網(wǎng)絡結構較為簡單,但是已經(jīng)可以較好地滿足飛行器行為識別這種簡單的應用,同時這種簡單的設計也在計算量方面有較大的優(yōu)勢。
表1 UCF-101、Jester數(shù)據(jù)集實驗對比Table 1 Experimental comparison in UCF-101 and Jester datasets
表2 機場飛機數(shù)據(jù)集(APAR)實驗對比Table 2 Experimental comparison in APAR
在驗證識別算法的同時,也驗證了飛行器定位的準確度。在標定的80組數(shù)據(jù)外隨機取了20個點,通過WSG84坐標轉換的像素點與實際像素點的對比,確定所有點的坐標誤差不超過5個像素。通過ADS-B數(shù)據(jù)解析出飛機的航班號,通過航班號來表示各不同架次的飛機,圖4為飛機定位效果圖。
在完成各部分的驗證之后,還需要對算法整體進行驗證,在APAR數(shù)據(jù)集中單獨放置了20段完整的包含不超過4架運動飛機的監(jiān)控視頻,每一段視頻都有相應的ADS-B數(shù)據(jù),之所以對飛機有數(shù)量限制,主要是因為數(shù)量過多會導致飛機在圖像中存在重疊、遮擋等干擾,而實際上一架飛機在機場場面中的活動很少與其他飛機存在交互,這會嚴重影響圖像識別的性能。把飛機航班號和具體動作聯(lián)系起來,最后顯示的效果如圖5所示,算法平均處理速度達到了20幀/s,基本滿足實時性需求。具體測試中對飛機行為的判斷準確度超過了95%,錯誤主要發(fā)生在兩架飛機行為不同且長時間距離較近的情況下,這會導致劃分的運動區(qū)域始終存在兩架飛機,CNN算法無法判斷具體識別那一架的問題,但是在大多數(shù)情況下,算法能準確地完成行為識別任務。
圖4 飛機定位效果圖Fig.4 Aircraft positioning effect drawing
圖5 算法整體效果圖Fig.5 Aircraft positioning effect drawing
針對機場場面監(jiān)控視頻中存在多個飛機目標,且各種行為軌跡相似,難以通過軌跡進行行為判斷的問題,提出了一種基于ADS-B的機場場面飛機行為識別方法。該方法首先利用ADS-B信息,通過透視變換的方法對視頻中所有飛機進行定位,然后利用歷史軌跡預測飛機一定距離之后的位置,通過歷史以及預測的目標位置劃定每一架飛機的運動區(qū)域,從而將多目標行為識別轉換為多個單目標行為識別任務。在每一架飛機的運動區(qū)域中,通過多時間尺度的融合卷積完成對所有飛機的行為識別。算法在專門制作的機場飛機行為識別數(shù)據(jù)集中得到了驗證,其定位精度、識別準確率及實時性都能較好地滿足機場飛行區(qū)實際應用的需要。
在后續(xù)的研究中,將針對算法運行速度進行進一步優(yōu)化,使用更先進的算法提高目標預測及運動區(qū)域劃分的效率,以滿足機場監(jiān)控運行管理的實際需求。