采用優化卷積神經網絡的紅外目標識別系統
人工智能技術與咨詢 前天
本文來自《光學精密工程》,作者劉可佳等
關注微信公眾號:人工智能技術與咨詢。了解更多咨詢!
摘要
針對視頻數據利用低效和光測設備目標識別能力較弱的問題,提出一種使用海量視頻數據建立數據庫進而構建紅外目標識別系統的方法。首先設計快速紅外目標檢測算法,提取目標并分類建立數據庫;然后結合特定任務建立一組較匹配且結構不同的卷積神經網絡,并提出基于測試準確度均值統計分析和參數規模的選型策略,選出泛化能力較好且結構簡單的卷積神經網絡以及適當的訓練輪數;最后加載優選模型及其參數作為分類器,與檢測器結合實現紅外目標特征事件實時檢測分類。仿真結果表明,目標分類準確率均值可達95%以上,速率約為50 pixel/s。卷積神經網絡結構的設計和選型策略有效,構建的系統可以滿足紅外目標識別的精度和實時性要求。
1 引 言
光電探測系統是空間目標探測和預警的重要手段之一,被廣泛應用于軍事領域。光電設備可以部署于陸基、海基、空基或天基平臺,獲取目標在不同空域和時段的視頻圖像數據,為決策者提供大量信息。陸基光電探測系統常采用紅外波段,用于飛行目標的探測與跟蹤,具有探測距離較遠、視場和成像較小等特點,可以觀測和記錄目標飛行過程中的特征事件或動作,一般成像為黑底白像,以視頻或圖像幀方式記錄。
目前視頻數據多以磁盤存儲,事后多以人工加軟件方式判讀,數據利用效率低,長期積累的海量視頻數據信息未被充分挖掘。近年來,深度學習技術在圖像分類研究中取得突破性進展[1],利用海量視頻數據提高設備探測和目標識別性能的研究進入了一個嶄新的階段。卷積神經網絡(Convolution Neural Network,CNN)[2-3]算法已逐漸代替傳統人工模型算法成為處理圖像檢測與識別問題的主流算法,為復雜戰場環境下的軍事目標自動檢測、識別與分析提供了新的技術途徑。
視頻紅外目標在其飛行周期內外觀變化較大、成像大小可以從占據大部分屏幕到點目標。基于深度卷積神經網絡的視頻目標檢測與識別方法可以按照是否利用時序信息分為兩類,一類是基于單幀圖像的算法,僅利用當前幀圖像的空間信息完成目標檢測和分類識別,如經典的R-CNN系列[4-5]、SSD系列[6-7]和YOLO系列[8-10]算法等,這類算法研究相對較為成熟且已有大范圍的落地應用,主要針對多類別目標分類的通用場景,對中等大小目標效果很好,模型結構較為復雜,盡管近年提出許多輕量化的改進模型[11-15],但是這些算法對目標變化較大的情形尤其是特定任務中視場中目標外觀很大或很小時的檢測識別能力不足。另一類是基于多幀圖像的視頻行為識別[16-17]算法,這類算法同時利用幀序列蘊含的空間和時間信息進行目標分類識別,如C3D系列[18-19]、雙流網絡系列[20-21]、CNN加LSTM系列[22]算法,設計同時提取外觀和運動特征的模型較為復雜、對訓練數據集的標注要求較高,目前在紅外目標識別領域的應用處于起步探索階段。
國內應用深度學習技術研究和解決軍事圖像分類、高光譜圖像分類、海戰場圖像目標識別、復雜背景下坦克裝甲目標檢測、飛行器圖像識別等問題[23-27],并取得了較好的結果,但在利用海量視頻數據建立訓練數據集、針對特定任務的CNN結構選擇與優化策略等重要問題上鮮有提及。針對這些問題,結合陸基紅外探測系統成像特點,設計了一種基于優化卷積神經網絡、快速生成紅外目標檢測識別系統的構建方法,讓實時數據“開口說話”[28]。
2 系統模型
紅外目標識別系統的設計思路是先設計快速紅外目標檢測器,從視頻中提取并標注目標區域(Region of Interesting,ROI),建立數據集并存儲到數據庫,然后利用這些標注數據訓練卷積神經網絡;再設計基于測試準確度和模型復雜度的模型選擇策略,獲取紅外目標分類識別器,達到實時識別目標特征事件的目的。該框架可以高效、靈活利用源視頻數據快速獲取目標識別能力。
圖1是系統框圖,分為建數據庫、訓練選型和加載檢測三部分,分別用綠虛線、藍實線和紅虛線表示其流程,實線方框表示功能模塊,虛線方框表示需要一定程度的人工交互,虛線圓角框表示產生的過程文件,圓柱體表示數據庫(彩圖見期刊電子版)。
圖1紅外視頻處理與紅外目標識別系統框圖
Fig.1Block diagram of infrared video processing and infrared target recognition system
建數據庫包括設計檢測器并從歷史視頻幀中提取目標ROI,在人工交互模式下將目標的飛行過程劃分為若干特征事件子類,標明ROI的子類編號(例如子類編號1至3表示起飛、分離、拋整流罩),將ROI及其對應的子類標簽作為初始數據集以統一文件格式存儲到數據庫。
訓練選型是先對初始數據集進行數據增強,得到增強數據集,再根據子類數目、樣本集規模和經驗知識設計一組與特定任務較匹配的CNN模型,通過選型策略選出較優的模型及其參數。
加載檢測是加載最優模型及其參數得到分類器,用檢測器從實時紅外視頻幀中逐幀提取ROI送入分類器獲得檢測結果,通過人工交互檢驗后可提供實戰信息或充實數據庫。
下面詳細敘述檢測器、建數據庫、訓練選型和分類器等主要模塊的實現過程。
2.1 檢測器
飛行目標溫度一般高于背景溫度,紅外視頻目標成像為白色,背景為黑色,因此可以采用形心法和閾值分割方法構造檢測器,快速檢測和提取目標ROI,獲取目標ROI圖像集合。
圖2是檢測器框圖,幀邊緣處理模塊將畫面字幕區域填充為背景灰度值;中值濾波用于處理壞點和椒鹽噪聲;二值化掩膜可依據常量門限或自適應門限計算目標掩膜,再根據掩膜計算目標群外接矩形。二值化固定閾值可根據處理的紅外目標灰度值,在[150,180]之間選擇,基于背景分離的自適應門限功能作為可選項。為匹配CNN網絡,提取ROI均為正方形,邊長取ROI外接矩形長和寬較大者。
圖2檢測器框圖
Fig.2Block diagram of detector
2.2 數據集的建立與存儲
建立數據集時先針對特定分類任務,人工劃分特征事件段落,將ROI進行子類標注并以固定格式儲存,再進行增強處理得到增強數據集,用于訓練CNN網絡。
2.2.1 數據分類與標注
紅外探測器視場一般約為1°,目標飛行過程中有姿態變化、分離、釋放誘餌等動作,距離較近時成像多為具有某種特征的灰白色亮斑,形態緩變或突變;距離較遠時多成像為點目標。
固定型號目標成像一般不超過20種形態,根據成像形態差異和變化規律將飛行過程劃分為若干特征事件子類,目標具有多批次飛行視頻,對應多組ROI樣本集,可分別作為訓練和測試數據集。ROI子類標注需要人工交互確定子類名稱和剔除過渡樣本,以使子類間具有更好的區分度。
2.2.2 數據增強
如果視頻有限、訓練數據庫數量少、形式單一或子類樣本量不均衡時,可采用數據增強技術,通過隨機旋轉、翻轉、縮放、剪切、亮度調整、對比度調整及其組合方法處理初始數據集中的ROI,改善數據集。
如劃分6個子類,建立訓練和測試集,初始樣本數為1 920,增強擴充為12 800,選擇同型號目標另一批次紅外視頻建立測試數據集,因某些目標動作時間短、幀數少,某些狀態持續時間長、變化慢,只選其子類中具有代表性的195幀并覆蓋所有子類的ROI建立測試集。
2.2.3 數據存儲
實際問題中的數據格式和屬性并不統一,TensorFlow[29]提供了一種統一的TFRecord格式存儲數據,可以統一不同的原始數據格式,并更加有效的管理不同的屬性,可擴展性也更好,在存取時間和空間上效率更高。比如增強數據集包括12 800幅灰度圖,大小為27 319 986 Byte,占用空間57 958 400 Byte;對應的帶有標簽信息的TFRecord文件大小為14 400 000 Byte,占用空間14 401 536 Byte;后者占用空間更少,訓練模型輸入效率更高。
2.3 建立并優選卷積神經網絡模型
CNN通常包含一個標準的疊加卷積層結構(可選擇附加對比標準化和最大池化功能)后接一個或多個全連接層[30],結構復雜度應當與需要區分的類別數匹配,有助于減少欠擬合或過擬合,因此應當設計CNN模型結構選擇策略,即首先根據子類數目和數據集規模設計一組較匹配的CNN模型,覆蓋不同卷積層數和卷積核深度,通過多次訓練,取得多組測試準確度(Test Accuracy,TA),利用測試準確度的統計分析結果和模型參數規模選出泛化能力較好且結構較簡單的CNN模型。
根據MNIST,CIFAR10數據集經驗,分類數較少時,如10個左右,CNN卷積層2到4層即可達到滿意效果,這里參照較為簡單的LeNet-5[31-32]網絡結構。將CNN模型命名為CnnetNX,其中N表示卷積層數,可選1,2,3,4k,5;X表示首層卷積核深度可選b(4),c(8),d(16),e(32),f(64),之后各層卷積核深度以2為底指數級增加。例如Cnnnet3d具有3個卷積層、首層卷積核深度為16。圖3表示3種CNN結構,從Cnnet2e到Cnnet4e網絡深度逐漸加深,其中卷積層包含了線性整流函數ReLU(Rectified Linear Unit)。
圖3CNN結構框圖
Fig.3Block diagram of CNN Structure
針對自建數據庫規模小、類別少的特點,設計21種CNN結構,如表1所示。表1給出Cnnet5e的核參數和特征圖尺寸,卷積核的節點矩陣尺寸即寬、高、通道數分別用w,h,c表示,卷積核的深度為d,池化層的濾波核大小均為2×2,sn表示卷積步進值為n,輸出特征圖的寬、高、通道數用W,H,C表示。X=d(16),c(8),b(4)的數據標于括號中,“√”表示具有該層結構,“Flat”表示最后一層池化層輸出的特征圖拉直向量維度,“FullC”表示全連接層,數值等于輸入圖的拉直向量維數。cnnet1f未標出,其對應的卷積核深度為64,拉直向量維度16 384。表2是21種CNN的參數數量,卷積層越多,全連接層參數占比越低,總參數越少;卷積核深度越深,總參數越多。
表121種具有不同卷積層和卷積核深度的CNN結構參數
Tab.121 kinds of CNN structure parameter with different convolution layer and convolution kernel depth
cnnet |
5e(d,c,b) |
4e(d,c,b) |
3e(d,c,b) |
2e(d,c,b) |
1e(d,c,b) |
|
---|---|---|---|---|---|---|
層名 |
核參數 (w×h×c/d/stride) |
特征圖(W×H×C) (輸入圖32×32×1) |
||||
Conv1 |
5×5×1/32(16,8,4)/s1 |
32×32×32(16,8,4) |
√ |
√ |
√ |
√ |
MaxP1 |
2×2/s2 |
16×16×32(16,8,4) |
√ |
√ |
√ |
√ |
Conv2 |
3×3×32/64(32,16,8)/s1 |
16×16×64(32,16,8) |
√ |
√ |
√ |
? |
MaxP2 |
2×2/s2 |
8×8×64(32,16,8) |
√ |
√ |
√ |
? |
Conv3 |
3×3×64/128(64,32,16)/s1 |
8×8×128(64,32,16) |
√ |
√ |
? | ? |
MaxP3 |
2×2/s2 |
4×4×128(64,32,16) |
√ |
√ |
? | ? |
Conv4 |
3×3×128/256(128,64,32)/s1 |
4×4×256(128,64,32) |
√ |
? | ? | ? |
MaxP4 |
2×2/s2 |
2×2×256(128,64,32) |
√ |
? | ? | ? |
Conv5 |
3×3×256/512(256,128,64)/s1 |
2×2×512(256,128,64) |
? | ? | ? | ? |
MaxP5 |
2×2/s2 |
1×1×512(256,128,64) |
? | ? | ? | ? |
Flat |
? |
512(256,128,64) |
1 024 (512, 256, 128) |
2 048 (1 024, 512, 256) |
4 096 (2 048, 1 024, 512) |
8 192 (4096, 2 048, 1 024) |
FullC1 |
? |
1 024 |
1 024 |
1 024 |
1 024 |
1 024 |
FullC2 |
? |
6 |
6 |
6 |
6 |
6 |
表221種CNN網絡參數數量(括號中為卷積層參數/全連接層參數個數)
Tab.2Number of 21 CNN network parameters(In parentheses, is the number of convolution layer /full connection layer parameters)
CNN |
1 |
2 |
3 |
4 |
5 |
---|---|---|---|---|---|
b(4) ? c(8) ? d(16) ? e(32) ? f(64) |
1 054 824 (104/1 054 720) 2 103 504 (208/2 103 296) 4 200 864 (416/4 200 448) 8 395 584 (832/8 394 752) 16 785 024 (1 664/16 783 360) |
530 832 (400/530 432) 1 056 096 (1 376/1 054 720) 2 108 352 (5 056/2 103 296) 4 219 776 (19 328/4 200 448) ? |
269 856 (1 568/268 288) 536 448 (6 016/530 432) 1 078 272 (23 552/1 054 720) 2 196 480 (93 184/2 103 296) ? |
143 424 (6 208/137 216) 292 800 (24 512/268 288) 627 840 (97 408/530 432) 1 443 072 (388 352/1 054 720) ? |
96 384 (24 704/71 680) 235 584 (98 368/137 216) 660 864 (392 576/268 288) 2 098 944 (1 568 512/530 432) ? |
2.4 分類器
使用增強數據集按預設超參數和優化策略訓練優選的模型,訓練結束后將模型結構、學習到的參數和類別標簽以文件形式保存;構造分類器時,加載模型、參數和子類標簽文件,獲得分類器函數,該函數輸入圖片,輸出圖片標簽編號。使用檢測器檢測實時視頻幀并提取目標ROI,逐幀輸入分類器進行判斷,輸出該目標所屬的子類編號。
3 實驗結果與分析
實驗分圖像增強、模型訓練選型和分類性能分析三部分。仿真計算機配置為Intel?Core? i7-6700HQ CPU @ 2.60 GHz,仿真軟件采用Anaconda3-5.2.0,Python-3.5.2。CNN網絡搭建與訓練、目標檢測實現基于TensorFlow框架和python-OpenCV庫。
3.1 圖像增強及其效果仿真
圖4用網絡圖片展示增強效果,末行中間是原圖,自上而下為亮度、對比度、隨機剪切和旋轉四種處理結果,組合處理樣本更加豐富。
圖4亮度、對比度、隨機剪切和旋轉處理
Fig.4Brightness, contrast, random cut and rotation processing
如圖5所示,用增強前后的數據集分別訓練cnnet3e模型各5次,“src”和“aug”分別表示源數據集和增強數據集訓練結果,測試準確度均值(Mean Test Accuracy,MTA)表明,數據增強技術在同等條件下使MTA提高約10%,且標準差更小,幫助模型學習到更好更穩定的泛化能力。
圖5數據增強前后訓練cnnet3e網絡5次TA及MTA曲線
Fig.5Training cnnet3e network TA and MTA for 5 times before and after data enhancement
3.2 訓練模型與選型策略實驗
影響CNN模型性能的主要有網絡結構、超參數以及損失函數和優化策略等,這里主要研究CNN結構尤其是網絡深度變化對訓練結果的影響,進而設計選型策略。實驗選擇的超參數有學習速率0.000 1、最小批處理數量50、隨機失活比例0.5、訓練輪數10 000輪;損失函數為交叉熵,優化采用自適應矩估計方法(adaptive moment estimation,Adam)[29]。
由于對批處理數據進行了隨機擾亂,因此學習參數和測試準確度等訓練結果具有隨機性,而測試準確度是反映模型泛化能力的重要指標,為減少隨機性干擾,使用增強前后的數據集分別對21種CNN進行5次訓練,每次訓練10 000步,每200步記錄一次測試準確度結果,分別計算各CNN的5次訓練結果的MTA,如圖6~圖7所示。從MTA變化趨勢看,前者收斂較快,多數曲線呈現先升后降趨勢,后者收斂較慢,大部分曲線由升轉穩,且幅度有較大提高;原因是前者樣本少,收斂快,后期出現過擬合,而后者樣本數量和多樣性都有改善,訓練輪數也比較合適。可見MTA即能反映泛化能力,又能反映擬合狀態,是選擇模型和訓練輪數的重要參考。
圖621種CNN 5次MTA曲線(未增強數據)
Fig.6MTA of 21 CNN for 5 times with unenhanced data
圖721種CNN5次MTA曲線(增強數據)
Fig.7MTA of 21 CNN for 5 times with enhanced data
圖8能更清晰地展示這種趨勢,按順序取每5個相鄰的MTA為一段求均值,得到分段測試準確度均值(Partitioned Mean Test Accuracy,PMTA),幅度更穩定。
圖821種CNN 5次PMTA曲線
Fig.8PMTA of 21 CNN for 5 times
對比圖8的(a)和(b),前者5b,1b,2e較高,2d,3b,2b較低,后者1e,2b,2e較高,4e,5c,5d較低。這表明同等條件下增強樣本會影響訓練收斂過程和結果;前后兩個2e幅度都較高,但曲線形態明顯不同,前者先升后降,后者先升后穩,這說明同等條件下還應按數據集規模選擇適當的訓練輪數,防止欠擬合和過擬合。
基于上述分析,將各CNN中MTA類指標和參數規模繪制成熱度圖,如圖9所示。優選模型主要依據PMTA和MTA的最大值,以及參數總數“total num”,前者反映模型泛化能力,后者表示模型復雜度,其他指標(FMTA表示MTA前5個最大值的均值,“fclayer num”和“convlayer num”表示全連接層和卷積層參數量)作參考。首先排除參數很多(>1 000 000)且MTA類指標并未顯著提升者(1b~1f,2c~2e,3d,3e,4e,5e)和參數雖少但是MTA類指標明顯較低者(3b,4c,4d,5c,5d),余下2b,3c,4b和5b(箭頭所示)。其次2b,5b的參數規模分別略低于3c,4b但MTA更高,可淘汰后者。最后,余下的網絡參數規模都不大,因此應以MTA為主;若MTA相等,根據奧卡姆剃刀原則,選參數少者。2b與5b模型相比,各有優勢,前者以5倍左右的參數量,將MTA提高了近1%,在參數總數可接受的情況下,可提供更好的模型泛化能力。
圖9基于MTA類指標和參數規模的選型策略(參數數量單位:萬)
Fig.9Selection strategy based on MTA class index and parameter scale (parameter unit: ten thousand)
綜上所述,首先設計一組與特定任務較匹配的CNN,通過多次訓練獲得MTA類指標,繪制MTA類指標和參數規模熱度圖;再用排除法、對比法縮小選擇范圍;最后按照簡單有效原則,可選出潛在的模型復雜度較低且泛化能力較高的CNN,用于構造分類器。
3.3 圖像檢測實驗
TensorFlow提供多種方法保存和加載(部署)模型[33]。加載Cnnet2b結構、參數和標簽文件,這里構造分類器函數用于仿真,輸入為一幅歸一化為32×32大小的ROI灰度圖,輸出為該圖子類編號。仿真時先用檢測器實時提取視頻幀中的目標ROI,然后傳入分類器函數判斷其子類編號,這就構成一個快速目標識別系統。
圖10上中下子圖左側是對Cnnet2b進行三次訓練的訓練準確度(Train Accuracy)和測試準確度,訓練準確度在后期基本達到100%,測試準確度分別達98.46%,94.35%和95.89%;右側是對應模型的預測結果與真實標簽比較,可見模型訓練結果具有隨機性,但是在預期的范圍。
圖10Cnnet2b模型三次訓練和測試準確度及其分類結果
Fig.10Three times training and testing accuracy of cnnet2b model and its classification results
從預測結果看,錯誤幀分別為第3,9,7幀,其中分別有第2,6,5幀的錯誤發生在狀態變換附近,約占68%,因此在選擇訓練測試樣本時,通過減少過渡狀態的樣本,提高類間區分度,可進一步提高預測準確度。
在采用固定灰度閾值時,視頻檢測速率可達1 000 FPS,增加中值濾波和自適應灰度閾值功能時約為100 FPS,分類器運算時間約為100 FPS,檢測分類總時間約為50 FPS,達到實時要求。
4 結 論
為快速利用現有數據提升設備能力,基于海量紅外視頻數據和卷積神經網絡,分建立數據庫、增強數據、選擇CNN訓練模型和設計檢測器、分類器等若干步驟,設計了一種構建實時紅外目標識別系統的方法。重點闡述了如何根據測試準確度均值及其分類統計結果、參數規模等要素選擇適合特定任務的CNN卷積層層數和卷積核深度,在模型復雜度較低時,選出泛化能力較好的模型。實驗結果表明,特征事件分類準確度可達95%,幀率約為50 FPS,選擇CNN結構的策略合理有效,建立的系統模型可達到紅外目標識別精度和實時性要求。
?【轉載聲明】轉載目的在于傳遞更多信息。如涉及作品版權和其它問題,請在30日內與本號聯系,我們將在第一時間刪除
關注微信公眾號:人工智能技術與咨詢。了解更多咨詢!
編輯:fqj
評論
查看更多