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
或关注公众号: