Detectron概述

Detectron是Facebook FAIR开源了的一个目标检测(Object Detection)平台。

用一幅图简单说明下Object Detection。如Mask R-CNN已经能够做到多目标的Instance Segmentation。

图片来源: Fei-Fei Li, Andrej Karpathy & Justin Johnson (2016) cs231n, Lecture 8 - Slide 8, Spatial Localization and Detection (01/02/2016). Available: http://cs231n.stanford.edu/slides/2016/winter1516_lecture8.pdf

Detectron项目项目自 2016 年 下半年启动,基于Caffe2 ,目前支持大量机器学习算法和已经训练好的模型。项目地址:https://github.com/facebookresearch/Detectron

其中目标检测算法的实现包括:

Mask R-CNN (https://arxiv.org/abs/1703.06870)—Marr Prize at ICCV 2017

RetinaNet (https://arxiv.org/abs/1708.02002)—Best Student Paper Award at ICCV 2017

Faster R-CNN (https://arxiv.org/abs/1506.01497)

RPN (https://arxiv.org/abs/1506.01497)

Fast R-CNN (https://arxiv.org/abs/1504.08083)

R-FCN (https://arxiv.org/abs/1605.06409)

这些目标检测算法主要使用以下卷积网络架构:

ResNeXt{50,101,152} (https://arxiv.org/abs/1611.05431)

ResNet{50,101,152} (https://arxiv.org/abs/1512.03385)

Feature Pyramid Networks (https://arxiv.org/abs/1612.03144) (with ResNet/ResNeXt)

VGG16 (https://arxiv.org/abs/1409.1556)

Detectron配置
想要使用和理解其中各个方法,最基础的一步就是能够先配置好环境,将示例跑通,接下去也接着配置Detectron的机会,把GPU相关的配置再梳理一下。

1、GPU驱动

以往在linux下安装显卡驱动是一段非常东痛苦的经历,搞得不好,一重启就黑屏。如果是多显卡的机器,也会遇到无法切换,或者各种版本不兼容的问题。

这两年在ubuntu社区和NVIDIA官方的努力下,社区的PPA专有驱动基本已经相对稳定。

a)在安装之前,首先确认你的电脑是否在BIOS上有secure boot,如果有进入BIOS,把secure boot 设置成disable。 (这设置十分重要,不然会出现无法安装CUDA的情况)

b)如果之前已经自带的NVIDIA驱动,需要删除老的驱动

sudo apt-get –purge remove nvidia-glx nvidia-glx-new
sudo apt-get –purge remove nvidia-settings nvidia-kernel-common

c)确保万无一失,在原有驱动删除之后,需要将Ubuntu集成的开源驱动加入黑名单,即修改/etc/modprobe.d/blacklist.conf文件:

sudo gedit /etc/modprobe.d/blacklist.conf

d)在该文件中增加如下两行:
blacklist nouveau
options nouveau modeset=0

e)然后需要确定你的显卡对应的驱动版本,知道自己的显卡型号后,可以利用官方提供的驱动下载查询界面: NVIDIA 驱动查询

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

f)接着在软件中心的 software & updates中的Additional Drivers的标签,找到和之前查到GPU驱动版本一致的条目,点击apply changes
重启之后应该就安装好了。

Tips:在16.04中有遇到过,在Additional Drivers那个界面选择了GPU驱动后,点击apply changes无法更改的尴尬情况。

解决方法是直接使用命令行
sudo apt-get install nvidia-××× nvidia-prime  (XXX为对应的驱动型号)

测试驱动是否安装成功

nvidia-smi
如果出现了你的GPU列表,则说明驱动安装成功了。

2、Cuda

cuda的安装根据自己的系统选择合适的版本,为了避免一系列可能会出现的问题,在安装CUDA之前,可以进行一下安装前的自检,自检可以参照官方给的文档(CUDA安装前自检)

官网下载 cudnn 需要注册帐号并登录。官方下载网址

下载完成后,在文件所在的文件夹
sudo dpkg -i cuda-repo-ubuntu1604-×××××_amd64​.deb (××××为官方版本号)
sudo apt-get update
sudo apt-get install cuda​

如果是CUDA8.0可能会遇到gcc版本的不兼容问题,可以给GCC降级。

安装完之后,配置cuda的环境变量,在文件~/.bashrc之后加上
gedit ~/.bashrc
export PATH=/usr/local/cuda-××/bin:$PATH  (××是版本号)
export LD_LIBRARY_PATH=/usr/local/cuda-××/lib64:$LD_LIBRARY_PATH (××是版本号)

然后设置环境变量和动态链接库,在命令行输入
sudo gedit /etc/profile
在打开的文件里面加上(注意等号两边不能有空格)
export PATH=/usr/local/cuda/bin:$PATH
保存之后,创建链接文件
sudo gedit /etc/ld.so.conf.d/cuda.conf
在打开的文件中添加如下语句:
/usr/local/cuda/lib64
保存退出执行命令行:
sudo ldconfig
使链接立即生效。

Tips:之前在配置ZED双目相机的,如果是 下载Local版的CUDA,都会在安装ZED SKD时出现找不到CUDA8的提示。

在试了很多次之后,偶尔一次使用了CUDA下载页面中的 deb(network)版本,然后就成功了。 所以建议采用deb的方式安装。

测试Cuda是否安装成功:

cd /usr/local/cuda-××/samples/1_Utilities/deviceQuery (××为版本号)
sudo make
sudo ./deviceQuery

3、CuDNN

CuDNN是NVIDIA推出的针对深度学习的Cuda优化库,可以帮助提升算法效率

官方下载网址

ubuntu下使用deb比较方便,不需要自己设置环境变量

先安装runtime库,这里以cuda9.0为例。

sudo dpkg -i libcudnn7_7.0.3.11-1+cuda9.0_amd64.deb
再安装dev库
sudo dpkg -i libcudnn7-dev_7.0.3.11-1+cuda9.0_amd64.deb

4、配置Caffee2

Caffe2的安装相比于caffe的安装要简单很多,不需要自己去配置Makefile.config,可以在make的时候,自动检测GPU以各种库,例如OpenCV。如果没有就自动选择不使用。

官方的安装说明永远是最好的说明

https://caffe2.ai/docs/getting-started.html?platform=linux&configuration=compile

这里也简单梳理下流程。

首先确定系统和安装方式,这里采用直接编译源码的方式。

安装需要的库

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

libgflags2根据系统选择

# 对于 Ubuntu 14.04
sudo apt-get install -y --no-install-recommends libgflags2
# 对于 Ubuntu 16.04
sudo apt-get install -y --no-install-recommends libgflags-dev

对于GPU的相关依赖我们已经在上面完成配置了,caffe2也给了官方GPU配置的说明,也可以作为一种参考。

另外如opencv库也可以根据自己的需要进行安装

完成准备工作后就可以下载源码进行编译。

git clone --recursive https://github.com/caffe2/caffe2.git && cd caffe2
make && cd build && sudo make install

测试caffe2是否安装成功

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

如果是failure,试着cd到caffe2/build的文件夹里,然后执行

python -c 'from caffe2.python import core' 2>/dev/null

如果successful,说明是环境变量的设置问题,如果还是失败,则会有具体的提示。

配置环境变量,编辑~/.bashrc

export PYTHONPATH=/usr/local:$PYTHONPATH
export PYTHONPATH=$PYTHONPATH:/home/**/devapp/caffe2/build  (**为计算机名)
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

5、Detectron配置

还是那句话,最好的教程是官方的文档。

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

找个合适的文件位置进行clone
git clone https://github.com/facebookresearch/detectron

编译python库
cd DETECTRON/lib && make (DETECTRON表示你clone下来的文件夹)
测试是否编译成功
python2 $DETECTRON/tests/test_spatial_narrow_as_op.py (DETECTRON表示你clone下来的文件夹)

如果遇到缺少库的问题,可以根据报错的信息把库加上

另外的问题可以参见官方的Troubleshooting

6、Detectron简单使用

参考

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

训练相关的我们放到之后去说,这里先说下利用已经训练好的模型和算法框架来进行目标的检测。

根据不同的需求,对象检测可以分为几种,1)Bounding box,2)Mask,3)KeyPoints

这里给出两个例子,用mask和

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

python2 tools/infer_simple.py \
    --cfg configs/12_2017_baselines/e2e_keypoint_rcnn_R-101-FPN_s1x.yaml \
    --output-dir /tmp/detectron-visualizations \
    --image-ext jpg \
    --wts https://s3-us-west-2.amazonaws.com/detectron/37698009/12_2017_baselines/e2e_keypoint_rcnn_R-101-FPN_s1x.yaml.08_45_57.YkrJgP6O/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusminival/generalized_rcnn/model_final.pkl \
    demo

下面第一和第二个图是Bounding box和Mask的效果,第三和第四个图是Bounding box和人体骨骼keypoints的效果。

转载于:https://www.cnblogs.com/zhencv/p/8384419.html

ubuntu16.04 Detectron目标检测库配置(包含GPU驱动,Cuda,Caffee2等配置梳理)相关推荐

  1. GitHub趋势榜第一:超强PyTorch目标检测库Detectron2,训练更快,支持更多任务

    栗子 发自 凹非寺 量子位 报道 | 公众号 QbitAI PyTorch目标检测库Detectron2诞生了,Facebook出品. 站在初代的肩膀上,它训练比从前更快,功能比从前更全,支持的模型也 ...

  2. win10+Ubuntu16.04+Quadro P600双系统安装以及独显驱动安装

    win10+Ubuntu16.04+Quadro P600双系统安装以及独显驱动安装 终于装完了双系统并完成了显卡配置这一步.安装双系统可以说是巨坑无数,这里从头记录一下 烧录镜像 首先是制作镜像,在 ...

  3. Ubuntu16.04使用apt get 命令安装 Nvidia 显卡驱动提示“更换介质:请把标有......”解决办法

    Ubuntu16.04使用apt get 命令安装 Nvidia 显卡驱动 如果出现提示 更换介质:请把标有 "Ubuntu-Kylin 16.04.5 LTS _Xenial Xerus_ ...

  4. Ubuntu16.04 安装配置深度学习配置:GPU加速 Cuda+cudnn+opencv+caffe

    目录 一. 电脑配置: 二. 安装过程 1.安装相关依赖项 2.安装NVIDIA驱动 一,下载安装驱动法 二.终端直接下载安装驱动法. 3.安装CUDA 4.配置cuDNN 5.安装opencv3.1 ...

  5. 【我的第一个目标检测课题】1、课题介绍及环境配置(Windows+Keras+GPU)

    我的第一篇CSDN博客来了. 新手驾到,多多指教. 2020.12.28晚记 写在前面 今天验收完图像处理课程的结课课题--建筑材料识别课题了.晚上决定趁热打铁,记录一下完成这次课题的全过程,还有一点 ...

  6. 学习笔记:在Ubuntu16.04系统内安装Petalinux软件(包括如何安装Ubuntu16.04和相关支持库 详解)

    重要说明:笔者在linux这方面也属于是纯纯的新手小白,本篇文章主要是为了与初学者分享笔者开始接触Linux的学习轨迹和踩坑经验,若文章内的叙述存在错误,请大佬们及时指正,欢迎交流! 一条声明:本文有 ...

  7. 使用ONNXRuntime部署阿里达摩院开源DAMO-YOLO目标检测,一共包含27个onnx模型(代码开源)...

    2022 点击蓝字 关注我们 关注并星标 从此不迷路 计算机视觉研究院 学习群|扫码在主页获取加入方式 获取代码|关注并回复"onnx部署" 01 概述 ONNXRuntime是微 ...

  8. 数据包过滤 系统 linux,Ubuntu16.04安装libpcap开发库对pcap文件中的数据包进行过滤...

    Ubuntu16.04下安装了Wireshark的话,应该是已经安装了libpcap0.8的包,如下图: 使用sudo apt-get install libpcap-dev安装开发包,安装后系统显示 ...

  9. Ubuntu16.04深度学习环境之TensorFlow1.4CPU/GPU安装实测

    由于目前很多TensorFlow初学者在安装时候遇见各种坑,下面亲测很顺利通过,希望对大家有帮助. 一.安装ubuntu 本次使用16.04.4,u盘做好安装盘,需要注意一些机器在安装界面跳出的时候需 ...

  10. Ubuntu16.04安装NVIDIA显卡(RTX20系列)驱动+CUDA10.0+cudnn+Pytorch1.1.0

    Ubuntu16.04,GPU: Geforce RTX 2070-Super(本博客是显卡驱动和cuda分开安装的教程). 1. Ubuntu16.04安装NVIDIA显卡驱动 1. 下载显卡驱动. ...

最新文章

  1. HTML 代码常用技巧
  2. 如何在C++中调用C程序?
  3. CSS 图片上下部与边框有间隙
  4. vite配置 vite.config.js
  5. python线程安全吗_线程安全及Python中的GIL
  6. jQuery事件委托
  7. 【PAT】1009. 说反话 (20)
  8. 《全局光照技术》在摩点网发起众筹活动
  9. php中until的用法,JavaScript_jQuery中nextUntil()方法用法实例,本文实例讲述了jQuery中nextUntil( - phpStudy...
  10. C#实现Windows开机自启动
  11. cad直线和圆弧倒角不相切_建议收藏:史上最全CAD快捷键大全
  12. 模拟电子技术基础_童诗白、华成英(第五版)目录
  13. (模电笔记二 By Multisim)波特图(Bode Plotter)幅频特性相频特性详解
  14. 皮克公式 Peake‘s theorem
  15. 题解 UVA1449 【Dominating Patterns】
  16. C#组件系列——NPOI使用手册
  17. 求余数(c++基础)
  18. eclipse开发android入门学习
  19. 【初篇】DHT11连接STM32、One wire单总线原理、GPIO代码详解
  20. 一个图层隶属下一个图层

热门文章

  1. html网页url伪静态,动态url 静态url 伪静态url页面的区别
  2. 小程序下载到手机后的目录。
  3. lcd12864使用c语言pic单片机,LCD+PIC单片机12864串行显示程序
  4. “C语言之父”40年前搞的操作系统复活,Linux、Windows都借鉴过它
  5. 安卓网络测试工具_【网速】最佳手机网速测试工具
  6. 微信小程序官方demo下载地址
  7. 初识UNIX操作系统
  8. Linux下如何识别TF卡
  9. mysql5.7 bulk insert_Bulk Insert 高效快速插入数据
  10. 大写金额用计算机简单些,大写一到十怎么写 数字一到十的大写怎么写(开票用的大写)...