首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

实验2:SAR目标识别——卷积神经网络分类

本节使用卷积神经网络对SAR图像进行目标识别,卷积神经网络是专门针对空间数据(矩阵)的深度学习模型,在图像识别等领域效果显著。

本实验主要涉及网络的建构设计和训练,并针对MSTAR数据集,采用类似前小节的方法读取数据,具体方法如下:

其中,image2vector函数接受一个图像文件名,通过opencv库读取图像,且参数cv2.IMREAD_GRAYSCALE表示强制将图像读取为灰度图像。然后执行图像尺度归一化到128像素*128像素,最后将矩阵拉直为一个向量。图像(灰度)本身可以理解为一个二维矩阵,彩色图像可以理解为一个三通道的张量。

其中,create_data函数接受一个目录,通过os.listdir搜索目录下所有的子目录和文件,该函数通过调用image2vector将图像矩阵转化为一维向量。该方法在返回样本和标签的同时,还返回了每类样本的个数词典。

其中,DataSet类定义了一个数据集管理类,该类在初始化是对图像进行了一个映射,将样本归一化到-1至1之间,其中next_batch方法,根据输入batch_size参数从数据集中返回一批数据。DataSets类中包含一个train和一个test,分别存放训练和测试数据。

以上内容定义了一个卷积神经网络,最开始定义了学习率,迭代步数和Batch大小,并设置输入样本维度,输出维度和Dropout丢弃率。然后,定义了一个全局均值池化函数,对每个通道上的特征进行全局池化。最后定义一个卷积网络,网络接受一个images变量输入,变量由128*128*3的若干图像组成,经过5个卷积、ReLU和最大值池化层,每幅图像输出一个4*4*512维的特征图,再接一个卷积和全局池化层,输出一个1*1*1024维的特征,扁平化后全连接到1024并对结果最dropout处理,最后一个全连接将结果映射到三个类别。

该函数定义一个训练网络和一个测试网络,测试网络只需要前向计算网络输出即可,而村落网络需要计算交叉熵损失,并采用Adam优化器对网络参数进行更新。

最后,构建模型并调用训练和测试方法,分别对训练数据和标签进行训练,对测试数据和测试标签计算精度。

运行代码可以得到如下结果:

从上述结果可以发现,训练中损失不断降低,最后的损失为3.785826*10-5,最终测试精度达到了96.9%。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180425G1JZX600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券