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

你可能感兴趣的:(物体检测)