管秀云,史 超,崔令飛,修全發(fā),李 理
(1.中國(guó)兵器工業(yè)標(biāo)準(zhǔn)化研究所,北京 100089;2.中國(guó)兵器工業(yè)計(jì)算機(jī)應(yīng)用技術(shù)研究所,北京 100089)
在現(xiàn)代戰(zhàn)場(chǎng)環(huán)境中,無(wú)人機(jī)、高精度衛(wèi)星等各類尖端偵查設(shè)備的廣泛應(yīng)用已經(jīng)積累了海量的目標(biāo)圖像,如何有效利用這些圖像素材以及獲取目標(biāo)關(guān)鍵信息,以便在未來(lái)戰(zhàn)場(chǎng)中能夠智能識(shí)別可疑目標(biāo)、定位敵我已經(jīng)成為軍事領(lǐng)域的研究熱點(diǎn)。本文提出了基于海量數(shù)據(jù)和深度學(xué)習(xí)的戰(zhàn)場(chǎng)可疑目標(biāo)智能識(shí)別與跟蹤框架,包括人臉檢測(cè)與識(shí)別、裝備目標(biāo)檢測(cè)與識(shí)別以及可疑目標(biāo)跟蹤等模塊。人臉檢測(cè)與識(shí)別基于MTCNN檢測(cè)人臉位置以及人臉中左眼、右眼、鼻子、左嘴角、右嘴角等5個(gè)關(guān)鍵點(diǎn);裝備目標(biāo)檢測(cè)基于YOLO v3對(duì)裝備目標(biāo)進(jìn)行位置檢測(cè)和目標(biāo)識(shí)別;可疑目標(biāo)跟蹤基于BACF算法對(duì)標(biāo)記的可疑目標(biāo)進(jìn)行目標(biāo)跟蹤。通過(guò)對(duì)人臉檢測(cè)與識(shí)別、裝備目標(biāo)檢測(cè)與識(shí)別和可疑目標(biāo)跟蹤等模塊構(gòu)成的智能識(shí)別與跟蹤框架進(jìn)行研究,達(dá)到對(duì)戰(zhàn)場(chǎng)典型目標(biāo)的快速檢測(cè)與識(shí)別以及對(duì)標(biāo)記的可疑目標(biāo)進(jìn)行跟蹤的要求。
人是構(gòu)成戰(zhàn)場(chǎng)情報(bào)的最重要因素,設(shè)計(jì)基于人臉識(shí)別的智能算法對(duì)敵進(jìn)行人臉檢測(cè)和識(shí)別,可以統(tǒng)計(jì)敵方人數(shù),獲得敵方信息,確定敵方位置,了解敵人分布態(tài)勢(shì)等。人臉檢測(cè)與識(shí)別子模塊基于MTCNN進(jìn)行人臉檢測(cè)與對(duì)齊,基于FaceNet進(jìn)行人臉識(shí)別,分類器選用了性能較好的隨機(jī)森林算法。
Multi-task Cascaded Convolutional Networks(MTCNN)[1]為多任務(wù)級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)。它通過(guò)三階的級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)對(duì)任務(wù)進(jìn)行從粗到細(xì)的處理,每個(gè)階段的網(wǎng)絡(luò)都是一個(gè)多任務(wù)網(wǎng)絡(luò)。處理的任務(wù)包括3個(gè):人臉/非人臉判定、人臉框回歸和特征點(diǎn)定位。人臉/非人臉判定采用cross-entropy損失函數(shù),人臉框回歸和特征點(diǎn)定位采用歐式距離損失函數(shù)。定義其損失函數(shù)表達(dá)式分別為:
為應(yīng)對(duì)人臉目標(biāo)不同尺度的問(wèn)題,圖像輸入調(diào)整成為多個(gè)尺寸。第1階段,通過(guò)一個(gè)淺層的CNN快速生成候選窗口,該CNN全部由卷積層構(gòu)成,取名P-Net,獲取候選人臉窗口以及人臉框回歸向量。
第2階段,通過(guò)一個(gè)更復(fù)雜的CNN否決大量非人臉窗口,從而精簡(jiǎn)人臉窗口,取名R-Net,第1階段輸出的候選窗口作為R-Net輸入,R-Net能夠進(jìn)一步篩選大量錯(cuò)誤的候選窗口,然后再利用人臉框回歸向量對(duì)候選窗口做校正。
第3階段,使用更復(fù)雜的CNN進(jìn)一步精簡(jiǎn)結(jié)果并輸出5個(gè)人臉特征點(diǎn),與第2階段類似,但是這一階段使用更多的監(jiān)督識(shí)別人臉區(qū)域,而且網(wǎng)絡(luò)能夠輸出5個(gè)人臉特征點(diǎn)位置坐標(biāo)。P-Net、R-Net和O-Net 3個(gè)階段的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 P-Net、R-Net、O-Net網(wǎng)絡(luò)結(jié)構(gòu)圖
FaceNet[2]可以直接進(jìn)行端到端學(xué)習(xí),通過(guò)獲得圖像空間到歐式空間的編碼方法,然后基于該編碼再進(jìn)行人臉識(shí)別、人臉驗(yàn)證和人臉聚類等任務(wù)。目標(biāo)函數(shù)采用三元組的表示方法,同時(shí)優(yōu)化了2種策略:線下數(shù)據(jù)集每N步生成一些三元組;線上生成三元組時(shí),在每一個(gè)mini-batch中選擇難以確認(rèn)的正負(fù)樣例。目標(biāo)函數(shù)表達(dá)式為:
FaceNet采用了2種網(wǎng)絡(luò)模型作為線下的訓(xùn)練模型,第1種模型為NN1的網(wǎng)絡(luò)結(jié)構(gòu),共有22層,140萬(wàn)參數(shù)需要訓(xùn)練;第2種網(wǎng)絡(luò)結(jié)構(gòu)采用了GoogLeNet的Inception結(jié)構(gòu),并且減少了模型的大小,形成了NNS1(2 600萬(wàn)參數(shù))和NNS2(430萬(wàn)參數(shù))。整體網(wǎng)絡(luò)結(jié)果如圖2所示。
圖2 FaceNet網(wǎng)絡(luò)結(jié)構(gòu)示意圖
隨機(jī)森林[3](Random Forest, RF)是Bagging的一個(gè)擴(kuò)展變體。隨機(jī)森林在以決策樹(shù)為基分類器構(gòu)建Bagging集成的基礎(chǔ)上,進(jìn)一步在決策樹(shù)的訓(xùn)練過(guò)程中引入了隨機(jī)屬性選擇。在隨機(jī)森林中,對(duì)基決策樹(shù)的每個(gè)結(jié)點(diǎn),先從該結(jié)點(diǎn)的屬性集合中隨機(jī)選擇一個(gè)包含k個(gè)屬性的子集,然后再?gòu)倪@個(gè)子集中選擇一個(gè)最優(yōu)解屬性進(jìn)行劃分。參數(shù)k控制了隨機(jī)性的引入程度:若令k=d,那么基決策樹(shù)的構(gòu)建與傳統(tǒng)決策樹(shù)相同;若令k=l,則隨機(jī)選擇一個(gè)屬性用于劃分,在一般情況下,取值k=log2d。
裝備是戰(zhàn)場(chǎng)環(huán)境中重要的組成部分,設(shè)計(jì)基于YOLO v3的目標(biāo)檢測(cè)與識(shí)別模塊,可以快速偵測(cè)到戰(zhàn)場(chǎng)環(huán)境下使用的主戰(zhàn)坦克、步兵戰(zhàn)車、火箭炮等多類別典型陸戰(zhàn)武器裝備。圖像特征提取使用了基于卷積神經(jīng)網(wǎng)絡(luò)的Darknet,目標(biāo)檢測(cè)與識(shí)別基于YOLO的第3個(gè)版本——YOLO v3,能夠?qū)崿F(xiàn)復(fù)雜戰(zhàn)場(chǎng)背景下實(shí)時(shí)的裝備目標(biāo)檢測(cè)與識(shí)別。
YOLO v3[4]沿用了在YOLO v2中的Darknet作為圖像特征提取網(wǎng)絡(luò),并且網(wǎng)絡(luò)深度由YOLO v2中的19層增加到53層。Darknet-53采用全卷積形式替換掉Darknet-19中的最大池化層,引入ResNet中的residual結(jié)構(gòu)用來(lái)減少網(wǎng)絡(luò)太深而出現(xiàn)的梯度彌散問(wèn)題。最終得到的特征提取網(wǎng)絡(luò)為Darknet-53,包含了52個(gè)卷積層和1個(gè)平均池化層。網(wǎng)絡(luò)共使用了包含不同數(shù)量和的卷積層構(gòu)建了23個(gè)residual結(jié)構(gòu),借鑒了Network in Network的思想,最后使用了全局平均池化進(jìn)行預(yù)測(cè),每個(gè)卷積層使用批量歸一化操作并且去掉了dropout操作,沒(méi)有出現(xiàn)過(guò)擬合現(xiàn)象。Darknet-53與Darknet-19、ResNet-101、ResNet-152的性能對(duì)比見(jiàn)表1,Darknet-53的Top-1和Top-5的準(zhǔn)確率分別為77.2%和93.8%,分別高于Darknet-19的74.1%和91.8%,同時(shí)比ResNet-101和ResNet-152更加有效率。性能測(cè)試實(shí)驗(yàn)中,GPU均為Titan X,圖像的輸入尺寸均為256×256。
表1 Darknet-53與Darknet-19、ResNet的性能對(duì)比
YOLO v3檢測(cè)網(wǎng)絡(luò)以Darknet-53為基礎(chǔ)模型進(jìn)行特征提取,并對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行相應(yīng)修改,Darknet-53只是作為圖像特征提取網(wǎng)絡(luò),將原網(wǎng)絡(luò)的最后一層Avgpool去掉,使得最后的卷積層可以有更高分辨率的特征。和YOLO相比,該結(jié)構(gòu)移除了全連接層,整個(gè)網(wǎng)絡(luò)均為卷積操作,保留了空間信息,最終得到的每個(gè)特征點(diǎn)與原圖中的每個(gè)網(wǎng)格一一對(duì)應(yīng);和YOLO v2相比,不同于它采用pooling層做特征圖的降采樣,眾多的3×3卷積增加了通道的數(shù)量,1×1卷積可以有效提高壓縮3×3卷積后的特征表示信息。YOLO v3同樣借鑒了Faster R-CNN中的anchor思想:使用k-means算法對(duì)數(shù)據(jù)集中的目標(biāo)進(jìn)行維度聚類,確定anchor的大小和數(shù)量,YOLO v3共使用了9個(gè)anchor。并且沒(méi)有采用標(biāo)準(zhǔn)k-means算法中的歐式距離來(lái)衡量差異,定義了新的距離公式:
d(box,centroid)=1-IOU(box,centroid)
YOLO v3中目標(biāo)物的邊框由bx、by、bw、bh共同決定。tx、ty、tw、th分別表示模型預(yù)測(cè)的中心點(diǎn)位置坐標(biāo)、寬和高,cx和cy表示目標(biāo)物中心點(diǎn)所在網(wǎng)格的坐標(biāo),pw和ph表示先驗(yàn)邊框的寬和高。則目標(biāo)物的邊框?yàn)椋?/p>
bx=σ(tx)+cx
by=σ(ty)+cy
bw=pwetw
bh=pheth
YOLO v3中采用每隔訓(xùn)練幾輪就改變輸入圖像尺寸的方式,以使模型對(duì)于不同尺寸的圖像具有穩(wěn)健性,同時(shí)這種操作也加強(qiáng)了對(duì)于小目標(biāo)檢測(cè)的精確度。YOLO v3采用上采樣和融合方法,可以在多個(gè)尺度的特征圖上進(jìn)行檢測(cè)。模型對(duì)于小尺寸的輸入處理速度更快,因此YOLO v3可以按照需求調(diào)節(jié)速度和準(zhǔn)確率。
YOLO v3與其他目標(biāo)檢測(cè)框架性能對(duì)比見(jiàn)表2。
傳統(tǒng)教學(xué)模式的出發(fā)點(diǎn),在教學(xué)中忽視了學(xué)生的主體地位,沒(méi)有很好地解決“學(xué)生如何去學(xué)”這一問(wèn)題,導(dǎo)致學(xué)生在被動(dòng)學(xué)完課程后仍不能熟練地綜合應(yīng)用課程的內(nèi)容、原理和方法。學(xué)生主動(dòng)性不足,必然導(dǎo)致學(xué)習(xí)效率不高。
表2 目標(biāo)檢測(cè)框架性能對(duì)比
基于BACF算法對(duì)于戰(zhàn)場(chǎng)出現(xiàn)的可疑目標(biāo)進(jìn)行標(biāo)記,然后對(duì)標(biāo)記目標(biāo)進(jìn)行實(shí)時(shí)跟蹤。
Background-Aware Correlation Filters(BACF)是Hamed Kiani提出的基于HOG特征的目標(biāo)跟蹤算法。采用較大尺寸檢測(cè)圖像塊和較小尺寸濾波器提高真實(shí)樣本的比例,濾波器填充0以保持和檢測(cè)圖像一樣大。算法為最小化目標(biāo)函數(shù):
式中,P是一個(gè)D×T的二值矩陣;xk∈RT;y∈RT;h∈RD且T?D。目標(biāo)函數(shù)可以用下式表示;
采用ADMM算法可以近似得到g和h的最優(yōu)解,分別為:
目標(biāo)智能識(shí)別與跟蹤框架包括人臉檢測(cè)與識(shí)別、裝備目標(biāo)檢測(cè)與識(shí)別和可疑目標(biāo)跟蹤等3個(gè)模塊。人臉識(shí)別、裝備檢測(cè)與識(shí)別采用線下模型訓(xùn)練與線上模型調(diào)用相結(jié)合的方式,用于識(shí)別數(shù)據(jù)庫(kù)中已經(jīng)存儲(chǔ)的人物目標(biāo)和主戰(zhàn)坦克、步兵戰(zhàn)車以及火箭炮等各式陸戰(zhàn)裝備。人臉檢測(cè)與可疑目標(biāo)跟蹤采用無(wú)監(jiān)督的方式,直接進(jìn)行線上人臉的檢測(cè)與被標(biāo)記可疑目標(biāo)的跟蹤??蚣芨髂K之間的關(guān)系如圖3所示。
圖3 智能檢測(cè)與識(shí)別框架模塊圖
人臉檢測(cè)基于MTCNN中P-Net、R-Net和O-Net 3個(gè)網(wǎng)絡(luò);人臉識(shí)別基于FaceNet網(wǎng)絡(luò)結(jié)構(gòu),并且使用FaceNet在2個(gè)龐大的數(shù)據(jù)集Wild和YouTube Faces上訓(xùn)練的模型參數(shù)作為初始參數(shù),以采集到人臉圖像作為訓(xùn)練集進(jìn)行訓(xùn)練;裝備目標(biāo)檢測(cè)與識(shí)別以YOLO v3在CoCo數(shù)據(jù)集上訓(xùn)練的模型參數(shù)作為初始參數(shù),以采集到的主戰(zhàn)坦克、步兵戰(zhàn)車和火箭炮等圖像作為訓(xùn)練集進(jìn)行訓(xùn)練;可疑目標(biāo)跟蹤基于BACF算法不斷更新帶有拉格朗日乘子的目標(biāo)函數(shù),得到最優(yōu)的和,達(dá)到線上實(shí)時(shí)的目標(biāo)跟蹤策略。智能識(shí)別與跟蹤框架算法流程如圖4所示。
圖4 智能檢測(cè)與識(shí)別框架算法流程圖
裝備目標(biāo)圖像庫(kù)通過(guò)互聯(lián)網(wǎng)爬取了20種主戰(zhàn)坦克、步兵戰(zhàn)車和火箭炮等陸戰(zhàn)主要裝備的圖像;人臉目標(biāo)圖像庫(kù)通過(guò)互聯(lián)網(wǎng)爬取了10位在戰(zhàn)爭(zhēng)片中飾演士兵的角色人臉進(jìn)行仿真試驗(yàn),每一個(gè)角色選取不少于300張人臉圖像構(gòu)成訓(xùn)練集。裝備目標(biāo)圖像利用圖像增強(qiáng)技術(shù)進(jìn)行數(shù)據(jù)集的擴(kuò)充,所采用的方法包括水平翻轉(zhuǎn)、一定程度的位移和翻轉(zhuǎn),添加椒鹽噪聲、高斯噪聲以及改變圖像的對(duì)比度、亮度等[5]方式,達(dá)到增加圖像訓(xùn)練樣本的目的。
基于數(shù)據(jù)增強(qiáng)技術(shù)[6],裝備目標(biāo)圖像擴(kuò)充至20種,每種200張圖像;人臉識(shí)別圖像為10種,每種3 000張圖像。訓(xùn)練模型使用單GPU,型號(hào)為GeForce GTX 1070,顯存為8G,CPU型號(hào)為Inter(R) Core(TM) i7,操作系統(tǒng)為Windows 10,深度學(xué)習(xí)框架為TensorFlow和Kreas。
4.3.1 人臉檢測(cè)與識(shí)別
人臉檢測(cè)使用Opencv讀取圖像或者從攝像頭讀取視頻幀,基于MTCNN網(wǎng)絡(luò)對(duì)圖像中的人臉進(jìn)行檢測(cè),在自然光環(huán)境下,可以做到人臉表情變化更具有魯棒性,同時(shí)內(nèi)存消耗不大,可以實(shí)現(xiàn)實(shí)時(shí)人臉檢測(cè)。也可以將人臉中眼睛、鼻子、嘴巴等5個(gè)關(guān)鍵點(diǎn)進(jìn)行標(biāo)記。人臉檢測(cè)結(jié)果如圖5所示。
a) 多人人臉與關(guān)鍵點(diǎn)檢測(cè)
b) 單人人臉與關(guān)鍵點(diǎn)檢測(cè)
人臉識(shí)別采用仿真實(shí)驗(yàn)數(shù)據(jù),獲取訓(xùn)練集同樣基于MTCNN[7]網(wǎng)絡(luò),并且將獲得的人臉圖像剪裁至,以適應(yīng)FaceNet的輸入,采用FaceNet[8]已經(jīng)訓(xùn)練好的模型參數(shù)為網(wǎng)絡(luò)初始參數(shù),MTCNN中3個(gè)階段P-Net、R-Net和O-Net分別設(shè)置閾值,同時(shí)設(shè)置和的2個(gè)參數(shù),分類器采用隨機(jī)森林算法,設(shè)置樹(shù)的棵數(shù)為300。數(shù)據(jù)集采用五折交叉驗(yàn)證的方式進(jìn)行驗(yàn)證。取10%作為測(cè)試集進(jìn)行測(cè)試,準(zhǔn)確率能夠達(dá)到94.76%。人臉識(shí)別結(jié)果如圖6所示。
a) 有迷彩遮擋人臉識(shí)別
由圖6可知,王寶強(qiáng)在電視劇《士兵突擊》中飾演軍人許三多,許三多是10位訓(xùn)練集人物中的一位,將其他王寶強(qiáng)的圖像輸入到訓(xùn)練好的模型中,同樣可以進(jìn)行人臉識(shí)別,說(shuō)明模型具有不錯(cuò)的泛化能力。
4.3.2 裝備目標(biāo)檢測(cè)與識(shí)別
采用YOLO v3網(wǎng)絡(luò)對(duì)裝備目標(biāo)進(jìn)行檢測(cè)與識(shí)別,設(shè)置網(wǎng)絡(luò)參數(shù)為score=0.01,iou=0.5,batch=64,learning_rate=0.000 1等,anchors采用YOLO v3默認(rèn)的9個(gè)anchors的大小,分別為:
(10,13),(16,30),(33,23),(30,61),(62,45),(59,119),(116,90),(156,198),(373,326)
當(dāng)網(wǎng)絡(luò)迭代次數(shù)超過(guò)2萬(wàn)次時(shí),各個(gè)參數(shù)變化基本穩(wěn)定。隨著迭代次數(shù)的增加,類別準(zhǔn)確率和召回率逐漸接近于1,平均重疊率穩(wěn)定在0.83。從各參數(shù)的收斂情況來(lái)看,網(wǎng)絡(luò)的訓(xùn)練結(jié)果比較理想。裝備目標(biāo)檢測(cè)與識(shí)別的部分結(jié)果如圖7所示。
a) 99A主戰(zhàn)坦克檢測(cè)
b) T-90主戰(zhàn)坦克檢測(cè)
c) ZBD-04步兵戰(zhàn)車檢測(cè)
d) M1A2坦克檢測(cè)
4.3.3 可疑標(biāo)記目標(biāo)跟蹤
對(duì)測(cè)試視頻選取第1幀圖像作為基準(zhǔn),對(duì)可疑目標(biāo)進(jìn)行標(biāo)記,基于BACF算法[9]對(duì)測(cè)試視頻中的被標(biāo)記目標(biāo)進(jìn)行跟蹤。在10個(gè)10 s測(cè)試視頻中,跟蹤準(zhǔn)確率為80%,輸出速率為18 fps。對(duì)視頻3選取第10幀、第167幀、第330幀輸出如圖8所示。
a) 第10幀
b) 第167幀
c) 第330幀
本文將人臉檢測(cè)、人臉識(shí)別、裝備目標(biāo)檢測(cè)與識(shí)別、可疑目標(biāo)跟蹤等子模塊融合構(gòu)造戰(zhàn)場(chǎng)可疑目標(biāo)智能識(shí)別與跟蹤框架,對(duì)戰(zhàn)場(chǎng)圖像情報(bào)的獲取與積累具有一定的意義。本文所構(gòu)造的人臉識(shí)別和裝備識(shí)別模型具有較好的準(zhǔn)確率,能夠滿足不同光照條件、不同環(huán)境下的目標(biāo)檢測(cè)與識(shí)別。但是本文也存在一些不足,例如,無(wú)法識(shí)別較模糊的人臉以及在較復(fù)雜背景下會(huì)跟丟標(biāo)記的可疑目標(biāo),這都是今后需要研究的方向。