mask rcnn使用指南

Posted xizero00

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mask rcnn使用指南相关的知识,希望对你有一定的参考价值。

做姿态估计的小伙伴们肯定经常用检测器,为了方便大家,这里给出一个很方便的教程

让大家快速上手,不用再纠结配置环境!

欢迎加入我们的姿态估计群:970029323

 

(0)配置环境

①下载数据集

下载coco数据集(2014或者2017随便你),

比如这里我们保存到

/home/user/datasets/coco

然后解压,把图片解压到

/home/user/datasets/coco/images

把标注解压到

/home/user/datasets/coco

最终形成如下目录结构

/home/user/datasets/coco/images

/home/user/datasets/coco/annotations

 

②下载代码

git clone https://github.com/facebookresearch/maskrcnn-benchmark.git

③配置执行环境

将下列代码保存为prepare_env.sh到maskrcnn-benchmark的目录下

然后执行

这个脚本的功能主要有:

---配置python的虚拟环境

---配置pip源让你安装更快

---下载coco api的源码

---安装mask rcnn到python的虚拟环境

---下载模型

---下载其他文件

---准备数据集

---准备输出结果的目录

 

#!/usr/bin/env bash


COCO_ROOT=/home/user/datasets/coco

# install packages
packages_install()
    # python.h is needed
    sudo apt install -y python3-dev
    # necessary package
    sudo apt install -y python3-tk



# install virtualenv for python3
virtualenv_install()
    sudo -H pip3 install virtualenv



# create virtual environment and install packages
virtualenv_create()
    virtualenv venv -p python3
    source venv/bin/activate
    pip install pip -U
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    pip install torch==1.0
    pip install torchvision
    pip install opencv-python
    pip install -r requirements.txt
    deactivate



# install coco api
coco_install()
    source venv/bin/activate
    git clone https://github.com/cocodataset/cocoapi.git
    pushd cocoapi/PythonAPI
    python setup.py install
    deactivate
    popd



maskrcnn_install()
    source venv/bin/activate
    python setup.py build develop
    deactivate


download_models()
    mkdir models
    pushd models
    # faster rcnn
    wget https://download.pytorch.org/models/maskrcnn/e2e_faster_rcnn_X_101_32x8d_FPN_1x.pth
    # mask rcnn
    wget https://download.pytorch.org/models/maskrcnn/e2e_mask_rcnn_X_101_32x8d_FPN_1x.pth
    popd


download_params()
    mkdir -p ~/.torch/models
    wget -O ~/.torch/models/X-101-32x8d.pkl https://dl.fbaipublicfiles.com/detectron/ImageNetPretrained/20171220/X-101-32x8d.pkl


prepare_datasets()
    mkdir -p datasets/coco
    pushd datasets/coco

    ln -s $COCO_ROOT/images/train2017
    ln -s $COCO_ROOT/images/val2017
    ln -s $COCO_ROOT/images/test2017
    ln -s $COCO_ROOT/annotations
    popd


prepare_directories()
    mkdir outputs


packages_install
virtualenv_install
virtualenv_create
coco_install
maskrcnn_install
download_models
prepare_datasets
download_params
prepare_directories

 

这里解释一下脚本里面的download_models函数

需要使用什么样的模型可以参考:

https://github.com/facebookresearch/maskrcnn-benchmark/blob/master/MODEL_ZOO.md

然后下载对应的模型

这里我们确定使用两个模型:

faster rcnn和mask的X-101-32x8d-FPN

对应的下载地址为:

https://download.pytorch.org/models/maskrcnn/e2e_faster_rcnn_X_101_32x8d_FPN_1x.pth

https://download.pytorch.org/models/maskrcnn/e2e_mask_rcnn_X_101_32x8d_FPN_1x.pth

你只需要替换脚本里掉对应的链接即可。

(1)修改对应的模型的配置文件

maskrcnn-benchmark/configs/e2e_faster_rcnn_X_101_32x8d_FPN_1x.yaml

maskrcnn-benchmark/configs/e2e_mask_rcnn_X_101_32x8d_FPN_1x.yaml

修改其中以下几项:

①数据集设置为coco2017对应的名字

DATASETS:
TRAIN: ("coco_2017_train", "coco_2017_val")
TEST: ("coco_2017_val",)

具体可以参考:

maskrcnn-benchmark/configs/paths_catalog.py

里面给出了各个数据集的路径

②由于是测试,因此需要设置batchsize小一些,方便在笔记本上跑,训练的时候需要设置大一些

IMS_PER_BATCH: 8

将该参数设置为1,最小!

③设置好模型的位置

WEIGHT: "models/e2e_mask_rcnn_X_101_32x8d_FPN_1x.pth"

(2)跑起demo

将一下代码保存为run_demo.sh,然后放入maskrcnn-benchmark的目录下并执行

#!/usr/bin/env bash

source venv/bin/activate

python demo/webcam.py \\
--config-file configs/e2e_mask_rcnn_X_101_32x8d_FPN_1x.yaml \\
--min-image-size 300 MODEL.DEVICE cuda
# --show-mask-heatmaps

deactivate

以上是关于mask rcnn使用指南的主要内容,如果未能解决你的问题,请参考以下文章

实战:使用 Mask-RCNN 的停车位检测

Tensorflow v1 对象检测 api mask_rcnn_inception_v2_coco 模型批量推理

mask rcnn使用指南

mask rcnn使用指南

我正在尝试使用 Mask RCNN 构建对象检测,并在调用 MaskRCNN 方法时出错

二阶段目标检测网络-Mask RCNN 详解