ArcGIS Pro深度学习模块——检测对象

目录

一、适用场景

二、深度学习环境搭建

1.ArcGIS Pro的深度学习框架搭建

2.系统Python环境变量的配置

3.深度学习环境搭建过程中可能出现的问题及其解决方案

3.1ArcGIS Pro的Python环境克隆

三、绘制训练样本

1.手动绘制训练样本

2.在标注对象中直接导入已有训练样本

3.导出训练样本

4.导出训练样本可能报错的情况及其解决方案

4.1 ERROR 001523: 只有具有单波段或三波段且没有色彩映射的 8 位无符号或 16 位无符号数据支持 JPEG 压缩。

四、训练模型

1.模型参数的设置

2.进行模型训练时可能报错的情况及其解决方案

2.1错误 032659 .......

五、模型应用

六、参考源及致谢


一、适用场景

   当需要进行识别地物类型及其位置和数量时适用,检测结果通常以矩形框进行标识。ArcGIS Pro检测对象适用的地学场景:农作物类型识别、树木类型识别、车辆检测与计数、建筑物识别与计数等。

二、深度学习环境搭建

    在ArcGIS Pro深度学习框架搭建之前,建议克隆一下ArcGIS Pro的Python环境(非必须),至少环境冲突和报错的话还有恢复到默认环境的机会。具体克隆步骤见3.深度学习环境搭建过程中可能出现的问题及其解决方案。

1.ArcGIS Pro的深度学习框架搭建

    由于本人的电脑配置不是很高,没有英伟达的显卡所以无法配置GPU,有的朋友再进行这一步之前需要进行相应的显卡驱动安装,可以参考文章

    如何查看自己电脑是否配置英伟达显卡,打开电脑的任务管理器—性能,其中如果有英伟达显卡你就会有GPU 1,目前ArcGIS Pro的深度学习好像仅支持英伟达不支持AMD。(不对的话请评论区指正)

    根据自己ArcGIS Pro的版本到官方的GitHub上下载对应的深度学习框架,这一步需要科学上网。因为我的版本为3.0.1因此下载Deep Learning Libraries Installer for ArcGls Pro 3.0-3.0.2,如果和我同版本的朋友可以通过下面链接下载。

链接:https://pan.baidu.com/s/1feBi2EkoRp-IA_PB0BWtbQ?pwd=bin6 
提取码:bin6

    点击ProDeepLearning直接安装即可,安装好后查看你的包管理器大约有280+并且出现cudatoollit和cudnn就说明已经配置完成啦。

2.系统Python环境变量的配置

    将以下路径添加到系统变量和环境变量中即可。

3.深度学习环境搭建过程中可能出现的问题及其解决方案

3.1ArcGIS Pro的Python环境克隆

    该步骤可以参考官方说明文档。克隆环境时可能会失败或者报错,下面介绍两种能够解决问题的方案。方案一:官方版 、方案二:民间大神版 不论哪种方法,成功克隆环境之后记得进行激活环境。

三、绘制训练样本

1.手动绘制训练样本

    选择需要绘制训练样本的遥感影像或无人机影像(建议单波段或三波段且没有色彩映射的8位量化或16位量化的无符号类型数据,非此类型数据进行后续将训练样本导出JPEG 压缩可能会报错,解决方案参考3.导出训练样本可能报错的情况及其解决方案。),点击工具栏的影像选择分类工具中的标注对象以供深度学习使用,然后激活右侧影像分类,进行绘制即可,名称尽可能为英文。

2.在标注对象中直接导入已有训练样本

    如果已经存在现有的训练样本,可以直接在标注对象中点击文件夹进行训练样本的批量添加。

3.导出训练样本

    选择并设置合适的输出文件、图像格式、旋转角度、元数据格式等参数。其中,图像格式的PNG格式和JPEG格式导出可能会提示“ERROR 001523: 只有具有单波段或三波段且没有色彩映射的 8 位无符号或 16 位无符号数据支持 JPEG 压缩。” 选TIFF格式应该也行,可以尝试一下。旋转角度根据自己训练样本区域的大小和数据酌情设置,通过旋转训练样本的角度使其成为新的训练样本增加区域内样本数据。元数据格式一定要选择PASCAL 可视化对象类,否则无法进行后续操作。还有疑问可以参考官方文档。输出文件夹最好新建一个空文件夹,便于存放训练样本,路径一定要英文减少不必要的麻烦。

4.导出训练样本可能报错的情况及其解决方案

4.1 ERROR 001523: 只有具有单波段或三波段且没有色彩映射的 8 位无符号或 16 位无符号数据支持 JPEG 压缩。

    因为训练样本是基于你的遥感影像或无人机影像进行提取的,所以栅格数据不满足要求时会进行报错。如果导出的数据类型为JPEG 格式的话,不太建议使用单波段的遥感影像或无人机影像,因为单波段影像是灰白的,图片所携带的信息没有彩色图片丰富。

解决方法一:先保存标注的训练样本,重新选择满足满足上述要求的单波段影像,然后在标注对象中直接导入已有训练样本,重新导出训练样本。

解决方法二:若原彩色影像满足要求仅仅是波段数量过多,则减少彩色图像的波段数量打到具体要求。过程可参考方法一方法二、方法三:在ArcMap中导出栅格,选择使用渲染器、强制为RGB颜色、根据量化位数设置相应的NoData值、选择输出格式可以是TIFF,也可以是格网。我的是格网可以进行后续操作,大家酌情选择。

解决方法三:使用ArcGIS Pro的波段合成工具选择三个单波段数据合成为一个栅格数据,合成时选择便于识别的波段组合,例如真彩色合成、标准假彩色合成等。此时满足三个波段的要求,但是量化位数和像素类型不符合要求,此时利用复制栅格工具,设置NoData值,像素类型选择8 位无符号或 16 位无符号,一定要勾选缩放像素值,选择格网类型即可。

为什么一定要勾选缩放像素值(当输出的像素类型不同于输入像素类型时(如从 16 位到 8 位),可选择将值缩放到符合新的范围;否则,会丢弃不符合新的像素范围的值。如果进行放大(如从 8 位到 16 位),8 位值的最小值和最大值会放大到 16 位范围中的最小值和最大值。如果进行缩小(如从 16 位到 8 位),16 位值的最小值和最大值会缩小到 8 位范围中的最小值和最大值。NONE —像素值保持不变且不会缩放。任何不符合值范围的值都会被丢弃。这是默认设置。ScalePixelValue —像素值会缩放到新的像素类型。缩放像素深度时,栅格会显示相同的位深度,而值却缩放到指定的新的位深度。)

四、训练模型

1.模型参数的设置

    使用训练深度学习模型,选择训练数据集、设置输出模型文件夹;最大时期即为epoch训练次数,次数一般20左右,次数太少容易模型训练不到位,次数太多容易过拟合。羡慕有GPU的朋友,用GPU运行起来会很快,大大节省时间。模型类型可以选择ArcGIS Pro所提供的模型,主流的有YOLO、SSD等,批大小则根据自己电脑的配置酌情选择。

    在Advanced设置中,选择合适的模型,如果已经有现成的模型可以添加预训练模型。验证百分比为验证样本占总训练样本的比例,用于计算模型的分类精度,可以为10%(即图片中的10)或20%,酌情设置。当模型停止改进时停止则是防止模型过拟合的情况发生,造成不必要的资源浪费。冻结模型则是模型一直使用一套权重参数不会随训练过程而改变,建议取消勾选。因为通过bias的反向传播可以修改模型权重,更好实现梯度下降找到最优的模型。

    在环境中设置,设置GPU和CPU,有GPU用GPU,无GPU用CPU,利用CPU可以设置并行处理因子提高效率,可以设置80%。

2.进行模型训练时可能报错的情况及其解决方案

2.1错误 032659 .......

    当输入训练数据时出现如下图的情况,说明你没有配置相应的深度学习环境,回头按照文章二、深度学习环境搭建一下就解决啦。

五、模型应用

    模型训练好后,使用深度学习检测对象工具进行对象检测。整个深度学习过程可以参考六、参考源及致谢中视频类相关教学视频。

    因为我电脑配置并不好,只为了先跑通模型,所以仅设置了3次训练次数。可以很明显看出,在相关性条件下彩色数据的精度要由于单波段的灰白影像。

六、参考源及致谢

视频类:

1.易智瑞专业培训视频

2.刘勇老师的深度学习视频

以上视频均为同源,易智瑞的视频有分集,方便定位学习,刘老师的视频更全面。

文档类:

1.官方文档

2.ESRI相关社区文章

以上,感谢文章中所提及所有链接的作者们。

### 使用深度学习ArcGIS Pro中进行建筑分析 #### 准备工作环境 为了能够在ArcGIS Pro环境中利用深度学习技术开展建筑物识别或其他形式的空间数据处理任务,需先安装必要的扩展模块和支持库。这通常涉及到配置Python环境并加载特定于地理信息系统(GIS)以及机器学习的软件包[^1]。 #### 数据准备与预处理 获取高质量训练样本对于构建有效的模型至关重要。针对建筑物检测项目而言,应当收集带有精确标注的遥感影像作为输入材料。这些图像可以来源于卫星拍摄或是无人机航拍等多种渠道。随后要对原始图片实施裁剪、缩放等一系列操作来满足算法需求,并确保标签信息准确无误地关联到对应的像素位置上。 #### 构建和训练模型 借助Esri提供的工具集——例如`arcgis.learn` API接口,能够方便快捷地定义神经网络架构、设置超参数选项进而启动迭代优化过程。在此期间还可以调用外部框架比如TensorFlow或PyTorch所提供的高级特性以增强灵活性及性能表现。值得注意的是,在整个过程中务必保持验证集的存在以便及时评估泛化能力并防止过拟合现象发生。 ```python from arcgis.learn import prepare_data, ObjectDetector data = prepare_data('path/to/dataset', batch_size=8) model = ObjectDetector(data) model.fit_one_cycle(epochs=20, lr=1e-4) ``` #### 应用预测成果 完成上述步骤之后便可以获得一个经过良好训练的对象探测器实例。此时即可将其应用于新的未见过的数据集中去发现潜在的目标实体。通过执行推理函数可得到每张测试图上的边界框坐标及其类别概率分布情况;最后再把这些结果可视化出来供进一步解读使用。 ```python predictions = model.predict('new_image.png') for bbox, label, score in predictions: print(f'Found {label} with confidence {score:.2f}') ``` #### 后续处理与集成 除了单纯依靠计算机视觉手段外,还应考虑结合其他类型的辅助资料(如矢量地图)来进行综合评判。此外,也可以探索更多样化的应用场景,像变化监测、三维重建等领域都是值得尝试的方向之一。最终目的是让AI赋能下的智慧城市解决方案变得更加智能高效。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值