资讯专栏INFORMATION COLUMN

Mask R-CNN源代码终于来了,还有它背后的物体检测平台

robin / 2356人阅读

摘要:现在,官方版开源代码终于来了。同时发布的,是这项研究背后的一个基础平台。是的物体检测平台,今天宣布开源,它基于,用写成,这次开放的代码中就包含了的实现。说,将平台开源出来,是想要加速世界各地实验室的研究,推动物体检测的进展。

“等代码吧。”

从Mask R-CNN论文亮相至今的10个月里,关于它的讨论几乎都会以这句话收尾。

现在,官方版开源代码终于来了。同时发布的,是这项研究背后的一个基础平台:Detectron。

Detectron是Facebook的物体检测平台,今天宣布开源,它基于Caffe2,用Python写成,这次开放的代码中就包含了Mask R-CNN的实现。

除此之外,Detectron还包含了ICCV 2017较佳学生论文RetinaNet,Ross Girshick(RBG)此前的研究Faster R-CNN和RPN、Fast R-CNN、以及R-FCN的实现。

Detectron的基干(backbone)网络架构包括ResNeXt{50,101,152}、ResNet{50,101,152}、FPN和VGG16。

同时,Facebook还发布了70多种ImageNet-1k预训练模型的性能基准,包括用用1、2块GPU时,上述各种基干架构和检测算法相结合做区域建议、遮罩检测以及人体关键点检测的训练时间、推理时间等。

要使用Detectron,你需要先配置英伟达GPU(是的,它还不支持CPU)、Linux系统和Python2,还要安装Caffe2和COCO API。然后,三步装上Detectron:

Clone Detectron:

# DETECTRON=/path/to/clone/detectron

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

设置Python模块:

cd $DETECTRON/lib && make

检查Detectron的测试通过:

python2 $DETECTRON/tests/test_spatial_narrow_as_op.py

这样,就足够用预训练模型做推理了。

如果要用Detectron来训练自己的检测模型,就需要先确保能通过符号链接lib/datasets/data找到数据集,然后用CMake创建定制的运算符库:

cd $DETECTRON/lib && make ops

并检查这些运算符的测试通过:

python2 $DETECTRON/tests/test_zero_even_op.py

Facebook还贴心地写了份上手教程,教你用预训练的Mask R-CNN来做物体检测。

如果要在本地图像上运行,只需要使用infer_simple.py工具,运行:

python2 tools/infer_simple.py

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

    --output-dir /tmp/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

    demo

就能得到如下图所示的输出。

如果要在COCO数据集上做推理,需要运行:

python2 tools/test_net.py

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

    TEST.WEIGHTS 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

    NUM_GPUS 1

上面这个例子,用了端到端预训练的Mask R-CNN,在一块GPU上运行。如果要使用多个GPU,需要在第二行之后添加 —multi-gpu-testing 并更改最后的NUM_GPUS数量。

截至量子位发稿,Detectron在GitHub上放出7小时,已经收获738颗星标、101次Fork。

RBG在Facebook上发帖介绍说,这个项目2016年7月启动,想要基于Caffe 2构建一个快速、灵活的物体检测系统,至今已经一年半的时间。Detectron系统本来是Facebook内部使用的,我们前面提到的Mask R-CNN和RetinaNet背后,都由Detectron提供支持。

除了RBG之外,Ilija Radosavovic、Georgia Gkioxari、Piotr Dollar和何恺明也参与了Detectron项目。

在Facebook内部,Detectron不仅用于研究,还用来为增强现实、商业诚信等方面的应用训练定制化的模型。这些模型训练完成后可以部署在云端或者移动设备上,由Caffe2运行时提供支持。

RBG说,Facebook将Detectron平台开源出来,是想要加速世界各地实验室的研究,推动物体检测的进展。

Now go forth and create algorithms to detect all of the things!

想用Detectron搞物体检测算法,你可能要用到下面这些链接:

