如何上手使用 Facebook 的开源平台 Detectron?

时间:2022-05-04
本文章向大家介绍如何上手使用 Facebook 的开源平台 Detectron?,主要内容包括安装 Caffe2、安装 COCO API、Clone Repo、安装需要的软件、最后的一点想法、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

不久前,Facebook 开源了用于物体识别的 CV 开发平台 Detectron,为广大研究人员们未来的新计算机视觉研究课题提供灵活、快速的模型实现和评估途径,对于 Detectron 的开源,雷锋网曾做过报道:Facebook 开源 CV 开发平台 Detectron,打包支持各种物体识别算法。IBM Watson 的计算机视觉工程师 Nick Bourdakos 发表了一篇 Detectron 入门教程,原文链接如下:https://hackernoon.com/how-to-use-detectron-facebooks-free-platform-for-object-detection-9d41e170bbcb AI 研习社将全文编译如下:

怎样才能绘制更加清晰的目标对象轮廓?

不久前 FAIR 开源了物体检测平台 Detectron,任何开发者都能使用 Facebook 用来做物体检测研究的工具,Detectron 的一项重要功能是对象遮蔽(object masking)。对象遮蔽,不只是在目标的周围画上边框,实际上它可以绘制多边形。

Detectron 能让对象遮蔽非常简单地运行起来:

安装 Caffe2

第一步是安装 Caffe2(https://caffe2.ai/)

git clone --recursive https://github.com/caffe2/caffe2.git && cd caffe2
make && cd build && sudo make install
python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"

注意:你得有一块带有 CUDA 的 NVIDIA GPU 才能使用 Detectron

安装 COCO API

git clone https://github.com/cocodataset/cocoapi.git
cd cocoapi/PythonAPI
make install

Clone Repo

成功安装 Caffe2 后,Clone Detectron 的 repo。

git clone https://github.com/facebookresearch/Detectron.git && cd Detectron

安装需要的软件

pip install 
numpy 
pyyaml 
matplotlib 
opencv-python>=3.0 
setuptools 
Cython 
mock 
scipy

构建 python 模块

cd lib && make && cd ..

执行以下指令在在 Demo 图像上运行对象遮蔽

python tools/infer_simple.py 
--cfg configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml 
--output-dir demo/output 
--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 
demo

在 Detectron/demo/output 目录下找到 PDF 输出文件。

下面是我用的一些测试用例,它们大部分都运行得很好。

和以前一样(https://hackernoon.com/capsule-networks-are-shaking-up-ai-heres-how-to-use-them-c233a0971952),卡戴珊姐妹再次向 AI 发起了挑战。

注意:如果你想测试自己的图片,只需要 JPG 文件添加到 Detectron / demo 目录下,为保证图片质量,图像像素最好在 600px - 800px 左右。

最后的一点想法

这个模型对普通对象的遮蔽(masking)效果非常好,不过有的开发者会需要更多的实例来学习,我会在后续的教程中教你如何构建自己的对象遮蔽模型。