热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于卷积神经网络的遥感图像养殖区自动划分

基于卷积神经网络的遥感图像养殖区自动划分摘要:卷积神经网络是目前计算机视觉领域广泛应用的模型。我们在传统卷积神经网络的基础上,替换了全连接层,借助高分辨率图像,对海水养殖区进行识别

基于卷积神经网络的遥感图像养殖区自动划分

摘要:卷积神经网络是目前计算机视觉领域广泛应用的模型。我们在传统卷积神经网络的基础上,替换了全连接层,借助高分辨率图像,对海水养殖区进行识别和标记,最终实现了模型对海水养殖区很好的识别,训练速度也较为理想。该研究减少了了人工识别养殖区的时间,节约人力物力,并且对海洋养殖区的分布布局具有重要意义。

关键字:高分辨率遥感图像;特征提取;全卷积神经网络;图像语义分割

随着科技发展,高分辨率图像分辨率越来越高,图像中所包含的信息更加丰富,如何准确高效处理利用这些信息愈来愈被人们关注。当今世纪,深度学习的迅速发展,成为人们处理这些信息的有力手段。

CNN网络是受自然视觉的启发机制而产生,由于其网络结构,使其在计算机视觉方面处理效果相当出色。卷积神经网络借助卷积核提取图片特征来进行训练,本文借助基于VGG19的全卷积神经网络,利用MATLAB将高分图像进行切割,得到多幅训练图片。训练完成后,全卷积神经网络会对测试图片中像素进行分类,实现图片的语义分割,这样,就能对一张图片的不同类别进行分类,从而达到目的。

1 原理与方法

1.1 VGG19+FCN网络结构

Vgg19模型也是一种CNN。VGG19网络层数非常深,卷积核大小为3x3,由卷积层、池化层、全连接层组成。VGG19模型结构图如下:

基于卷积神经网络的遥感图像养殖区自动划分

该卷积网络由5层卷积层,3层全连接层,softmax输出层组成,所有的隐藏层的**函数都采用relu**函数。卷积核使用的是3x3的小卷积核,不仅可以减少参数,而且方便提取更多的图片特征,增加了网络的拟合表达能力。与AlexNet网络相比,VGG模型没有采用AlexNet较大的卷积核尺寸(7x7),而是通过降低卷积核的大小,堆叠卷积子层来达到同样的性能。除此之外,VGG模型的通道数多,层数更深,后面对每层进行翻倍,最多达到了512个通道,有利于更多的特征被提取出来,VGG网络在每个全卷积层后加入了池化层,减小了特征向量提取后的宽和高,控制了计算量的增长规模。

FCN网络,如图二所示,对图像实现像素级别的分类,从而实现了语义级别的图像分割。与传统卷积神经网络在网络最后使用全连接层实现固定长度特征向量不同,FCN网络将最后的全连接层替换为卷积层,添加反卷积层对卷积层输出的heatmap(如图三所示)进行上采样,从而可以把抽象的特征图恢复出每个像素所属的类别,恢复到原来的图片大小,这就使得FCN网络可以接受任意大小的图片输入。

基于卷积神经网络的遥感图像养殖区自动划分

图二

基于卷积神经网络的遥感图像养殖区自动划分

图三

1.2 VGG网络特征提取

对于输入进卷积层的图片由我们设定好大小的卷积核在整幅图片上进行按照指定的步数进行滑动,在VGG模型中,我们将卷积核设定为3x3,如图四所示,

基于卷积神经网络的遥感图像养殖区自动划分

图四

将filter中的各个权重与其所对应的图片区域中的像素点乘,计算完之后,按照步长进行移动,进行下一轮的计算,当移动完整幅图片后,一个特征图也就提取出来了,

在filter移动过程中,我们通常会对图片进行padding操作,结果特征图的输出大小

有如下公式:

W2=(W1-F+2P)/S+1

H2=(H1-F+2P)/S+1

在上面两个公式中,W2是卷积后Feature Map的宽度;W1是卷积前图像的宽度;F是filter的宽度;P是Zero Padding数量,Zero Padding是指在原始图像周围补几圈0,如果P的值是1,那么就补1圈0;S是步幅;H2是卷积后Feature Map的高度;H1是卷积前图像的宽度。VGG在卷积层后,紧跟着的是池化层,池化层主要作用是下采样,通过去掉Feature Map上的不重要的样本,减少参数数量。VGG模型采用的方法是Max Pooling,实际上是在Feature Map上不同区域去最大值,作为采样后的样本。如图五所示:

基于卷积神经网络的遥感图像养殖区自动划分

图五

我们将提取到的特征没有经过通过全连接层,而是在卷积层后加入三个卷积层来代替原来三个全连接层。针对VGG里面第一个全连接层,由于与之相连的池化层输出是[2x2x512],所以我们只需将卷积核尺寸设置为2,步长设置为1,这样输出数据就会变成[1x1x4096],针对第二个全连接层,我们将卷积核尺寸设置1,步长设置为1,第三个全连接层类似,这样,我们最后得到输出[1x1x4096]的输出。

1.3 反卷积(Deconvolution)

在经过卷积层,最后的输出是heatmap(热图),热图是我们得到的最高维的特征图,接下来要做的是把热图进行反卷积,把图象放大到原图大小,最后的输出是一个分类好的图片。反卷积过程有时又被称为Fractional Strided Convolution,直译就是移动步长为小数的卷积。对于卷积过程如图六所示,卷积核在输入图像上移动。反卷积过程相当于在输入特征单元中插入s-1个0,s为步长,如图七所示

基于卷积神经网络的遥感图像养殖区自动划分

图六 图七

虽然这样,我们已经能够实现图片的语义分割,但是精确度不高,在实验中,根据文献[1]我们采用了Skip Architecture 。对于Heat Map,假如我们直接对其作三次次反卷积操作,我们得到的只是VGG19第五层卷积核中的特征,所以我们要继续向前迭代,由第四层卷积核对上一层得到的图进行反卷积,继续向前迭代,最后由第三层卷积核对图进行反卷积补充细节,最后完成了整幅图像的还原过程。

基于卷积神经网络的遥感图像养殖区自动划分

2. 基于VGG19 FCN养殖区分类实验

2.1 实验平台信息

1. 操作系统 Cenos +CUDA+Tensorflow-gpu

2. 实验设备:8个12G NVIDIA K80 GPU +2个Intel(R)Xeon CPU E5-2690 v4CPU

2.2数据集介绍

数据集准备主要由如下步骤:

1. 在高分图像中裁取合适范围的养殖区图像

2. 绘制该养殖区范围图像的矢量图

3. 根据养殖区图像矢量图制作真值图

4. 用MATLAB裁切养殖区遥感图像为32*32像素大小的图片,分别作为训练集和验证集;

5. 将真值图裁取为与训练集和验证集相同大小图片,作为样本照片

基于卷积神经网络的遥感图像养殖区自动划分

养殖区遥感图像

基于卷积神经网络的遥感图像养殖区自动划分

养殖区遥感图像矢量图

基于卷积神经网络的遥感图像养殖区自动划分

养殖区遥感图像

基于卷积神经网络的遥感图像养殖区自动划分

养殖区遥感图像真值图

养殖区:1

海水:0

2.3 训练模型(FCN全卷积网络)

基于卷积神经网络的遥感图像养殖区自动划分

2.3运行结果

基于卷积神经网络的遥感图像养殖区自动划分

基于卷积神经网络的遥感图像养殖区自动划分

迭代1000次输出结果 迭代20000次输出结果

精度:0.5338876 精度:0.97220755

迭代过程中损失变化曲线

基于卷积神经网络的遥感图像养殖区自动划分

3.结论

本文利用由VGG19模型为基础的FCN网络,针对高分辨率养殖区图像,运用神经网络提取图片特征进行像素级别分类,高指标的完成了养殖区的分类任务,对于有些比较模糊的养殖区图像,该模型也可以识别出,通过这种方法,大大减少了人工投入。但是由于样本真值图养殖区标记数据的准确性不足,导致模型训练识别时一些误差出现,并且对于不同大小的输入图片,识别结果会出现明显误差。以后工作可以寻找更加优化的网络结构来提高分类精度并且降低程序的运行时间。


