張立民,姜 杰,方 偉,劉 凱
(海軍航空大學(xué), 山東 煙臺 264001)
飛行員座艙模擬訓(xùn)練,是通過飛行訓(xùn)練模擬器還原真實的飛行環(huán)境,可以對飛行員進行起飛、降落、空中加油、編隊飛行、戰(zhàn)術(shù)對抗以及面對復(fù)雜情況下的應(yīng)急處置訓(xùn)練,以低沉本、低風(fēng)險和高效果、高回報的訓(xùn)練方式,對未來真實訓(xùn)練作戰(zhàn)具有重要的戰(zhàn)略意義?,F(xiàn)有的座艙模擬器對飛行員的頭位檢測跟蹤手段,還依舊停留在傳統(tǒng)的光電法[1]、慣性法[2]、電磁法[3]等,這些方法通過在飛行員頭部和座艙內(nèi)安裝傳感器的方式,完成檢測跟蹤,實時性和準確度不高,且易受外界干擾。
近年來,深度學(xué)習(xí)理論不斷發(fā)展,在圖像處理、文字識別、大數(shù)據(jù)分析上取得較大突破。結(jié)合深度學(xué)習(xí)方法,通過訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò),結(jié)合姿態(tài)角解算算法,完成對飛行員的頭位檢測跟蹤。首先在座艙內(nèi)安裝攝像頭,以獲取飛行員的實時訓(xùn)練畫面,經(jīng)圖像處理提取特征,輸入到卷積神經(jīng)網(wǎng)絡(luò),得到人臉檢測框和臉部特征點,根據(jù)臉部特征點進行空間坐標轉(zhuǎn)換,得到飛行員的頭部姿態(tài)角。結(jié)合頭盔瞄準具,把得到的姿態(tài)數(shù)據(jù)輸入到火控雷達,就可以迅速捕獲敵機目標,在近距離空中格斗中搶占先機。
對于人臉檢測的方法,主要有早期的模型匹配法、基于機器學(xué)習(xí)的HOG-SVM法[4]、Viola&Jones法[5]、DPM法[6]和基于深度學(xué)習(xí)的Facenet法[7]、Cascade CNN法[8]。但是這些方法在工業(yè)級的應(yīng)用上并不是特別理想,而且由于人臉檢測效果一般,致使建立在檢測基礎(chǔ)之上的人臉對齊效果也并不理想。針對上述情況,提出了一種基于級聯(lián)卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測方法,在考慮到已有的深度學(xué)習(xí)方法沒有兼顧人臉檢測和對齊的內(nèi)在關(guān)系,將檢測和對齊放在一個網(wǎng)絡(luò)結(jié)構(gòu)中同時進行解決。另一方面,將頭部姿態(tài)解算加入到網(wǎng)絡(luò)結(jié)構(gòu)中,通過訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò),從而得到飛行員的頭位姿態(tài)數(shù)據(jù),以端到端的方式,完成對飛行員頭位的檢測跟蹤。首先通過級聯(lián)卷積神經(jīng)網(wǎng)絡(luò),對輸入的人臉圖像快速生成候選窗體,運用非極大抑制算法和邊界框回歸,對候選窗體進行篩選,得到精確的人臉檢測框,同時標記5個臉部關(guān)鍵特征點,然后運用EPNP算法,經(jīng)過空間坐標轉(zhuǎn)換,最終得到飛行員的頭部姿態(tài)角。具體流程圖1所示。
圖1 算法流程示意圖
圖像金字塔是對輸入圖像的不同尺度表達,主要應(yīng)用于計算機視覺和圖像分割,是一種對圖像進行預(yù)處理的方法。通過圖像金字塔預(yù)處理的操作后,就可以得到多種不同分辨率下的圖像,可以用于解釋原輸入圖像的結(jié)構(gòu)[9]。其結(jié)構(gòu)通常按照金字塔的形狀排列,圖像分辨率由上至下逐級遞減,如圖2所示。
圖2 圖像金字塔結(jié)構(gòu)示意圖
在通過卷積網(wǎng)絡(luò)對人臉檢測前,需要對圖像進行多尺度變換處理,通常將圖像縮放成尺度大小不同的圖片,構(gòu)成圖像金字塔,從而可以讓卷積網(wǎng)絡(luò)檢測到大小不同的人臉,以起到擴充了數(shù)據(jù)集,提升網(wǎng)絡(luò)檢測精度的作用。相比于傳統(tǒng)的多尺度變換處理,加入了多模板的處理方法,以豐富輸入圖像的表現(xiàn)形式,有效擴充了圖像數(shù)據(jù)集,從而保證在復(fù)雜場景中的人臉檢測精度。具體實現(xiàn)步驟為:首先對圖像進行多尺度處理,得到分辨率不同的圖像,然后采取8×8,12×12,16×16等3種不同規(guī)格的滑動窗口對不同尺度的圖像進行滑動采樣,最后將得到的不同尺度和模板的圖像送入卷積神經(jīng)網(wǎng)絡(luò)中進行訓(xùn)練。其流程如圖3所示。
圖3 多尺度多模板圖像金字塔流程示意圖
由三層卷積神經(jīng)網(wǎng)絡(luò)級聯(lián)而成,分別為候選層(proposal network)、優(yōu)化層(refine network)、輸出層(output network)組成。由于人臉檢測相比與其他多分類物體檢測和分類任務(wù),是二分類問題,不需要更大的卷積核而是更小的卷積核。因此,將卷積核由5×5變?yōu)?×3,減小卷積核大小,增加模型了深度,這樣在減小模型大小的基礎(chǔ)上,提高了模型精度。
第一層P-Net為全卷積網(wǎng)絡(luò)(FCN),全卷積網(wǎng)絡(luò)的優(yōu)點在于可以輸入任意尺寸的圖像,同時使用卷積運算代替了滑動窗口運算,大幅提高了計算效率,輸入數(shù)據(jù)為所有訓(xùn)練樣本shape=(12×12×3)的圖像,獲得候選窗體和邊界回歸向量,同時對候選窗體根據(jù)邊界框進行校準,然后通過非極大抑制算法(non-maximum suppression,NMS)去除重疊窗體。其網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4 P-Net網(wǎng)絡(luò)結(jié)構(gòu)示意圖
將經(jīng)過P-Net處理過的圖像輸入到R-Net中,其圖像shape=(24×24×3),同樣利用邊界框回歸執(zhí)行校準,微量調(diào)整候選窗體,通過NMS算法合并重疊窗體。與P-Net不同的是,R-Net多了一層全連接層,用于圖像的分類,可以起到更好的抑制作用。其網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 R-Net網(wǎng)絡(luò)結(jié)構(gòu)示意圖
將R-Net輸出的結(jié)果傳入O-Net中,輸入圖像shape=(48×48×3),該層相比于R-Net增加了一層卷積層,主要應(yīng)用于對臉部細節(jié)的處理,其作用與R-Net一樣,但因為該層加入了更多對人臉區(qū)域的監(jiān)督,所以可以在去除重疊窗體的同時標記5個人臉關(guān)鍵點(左眼、右眼、鼻子、左嘴角、右嘴角)的位置。其網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。
圖6 O-Net網(wǎng)絡(luò)結(jié)構(gòu)示意圖
從P-Net到R-Net再到O-Net,隨著網(wǎng)絡(luò)的輸入圖像尺寸越來越大,結(jié)構(gòu)越來越深,可以使提取的特征越具有表現(xiàn)能力。運用了由粗到細的策略:第一步通過淺層的CNN選出候選窗口;第二步用更復(fù)雜的CNN過濾掉沒有臉部的窗口;第三步用更強大的CNN調(diào)優(yōu)結(jié)果。
對于特征描述主要包含3個部分:人臉-非人臉二分類器、邊界框回歸、人臉特征點,下面分別介紹這3個部分的損失函數(shù)。
人臉分類的交叉熵損失函數(shù)為:
(1)
邊界框回歸(bounding box regression)采用歐式距離作為距離度量的回歸損失函數(shù),公式如下:
(2)
式(2)中:y′為預(yù)測值邊框坐標;y為真值框坐標。由一個4元組(Xleft,Yleft,Width,Height)表示。
人臉特征點定位同樣是一個回歸問題,其損失函數(shù)是計算預(yù)測的關(guān)鍵點位置與實際位置之間的距離偏差,采用歐式距離作為距離度量。公式如下:
(3)
式(3)中:y′為預(yù)測結(jié)果;y為關(guān)鍵點實際位置.由于一共需要預(yù)測5個關(guān)鍵點位置,每個點為2個坐標值,所以y為十元數(shù)。
非極大值抑制算法(non maximum suppression,NMS),常被用于目標檢測、邊緣檢測、人臉檢測等領(lǐng)域,用于對生成的候選框進行后處理,去除冗余的候選框,得到最佳檢測框,以加快檢測的效率[10]。其思想是通過搜索局部最大值,抑制非極大值。實現(xiàn)效果如圖7所示。
圖7 非極大抑制算法實現(xiàn)效果圖
NMS算法是通過迭代的形式,將得分最高的框不斷地與其他框做IOU操作,以過濾掉IOU較大(即交集較大)的框[11]。在NMS算法中,將IOU大于閾值的窗口的得分一律置為0,其公式表述為:
(4)
從式(4)可以看出,直接刪除所有IOU大于閾值的框,將相鄰檢測框的分數(shù)均強制歸零,在這種情況下,如果一個真實物體在重疊區(qū)域出現(xiàn),則將導(dǎo)致對該物體的檢測失敗并降低算法的平均檢測率(Average Precision,AP);另一方面NMS的閾值的設(shè)定同樣容易出現(xiàn)問題,一旦設(shè)置過小就會出現(xiàn)誤刪的情況,如果設(shè)置過高又會導(dǎo)致誤檢[12]。針對上述情況,對傳統(tǒng)的NMS算法進行了改進,即在算法執(zhí)行過程中,不再是簡單的刪除IOU大于閾值的檢測框,而是通過建立置信度函數(shù),降低其置信度得分。置信度重置函數(shù)通過2種形式進行改進[12],一種是線性加權(quán):
(5)
另一種是高斯加權(quán),即:
(6)
通過對weight變量的不斷更新,采用線性加權(quán)的方式,將更新值確定為1-ov,另一方面在高斯加權(quán)時引入sigma參數(shù),從而使原始NMS算法中對IOU的取值不再直接為0或1。Soft NMS對于人臉檢測框的確定更為精準,有效提升了網(wǎng)絡(luò)訓(xùn)練效果。
PNP算法旨在解決從3D-2D匹配中求解攝像頭位姿,通過確定相機的位置和方向,給定相機的內(nèi)在參數(shù)以及3D點與其2D投影之間的n組對應(yīng)關(guān)系。主要應(yīng)用于攝影測量和計算機視覺領(lǐng)域,特別是在處理基于特征點的攝像機跟蹤等問題時,通常需要實時處理數(shù)百個噪聲特征點,這就需要高效的計算方法[13]。
EPNP算法是一種非迭代、封閉式的PNP算法,通過將世界坐標系中的3D坐標表示為一組虛擬的控制點的加權(quán)和[14],可用位姿的求解計算。對人臉姿態(tài)的解算,EPNP算法至少需要已知4個非共面人臉特征點三維空間坐標,通過與二維相機坐標系下對應(yīng)點進行匹配,計算得到旋轉(zhuǎn)矢量,將旋轉(zhuǎn)矢量轉(zhuǎn)換為四元數(shù),最終計算得到包含姿態(tài)信息的歐拉角。對于人臉3d模型,采用科英布拉大學(xué)的通用頭部模型,獲取包括眼球、鼻尖、嘴角等5個臉部關(guān)鍵點的三維坐標信息。對于相機內(nèi)部參數(shù),采用張正友相機標定法[15]進行確定。根據(jù)卷積神經(jīng)網(wǎng)絡(luò)輸出的5個人臉關(guān)鍵點,經(jīng)過EPNP算法計算便可以得到飛行員的頭部姿態(tài)數(shù)據(jù)。具體計算過程如下:
首先建立相機坐標系的數(shù)學(xué)模型,公式如下:
(7)
圖像坐標系(x,y)與相機坐標系(Xi,Yi,Zi)之間的關(guān)系如下:
(8)
因為頭部姿態(tài)為三自由度,因此,以3×3的矩陣表示為:
(9)
通過旋轉(zhuǎn)矩陣和旋轉(zhuǎn)角的關(guān)系,即可求得頭部姿態(tài)角roll,pitch,yaw分別為:
(10)
選取Wider Face數(shù)據(jù)集作為人臉檢測數(shù)據(jù)集,該數(shù)據(jù)集由3 233個圖像中的393 703個標記的面部邊界框組成[16],其中50%用于根據(jù)圖像難度測試3個子集,40%用于訓(xùn)練,剩余用于驗證。選取Annotated Facial Landmarks in the Wild(AFLW)數(shù)據(jù)集作為人臉特征點檢測數(shù)據(jù)集,AFLW數(shù)據(jù)集包含24 386個面部的特征點標記。通過多尺度多模板的處理方法,在標注好的人臉圖片上進行隨機切割,根據(jù)切割到的邊框和真實的人臉框進行IOU計算,將IOU>0.65的劃分為正樣本(Positive)數(shù)據(jù),將IOU<0.3的劃分為負樣本(Negative)數(shù)據(jù),將IOU在0.4~0.65之間的劃分為部分面孔(Part)數(shù)據(jù)。將標注好的5個特征點劃分為Landmark face數(shù)據(jù)。這4種數(shù)據(jù)的用途為:① negative和positive用于人臉分類;② positive和part faces用于邊框回歸;③ landmark face用于人臉特征點定位(人臉對齊/關(guān)鍵點檢測)
訓(xùn)練流程如圖8所示。
圖8 訓(xùn)練流程框圖
通過對數(shù)據(jù)集進行多尺度多模板處理后,得到訓(xùn)練樣本數(shù)量如表1所示。
表1 訓(xùn)練樣本數(shù)量
將得到的數(shù)據(jù)集按negative/positive/part faces/landmark =3∶1∶1∶2的比例進行采樣,隨后送入各個網(wǎng)絡(luò)進行訓(xùn)練,最后對得到的檢測結(jié)果計算召回率(recall)為:
(11)
式(11)中:TP表示正確識別為人臉的數(shù)量;FN表示未正確檢測出人臉數(shù)量,即系統(tǒng)漏報。將召回率結(jié)果與多尺度處理相比較(見表2),可以看到多尺度多模板的圖片預(yù)處理方式對檢測結(jié)果有一定的提升。
表2 不同網(wǎng)絡(luò)層召回率結(jié)果對比 %
NMS和Soft NMS算法在不同召回率(recall)下的檢測精度(precision),如圖9所示。
圖9 NMS和Soft NMS的檢測精度曲線
由圖9可以看出,通過Soft NMS算法對重疊區(qū)域的檢測框的得分進行調(diào)整而非直接歸零,可以有效提升在高召回率下的檢測精度。
繪制ROC曲線,與其他算法在Wider Face數(shù)據(jù)集下作比較,如圖10所示。
從圖10結(jié)果可以看出,相比與其他算法,召回率較高,且在誤報樣本為1 000時,召回率可達90.9%。
在實際場景中進行測試,對于光線變化、部分遮擋、大姿態(tài)變化均能有良好的檢測效果。測試效果如圖11所示。
圖10 ROC曲線
圖11 實際場景中測試效果圖
在工程應(yīng)用中,對于頭位跟蹤技術(shù)的實時性的標準為不低于30 fps,在硬件配置為Intel Core i5-8250U CPU,MX150顯卡,8G內(nèi)存的運行環(huán)境中進行測試,平均檢測幀數(shù)可達46 fps,滿足實時性要求,且相比于傳統(tǒng)頭位檢測方法,本文方法對于檢測誤差和外界干擾等方面更加魯棒。測試效果如圖12所示。
圖12 實時性測試效果圖
結(jié)合當前熱門的深度學(xué)習(xí)方法,通過對卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,結(jié)合計算機視覺、圖像處理的方式,完成對飛行員頭位的檢測跟蹤,應(yīng)用于飛行員的日常模擬訓(xùn)練中,相比于傳統(tǒng)的頭位檢測跟蹤方法,有很大的創(chuàng)新,并且在實際訓(xùn)練中,在檢測精度和實時性方面有明顯提升。未來工作將繼續(xù)針對不同問題不斷地優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),并借鑒其他檢測算法,設(shè)計其他實用的深度學(xué)習(xí)模型,應(yīng)用于飛行員座艙模擬訓(xùn)練中。