Mask R-CNN上手指南:通过对象检测和分割实现对无人机的检测

目标检测是一种计算机视觉技术,用于识别和定位图像中的目标。有很多检测算法存在,这里有一个很好的总结。

Mask R-CNN是目标检测的扩展,它为图像中检测到的每个目标生成边界框和分割掩模。这篇文章是关于使用Mask R-CNN训练自定义数据集的指南,希望它能帮助你们中的一些人简化这个过程。

https://github.com/matterport/Mask_RCNN/blob/master/samples/shapes/train_shapes.ipynb

库和包

算法的主要包是mrcnn。下载库并将其导入到环境中。

!pip install mrcnnfrom mrcnn.config import Config
from mrcnn import utils
import mrcnn.model as modellib
from mrcnn import visualize
from mrcnn.model import log

mrcnn还不能与TensorFlow 2.0兼容,所以请确保您恢复到TensorFlow 1.x。因为我是在Colab上开发的,所以我将使用magic函数来恢复到TensorFlow 1.x。这也是TF被诟病的地方,兼容基本靠改。

%tensorflow_version 1.x
import tensorflow as tf

在TensorFlow 2.0中,tf.random_shuffle被重命名为tf.random.shuffle,从而导致不兼容问题。通过更改mrcnn代码中的shuffle函数,可以使用TensorFlow 2.0。

使用Colab最好把Keras到以前的版本,如果遇到错误的话,这样才做,没有的话就忽略吧。

!pip install keras==2.2.5

预处理

mrcnn包在接收的数据格式方面相当灵活。我们这里直接处理成NumPy数组。

在此之前,cv2无法正确读取video17_295和 video19_1900。因此,我过滤掉了这些图像并创建了一个文件名列表。

 

全部文章请访问:https://imba.deephub.ai/p/3451c6607ebb11ea90cd05de3860c663

或关注公众号:

 

posted @ 2020-04-15 12:54  deephub  阅读(536)  评论(0编辑  收藏  举报