推荐阅读
  • PHP中元素的计量单位是什么? ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 视觉图像的生成机制与英文术语解析
    近期,Google Brain、牛津大学和清华大学等多家研究机构相继发布了关于多层感知机(MLP)在视觉图像分类中的应用成果。这些研究深入探讨了MLP在视觉任务中的工作机制,并解析了相关技术术语,为理解视觉图像生成提供了新的视角和方法。 ... [详细]
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • 本文详细介绍了定时器输入捕捉技术的原理及其应用。通过配置定时器通道的引脚模式为输入模式,并设置相应的捕获触发条件,可以实现对外部信号的精确捕捉。该技术在实时控制系统中具有广泛的应用,如电机控制、频率测量等场景。文中还提供了具体的配置步骤和示例代码,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文将继续探讨 JavaScript 函数式编程的高级技巧及其实际应用。通过一个具体的寻路算法示例,我们将深入分析如何利用函数式编程的思想解决复杂问题。示例中,节点之间的连线代表路径,连线上的数字表示两点间的距离。我们将详细讲解如何通过递归和高阶函数等技术实现高效的寻路算法。 ... [详细]
  • 本文介绍了如何在iOS平台上使用GLSL着色器将YV12格式的视频帧数据转换为RGB格式,并展示了转换后的图像效果。通过详细的技术实现步骤和代码示例,读者可以轻松掌握这一过程,适用于需要进行视频处理的应用开发。 ... [详细]
  • AIX编程挑战赛:AIX正方形问题的算法解析与Java代码实现
    在昨晚的阅读中,我注意到了CSDN博主西部阿呆-小草屋发表的一篇文章《AIX程序设计大赛——AIX正方形问题》。该文详细阐述了AIX正方形问题的背景,并提供了一种基于Java语言的解决方案。本文将深入解析这一算法的核心思想,并展示具体的Java代码实现,旨在为参赛者和编程爱好者提供有价值的参考。 ... [详细]
  • 在Android 4.4系统中,通过使用 `Intent` 对象并设置动作 `ACTION_GET_CONTENT` 或 `ACTION_OPEN_DOCUMENT`,可以从相册中选择图片并获取其路径。具体实现时,需要为 `Intent` 添加相应的类别,并处理返回的 Uri 以提取图片的文件路径。此方法适用于需要从用户相册中选择图片的应用场景,能够确保兼容性和用户体验。 ... [详细]
  • 在前文探讨了Spring如何为特定的bean选择合适的通知器后,本文将进一步深入分析Spring AOP框架中代理对象的生成机制。具体而言,我们将详细解析如何通过代理技术将通知器(Advisor)中包含的通知(Advice)应用到目标bean上,以实现切面编程的核心功能。 ... [详细]
  • HBase Java API 进阶:过滤器详解与应用实例
    本文详细探讨了HBase 1.2.6版本中Java API的高级应用,重点介绍了过滤器的使用方法和实际案例。首先,文章对几种常见的HBase过滤器进行了概述,包括列前缀过滤器(ColumnPrefixFilter)和时间戳过滤器(TimestampsFilter)。此外,还详细讲解了分页过滤器(PageFilter)的实现原理及其在大数据查询中的应用场景。通过具体的代码示例,读者可以更好地理解和掌握这些过滤器的使用技巧,从而提高数据处理的效率和灵活性。 ... [详细]
  • 基于OpenCV的图像拼接技术实践与示例代码解析
    图像拼接技术在全景摄影中具有广泛应用,如手机全景拍摄功能,通过将多张照片根据其关联信息合成为一张完整图像。本文详细探讨了使用Python和OpenCV库实现图像拼接的具体方法,并提供了示例代码解析,帮助读者深入理解该技术的实现过程。 ... [详细]
author-avatar
猥琐的爆米花
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有