py-faster-rcnn + opencv3.0.0 + ubuntu16.04配置

最近开始做行人检测,因此开始接触faster-rcnn,这里贴上配置教程(亲测可行),不过是基于cpu的,蓝瘦。。。

参考博客:http://www.tuicool.com/articles/nYJrYra(opencv配置)

http://blog.csdn.net/sinat_17196995/article/details/53410292(faster-rcnn配置)

环境:ubuntu16.04

一、首先要配置好opencv

这里我是在opencv官网上下载了opencv-3.0.0-rc1(版本最好3.0.0以上),然后开始安装opencv所需的库(编译器、必须库、可选库)

1 [compiler] sudo apt-get install build-essential
2 [required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
3 [optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

然后开始编译opencv,将下载得到的opencv3.0.0解压:

unzip opencv- 3.0. 0-rc1. zip

创建编译目录,编译:

cd ~/opencv-3.0.0-rc1
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make
sudo make install

最后测试一下我们的opencv:

(1)创建工作目录

mkdir ~/opencv-lena
cd ~/opencv-lena
gedit DisplayImage.cpp

(2)编辑如下代码:

#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
    if ( argc != 2 )
    {
        printf("usage: DisplayImage.out <Image_Path>\n");
        return -1;
    }
    Mat image;
    image = imread( argv[1], 1 );
    if ( !image.data )
    {
        printf("No image data \n");
        return -1;
    }
    namedWindow("Display Image", WINDOW_AUTOSIZE );
    imshow("Display Image", image);
    waitKey(0);
    return 0;
}

(3)创建CMake编译文件:

gedit CMakeLists.txt

(4)编译

cd ~/opencv-lena
cmake .
make

(5)执行

此时opencv-lena文件夹中已经产生了可执行文件DisplayImage,下载lena.jpg放在opencv-lena下,运行下面命令:

./DisplayImage lena.jpg

(6)结果:

二、开始配置CPU模式的py-faster-rcnn:

第一步:下载源码和demo模型数据

先cd到你想保存的目录,然后运行
git clone –recursive https://github.com/rbgirshick/py-faster-rcnn.git

(这里注意一下,最好用clone命令,因为我自己尝试过几次在github官网上下载它,下载文件不全,没有caffe-fast-rcnn文件,完整的文件大小在40M左右)
在下载好的py-faster-rcnn的文件夹下运行 
./data/scripts/fetch_faster_rcnn_models.sh 
模型数据下载。

第二步:编译cpython模块 
进入lib文件夹下,首先修改下set.py文件的内容,注释掉 
GPU的相关代码。参考如下:(…表示中间又不用注释跳过去的内容) 
… 
#CUDA = locate_cuda() 
… 
# self.set_executable(‘compiler_so’, CUDA[‘nvcc’]) 
… 
# Extension(‘nms.gpu_nms’, 
# [‘nms/nms_kernel.cu’, ‘nms/gpu_nms.pyx’], 
# library_dirs=[CUDA[‘lib64’]], 
# libraries=[‘cudart’], 
# language=’c++’, 
# runtime_library_dirs=[CUDA[‘lib64’]], 
# # this syntax is specific to this build system 
# # we’re only going to use certain compiler args with nvcc and not with 
# # gcc the implementation of this trick is in customize_compiler() below 
# extra_compile_args={‘gcc’: [“-Wno-unused-function”], 
# ‘nvcc’: [‘-arch=sm_35’, 
# ‘–ptxas-options=-v’,** 
# ‘-c’, 
# ‘–compiler-options’, 
# “’-fPIC’”]}, 
# include_dirs = [numpy_include, CUDA[‘include’]] 
# ), 
… 
修改完之后保存退出,在lib目录下执行 make命令。

第三步:修改faster-rcnn编译文件 
进入caffe-fast-rcnn目录,首先执行cp Makefile.config.example Makefile.config 
大部分跟caffe安装一样,下面修改Makefile.config 
参考如下: 
# USE_CUDNN := 1 注意这里一定要注释掉,下面显示的是不用注释的部分。 (这里有关路径可以参照当时自己配置好的caffe中的路径来)
… 
CPU_ONLY := 1 
… 
BLAS := atlas 
BLAS_INCLUDE := /usr/include/atlas-x86_64-base (这里每个人可能不一样,按照自己的路径来就行)
BLAS_LIB := /usr/lib64/atlas 
… 
PYTHON_INCLUDE := /usr/include/python2.7 \ 
/usr/lib64/python2.7/site-packages/numpy/core/include   (这里要注意一点,因为可能大多数都用的anaconda的IDE,那么路径就要改为n你anaconda的路径,并且你在后面运行faster-rcnn,如果它提示你缺少什么库,你就用pip下载那个库,还要放到anaconda的site-packages,才算在anaconda中导入了这个库
… 
PYTHON_LIB := /usr/lib64 
… 
WITH_PYTHON_LAYER := 1 
… 
INCLUDE_DIRS := (PYTHONINCLUDE)/usr/includeLIBRARYDIRS:=(PYTHON_LIB) /usr/lib64  
… 
BUILD_DIR := build 
DISTRIBUTE_DIR := distribute

然后运行 cd /home/**(您服务器的名字)/py-faster-rcnn/caffe-fast-rcnn 
mkdir build 
cd build 
cmake .. 
make -j8 
make test 
make runtest -j8 
make pycaffe 
以上是检验你的caffe和Python接口编译有没有问题。

(补充一点,由于不用gpu,所以你在运行runtest估计会出错,关于gpu的错误,可以不用执行这一步)

第四步:运行demo 
在tools文件下 运行 ./demo.py –cpu 
如果报错,缺少一些东西,可能是一些库文件没有下载,根据错误提示下载就好。 
如果提示一下错误:ImportError: No module named gpu_nms 
不要着急,在py-faster-rcnn下搜索nms_wrapper.py打开它修改 
force_cpu =True 
也建议把nms_wrapper.py的第9行 from nms.gpu_nms import gpu_nms 注释掉。然后运行demo,等一会就出来一些标记目标的图片,就成功啦。

最后的最后,配置cpu的前提是你的机子内存要大,至少要8g,楼主的4g根本跑不起来demo(提示说核心已转储,就是说内存访问超出边界,内存不够,或许缩小点图片或者换个网络可以,但终究太慢太慢),所以这个cpu配置仅供参考。。。。

安装opencv所需的库(编译器、必须库、可选库)

时间: 2024-08-25 03:10:09

py-faster-rcnn + opencv3.0.0 + ubuntu16.04配置的相关文章

Ubuntu16.04配置Android5.0编译环境

1.安装jdk7 Ubuntu16.04的安装源已经默认没有openjdk7了,所以要自己手动添加仓库,如下: $ sudo add-apt-repository ppa:openjdk-r/ppa $ sudo apt-get update 安装openjdk-7-jdk $ sudo apt-get install openjdk-7-jdk openjdk-7-jre 如果安装成功之后还是不能用可能有多个版本,执行如下命令选择正确的版本:$ sudo update-alternatives

opencv3.4.2 ubuntu16.04安装

最近需要用用opencv.在阿里云服务器ubuntu16.04上安装部署了下. 没啥好说的,下载最新opencv-3.4.2 文件准备 1.opencv-3.4.2.zip2.opencv_contrib-3.4.2.zip (我是放在/home/myname/download/下)然后 wget https://github.com/Itseez/opencv/archive/3.4.2.zip wget https://github.com/opencv/opencv_contrib/arc

基于ubuntu16.04配置opencv3.1+python3.5

最近跑深度学习程序,在python3.5环境下运行tensorflow与keras.opencv提供了不少计算机视觉算法,想要调用opencv函数,发现当初配置opencv的python解释器版本是2.7.那怎么办呢? 0. 安装带GUI的cmake工具: sudo apt-get install cmake-curses-gui 1. ccmake 进入opencv-3.1.0/build/路径下,执行ccmake ccmake . 如图所示 2. 添加python3路径 向下翻页,找到pyt

caffe在ubuntu16.04配置流程

先说废话:在导师办公室2天+自己在家一天终于完成了caffe的配置,(上一篇随笔说好每天更新blog没有做到但我真的有在忙= =)整个过程掉坑无数,还好lucky enough配置完毕,趁着在跑cifar-10的train_full的时间整理一下整个流程,等导师的titanx到了以后还要再配置一次. env:Alienware17-R3, Ubuntu16.04 64-bit, NVIDIA Geforce GTX 980m (导师科研经费买的titanx没到,我的外星人只好先充公了,哈哈) 配

ubuntu16.04配置openproject开发环境步骤

OpenProject开发环境搭建 系统要求:ubuntu-16.04.2-desktop-amd64.iso 系统安装教程参考: https://jingyan.baidu.com/article/359911f5afb04257fe0306c7.html 新系统安装ssh.vim.git 安装ssh sudo apt-get update sudo apt-get install openssh-server   #安装ssh(默认大部分已安装) sudo ps -aux|grep ssh

ubuntu16.04配置sonarqube+MySQL

环境: [email protected]:~# uname -a Linux ubuntu 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux [email protected]:~#  [email protected]:~# cat /etc/issue Ubuntu 16.04 LTS \n \l [email protected]:~# 安装配置mysql

ubuntu16.04 配置爬虫环境

MySQL 安装 sudo apt-get install mysql-server(若安装有误,则update再安装,记得设置root密码) 配置 远程访问:1 进入/etc/mysql 找到my.cnf指向的俩个路径,进入其中一个更改bind为0.0.0.0或者注释掉: 2 进入mysql,通过命令grant all privileges on *.* to "user_name"@"user_ip"  identified by "user_pass

vm虚拟机下的ubuntu16.04配置静态ip(NAT方式)

最近在vm上写项目的过程中,需要通过windows上的navicat连接虚拟机上的mysql,发现每次重启虚拟机其下的ubuntu16.04系统ip都不一样,导致原先在navicat配置好的连接无法使用.于是就想到需要给vm中的系统配置一个不会变化的ip,经过上网查找相关资料,并根据自己的实践情况,现将整理一下笔记. 给vm虚拟机配置静态ip,可以使用交接的方式,但由于VAT方式配置的话集群会更好一些,所以推荐使用NAT方式. 1. 将主机网卡的网络共享给VMnet8 在桌面上找到[网络]-->

Ubuntu16.04 配置pytorch

总体原则:推荐使用Anaconda进行配置(帮助解决了pytorch依赖库的问题) 一.先安装Anaconda3 1.sudo cur install 2.curl -0 https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh 3.sh Anaconda3-5.2.0-Linux-x86_64.sh 4.yes 5.no 重新打开Ubuntu 的Terminal窗口,即可使用conda 命令 二.再安装pytorch c