1月23日,Facebook 开源了自家的物体检测研究平台 Detectron。Detectron 是 Facebook AI 研究的软件系统,实现了最先进的物体检测算法,包括 Mask R-CNN。Detectron 用 Python 编写实现,并由深度学习框架 Caffe2 (Caffe2应该类似Brain++,内部使用)。
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
如果出现
则说明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
如果出现
则说明安装成功
先拿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目录下,建议下载完后保存在其他目录
结果如下:
原图:
识别效果:
又出来mask-rcnn 突然发现类似行人检测的毕设好简单
此处应有猫:
关于mask-rcnn的论文将在之后分享,解析