利用SuperView数据基于ENVI深度学习进行建筑物提取
软件试用:https://www.cnblogs.com/enviidl/p/16275745.html
SuperView-1 全色分辨率0.5 米,多光谱分辨率2 米,轨道高度530 公里,幅宽12 公里,过境时间为上午10:30。由于SuperView-1 卫星具有很高的敏捷性,可设定拍摄连续条带、多条带拼接、按目标拍摄多种采集模式,此外还可以进行立体采集。SuperView-1 单次最大可拍摄60 km×70 km 影像。
本次采用3景SV1示例影像。数据来自航天世景公司,在此表示感谢。
下面介绍详细处理流程:
1 图像预处理
预处理包含正射校正 > 图像融合 > 图像镶嵌。
由于需要处理3对数据,所以均利用ENVI App Store(enviidl.com/appstore)中的批处理工具完成。所有工具均可在App Store中安装使用。
1.1 数据打开
利用“中国国产卫星支持工具”打开3景全色、3景多光谱图像。
1.2 批量正射校正
使用“ENVI栅格图像批处理工具包”中的批量正射校正工具完成:
/Extensions/Raster Processing Batch Tools/RPC Orthorectification Batch
由于SV1数据几何位置较准,直接使用了无控正射校正。
一次性将全色和多光谱输入Input Rasters,设置全色分辨率为0.5,多光谱分辨率为2。
1.3 批量图像融合
使用“ENVI栅格图像批处理工具包”中的批量图像融合工具完成:
/Extensions/Raster Processing Batch Tools/Pan Sharpening Batch
对于国产卫星数据,建议使用Gram-Schmidt融合算法,能更好的保持原始色彩。
1.4 快速图像镶嵌
由于是同轨数据,不需要进行匀色等处理。
使用“Raster Mosaic [Fast] 快速拼接工具”完成:
/Mosaicking/Raster Mosaic [Fast]
2 选择训练样本
2.1 图像裁剪
一般我们会选择一小部分图像用于选择样本。本次选择空间子集如下图所示。
2.2 下载OpenStreetMap矢量数据
本次目标是提取建筑物,本人很懒,想尽一切办法用一些现成的数据。灵机一动,就想到了ENVI5.5.1新增的一个工具(File > Open World Data > Download OpenStreetMap Vectors)。
首先全图显示裁剪结果图像,然后打开Download OpenStreetMap Vectors,自动下载当前视图范围的矢量。工具面板中选择Buildings和Polygon。
下载到矢量文件与图像位置存在整体偏移,而且有部分不准确的数据(猜测是时间不同导致的)。所以此时祭出ArcGIS,首先对矢量进行整体偏移,然后删除错误的记录。得到了可用的建筑物样本矢量,如下所示。
2.3 手绘其他建筑物
建议在已有shp文件的基础上直接绘制即可。我主要是为了展示手绘和下载的样本分布,所以在ENVI中新建多边形矢量,在绘制完成后,再使用ArcGIS中的Merge工具将两个shp进行合并。如下图所示:黄色为下载的矢量,绿色为本人辛辛苦苦手绘出来的,绘制到手抽筋。
下载矢量记录数:259
手绘矢量记录数:557
2.4 矢量转ROI
利用ROI工具如下菜单,将矢量导入,另存为ROI。
3 训练深度学习模型
3.1 创建标签图像
利用裁剪图像和生成的ROI,创建标签图像,工具为:
/Deep Learning/Build Label Raster from ROI
3.2 训练深度学习模型
训练工具为:/Deep Learning/Train TensorFlow Mask Model
4 建筑物提取
提取工具为:/Deep Learning/TensorFlow Mask Classification
本工具提取得到的是单波段灰度图像,即 Class Activation Image。结果展示对其进行了密度分割。
5 结果展示
总体来说效果还可以。但是由于覆盖范围太广,各种建筑物类型都有,能达到这样的效果实属不易。而且本次的训练样本对于深度学习来说已经说是非常少了。主要误差在于个别裸地、道路、水体等也被提取了出来。极端特殊建筑物出现漏提现象。
6 效率对比
笔记本 |
DELL 7520 |
ThinkPad T440p |
|
硬件配置 |
CPU |
i7-7700HQ |
i7-4710MQ |
内存 |
64GB |
16GB |
|
硬盘 |
SSD |
SSD |
|
显卡 |
NVIDIA Quadro M2200,4GB |
渣,不重要,纯CPU运算 |
|
效率对比 |
模型训练 |
3小时 |
17小时 |
目标提取 |
1小时50分钟 |
16小时进度只到2/3,放弃 |