调研报告之遥感影像识别

标签: 无 分类: 未分类 创建时间:2023-03-17 12:15:31 更新时间:2025-01-17 10:39:24

前言

这里主要讲解的就是遥感影像的识别。 WangZhenqing-RS /Unet_RSimage_Multi-band_Multi-class Public 这是多波段的遥感影像识别代码,包括了一系列的教程,包括环境搭建、语义分割、影像裁剪、数据增强等操作。

  • 数据集制作
  • 训练
  • 预测

大的影像可以进行先进行分割,将大的tiff分割成小的,然后进行识别后,再合并成一张大的图像。

参考文章:
【1】.keras遥感图像Unet语义分割(支持多波段&多类) 从环境搭建到制作标签、裁剪学习样本到数据增强,一气呵成。如果将较大的待分类遥感影像直接输入到网络模型中会造成内存溢出,故一般将待分类图像裁剪为一系列较小图像分别输入网络进行预测,然后将预测结果按照裁剪顺序拼接成一张最终结果图像。
【2】.语义分割网络 U-Net 详解
【3】.遥感图像识别(标注)软件实现
【4】.使用QGIS提取天地图遥感影像中的建筑物轮廓,及AI方案 1.ArcGIS Pro;2.超图 iDesktopX;3.MapBox Robsat;4.MapGIS的辅助矢量化工具;5.商汤科技的sceneEarth;6.武汉大学的珞珈框架;7.阿里达摩院 AI Earth。
【5】.基于PyTorch深度学习遥感影像地物分类与目标检测、分割及遥感影像问题深度学习优化
【6】.ArcMap对遥感图像进行语义分割标注 这是用 ArcMap 制作分割数据集的方法。
【7】.2024年 · 地表最强的十大遥感影像分割模型

1.AI Earth

AI Earth 基于达摩院在深度学习、计算机视觉、地理空间分析等方向上的技术积累,结合阿里云强大算力支撑,提供多源遥感对地观测数据的云计算分析服务,用数据感知地球世界,让AI助力科学研究。AI Earth主要分为三大核心功能:目标提取、地物分类、变化检测,值得一提的是在遥感影像智能解译方面涵盖了众多类型,包含了建筑物提取、水体识别、路网提取、大棚提取、飞机提取、舰船提取、运动场提取、地块提取。基于海量公开遥感数据,使用notebook进行在线项目开发,项目数据在开发者模式与工具箱模式中可无缝切换,详见参考案例和API文档。

标注类型分为以下六类:
目标检测: 支持设定单标签/多标签,通过旋转矩形框框选目标进行标注,适用于目标检测算法训练。
实例分割: 支持设定单标签/多标签,通过多边形沿目标边缘进行标注,对地物进行属性分类标注,相同标签属性的地物目标区分每个个例,适用于实例分割算法训练。
地物识别(原目标提取): 只包含一个标签,适用于单地物识别的语义分割算法训练。
地物分类: 支持设定单标签/多标签,对地物进行属性分类标注,适用于语义分割算法训练。
通用变化检测: 通过单标签对变化区域进行标注,适用于语义分割算法训练。
多分变化检测: 通过多标签对变化区域进行分类标注,适用于语义分割算法训练。

2.TensorFlow

使用TensorFlow进行遥感图像识别和分类,那就要自己手动写代码了。

3.Robosat

robosat 这是mapbox开源的影像识别代码,但是已经是三年前的仓库了,不再继续的更新了,类似的还有 robosat.pink robosat_geoc

参考文章:
【1】.robosat调试 系统准备工作、数据准备工作、训练和建模、从新数据中预测、在3.1节中划分的测试集下预测

4.mapflow

5.商汤科技的sceneEarth

sceneEarth 一键式遥感影像智能解译,全方位解锁空间地理信息。提供了一个现成的解译网站,可以上传自己的影像,然后直接选择需要解义的类型,支持:变化监测、水体、植被和建筑物检测,选中需要的范围,然后一键解译就可以识别出需要的建筑物。

我尝试了用他们提供的图像,绘制一个范围,选择建筑物解译,效果还是不错的。

6.武汉大学的珞珈框架

WHULuoJiaTeam / luojianet 遥感专用机器学习框架LuoJiaNET,由武汉大学LuoJiaNET框架团队与华为MindSpore框架研究小组联合打造而成, 是遥感领域首个国产化自主可控的遥感专用机器学习框架,针对遥感数据像幅尺寸大、数据通道多、尺度变化大等特性, 具备内存可扩展、尺度通道灵活创建、数据通道自主优选、框架与数据协同处理的特点。可兼容已有深度学习框架, 并提供用户友好的、可拖拽的交互式网络结构搭建界面的方法。能屏蔽不同硬件设备间差异,同时管理多样化的遥感影像样本库LuoJiaSET, 实现遥多源感影像样本的高效存储管理。

