張立民,姜 杰,方 偉,劉 凱
(海軍航空大學, 山東 煙臺 264001)
飛行員座艙模擬訓練,是通過飛行訓練模擬器還原真實的飛行環境,可以對飛行員進行起飛、降落、空中加油、編隊飛行、戰術對抗以及面對復雜情況下的應急處置訓練,以低沉本、低風險和高效果、高回報的訓練方式,對未來真實訓練作戰具有重要的戰略意義?,F有的座艙模擬器對飛行員的頭位檢測跟蹤手段,還依舊停留在傳統的光電法[1]、慣性法[2]、電磁法[3]等,這些方法通過在飛行員頭部和座艙內安裝傳感器的方式,完成檢測跟蹤,實時性和準確度不高,且易受外界干擾。
近年來,深度學習理論不斷發展,在圖像處理、文字識別、大數據分析上取得較大突破。結合深度學習方法,通過訓練卷積神經網絡,結合姿態角解算算法,完成對飛行員的頭位檢測跟蹤。首先在座艙內安裝攝像頭,以獲取飛行員的實時訓練畫面,經圖像處理提取特征,輸入到卷積神經網絡,得到人臉檢測框和臉部特征點,根據臉部特征點進行空間坐標轉換,得到飛行員的頭部姿態角。結合頭盔瞄準具,把得到的姿態數據輸入到火控雷達,就可以迅速捕獲敵機目標,在近距離空中格斗中搶占先機。
對于人臉檢測的方法,主要有早期的模型匹配法、基于機器學習的HOG-SVM法[4]、Viola&Jones法[5]、DPM法[6]和基于深度學習的Facenet法[7]、Cascade CNN法[8]。但是這些方法在工業級的應用上并不是特別理想,而且由于人臉檢測效果一般,致使建立在檢測基礎之上的人臉對齊效果也并不理想。針對上述情況,提出了一種基于級聯卷積神經網絡的人臉檢測方法,在考慮到已有的深度學習方法沒有兼顧人臉檢測和對齊的內在關系,將檢測和對齊放在一個網絡結構中同時進行解決。另一方面,將頭部姿態解算加入到網絡結構中,通過訓練卷積神經網絡,從而得到飛行員的頭位姿態數據,以端到端的方式,完成對飛行員頭位的檢測跟蹤。首先通過級聯卷積神經網絡,對輸入的人臉圖像快速生成候選窗體,運用非極大抑制算法和邊界框回歸,對候選窗體進行篩選,得到精確的人臉檢測框,同時標記5個臉部關鍵特征點,然后運用EPNP算法,經過空間坐標轉換,最終得到飛行員的頭部姿態角。具體流程圖1所示。

圖1 算法流程示意圖
圖像金字塔是對輸入圖像的不同尺度表達,主要應用于計算機視覺和圖像分割,是一種對圖像進行預處理的方法。通過圖像金字塔預處理的操作后,就可以得到多種不同分辨率下的圖像,可以用于解釋原輸入圖像的結構[9]。其結構通常按照金字塔的形狀排列,圖像分辨率由上至下逐級遞減,如圖2所示。

圖2 圖像金字塔結構示意圖
在通過卷積網絡對人臉檢測前,需要對圖像進行多尺度變換處理,通常將圖像縮放成尺度大小不同的圖片,構成圖像金字塔,從而可以讓卷積網絡檢測到大小不同的人臉,以起到擴充了數據集,提升網絡檢測精度的作用。相比于傳統的多尺度變換處理,加入了多模板的處理方法,以豐富輸入圖像的表現形式,有效擴充了圖像數據集,從而保證在復雜場景中的人臉檢測精度。具體實現步驟為:首先對圖像進行多尺度處理,得到分辨率不同的圖像,然后采取8×8,12×12,16×16等3種不同規格的滑動窗口對不同尺度的圖像進行滑動采樣,最后將得到的不同尺度和模板的圖像送入卷積神經網絡中進行訓練。其流程如圖3所示。

圖3 多尺度多模板圖像金字塔流程示意圖
由三層卷積神經網絡級聯而成,分別為候選層(proposal network)、優化層(refine network)、輸出層(output network)組成。由于人臉檢測相比與其他多分類物體檢測和分類任務,是二分類問題,不需要更大的卷積核而是更小的卷積核。因此,將卷積核由5×5變為3×3,減小卷積核大小,增加模型了深度,這樣在減小模型大小的基礎上,提高了模型精度。
第一層P-Net為全卷積網絡(FCN),全卷積網絡的優點在于可以輸入任意尺寸的圖像,同時使用卷積運算代替了滑動窗口運算,大幅提高了計算效率,輸入數據為所有訓練樣本shape=(12×12×3)的圖像,獲得候選窗體和邊界回歸向量,同時對候選窗體根據邊界框進行校準,然后通過非極大抑制算法(non-maximum suppression,NMS)去除重疊窗體。其網絡結構如圖4所示。

