机器学习:物体检测-Detectron的用法

Facebook AI Research(FAIR)于今年1月中旬开放了他们的物体检测平台 - Detectron。它具有的独特功能是执行对象分割的能力。它使对象检测更进一步,而不是仅仅在图像周围绘制一个边界框,它实际上可以绘制一个包含该对象的非线性边界。Detectron由Caffe2深度学习框架提供支持,用Python编写。

Detectron平台包括以下算法的实现:

Mask R-CNN

RetinaNet

Faster R-CNN

RPN

Fast R-CNN

R-FCN

Detectron平台可用于开箱即用的一般物体检测。通过稍微修改训练和推理文件,它也可以在您自己的数据集上进行训练。安装:detectron平台目前没有CPU实现,需要GPU。

安装Caffe2并支持CUDA。如果已安装Caffe2,请确保将其更新为包含Detectron模块的版本。

安装Python依赖项和COCO API:

pip install numpy>=1.13 pyyaml>=3.12 matplotlib opencv-python>=3.2 setuptools Cython mock scipy

# COCOAPI=/path/to/clone/cocoapi

git clone https://github.com/cocodataset/cocoapi.git $COCOAPI

cd $COCOAPI/PythonAPI

# Install into global site-packages

make install

# Alternatively, if you do not have permissions or prefer

# not to install the COCO API into global site-packages

python setup.py install --user克隆Detectron存储库并设置Python模块:

# DETECTRON=/path/to/clone/detectron

git clone https://github.com/facebookresearch/detectron $DETECTRON

cd $DETECTRON/lib && make检查Detectron测试是否通过:python2 $DETECTRON/detectron/tests/test_spatial_narrow_as_op.py入门

使用预先训练的模型推断:

我们可以在图像文件或单个文件的目录上运行推理。我们将使用该infer_simple.py模块。在这个例子中,我们使用端到端训练的Mask R-CNN模型和来自model zoo的ResNet-101-FPN backbone 。您可以将实验图像存储在名为input的文件夹中并运行:

python2 tools/infer_simple.py \

--cfg configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml \

--output-dir /inference/detectron-visualizations \

--image-ext jpg \

--wts https://s3-us-west-2.amazonaws.com/detectron/35861858/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml.02_32_51.SgT4y1cO/output/train/coco_2014_train:coco_2014_valminusminival/generalized_rcnn/model_final.pkl \

input/

Detectron将自动从--wts参数指定的URL下载模型。此工具将在指定的目录中输出PDF格式的检测的可视化--output-dir。

训练自己的模型:

这个小小的教程向您展示了如何在COCO上训练模型。该模型将是使用ResNet-50-FPN backbone的端到端训练的Faster R-CNN。对于本教程,我们将使用较短的训练计划和较小的输入图像大小,以便训练和推理相对较快。

python2 tools/train_net.py \

--cfg configs/getting_started/tutorial_1gpu_e2e_faster_rcnn_R-50-FPN.yaml \

OUTPUT_DIR /path/to/output

输出(models, validation set detections, etc.)将保存在OUTPUT_DIR下。类似地,可以执行多GPU的训练,仅添加一个--multi-gpu-testing标志,指示Detectron在多个GPU上并行推断。

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();