使用 Detectron2 中的 mask-RCNN 检测建筑物轮廓

本文介绍了使用Detectron2中的Mask-RCNN算法来检测建筑物轮廓,对比了目标检测和目标分割的区别,详细阐述了如何从数据标注到训练模型的流程,包括利用labelme工具进行标注,转换为COCO格式,以及在Colab上进行训练的步骤。
摘要由CSDN通过智能技术生成

前言

  兜兜转转试了好多框架与算法,从软件再到代码,中途有许多问题,从 ArcGIS Pro 再到 Tensorflow 的 Mask-RCNN,再到 Detectron2 。

目标检测与目标分割

目标分割

  建筑物轮廓的提取属于目标分割(实例分割)的一种,与目标检测不同,不仅要框出目标所在的位置,还要以 mask 的形式框出物体的轮廓。

在这里插入图片描述

上图是 Detectron2 中采用 Mask-RCNN 算法提取建筑物的轮廓,包含了 mask 和 bounding box 以及 possible,当然,这仅仅是 RGB 三通道的数据训练后的结果,也可以加入更多的 channels,包括点云数据、高光谱的数据,数据量大后,也会带来一系列的问题。

  目前比较常用的算法包括 U-Net(医学图像分割的鼻祖),Mask-RCNN…

目标分割

目标检测是检测物体所在的位置,并且框出其所在的位置。
在这里插入图片描述

下图是 Yolov5 (目标检测)算法检测出的物体,其并没有将 mask 给标出来。
常见的算法包括 Yolo、SSD…

算法部署

Mask-RCNN 算法

  深度学习由于环境配置较为繁琐,除了常见的显卡驱动和 CUDA、CUDNN 的问题之外,还存在 Python 虚拟环境、各种 packages 的版本匹配的问题。

常见的深度学习框架通常用 Pytorch、Tensorflow 写,而 Tensorflow 的显存使用明显比 Pytorch 高,而且,Tensorflow 通常存在 tf 1.x 和 tf2.x 版本的问题,所以之前使用 tensorflow 版本的 mask-RCNN 存在许多问题,

在这里插入图片描述

关于 tensorflow 的 mask-RCNN 在之前的 demo 跑通已经有所记录(Colab 由于文件存于 Drive 中分享不方便,即不分享),而 tensorflow 版本的 mask-RCNN 对于 tensorflow-gpukeras 的版本有较高的要求,配置起来较为麻烦,此外,其 mask 的轮廓提取相较于其他算法的提取较为不准确,所以采用其他框架(Pytorch)的 Mask-RCNN.

2. Detectron2

跑通 Demo

   Detectron2 是 facebook 研究部门的一款深度学习的综合集成框架,其包括了目标检测和目标分割的算法,其包括不同格式(coco、PascalVOC)格式的目标检测和目标分割的算法,在其 configs 文件中存在许多文件。主要就是不同算法的 yaml 文件(许可权重)
在这里插入图片描述

关于 Detectron2 算法,官方有一个 Colab 教程文件,在 Github 中搜索 Detectron2 ,在 Getstarted 部分中的 Colab Notebook 部分打开即可跑通官方的代码,当然,官

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值