Detectron开源代码:

https://github.com/facebookresearch/Detectron

相关物体检测论文:

Mask R-CNN

https://arxiv.org/abs/1703.06870

RetinaNet

https://arxiv.org/abs/1708.02002

Faster R-CNN和RPN

https://arxiv.org/abs/1506.01497

Fast R-CNN

https://arxiv.org/abs/1504.08083

R-FCN

https://arxiv.org/abs/1605.06409

性能基准和Model ZOO:

https://github.com/facebookresearch/Detectron/blob/master/MODEL_ZOO.md

另外,你们可能还想去RBG大神的FB帖子底下表达一波感谢(以及质问开源代码为何拖了这么久):

https://www.facebook.com/ross.girshick/posts/10159910213745261

欢迎加入本站公开兴趣群

商业智能与数据分析群

兴趣范围包括各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识

QQ群:81035754

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/4710.html

相关文章

  • 何恺明团队推出Mask^X R-CNN,将实例分割扩展到3000类

    摘要:从标题上可以看出,这是一篇在实例分割问题中研究扩展分割物体类别数量的论文。试验结果表明,这个扩展可以改进基准和权重传递方法。 今年10月,何恺明的论文Mask R-CNN摘下ICCV 2017的较佳论文奖(Best Paper Award),如今,何恺明团队在Mask R-CNN的基础上更近一步,推出了(以下称Mask^X R-CNN)。这篇论文的第一作者是伯克利大学的在读博士生胡戎航(清华...

    MockingBird 评论0 收藏0
  • CNN 在图像分割中简史:从 R-CNNMask R-CNN

    摘要:这个像素级别的图像分割问题被等科学家解决,这个框架被称为。由于图像分割需要做到像素级,这与边框分割不同,所以必然导致不准确。 作者:chen_h微信号 & QQ:862251340微信公众号:coderpai简书地址:https://www.jianshu.com/p/867... 自从 Alex Krizhevsky, Geoff Hinton, and Ilya Sutskeve...

    AJie 评论0 收藏0
  • 用于图像分割卷积神经网络:从R-CNN到Mark R-CNN

    摘要:自从和在年赢得了的冠军,卷积神经网络就成为了分割图像的黄金准则。事实上,从那时起,卷积神经网络不断获得完善,并已在挑战上超越人类。现在,卷积神经网络在的表现已超越人类。 卷积神经网络(CNN)的作用远不止分类那么简单!在本文中,我们将看到卷积神经网络(CNN)如何在图像实例分割任务中提升其结果。自从 Alex Krizhevsky、Geoff Hinton 和 Ilya Sutskever ...

    daydream 评论0 收藏0
  • 深度学习时代目标检测算法

    摘要:目前目标检测领域的深度学习方法主要分为两类的目标检测算法的目标检测算法。原来多数的目标检测算法都是只采用深层特征做预测,低层的特征语义信息比较少,但是目标位置准确高层的特征语义信息比较丰富,但是目标位置比较粗略。 目前目标检测领域的深度学习方法主要分为两类:two stage的目标检测算法;one stage的目标检测算法。前者是先由算法生成一系列作为样本的候选框,再通过卷积神经网络进行样本...

    wfc_666 评论0 收藏0
  • ECCV 2018 | CornerNet:目标检测算法新思路

    摘要:表示类别为,坐标是的预测热点图,表示相应位置的,论文提出变体表示检测目标的损失函数由于下采样,模型生成的热点图相比输入图像分辨率低。模型训练损失函数使同一目标的顶点进行分组,损失函数用于分离不同目标的顶点。 本文由极市博客原创,作者陈泰红。 1.目标检测算法概述 CornerNet(https://arxiv.org/abs/1808.01244)是密歇根大学Hei Law等人在发表E...

    awkj 评论0 收藏0

发表评论

0条评论

阅读需要支付1元查看
<