李向榮,陳永康,,王志剛,羅鑫,李晨曉,候湘
(1. 陸軍裝甲兵學院 兵器與控制系,北京 100072;2. 中國人民解放軍63850 部隊,吉林,白城 137000;3. 中國人民解放軍32108 部隊,內(nèi)蒙古,滿洲里 021400;4. 重慶大學 期刊社,重慶 400044;5. 重慶大學 自動化學院,重慶 400044)
由于軍事倉庫地形的特殊性,無人平臺巡檢的圖像采集設備是對距離至少150 m 范圍以內(nèi)的目標進行采集,而且在目標較多情況下,僅用人眼進行識別,不僅工作量大,在疲勞時容易造成誤判. 在較遠距離的情況下,采用人臉識別的方法進行有效的可疑目標識別難度太大,除非無人機平臺抵近詳查. 因此,設計一種能及時有效地自動對目標識別并進行可疑類型判斷的智能算法具有重要意義. 由于軍事庫區(qū)人員和車輛裝備顏色和樣式比較特殊并且統(tǒng)一,擬通過對目標提取顏色和樣式特征進行較遠距離可疑目標識別,如人員目標的服裝樣式,車輛目標的顏色特征.
通過視覺圖像識別可疑目標,是比較先進的方法,而且是當前的研究熱點[1]. 遠距離采集的圖像中目標信息是極少的,有的甚至只有幾個像素,圖像識別難度也很大,現(xiàn)有的經(jīng)典算法并不能直接解決這個問題.
在目前3 種典型的目標檢測算法中,R-FCN[2]、Faster R-CNN[3]在精度上都有較好的表現(xiàn),但他們消耗的計算資源較多,運算速度也較慢. YOLO[4]在硬件資源上要求最小,速度也最快,而且不斷出現(xiàn)的新的版本在精度和速度上都有提高. 速度和精度似乎是一對矛盾的概念,互相之間有一定限制,到一定精度后,精度越高,速度越慢. 后續(xù)的YOLO 版本綜合性能雖有提高,但提高的幅度并不是很大. 因此,本文基于YOLOv3 版本開展庫區(qū)可疑目標識別算法的研究.
可疑目標識別算法主要解決2 個方面的問題,一個是目標識別,即從圖像中進行目標檢測;一個是可疑目標識別,即對圖像中檢測出的目標進行可疑目標判別. 目前是利用圖像采集設備采集的圖片樣本,但是由于可采集的環(huán)境范圍有限,圖片樣本不足,可以通過預訓練網(wǎng)絡模型的方法適當彌補樣本不足,增加可提取的樣本特征.
另外,較遠距離采集的圖像所包含的信息通常較少,如圖1 所示. 兩幅圖中,由于目標都是人,輪廓特征大致相同,因此,基于輪廓的特征提取方法效果將會受到限制. 然而,如果檢測的樣本圖片限制在有統(tǒng)一著裝要求的單位管理范圍內(nèi),通過服裝的樣式、顏色和部分體態(tài)信息特征,是可以區(qū)分可疑目標類別的. 如遇到服裝和體型相似但非本單位的人員,模型識別出的概率較小,則需要人工進行判別.
圖1 較遠目標對比圖Fig. 1 Comparison of distant targets
為此,采用一種人工輔助算法,通過有限樣本的歷史數(shù)據(jù)建立相應的機器學習識別模型,用識別模型和人工經(jīng)驗一起判斷識別結(jié)果. 該算法集目標識別和可疑目標識別于一體,對非己方目標概率高的直接報警,對無用目標自動排除,對少數(shù)無法確定可疑類型的目標提交人工進行進一步識別. 而且,由于統(tǒng)一服裝的管理單位,大量的樣本圖片都是本單位的圖片,使用該算法思路能迅速自動判別我方圖片信息,不必人工再去判別. 這樣可以大大減少人工識別的工作量,減少誤判的概率.
圖像識別通常分為如下三個步驟:一是從樣本圖像中提取相關候選矩形區(qū)域;二是對候選區(qū)域進行特征提?。蝗抢锰崛〉奶卣鬟M行分類. 其中,特征提取部分采用基于卷積神經(jīng)網(wǎng)絡的深度學習模型有較好的效果. 可疑目標識別則在目標識別的基礎上,過濾掉不敏感的類別目標,如鳥、狗等動物,對敏感目標采用可處理非線性數(shù)據(jù)的分類器進行可疑目標判別,如采用核方法的支持向量機(SVM)、淺層全連接的神經(jīng)網(wǎng)絡等. 算法總體框架如圖2 所示.
圖2 算法架構(gòu)Fig. 2 Algorithm architecture
①優(yōu)選目標檢測模型提高檢測速度和精度.
算法框架中的“判斷是否敏感目標”實際上就是從目標檢測算法中檢測出的目標進行判斷. 因此這個步驟的核心動作就是目標檢測,選擇合適的目標檢測算法就顯得尤其重要了. 由于使用的是旋翼無人機平臺來采集圖像,載荷有限,運算能力也比較有限,而應用的場合對實時性的要求又較高,又必須保證一定精度,防止頻繁出錯.
②采集小型數(shù)據(jù)集訓練.
數(shù)據(jù)采集完全是由人工收集并進行標記,因此,數(shù)據(jù)的量不可能太大,也不可能具有廣泛的通用性.但通過人工選擇有針對性的數(shù)據(jù)和人工標記數(shù)據(jù)的方法來適應具體的應用是可行的. 通過網(wǎng)絡收集和現(xiàn)地拍攝大量圖像,使用YOLOv3 目標檢測模型進行目標檢測,并對敏感目標進行提取,為后續(xù)可疑目標判別模型能夠進行訓練,將圖像中的敏感目標裁剪下來并人工標記了3000 多張可用的目標圖像,做成一個小型的數(shù)據(jù)集(訓練集2 200 張,驗證集1 000張,測試集200 張)用于對模型進行訓練和測試. 實驗以人員為敏感目標進行可疑目標識別,由于采用的方法一樣,實驗的結(jié)果可推廣到其他目標.
③多級多層進行可疑目標分類.
第一級目標檢測之后,就是對可疑目標識別,也需要提取豐富的目標形狀特征,再根據(jù)目標形狀特征的顏色和顏色之間的組合進一步對特征進行分析、計算和擬合. 因此,第二級編程部分使用簡單卷積神經(jīng)網(wǎng)絡來提取特征. 卷積神經(jīng)網(wǎng)絡對提取的圖像特征之間的相對位置不敏感,并對顏色特征提取的效果也不夠好,有可能對有大致相同特征但相對位置不同的物體無法識別,最后一級擬采用淺層全連接神經(jīng)網(wǎng)絡進行分類.
根據(jù)以上特點設計如下關鍵技術(shù),用以實現(xiàn)算法框架功能.
深度學習算法是受到生物神經(jīng)網(wǎng)絡啟發(fā)而發(fā)展的,基于卷積神經(jīng)網(wǎng)絡的深度學習算法更加符合生物視覺神經(jīng)元原理,卷積神經(jīng)網(wǎng)絡的應用使得大深度的神經(jīng)網(wǎng)絡能得以實現(xiàn),其對圖像特征的分層處理更加符合生物視覺原理[5]. 卷積運算對圖像的輪廓特征具有較好的提取效果,多層的卷積神經(jīng)網(wǎng)絡就可以提取多層級的輪廓特征. 如圖3 所示,對原始圖像進行兩種隨機權(quán)重的卷積運算
運算后得到兩幅圖如圖3 所示,從圖中可以看出,運算的結(jié)果近似于原始圖像的邊緣特征. 實際上,在訓練好的深度學習網(wǎng)絡中,卷積的作用也正是體現(xiàn)在提取邊緣的效果上.
圖3 卷積提取輪廓特征Fig. 3 Contour feature extraction by convolution
由于訓練大型深度學習網(wǎng)絡在實際應用中需要消耗大量的計算資源,所以,更常用的做法是使用已經(jīng)訓練好的大型網(wǎng)絡模型的卷積神經(jīng)網(wǎng)絡進行特征提取. 為優(yōu)化算法效果,還可以對模型進行微調(diào),而不是訓練整個大型網(wǎng)絡. 圖像分類的特征提取算法通常使用經(jīng)典的模型,如VGG、ResNet、Inception、Inception-ResNet、Xception 等,這些模型適用場景不同,根據(jù)圖像樣本的特征情況選擇合適的模型顯得尤其重要. 提取可疑目標特征的前提是從樣本圖像中提取可疑目標樣本圖像,因為樣本圖像含有大量的背景信息,所以判斷敏感目標環(huán)節(jié)即是目標檢測.
2014 年谷歌提出了GoogleNet[6],并在當年ImageNet 舉辦的圖像識別競賽中的勝出,第二名是VGGNet[7]. 2014 年后,基于卷積神經(jīng)網(wǎng)絡不斷有新的網(wǎng)絡形式出現(xiàn),有影響力的是微軟的殘差網(wǎng)絡Res-Net 和谷歌的Inception[8]. ResNet[9]具有較快的學習速度,Inception 具有較好的學習效果[10]. VGGNet 雖采用的是最簡單的卷積池化方式,卻能提取很好的特征,也便于編程實現(xiàn),所以本文采用此模型的卷積層進行可疑目標特征提取.
采用預訓練卷積神經(jīng)網(wǎng)絡提取的特征大部分是冗余的,而且模型底層提取的特征通常是更加通用的特征,越高層提取的特征越具體和專業(yè)[11]. 為了讓模型更加符合具體應用訓練數(shù)據(jù)的特征表示,有必要對模型卷積層的相關頂層也進行訓練,雖然這樣會增加模型訓練的消耗,使得訓練時間更長,但可以得到精度更高、更加范化和對具體應用更加有針對性的模型.
卷積神經(jīng)網(wǎng)絡對提取的圖像特征之間的相對位置不敏感,并對顏色特征提取的效果也不夠好,有可能對有大致相同特征但相對位置不同的物體無法識別. 因此,卷積神經(jīng)網(wǎng)絡不適合作為分類器使用,在某些場合,使用傳統(tǒng)的機器學習方法,在具體應用中,可能會有更強的針對性和更好的效果,如采用核方法的支持向量機(SVM).
在二分類的應用中,SVM 是通過學習樣本數(shù)據(jù)找到一個最優(yōu)的超平面,來對樣本數(shù)據(jù)分類的. 這樣的超平面在一維數(shù)據(jù)中是一個點,在二維數(shù)據(jù)中是一條直線,在三維數(shù)據(jù)中是一個平面,而在更高維度中就稱之為超平面[12]. 在線性分布的樣本數(shù)據(jù)中,這樣的超平面有無窮多個,訓練的目的就是找到一個超平面,使得距離的超平面最近的樣本點(特征向量)的距離達到最小,這樣的樣本點就叫做支持向量,支持向量機的名稱就是這樣來的.
如果樣本數(shù)據(jù)是非線性分布的,如圖4 所示,2維樣本數(shù)據(jù)是非線性的(圖4(a)),就無法找到一條直線(超平面)進行分類,但是如果將所有樣本數(shù)據(jù)增加一個維度,這個維度z的值等于原來數(shù)據(jù)特征x、y平方和的平方根
使二維數(shù)據(jù)增加為三維數(shù)據(jù),便可以使樣本數(shù)據(jù)線性可分(圖4(b)). 核方法就是使低維線性不可分數(shù)據(jù)映射到高維線性可分數(shù)據(jù)的一類方法,采用了核方法的SVM 便具有了處理非線性數(shù)據(jù)的能力.
圖4 非線性數(shù)據(jù)Fig. 4 Nonlinear data
淺層全連接神經(jīng)網(wǎng)絡與采用核方法的支持向量機在數(shù)據(jù)分類方面有一定的相似之處,通常的淺層神經(jīng)網(wǎng)絡都是2 個隱藏層,隱藏層的神經(jīng)元是帶有非線性激活函數(shù)的神經(jīng)元,使神經(jīng)網(wǎng)絡也具有處理非線性數(shù)據(jù)的能力[13],如圖5 所示. 如果某層的每個神經(jīng)元和上一層的所有神經(jīng)元都有連接,就叫全連接層. 顧名思義,全連接神經(jīng)網(wǎng)絡的所有層都是全連接層. 只要有足夠數(shù)量的神經(jīng)元,只有一個隱藏層的神經(jīng)網(wǎng)絡可以擬合任意的一元連續(xù)函數(shù),兩個隱藏層的神經(jīng)網(wǎng)絡可以擬合任意函數(shù). 實際上,因為隱藏層具有足夠數(shù)量的神經(jīng)元,它就相當于將特征向量轉(zhuǎn)化為更高維的向量,經(jīng)過訓練,在新的特征空間就可以轉(zhuǎn)化為線性可分向量了,這就是與采用核方法的支持向量機的相似之處. 由于支持向量機在多分類的情況下表現(xiàn)不如全連接神經(jīng)網(wǎng)絡,因此,本文采用淺層全連接神經(jīng)網(wǎng)絡進行可疑目標分類.
圖5 全連接神經(jīng)網(wǎng)絡Fig. 5 Fully connected neural network
由于可疑目標圖像特征提取需要的是更為通用的較抽象特征,因此采用基于預訓練卷積神經(jīng)網(wǎng)絡模型卷積層進行模型微調(diào),使卷積層的部分下層卷積塊參與訓練[14]. 算法模型如圖6 所示,將卷積層的前4 個卷積塊凍結(jié),讓第5 個卷積塊與淺層全連接層一起參與樣本訓練,這樣可得到更加細致和符合具體應用的特征,使得模型識別可疑目標的精度更高,但可能會提高訓練時間和計算消耗. 雖然圖像卷積運算對圖像輪廓特征有較好的效果,卻對圖像的其他特征如輪廓間的相對位置、物件顏色等特征效果并不明顯[15-16],因此使用淺層全連接網(wǎng)絡進行可疑目標判別,以提高除輪廓特征以外的特征提取精度.
圖6 使用模型微調(diào)的模型Fig. 6 Model tuning using model
實驗結(jié)果如圖7 所示,模型在第8 epoch 時就已經(jīng)收斂,精度最高達98.3%,取得了很好的效果. 說明此模型基本有效,已經(jīng)超過人眼識別的識別率,曲線波動較小,說明此模型提取的特征比較豐富,符合實際情況,通用范化能力較好. 從圖中曲線看,訓練總時長很長,但如果在第8 epoch 時就停止訓練,總的訓練時間反而會減少.
圖7 模型微調(diào)實驗效果Fig. 7 Experimental results of model fine tuning
至此,基于模型微調(diào)的預訓練卷積神經(jīng)網(wǎng)絡與淺層全連接神經(jīng)網(wǎng)絡的可疑目標識別已達到使用要求,將整個算法框架涉及到的所有模塊連接起來進行仿真,以驗證整個算法的有效性. 例如,在場景中提取敏感目標[17-18],暫以人物為敏感目標進行可疑目標識別,非可疑目標用“person”標定,可疑目標用“???”標定,如圖8 所示,使用相機在較遠距離采集2 幅圖像,輸入算法模型進行仿真驗證,可以看到,標定基本正確,說明算法有效.
圖8 可疑目標識別效果Fig. 8 Suspicious target recognition effect
根據(jù)軍事倉庫安全管理的特殊性,實現(xiàn)較遠距離可疑目標的識別與判別,同時可以減少人工識別的工作量,提出了一種基于視覺的可疑目標識別算法,并通過編程實現(xiàn),仿真實驗表明可以取得較好的識別精度. 本文提出了基于視覺的可疑目標識別總體框架,先使用目標檢測算法提取目標,再將提取的目標輸入可疑目標分類器進行判別;針對通用算法中使用的精度較好的簡單卷積神經(jīng)網(wǎng)絡模型存在特征不夠細致導致驗證波動較大、在新的數(shù)據(jù)下表現(xiàn)不穩(wěn)定的缺陷,為了增加提取特征的層次和數(shù)量,采用預訓練神經(jīng)網(wǎng)絡卷積層來提取特征,以提高模型訓練精度;基于預訓練卷積神經(jīng)網(wǎng)絡進行模型微調(diào),使預訓練模型卷積層的最下層也參與樣本訓練,在驗證樣本集中驗證精度達到了98.3%,初步具有良好的實用價值.