美文网首页深度学习
OpenCV-4.0 + Mask R-CNN

OpenCV-4.0 + Mask R-CNN

作者: WILeroy | 来源:发表于2019-04-08 15:03 被阅读282次

1.概述

OpenCV-4.0的dnn模块加入了对Mask R-CNN模型的支持,通过OpenCV提供的接口,可以直接加载已经训练好的Mask R-CNN模型。我根据learnopencv/Mask-RCNN提供的方法成功实现了Mask R-CNN模型(已在COCO数据集上训练)的调用,下面是详细过程。

2.相关工作

2.1)环境安装

  • OpenCV版本要求:>= 4.0(OpenCV的安装过程此处不做讨论)

2.2)源码及相关文件
源码与相关文件可以通过learnopencv/Mask-RCNN获得,虽然github并不提供下载仓库内单个文件夹的途径,但是复制目录的链接到DownGit下载。

2.3)文件夹结构

Mask-RCNN/ 
        |—— LICENSE
        |—— README.md
        |—— cars.jpg
        |—— cars.mp4
        |—— colors.txt
        |—— mask_rcnn.cpp
        |—— mask_rcnn.out
        |—— mask_rcnn.py
        |—— mask_rcnn_inception_v2_coco_2018_01_28.pbtxt
        |—— mscoco_labels.names

文件夹中提供了调用模型需要用到的配置文件、源码(C++/Python)、测试资源。colors.txt和mscoco_labels.names分别用于记录与类别相关的掩码颜色和目标名称;mask_rcnn_inception_v2_coco_2018_01_28.pbtxt描述了神经网络模型的结构(但是并不记录权值等具体信息)。

3.调用模型

learnopencv/Mask-RCNN提供了C++和Python两种语言的源码,并且在README.md中详细描述了运行方法,下面做一些简单的翻译工作。

  • README.md

1. 下载并解压神经网络的模型文件
> wget http://download.tensorflow.org/models/object_detection/mask_rcnn_inception_v2_coco_2018_01_28.tar.gz 
> tar zxvf mask_rcnn_inception_v2_coco_2018_01_28.tar.gz

2. Python的运行方法
python3 mask_rcnn.py --image=cars.jpg
python3 mask_rcnn.py --video=cars.mp4

3. C++的运行方法

3.1. 编译
这一步本人使用了cmake配置编译,了解cmake使用方法的读者可以使用下面提供的CmakeLists.txt。

3.2. 运行
> ./mask_rcnn.out --image=cars.jpg
> ./mask_rcnn.out --video=cars.mp4
  • CMakeLists.txt
cmake_minimum_required(VERSION 2.8)

project(mask_rcnn)

find_package( OpenCV 4.0 REQUIRED )

include_directories(
    ${OpenCV_INCLUDE_DIRS}
)

add_executable(${PROJECT_NAME} "./mask_rcnn.cpp")
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})

4.结果展示

cars_mask_rcnn_out_py.jpg

相关文章

网友评论

    本文标题:OpenCV-4.0 + Mask R-CNN

    本文链接:https://www.haomeiwen.com/subject/volgbqtx.html