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

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/400993

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。