Facebook Detectron物体检测研究平台实践

简介:

1月23日,Facebook 开源了自家的物体检测研究平台 Detectron。Detectron 是 Facebook AI 研究的软件系统,实现了最先进的物体检测算法,包括 Mask R-CNN。Detectron 用 Python 编写实现,并由深度学习框架 Caffe2 (Caffe2应该类似Brain++,内部使用)。
bQaL_fyqwiqk0302090
Detectron 的由来

2016 年 7 月,Detectron 项目正式启动,旨在创建一个基于 Caffe2 的快速灵活的物体检测系统,当时处于早期 alpha 开发。经过一年半的发展,Detectron 已成熟,并支持很多内部项目,比如:Mask R-CNN 和 Focal Loss for Dense Object Detection。这 2 个项目分部拿到了 ICCV 2017 的 Marr Prize 和 Best Student Paper 奖。

由 Detectron 驱动的算法,为重要计算机视觉任务(比如实例分割)提供了直观的模型,并且在近年来我们社区视觉感知系统所取得的空前进步的中发挥了关键作用。

除了研究,许多 Facebook 团队使用 Detectron 平台来培训各种应用的定制模型,包括增强现实和社区完整性。 一旦接受培训,这些模型可以部署在云端和移动设备上。[来自伯乐在线原网址:http://top.jobbole.com/38535/?utm_source=www.jobbole.com&utm_medium=sidebar-top-news]
Detectron的github主页:https://github.com/facebookresearch/Detectron
根据readme的引导我们先安装caffe2框架:
这里我们用python2.7
先安装必要的python包:

sudo apt-get update
sudo apt-get install -y --no-install-recommends \
      build-essential \
      cmake \
      git \
      libgoogle-glog-dev \
      libgtest-dev \
      libiomp-dev \
      libleveldb-dev \
      liblmdb-dev \
      libopencv-dev \
      libopenmpi-dev \
      libsnappy-dev \
      libprotobuf-dev \
      openmpi-bin \
      openmpi-doc
      protobuf-compiler \
      python-dev \
      python-pip                          
sudo pip install \
      future \
      numpy \
      protobuf
      sudo apt-get install -y --no-install-recommends libgflags-dev

接着配置cuda环境,由于caffe2已经能用cuda9.0所以我们用的环境是cuda9.0和cudnn7.0(这里提醒一下,对于GTX1060MAXQ的笔记本建议安装CUDA9.0,对于1080ti卡,虽然安装能安装CUDA8.0,跑caffe也能跑,但跑tensorflow时会发生一些莫名其妙的错误,这里建议安装CUDA9.0,各个框架对CUDA9.0的支持也都差不多了)
在网址:https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=deblocal
下载cuda.deb文件(虽然网上说deb安装会有问题,用.run,但笔者安装时没有问题)
执行:

sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda

再在英伟达网站上找到cudnnV7.0(英伟达cudnn下载链接经常崩溃,可以到百度上搜一下,百度网盘里也有)

tar -zxvf cudnn-9.0-linux-x64-v7.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ -d
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

在终端中输入

nvcc -v

若无错则说明配置正确
下载caffe2

git clone --recursive https://github.com/caffe2/caffe2.git && cd caffe2

编译安装

make
cd build
sudo make install

在~/.bashrc添加环境变量:

 export PYTHONPATH=$PYTHONPATH:/home/ubuntu/caffe2/build

测试是否安装成功

cd ~ && python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"

如果出现success则说明加载成功
对GPU进行测试:

python -m caffe2.python.operator_test.relu_op_test

如果出现
gputest
则说明GPU支持成功
接下来安装Detectron需要的一些python库

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

安装 COCO API
COCOAPI提供微软COCO数据集Matlab, Python和Lua的API接口.

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

接下来进行Detectron的安装

git clone https://github.com/facebookresearch/detectron.git
cd detctron/lib
make

测试是否安装成功

cd tests
python test_spatial_narrow_as_op.py 

如果出现
detectron
则说明安装成功
先拿facebook训练好的模型来跑一个example,在Detectorn目录下运行:

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

便会开始下载模型 总共会下载两个170多兆的,一个400多兆的在/tmp目录下,建议下载完后保存在其他目录
结果如下:
原图:
24274813513_0cfd2ce6d0_k
识别效果:
_
又出来mask-rcnn 突然发现类似行人检测的毕设好简单
此处应有猫:
timg

_
关于mask-rcnn的论文将在之后分享,解析
timg_jpeg

目录
相关文章
|
6月前
|
JavaScript Java Android开发
Cocos Creator Android 平台 Facebook 原生登录(二)
Cocos Creator Android 平台 Facebook 原生登录
|
6月前
|
开发工具 Android开发 数据安全/隐私保护
Cocos Creator Android 平台 Facebook 原生登录(一)
Cocos Creator Android 平台 Facebook 原生登录
278 0
|
JavaScript PHP 开发工具
web如何将动态内容分享到Facebook,Twitter等社交平台
web如何将动态内容分享到Facebook,Twitter等社交平台
1081 0
|
6月前
AppsFlyer 研究(十五)SRN平台 -Facebook对接配置
AppsFlyer 研究(十五)SRN平台 -Facebook对接配置
|
6月前
|
开发工具 Android开发 数据安全/隐私保护
AppsFlyer 研究(十四)创建 Facebook App 获取FaceBook App ID
AppsFlyer 研究(十四)创建 Facebook App 获取FaceBook App ID
152 0
|
存储 数据采集 监控
SLICK: Facebook 基于 SLO 的可靠性保障实践
SLICK: Facebook 基于 SLO 的可靠性保障实践
182 0
SLICK: Facebook 基于 SLO 的可靠性保障实践
|
机器学习/深度学习 算法 搜索推荐
【推荐系统】Facebook经典模型GBDT+LR代码实践
在CRT预估中,工业界一般是会采用逻辑回归进行处理,对用户特征画像进行建模,然后计算点击概率,评估用户是否会有点击的行为。
181 0
|
机器学习/深度学习 人工智能 自然语言处理
Facebook发布聊天机器人平台,Bots或将取代App
Facebook 正式宣布在Messenger 上推出聊天机器人API——Messenger Platform。通过这个平台,开发者可以建构出商业应用的聊天功能,聊天机器人可以自动识别客户需求并立刻给予回复。Facebook相信,加入了聊天机器人的 Messenger 将变成一个商家与其客户互动的主要渠道。它拥有的一整套人工智能和真人介入体系,使它将代替800电话,成为商业、客服甚至可能是媒体的主要新渠道。
408 0
Facebook发布聊天机器人平台,Bots或将取代App
|
SQL 机器学习/深度学习 缓存
60TB 数据量的作业从 Hive 迁移到 Spark 在 Facebook 的实践
Spark 可以可靠地 shuffle 并排序 90 TB 以上的中间数据,并在一个作业中运行 250,000个 tasks。与基于 Hive 计相比,产生了显著的性能改进( CPU性能提升、节省了资源的使用,降低延迟)。
60TB 数据量的作业从 Hive 迁移到 Spark 在 Facebook 的实践
|
双11 iOS开发
Facebook推出全线支付服务Facebook Pay;果冻有家 3000万的95后社交共享住房平台
果冻有家是最近新面世的一款租房APP。这款标识为“共享、社交、住房平台”的APP
421 0