圖4 P-Net網絡結構示意圖
將經過P-Net處理過的圖像輸入到R-Net中,其圖像shape=(24×24×3),同樣利用邊界框回歸執行校準,微量調整候選窗體,通過NMS算法合并重疊窗體。與P-Net不同的是,R-Net多了一層全連接層,用于圖像的分類,可以起到更好的抑制作用。其網絡結構如圖5所示。

圖5 R-Net網絡結構示意圖
將R-Net輸出的結果傳入O-Net中,輸入圖像shape=(48×48×3),該層相比于R-Net增加了一層卷積層,主要應用于對臉部細節的處理,其作用與R-Net一樣,但因為該層加入了更多對人臉區域的監督,所以可以在去除重疊窗體的同時標記5個人臉關鍵點(左眼、右眼、鼻子、左嘴角、右嘴角)的位置。其網絡結構如圖6所示。

圖6 O-Net網絡結構示意圖
從P-Net到R-Net再到O-Net,隨著網絡的輸入圖像尺寸越來越大,結構越來越深,可以使提取的特征越具有表現能力。運用了由粗到細的策略:第一步通過淺層的CNN選出候選窗口;第二步用更復雜的CNN過濾掉沒有臉部的窗口;第三步用更強大的CNN調優結果。
對于特征描述主要包含3個部分:人臉-非人臉二分類器、邊界框回歸、人臉特征點,下面分別介紹這3個部分的損失函數。
人臉分類的交叉熵損失函數為:
(1)

邊界框回歸(bounding box regression)采用歐式距離作為距離度量的回歸損失函數,公式如下:
(2)
式(2)中:y′為預測值邊框坐標;y為真值框坐標。由一個4元組(Xleft,Yleft,Width,Height)表示。
人臉特征點定位同樣是一個回歸問題,其損失函數是計算預測的關鍵點位置與實際位置之間的距離偏差,采用歐式距離作為距離度量。公式如下:
(3)
式(3)中:y′為預測結果;y為關鍵點實際位置.由于一共需要預測5個關鍵點位置,每個點為2個坐標值,所以y為十元數。

非極大值抑制算法(non maximum suppression,NMS),常被用于目標檢測、邊緣檢測、人臉檢測等領域,用于對生成的候選框進行后處理,去除冗余的候選框,得到最佳檢測框,以加快檢測的效率[10]。其思想是通過搜索局部最大值,抑制非極大值。實現效果如圖7所示。

圖7 非極大抑制算法實現效果圖
NMS算法是通過迭代的形式,將得分最高的框不斷地與其他框做IOU操作,以過濾掉IOU較大(即交集較大)的框[11]。在NMS算法中,將IOU大于閾值的窗口的得分一律置為0,其公式表述為:
(4)
從式(4)可以看出,直接刪除所有IOU大于閾值的框,將相鄰檢測框的分數均強制歸零,在這種情況下,如果一個真實物體在重疊區域出現,則將導致對該物體的檢測失敗并降低算法的平均檢測率(Average Precision,AP);另一方面NMS的閾值的設定同樣容易出現問題,一旦設置過小就會出現誤刪的情況,如果設置過高又會導致誤檢[12]。針對上述情況,對傳統的NMS算法進行了改進,即在算法執行過程中,不再是簡單的刪除IOU大于閾值的檢測框,而是通過建立置信度函數,降低其置信度得分。置信度重置函數通過2種形式進行改進[12],一種是線性加權:

(5)
另一種是高斯加權,即:
(6)
通過對weight變量的不斷更新,采用線性加權的方式,將更新值確定為1-ov,另一方面在高斯加權時引入sigma參數,從而使原始NMS算法中對IOU的取值不再直接為0或1。Soft NMS對于人臉檢測框的確定更為精準,有效提升了網絡訓練效果。
PNP算法旨在解決從3D-2D匹配中求解攝像頭位姿,通過確定相機的位置和方向,給定相機的內在參數以及3D點與其2D投影之間的n組對應關系。主要應用于攝影測量和計算機視覺領域,特別是在處理基于特征點的攝像機跟蹤等問題時,通常需要實時處理數百個噪聲特征點,這就需要高效的計算方法[13]。
EPNP算法是一種非迭代、封閉式的PNP算法,通過將世界坐標系中的3D坐標表示為一組虛擬的控制點的加權和[14],可用位姿的求解計算。對人臉姿態的解算,EPNP算法至少需要已知4個非共面人臉特征點三維空間坐標,通過與二維相機坐標系下對應點進行匹配,計算得到旋轉矢量,將旋轉矢量轉換為四元數,最終計算得到包含姿態信息的歐拉角。對于人臉3d模型,采用科英布拉大學的通用頭部模型,獲取包括眼球、鼻尖、嘴角等5個臉部關鍵點的三維坐標信息。對于相機內部參數,采用張正友相機標定法[15]進行確定。根據卷積神經網絡輸出的5個人臉關鍵點,經過EPNP算法計算便可以得到飛行員的頭部姿態數據。具體計算過程如下:
首先建立相機坐標系的數學模型,公式如下:
(7)
圖像坐標系(x,y)與相機坐標系(Xi,Yi,Zi)之間的關系如下:
(8)
因為頭部姿態為三自由度,因此,以3×3的矩陣表示為:

(9)
通過旋轉矩陣和旋轉角的關系,即可求得頭部姿態角roll,pitch,yaw分別為:
(10)
選取Wider Face數據集作為人臉檢測數據集,該數據集由3 233個圖像中的393 703個標記的面部邊界框組成[16],其中50%用于根據圖像難度測試3個子集,40%用于訓練,剩余用于驗證。選取Annotated Facial Landmarks in the Wild(AFLW)數據集作為人臉特征點檢測數據集,AFLW數據集包含24 386個面部的特征點標記。通過多尺度多模板的處理方法,在標注好的人臉圖片上進行隨機切割,根據切割到的邊框和真實的人臉框進行IOU計算,將IOU>0.65的劃分為正樣本(Positive)數據,將IOU<0.3的劃分為負樣本(Negative)數據,將IOU在0.4~0.65之間的劃分為部分面孔(Part)數據。將標注好的5個特征點劃分為Landmark face數據。這4種數據的用途為:① negative和positive用于人臉分類;② positive和part faces用于邊框回歸;③ landmark face用于人臉特征點定位(人臉對齊/關鍵點檢測)
訓練流程如圖8所示。

圖8 訓練流程框圖
通過對數據集進行多尺度多模板處理后,得到訓練樣本數量如表1所示。

表1 訓練樣本數量
將得到的數據集按negative/positive/part faces/landmark =3∶1∶1∶2的比例進行采樣,隨后送入各個網絡進行訓練,最后對得到的檢測結果計算召回率(recall)為:
(11)
式(11)中:TP表示正確識別為人臉的數量;FN表示未正確檢測出人臉數量,即系統漏報。將召回率結果與多尺度處理相比較(見表2),可以看到多尺度多模板的圖片預處理方式對檢測結果有一定的提升。

表2 不同網絡層召回率結果對比 %
NMS和Soft NMS算法在不同召回率(recall)下的檢測精度(precision),如圖9所示。

圖9 NMS和Soft NMS的檢測精度曲線
由圖9可以看出,通過Soft NMS算法對重疊區域的檢測框的得分進行調整而非直接歸零,可以有效提升在高召回率下的檢測精度。
繪制ROC曲線,與其他算法在Wider Face數據集下作比較,如圖10所示。
從圖10結果可以看出,相比與其他算法,召回率較高,且在誤報樣本為1 000時,召回率可達90.9%。
在實際場景中進行測試,對于光線變化、部分遮擋、大姿態變化均能有良好的檢測效果。測試效果如圖11所示。

圖10 ROC曲線

圖11 實際場景中測試效果圖
在工程應用中,對于頭位跟蹤技術的實時性的標準為不低于30 fps,在硬件配置為Intel Core i5-8250U CPU,MX150顯卡,8G內存的運行環境中進行測試,平均檢測幀數可達46 fps,滿足實時性要求,且相比于傳統頭位檢測方法,本文方法對于檢測誤差和外界干擾等方面更加魯棒。測試效果如圖12所示。

圖12 實時性測試效果圖
結合當前熱門的深度學習方法,通過對卷積神經網絡的訓練,結合計算機視覺、圖像處理的方式,完成對飛行員頭位的檢測跟蹤,應用于飛行員的日常模擬訓練中,相比于傳統的頭位檢測跟蹤方法,有很大的創新,并且在實際訓練中,在檢測精度和實時性方面有明顯提升。未來工作將繼續針對不同問題不斷地優化網絡結構,并借鑒其他檢測算法,設計其他實用的深度學習模型,應用于飛行員座艙模擬訓練中。