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使用指南的主要内容,如果未能解决你的问题,请参考以下文章
Tensorflow v1 对象检测 api mask_rcnn_inception_v2_coco 模型批量推理