1积蜻、背景介紹
與自然圖像識(shí)別研究的快速發(fā)展不同,在遙感SAR圖像識(shí)別領(lǐng)域彻消,因?yàn)槟繕?biāo)探測(cè)手段的困難竿拆,難以獲取足量公開的數(shù)據(jù)集,其中美國(guó)公開的MSTAR是為數(shù)不多的宾尚、對(duì)地車輛目標(biāo)進(jìn)行識(shí)別的數(shù)據(jù)集丙笋。MSTAR是在二十世紀(jì)九十年代中期,美國(guó)國(guó)防高等研究計(jì)劃署(DARPA)推出煌贴。通過高分辨率的聚束式合成孔徑雷達(dá)采集多種前蘇聯(lián)目標(biāo)軍事車輛的SAR圖像御板。MSTAR計(jì)劃進(jìn)行了SAR實(shí)測(cè)地面目標(biāo)試驗(yàn),包括目標(biāo)遮擋牛郑、偽裝怠肋、配置變化等擴(kuò)展性條件,形成了較為系統(tǒng)淹朋、全面的實(shí)測(cè)數(shù)據(jù)庫(kù)笙各。隨后,DARPA公布了該數(shù)據(jù)庫(kù)础芍。目前MSTAR數(shù)據(jù)集在SAR圖像目標(biāo)識(shí)別研究上得到廣泛應(yīng)用杈抢。官方數(shù)據(jù)文件下載鏈接為,需要先注冊(cè)再下載(注冊(cè)很簡(jiǎn)單):https://www.sdms.afrl.af.mil/index.php?collection=registration
????? 采集該數(shù)據(jù)集的傳感器為高分辨率的聚束式合成孔徑雷達(dá)仑性,該雷達(dá)的分辨率為0.3m×0.3m惶楼。工作在X波段,所用的極化方式為HH極化方式诊杆。對(duì)采集到的數(shù)據(jù)進(jìn)行前期處理歼捐,從中提取出像素大小為128×128包含各類目標(biāo)的切片圖像。該數(shù)據(jù)大多是靜止車輛的SAR切片圖像晨汹,包含多種車輛目標(biāo)在各個(gè)方位角下獲取到的目標(biāo)圖像豹储。在該數(shù)據(jù)集中包含一個(gè)該計(jì)劃推薦使用的訓(xùn)練集和測(cè)試集。訓(xùn)練集是雷達(dá)工作俯仰角為17時(shí)所得到的目標(biāo)圖像數(shù)據(jù)宰缤,包括3大類:BTR70(裝甲運(yùn)輸車),BMP2(步兵戰(zhàn)車)晃洒,T72(坦克)慨灭;測(cè)試集是雷達(dá)工作俯仰角為時(shí)所得到的目標(biāo)圖像數(shù)據(jù),該數(shù)據(jù)集也包含3大類球及,BMP2氧骤、T72、BTR70吃引。各種類別的目標(biāo)還具有不同的型號(hào)筹陵,同類但不同型號(hào)的目標(biāo)在配備上有些差異刽锤,但總體散射特性相差不大。
????? MSTAR混合目標(biāo)數(shù)據(jù)中還包含其他的一組軍事目標(biāo)的切片圖像朦佩,這些軍事目標(biāo)分別為2S1(自行榴彈炮)并思、BRDM2(裝甲偵察車)、BTR60(裝甲運(yùn)輸車)语稠、D7(推土機(jī))宋彼、T62(坦克)、ZIL131(貨運(yùn)卡車)仙畦、ZSU234(自行高炮)输涕、T72。
2慨畸、數(shù)據(jù)集前期處理
MSTAR數(shù)據(jù)集中的目標(biāo)是雷達(dá)工作在多種不同的俯仰角時(shí)莱坎,各個(gè)目標(biāo)在方向上面的成像圖片。MSTAR數(shù)據(jù)集的采集條件分為兩類寸士,分別為標(biāo)準(zhǔn)工作條件(Standard Operating Condition檐什,SOC)和擴(kuò)展工作條件(Extended Operating Condition,EOC)碉京。這些SAR圖像是基于多種采集條件生成的厢汹,如改變成像側(cè)視角、目標(biāo)姿態(tài)或目標(biāo)序列號(hào)等谐宙。因此烫葬,MSTAR數(shù)據(jù)集可以測(cè)試SAR目標(biāo)識(shí)別算法在不同采集條件下的識(shí)別性能。
SOC采集條件下共包括10類地面目標(biāo)凡蜻。訓(xùn)練集數(shù)據(jù)采集在17搭综。成像側(cè)視角下,測(cè)試集數(shù)據(jù)采集在15划栓。側(cè)視角下兑巾。SOC采集條件下樣本數(shù)據(jù)的詳細(xì)信息(目標(biāo)類型、樣本數(shù)量忠荞、目標(biāo)序列號(hào)以及采集側(cè)視角等)如表2.10所示蒋歌。
與SOC采集條件相比,EOC采集條件下樣本識(shí)別難度更高委煤。EOC條件下包括EOC-1和EOC-2兩種實(shí)驗(yàn)方案堂油。EOC-1和EOC-2條件下訓(xùn)練集和測(cè)試集樣本的詳細(xì)信息分別列于表2.11、表2.12和表2.13碧绞。
EOC-1實(shí)驗(yàn)方案中包含4類地面目標(biāo)府框,訓(xùn)練集的側(cè)視角為17。讥邻,而測(cè)試集的側(cè)視角為30迫靖。院峡,如此大的側(cè)視角差別可導(dǎo)致相同姿態(tài)的同一個(gè)目標(biāo)呈現(xiàn)有較明顯的區(qū)別表征,增加了識(shí)別的難度系宜。EOC-2實(shí)驗(yàn)方案中訓(xùn)練集包含4類地面目標(biāo)照激,采集在17。側(cè)視角條件下蜈首,測(cè)試集分別使用不同序列號(hào)版本的T72目標(biāo)实抡,而不同序列號(hào)版本的目標(biāo)會(huì)呈現(xiàn)有一定區(qū)別的目標(biāo)表征。訓(xùn)練集與測(cè)試集樣本中目標(biāo)表征的區(qū)別使得測(cè)試集的樣本不易被識(shí)別為T72目標(biāo)欢策,因此增加了識(shí)別的難度吆寨。
具體組成如下所示:
表1?MSTAR數(shù)據(jù)集SOC條件下數(shù)據(jù)類型
表2 MSTAR數(shù)據(jù)集中EOC-1采集條件下的4類目標(biāo)
表3 MSTAR數(shù)據(jù)集中EOC-2采集條件下的訓(xùn)練集
表4?MSTAR數(shù)據(jù)集中EOC-2采集條件下的測(cè)試集
我們的目標(biāo),就是對(duì)SOC工作模式下獲取的數(shù)據(jù)進(jìn)行識(shí)別處理踩寇。
2.1數(shù)據(jù)格式轉(zhuǎn)換
下載數(shù)據(jù)后啄清,我們可以看到得到有8個(gè)文件夾,其中MSTAR-PublicClutter-CD1俺孙、MSTAR-PublicClutter-CD2辣卒、MSTAR-PublicMixedTargets-CD1、MSTAR-PublicMixedTargets-CD2睛榄、MSTAR-PublicT72Variants-CD1荣茫、MSTAR-PublicT72Variants-CD2、MSTAR-PublicTargetChips-T72-BMP2-BTR70-SLICY表示不同條件下獲取的數(shù)據(jù)场靴,但原始數(shù)據(jù)均為只讀文本啡莉,需要轉(zhuǎn)換成圖片格式。從網(wǎng)上下載了matlab解析程序旨剥,可以直接轉(zhuǎn)化為圖片形式咧欣,如圖1所示。
2.2圖片裁剪
轉(zhuǎn)換后的數(shù)據(jù)轨帜,大小不一魄咕,部分大小如下表所示 ???????
同時(shí)可以發(fā)現(xiàn),目標(biāo)已經(jīng)處于圖片正中位置蚌父,而且只占據(jù)全圖不大的區(qū)域哮兰,為了識(shí)別方便,需要對(duì)10類數(shù)據(jù)進(jìn)行裁剪苟弛。不影響目標(biāo)條件下喝滞,我們都裁剪為100*100。裁剪后部分圖片見圖1嗡午。為了直觀起見囤躁,我們將每類目標(biāo)以圖片形式存在在磁盤內(nèi)冀痕,每類目標(biāo)文件夾命名為目標(biāo)名荔睹。
3. 網(wǎng)絡(luò)搭建與建模
下面重點(diǎn)來了狸演,如何針對(duì)這個(gè)SOC工作條件下的數(shù)據(jù)集刷出99.5%以上的識(shí)別準(zhǔn)確率呢?我們直接給出方案僻他,就是數(shù)據(jù)增廣預(yù)處理+pretraining + Fine-tune 宵距。
為何使用數(shù)據(jù)增廣預(yù)處理?因?yàn)閿?shù)據(jù)量不夠吨拗,每類目標(biāo)只有約200多個(gè)訓(xùn)練數(shù)據(jù)满哪,而且因?yàn)槌上竦脑颍直媛使潭ㄈ芭瘛⑿D(zhuǎn)角度均勻哨鸭、氣象條件一致。因此需要做基于圖像預(yù)處理的增廣方法娇妓。
為何采用pre-training + Fine-tune像鸡?盡管已有研究指出(參考Kaiming He大神的《Rethinking ImageNet Pre-training》),預(yù)訓(xùn)練并非必要哈恰,但前提是對(duì)于類似ImageNet這類數(shù)據(jù)量極大的情況只估,在實(shí)際應(yīng)用中,如果數(shù)據(jù)量小着绷,采用預(yù)訓(xùn)練+Fine-tune不僅可以加速目標(biāo)任務(wù)的收斂速度蛔钙,而且可以在一定程度上減小過擬合。
3.1 關(guān)于數(shù)據(jù)預(yù)處理
在圖像處理領(lǐng)域荠医,常常通過對(duì)圖像做亮度改變吁脱、加噪聲、翻轉(zhuǎn)子漩、隨機(jī)裁切豫喧、縮放等預(yù)處理操作制造出大量樣本。具體包括:(1)平移幢泼,對(duì)原始小樣本進(jìn)行圖像的平移操作時(shí)紧显,可以使得網(wǎng)絡(luò)學(xué)習(xí)到的平移不變特征;(2)旋轉(zhuǎn)缕棵,圖像旋轉(zhuǎn)技術(shù)孵班,可以在進(jìn)行網(wǎng)絡(luò)學(xué)習(xí)時(shí)學(xué)習(xí)到旋轉(zhuǎn)不變的特征,有些任務(wù)里招驴,目標(biāo)可能有很多種不同的姿態(tài)篙程,旋轉(zhuǎn)整好可以補(bǔ)充樣本中姿態(tài)較少的問題;(3)圖像鏡像技術(shù)别厘,鏡像技術(shù)與圖像旋轉(zhuǎn)的功能類似虱饿,都是可以圖像的不同姿態(tài)表達(dá)的問題;(4)圖像亮度變化,一般常用圖像直方圖均衡化進(jìn)行變化氮发,可以較好的進(jìn)行不同亮度下的圖像樣本增強(qiáng)渴肉;(5)裁剪,將圖像中的部分目標(biāo)裁剪出來爽冕,有助于學(xué)習(xí)目標(biāo)的部分結(jié)構(gòu)特征仇祭;(6)縮放,對(duì)圖像進(jìn)行放大或縮小颈畸,有助于學(xué)習(xí)不同分辨率條件下的目標(biāo)特征乌奇;(7)加噪聲,對(duì)原始圖像加不同強(qiáng)度眯娱、不同類型(高斯白噪聲礁苗、斑點(diǎn)噪聲、椒鹽噪聲等等)的噪聲徙缴,有助于提高目標(biāo)檢測(cè)識(shí)別的魯棒性寂屏。下面以兩幅自然場(chǎng)景圖像與兩幅SAR遙感圖像為例,展示以上7種經(jīng)典圖像生成方法產(chǎn)生的結(jié)果娜搂。
當(dāng)然迁霎,在對(duì)MSTAR的處理中,我們不需將以上方式都用一遍百宇,我們可以操作的預(yù)處理形式包括:數(shù)值歸一化考廉、剪切變換、旋轉(zhuǎn)變換携御、縮放昌粤、水平翻轉(zhuǎn)。
3.2 Pre-training + Fine-tune
預(yù)訓(xùn)練+Fine-tune是常見的處理方式啄刹。
所謂預(yù)訓(xùn)練涮坐,需要區(qū)別于常規(guī)訓(xùn)練方法。常規(guī)訓(xùn)練方法為首先搭建一個(gè)深度網(wǎng)絡(luò)模型誓军,隨機(jī)初始化參數(shù)袱讹,然后開始訓(xùn)練網(wǎng)絡(luò),不斷調(diào)整直到網(wǎng)絡(luò)的損失越來越小昵时。在訓(xùn)練的過程中捷雕,初始化的參數(shù)會(huì)不斷變化,直到達(dá)到所需識(shí)別結(jié)果壹甥。所謂預(yù)訓(xùn)練是指不在隨機(jī)初始化的參數(shù)開始訓(xùn)練網(wǎng)絡(luò)救巷,而是從已有訓(xùn)練好的模型參數(shù)開始訓(xùn)練網(wǎng)絡(luò),比如我們可以把在ImageNet數(shù)據(jù)集上訓(xùn)練的模型ResNet50拿來句柠,用在新數(shù)據(jù)集的訓(xùn)練浦译,也就是針對(duì)本文所說的MSTAR數(shù)據(jù)集棒假。
????? 什么是Fine-tune?Fine-tune是一種常用的深度網(wǎng)絡(luò)訓(xùn)練技巧精盅,屬于遷移學(xué)習(xí)的一種淆衷,F(xiàn)ine-tune與預(yù)訓(xùn)練的方式結(jié)合。在利用已有模型訓(xùn)練新數(shù)據(jù)時(shí)渤弛,可以不必對(duì)全部層的參數(shù)進(jìn)行訓(xùn)練,而可以只對(duì)輸出層及接近輸出層的若干卷積層訓(xùn)練甚带,即固定低層參數(shù)而只訓(xùn)練高層參數(shù)她肯。這么做的原因是,網(wǎng)絡(luò)的低層只提取邊緣等基礎(chǔ)信息鹰贵,而這些信息晴氨,在各類數(shù)據(jù)中是相當(dāng)?shù)模瑹o需重復(fù)訓(xùn)練獲得碉输。高層參數(shù)則相對(duì)變化較大籽前,需要重新獲取。
????? 那如何操作呢敷钾,實(shí)際上python中很容易枝哄,特別是在采用Keras框架中,提供了即為便捷的方式阻荒。
????? 在Keras中挠锥,我們可以加載已訓(xùn)練好的ResNet50模型,這里侨赡,我們需要的是不含全連接層的版本:
WEIGHTS_PATH_NO_TOP = 'resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5'
????? 基于函數(shù)式編程蓖租,我們把全連接層設(shè)定256個(gè)節(jié)點(diǎn),輸出層限定為10個(gè)類別:
x = Flatten()(x)
x = Dense(256,activation='relu')(x)
x = Dropout(0.5)(x)
x = Dense(10, activation = 'softmax')(x)
????? 限定模型前45個(gè)層的參數(shù)固定
for layer in model2.layers[:45]:
? ? ? layer.trainable= False
采用隨機(jī)梯度下降進(jìn)行優(yōu)化(似乎fine-tune時(shí)采用這個(gè)函數(shù)普遍結(jié)果好點(diǎn))
model2.compile(loss='binary_crossentropy',?optimizer?=?SGD(lr=1e-3,momentum= 0.9), metrics=['accuracy'])
Keras提供了簡(jiǎn)潔的圖像預(yù)處理形式
train_datagen= ImageDataGenerator(
??????? rescale=1./255,
??????? shear_range=0.2,
??????? rotation_range=10.,
??????? zoom_range=0.2,
??????? horizontal_flip=True)
最后羊壹,設(shè)定epoch為200蓖宦,batch_size 大小為16。
完整代碼參見列表油猫。
結(jié)果如下:
我的機(jī)器配置是Intel Core I5 6500稠茂,顯卡GTX 960,內(nèi)存8GB情妖。每個(gè)epoch運(yùn)行約5分鐘主慰,在運(yùn)行了40余個(gè)epoch(不到4個(gè)小時(shí))后,訓(xùn)練準(zhǔn)確率達(dá)到99.83%鲫售,此時(shí)在測(cè)試集上的驗(yàn)證結(jié)果為99.58%共螺。這個(gè)結(jié)果是什么水平呢?好在MSTAR的數(shù)據(jù)集是個(gè)應(yīng)用最廣的SAR圖像識(shí)別數(shù)據(jù)集情竹,每年都有不少算法在這上面跑藐不,2018年的論文《SAR Automatic Target Recognition Based on Multiview Deep Learning Framework》只達(dá)到98.5%,《Transfer Learning with Deep Convolutional Neural Network for SAR Target Classification with Limited Labeled Data》10類準(zhǔn)確率是98.5%,西工大杜蘭教授《SAR Automatic Target Recognition Based on Euclidean Distance Restricted Autoencoder》只達(dá)到不到96%的準(zhǔn)確率雏蛮,我們似乎已經(jīng)達(dá)到發(fā)表論文的水平了涎嚼!
全部代碼圖片在這里: