如何在MSTAR SAR图像目标识别数据集中刷出99.5%的准确率?


1、背景介绍

与自然图像识别研究的快速发展不同,在遥感SAR图像识别领域,因为目标探测手段的困难,难以获取足量公开的数据集,其中美国公开的MSTAR是为数不多的、对地车辆目标进行识别的数据集。MSTAR是在二十世纪九十年代中期,美国国防高等研究计划署(DARPA)推出。通过高分辨率的聚束式合成孔径雷达采集多种前苏联目标军事车辆的SAR图像。MSTAR计划进行了SAR实测地面目标试验,包括目标遮挡、伪装、配置变化等扩展性条件,形成了较为系统、全面的实测数据库。随后,DARPA公布了该数据库。目前MSTAR数据集在SAR图像目标识别研究上得到广泛应用。官方数据文件下载链接为,需要先注册再下载(注册很简单):https://www.sdms.afrl.af.mil/index.php?collection=registration

      采集该数据集的传感器为高分辨率的聚束式合成孔径雷达,该雷达的分辨率为0.3m×0.3m。工作在X波段,所用的极化方式为HH极化方式。对采集到的数据进行前期处理,从中提取出像素大小为128×128包含各类目标的切片图像。该数据大多是静止车辆的SAR切片图像,包含多种车辆目标在各个方位角下获取到的目标图像。在该数据集中包含一个该计划推荐使用的训练集和测试集。训练集是雷达工作俯仰角为17时所得到的目标图像数据,包括3大类:BTR70(装甲运输车),BMP2(步兵战车),T72(坦克);测试集是雷达工作俯仰角为时所得到的目标图像数据,该数据集也包含3大类,BMP2、T72、BTR70。各种类别的目标还具有不同的型号,同类但不同型号的目标在配备上有些差异,但总体散射特性相差不大。

      MSTAR混合目标数据中还包含其他的一组军事目标的切片图像,这些军事目标分别为2S1(自行榴弹炮)、BRDM2(装甲侦察车)、BTR60(装甲运输车)、D7(推土机)、T62(坦克)、ZIL131(货运卡车)、ZSU234(自行高炮)、T72。


图1 典型车辆目标光学与SAR图像展示  

2、数据集前期处理

MSTAR数据集中的目标是雷达工作在多种不同的俯仰角时,各个目标在方向上面的成像图片。MSTAR数据集的采集条件分为两类,分别为标准工作条件(Standard Operating Condition,SOC)和扩展工作条件(Extended Operating Condition,EOC)。这些SAR图像是基于多种采集条件生成的,如改变成像侧视角、目标姿态或目标序列号等。因此,MSTAR数据集可以测试SAR目标识别算法在不同采集条件下的识别性能。

SOC采集条件下共包括10类地面目标。训练集数据采集在17。成像侧视角下,测试集数据采集在15。侧视角下。SOC采集条件下样本数据的详细信息(目标类型、样本数量、目标序列号以及采集侧视角等)如表2.10所示。

与SOC采集条件相比,EOC采集条件下样本识别难度更高。EOC条件下包括EOC-1和EOC-2两种实验方案。EOC-1和EOC-2条件下训练集和测试集样本的详细信息分别列于表2.11、表2.12和表2.13。

EOC-1实验方案中包含4类地面目标,训练集的侧视角为17。,而测试集的侧视角为30。,如此大的侧视角差别可导致相同姿态的同一个目标呈现有较明显的区别表征,增加了识别的难度。EOC-2实验方案中训练集包含4类地面目标,采集在17。侧视角条件下,测试集分别使用不同序列号版本的T72目标,而不同序列号版本的目标会呈现有一定区别的目标表征。训练集与测试集样本中目标表征的区别使得测试集的样本不易被识别为T72目标,因此增加了识别的难度。

具体组成如下所示:

表1 MSTAR数据集SOC条件下数据类型

表2 MSTAR数据集中EOC-1采集条件下的4类目标

表3 MSTAR数据集中EOC-2采集条件下的训练集

表4 MSTAR数据集中EOC-2采集条件下的测试集

我们的目标,就是对SOC工作模式下获取的数据进行识别处理。

2.1数据格式转换

下载数据后,我们可以看到得到有8个文件夹,其中MSTAR-PublicClutter-CD1、MSTAR-PublicClutter-CD2、MSTAR-PublicMixedTargets-CD1、MSTAR-PublicMixedTargets-CD2、MSTAR-PublicT72Variants-CD1、MSTAR-PublicT72Variants-CD2、MSTAR-PublicTargetChips-T72-BMP2-BTR70-SLICY表示不同条件下获取的数据,但原始数据均为只读文本,需要转换成图片格式。从网上下载了matlab解析程序,可以直接转化为图片形式,如图1所示。


2.2图片裁剪

转换后的数据,大小不一,部分大小如下表所示        

同时可以发现,目标已经处于图片正中位置,而且只占据全图不大的区域,为了识别方便,需要对10类数据进行裁剪。不影响目标条件下,我们都裁剪为100*100。裁剪后部分图片见图1。为了直观起见,我们将每类目标以图片形式存在在磁盘内,每类目标文件夹命名为目标名。

3. 网络搭建与建模

下面重点来了,如何针对这个SOC工作条件下的数据集刷出99.5%以上的识别准确率呢?我们直接给出方案,就是数据增广预处理+pretraining + Fine-tune 。

为何使用数据增广预处理?因为数据量不够,每类目标只有约200多个训练数据,而且因为成像的原因,分辨率固定、旋转角度均匀、气象条件一致。因此需要做基于图像预处理的增广方法。

为何采用pre-training + Fine-tune?尽管已有研究指出(参考Kaiming He大神的《Rethinking ImageNet Pre-training》),预训练并非必要,但前提是对于类似ImageNet这类数据量极大的情况,在实际应用中,如果数据量小,采用预训练+Fine-tune不仅可以加速目标任务的收敛速度,而且可以在一定程度上减小过拟合。

3.1 关于数据预处理

在图像处理领域,常常通过对图像做亮度改变、加噪声、翻转、随机裁切、缩放等预处理操作制造出大量样本。具体包括:(1)平移,对原始小样本进行图像的平移操作时,可以使得网络学习到的平移不变特征;(2)旋转,图像旋转技术,可以在进行网络学习时学习到旋转不变的特征,有些任务里,目标可能有很多种不同的姿态,旋转整好可以补充样本中姿态较少的问题;(3)图像镜像技术,镜像技术与图像旋转的功能类似,都是可以图像的不同姿态表达的问题;(4)图像亮度变化,一般常用图像直方图均衡化进行变化,可以较好的进行不同亮度下的图像样本增强;(5)裁剪,将图像中的部分目标裁剪出来,有助于学习目标的部分结构特征;(6)缩放,对图像进行放大或缩小,有助于学习不同分辨率条件下的目标特征;(7)加噪声,对原始图像加不同强度、不同类型(高斯白噪声、斑点噪声、椒盐噪声等等)的噪声,有助于提高目标检测识别的鲁棒性。下面以两幅自然场景图像与两幅SAR遥感图像为例,展示以上7种经典图像生成方法产生的结果。


当然,在对MSTAR的处理中,我们不需将以上方式都用一遍,我们可以操作的预处理形式包括:数值归一化、剪切变换、旋转变换、缩放、水平翻转。

3.2 Pre-training + Fine-tune

预训练+Fine-tune是常见的处理方式。

所谓预训练,需要区别于常规训练方法。常规训练方法为首先搭建一个深度网络模型,随机初始化参数,然后开始训练网络,不断调整直到网络的损失越来越小。在训练的过程中,初始化的参数会不断变化,直到达到所需识别结果。所谓预训练是指不在随机初始化的参数开始训练网络,而是从已有训练好的模型参数开始训练网络,比如我们可以把在ImageNet数据集上训练的模型ResNet50拿来,用在新数据集的训练,也就是针对本文所说的MSTAR数据集。

      什么是Fine-tune?Fine-tune是一种常用的深度网络训练技巧,属于迁移学习的一种,Fine-tune与预训练的方式结合。在利用已有模型训练新数据时,可以不必对全部层的参数进行训练,而可以只对输出层及接近输出层的若干卷积层训练,即固定低层参数而只训练高层参数。这么做的原因是,网络的低层只提取边缘等基础信息,而这些信息,在各类数据中是相当的,无需重复训练获得。高层参数则相对变化较大,需要重新获取。

      那如何操作呢,实际上python中很容易,特别是在采用Keras框架中,提供了即为便捷的方式。

      在Keras中,我们可以加载已训练好的ResNet50模型,这里,我们需要的是不含全连接层的版本:

WEIGHTS_PATH_NO_TOP = 'resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5'

      基于函数式编程,我们把全连接层设定256个节点,输出层限定为10个类别:

x = Flatten()(x)

x = Dense(256,activation='relu')(x)

x = Dropout(0.5)(x)

x = Dense(10, activation = 'softmax')(x)

      限定模型前45个层的参数固定

for layer in model2.layers[:45]:

      layer.trainable= False

采用随机梯度下降进行优化(似乎fine-tune时采用这个函数普遍结果好点)

model2.compile(loss='binary_crossentropy', optimizer = SGD(lr=1e-3,momentum= 0.9), metrics=['accuracy'])

Keras提供了简洁的图像预处理形式

train_datagen= ImageDataGenerator(

        rescale=1./255,

        shear_range=0.2,

        rotation_range=10.,

        zoom_range=0.2,

        horizontal_flip=True)

最后,设定epoch为200,batch_size 大小为16。

完整代码参见列表。


结果如下:

我的机器配置是Intel Core I5 6500,显卡GTX 960,内存8GB。每个epoch运行约5分钟,在运行了40余个epoch(不到4个小时)后,训练准确率达到99.83%,此时在测试集上的验证结果为99.58%。这个结果是什么水平呢?好在MSTAR的数据集是个应用最广的SAR图像识别数据集,每年都有不少算法在这上面跑,2018年的论文《SAR Automatic Target Recognition Based on Multiview Deep Learning Framework》只达到98.5%,《Transfer Learning with Deep Convolutional Neural Network for SAR Target Classification with Limited Labeled Data》10类准确率是98.5%,西工大杜兰教授《SAR Automatic Target Recognition Based on Euclidean Distance Restricted Autoencoder》只达到不到96%的准确率,我们似乎已经达到发表论文的水平了!



全部代码图片在这里:

https://github.com/azy1988/ML-CV/tree/master/MSTAR_ATR

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容