参考文章:
1.全球首个遥感影像智能解译专用深度学习框架上线华为昇思社区 武汉大学的新闻,有 LuoJiaSET服务平台、源代码地址。

7.Segment Geospatial

segment-geospatial A Python package for segmenting geospatial data with the Segment Anything Model (SAM) 。用于使用 Segment Anything Model (SAM) 分割地理空间数据的 Python 包。

参考文章:
1.SAM-Adaptor

8.Segment Anything

参考文章:
【1】.视觉大模型在遥感领域应用-耕地地块提取 由于遥感场景一般为大尺寸影像,以栅格影像为例,Segment Anything模型应用于栅格图像,首先需解决几个问题:(1)转矢量;(2)需滑窗裁剪进行逐一推理,最后再合并结果;(3)输出结果没有类别信息。综上,SAM模型有以下优势:(1)分割结果精细、准确;(2)泛化性强,具备零样本分割能力。

8.论文和网站资源

参考文章:
【1】.遥感影像智能解译样本库现状与研究
【2】. 基于卷积神经网络的遥感图像分类研究
【3】.高分辨率遥感影像信息提取与目标识别技术研究
【4】.20+篇遥感图像分割方向必读论文分享 1.语义分割:SegNet、DeepLab、FCN、ENet、LinkNet、DenseNet、DilatedNet、PixelNet。2.实例感知分割:FCIS、MNS、DeepMask、SharpMask、Mask-RCNN、RIS、FastMast、BlizNet。3.弱监督分割:SEC。4.RNN:ReNet、ReSeg、CRF-RNN。5.GANS:pix2pix、pix2pixHD、Probalistic Unet。
【4】.深度学习在高分辨率遥感图像语义分割中的算法研究 这篇论文有点深奥,我看不懂,什么多尺度,上采样,下采样之类的。
【5】. 基于深度对称密集连接全卷积网络的高分辨率遥感影像语义分割框架 SDFCN
【6】.高分辨率遥感影像耕地分层提取方法
【7】.基于深度学习的遥感图像舰船目标检测算法综述
【8】.2024年 · 地表最强的十大遥感影像分割模型 1.EfficientPS:高效高精度全景分割算法。2.EfficientSAM:快速分割一切。3.Text2Seg:基于多个大模型的遥感图像分割pipline。4.Samba:基于SSM的遥感高分图像语义分割框架。5.RSAM-Seg:基于SAM和遥感先验信息的分割模型。

9.数据集

参考文章:
【1】.遥感影像语义分割数据集
【2】.手把手实战教学, 语义分割从0到1:二、使用自己的数据集进行模型训练
【3】.YOLOv8 训练自己的分割数据集 1.数据格式。2.配置环境。3.训练模型。4.评估模型。5.推理模型。

10.ArcGIS

ArcGIS 目前也在遥感影像识别方面做了大量的工作。

参考文章:
【1】.文本 SAM Grounding DINO 是一个开集对象检测器,能够根据文本提示识别对象。 Segment Anything Model 可用于细分由边界框或点标识的感兴趣区域中的任意对象。 这两个模型在该深度学习包内依次调用。 Grounding DINO 检测到的对象边界框作为提示传递给 Segment Anything Model,从而生成对象掩膜。 最终,这些掩膜被转换为多边形,以 GIS 要素的形式返回。

11.工具

(1) 使用开源模型库segmentation_models_pytorch或自定义模型
(2) 在大尺寸遥感影像上进行切片推理和融合拼接
(3) 处理大尺寸遥感影像栅格及矢量数据的常用工具(基于GDAL)
(4) 使用.yml文件编写配置文件
(5) 适用于入门学习,虽然可以用于生产,但计算效率方面并没有做特别的优化

12.Yolo

Yolo系列不仅可以用了来进行视频目标检测,还可以进行图像分割。

参考文章:
【1】.基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的遥感目标检测系统(Python+PySide6界面+训练代码)
【2】.基于改进 YOLOv9 的禁垦陡坡地违规耕种区遥感影像检测方法 将原始影像数据、禁垦陡坡地范围矢量数据导入ArcGIS 中,建立网格,将网格数据和禁垦陡坡地范围矢量数据进行叠加分析,提取其中含有禁垦陡坡地的网格矢量,基于该矢量将卫星影像数据分割成均等的影像切片后,综合考虑不同切片大小对于违规耕种区的特征信息保留情况,切片大小采用 640 像素 × 640 像素。然后将这些切片导出为 JPG 文件和对应记录切片坐标范围的xml 文件。
小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。