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

转载于:https://www.cnblogs.com/Anita9002/p/8335710.html

Mask R-CNN详解和安装相关推荐

  1. 第二篇supervisor集群管理工具cesi安装详解-如何安装supervisor-cesiwebUI

    第二篇supervisor集群管理工具cesi安装详解-如何安装supervisor-cesiwebUI 介绍 安装 解压 安装依赖 修改配置 注册为系统服务 启动 登录一下,发现报错了 解决方法 介 ...

  2. Git客户端图文详解如何安装配置GitHub操作流程攻略

    Git客户端图文详解如何安装配置GitHub操作流程攻略 软件应用 爱分享  3个月前 (08-15)  8896浏览  0评论 Git介绍 分布式 : Git版本控制系统是一个分布式的系统, 是用来 ...

  3. python如何安装matplotlib_详解python安装matplotlib库三种失败情况

    (可能只有最后一句命令有用,可能全篇都没用) (小白方法,可能只适用于本人情况) 安装matplotlib时,出现的三种失败情况 1.read timed out 一开始我在pycharm终端使用pi ...

  4. 第一篇supervisor集群管理工具cesi安装详解-如何安装supervisor

    第一篇supervisor集群管理工具cesi安装详解-如何安装supervisor 环境 准备 安装python3.7.4 问题 解决方法 安装supervisor 配置supervisor服务 启 ...

  5. 详解VMware12安装Mac OS X 10.11

    有不懂的地方可以留言,知道哪里错的必会回答 文章来源:https://www.jb51.net/article/105034.htm 系统文件来源:https://zhidao.baidu.com/q ...

  6. 即兴操作:详解Linux安装GCC方法-------------------------这操作很简单搞一波试试看

    详解Linux安装GCC方法 起锅烧油先准备七个包配置文件以便于查看 上传http-2.4.25.tar.gz软件包到/opt目录下 解压压缩包 修改配置文件 修改配置文件并启动服务 inux中访问h ...

  7. Android Studio 安装详解及安装过程中出现的问题解决方案

    Android Studio 安装详解及安装过程中出现的问题解决方案 一,Android Studio安装包下载, 首先到官网下载,就是去Android Studio中文社区官网下载你的平台需要的安装 ...

  8. IDEA安装阿里巴巴编码规范插件的两种方式详解(在线安装和离线安装)

    这篇文章主要介绍了IDEA安装阿里巴巴编码规范插件的两种方式详解(在线安装和离线安装),本文通过截图给大家展示的非常详细,需要的朋友可以参考下 目录 1.在线安装: 2.离线安装: IDEA安装阿里巴 ...

  9. 【教程】详解VS2010安装流程

    [教程]详解VS2010安装流程 原文网址链接为:http://jingyan.baidu.com/article/4e5b3e195b838991901e24e5.html VS2010全称&quo ...

  10. Windows系统Git安装教程(详解Git安装过程)

    Windows系统Git安装教程(详解Git安装过程)   今天更换电脑系统,需要重新安装Git,正好做个记录,希望对第一次使用的博友能有所帮助! 获取Git安装程序   到Git官网下载,网站地址: ...

最新文章

  1. 图像转文字(分类识别等),文字转图片,实际需要的过程
  2. 处理xmpp 离线信息,
  3. python 商城api编写_Python实现简单的API接口
  4. TCPDUMP/LIBPCAP 3-PCAP 中文手册(1)
  5. java 浏览器 爬虫_java 网络编程-爬虫+模拟浏览器
  6. 【原创】一个简单的StreamInsight样例分析:MarketMonitor
  7. react diff算法剖析总结
  8. android sdk下载慢的解决方法
  9. html验证码 按住向右滑动,js实现滑动滑块验证登录
  10. DFT与DTFT的区别?
  11. 基于卷积自编码网络结构的图像修复
  12. 石灰墙上的这种污渍怎么去掉?黑色灰色的
  13. JS实现注册登录发送短信验证码动态显示60S倒计时完整案例
  14. 霖呆呆的近期面试128题汇总(含超详细答案)
  15. Elasticsearch教程(4) High Level REST Client API 查询 聚合 分组
  16. 在线json服务器,json服务器
  17. 用Javascript开发《三国志曹操传》-零部件开发(二)-让目标人物移动
  18. Datart(达芬奇)sql关键字处理
  19. 泰山OFFICE技术讲座:重新研究了中英文间隔,提出了柳氏中英文间隔计算公式
  20. TEMPUS FUGIT: 2

热门文章

  1. 使用C++实现多张BMP图片转换为YUV动画----附加淡入淡出转场(逐渐变明变暗),及垂直滑像转场(逐行渐变)
  2. SLAM 学习与开发经验分享
  3. ubuntu16.04安装ROS
  4. 国产操作系统进入被彻底抛弃的时代
  5. 【C语言】C语言实现面向对象编程之多态
  6. 【Linux】一步一步学Linux——gzip命令(63)
  7. 【Centos】Centos7.5取消自动锁屏功能
  8. c程序隐藏linux,linux 下隐藏进程的一种方法
  9. nafxcw.lib与LIBCMT.lib在vs2008中链接冲突解决方案
  10. 前端三种消息框alert,confirm,prompt