OpenCV和cafee的编译安装

OpenCV和cafee的编译安装

初识OpenCV

为OpenCV构建编译环境

OpenCV是一个开源的跨平台计算机识别库,可以应用在物体识别、人脸识别、动作识别、图像分割等等方面的领域。在使用OpenCV做项目之前,我们首先需要配置环境,安装一些所需的包。可以在OpenCV的官网上查看安装指导,点击这里打开官方网站。下面是所需要的包(基于Linux系统):

  • GCC 4.4.x or later
  • CMake 2.8.7 or higher
  • Git
  • GTK+2.x or higher, including headers (libgtk2.0-dev)
  • pkg-config
  • Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
  • ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
  • [可选] libtbb2 libtbb-dev
  • [可选] libdc1394 2.x
  • [可选] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
  • [可选] CUDA Toolkit 6.5 or higher

运行以下命令来完成上述包的安装:

 sudo apt-get install build-essential
 sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
 sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

下载最新版本的OpenCV源码

点击这里下载最新版本的OpenCV

使用cmake编译OpenCV

  • 为什么使用cmake和make编译而不是以往的gcc和g++来编译

    文本程序到可执行文件生成无论在什么平台大致分为以下几个部分:

    1.用编辑器编写源代码,如.c文件。

    2.用编译器编译代码生成目标文件,如.o。

    3.用链接器连接目标代码生成可执行文件,如.exe。

    同时我们知道编译和链接阶段是靠g++和gcc编辑器来完成,这两个编译阶段是相同的,但是链接阶段g++默认链接c++库,所以一般情况下用gcc编译c文件,而g++编译cpp文件。当然g++也可以编译c文件,而gcc编译cpp文件则需要在后面加上参数-lstdc++,作用就是链接c++库。

    但是如果项目比较大,像Opencv这种编译和链接的阶段的源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是就有了make工具,它是一个自动化编译工具,你可以使用一条命令实现完全编译。但是你需要编写一个规则文件,make依据它来批处理编译,这个文件就是makefile,所以编写makefile文件也是一个程序员所必备的技能。

    对于一个大工程,编写makefile实在又是件复杂的事,于是人们又想,为什么不设计一个工具,读入所有源文件之后,自动生成makefile呢,于是就出现了cmake工具,它通过编写好的cmakelist文件(cmake所依据的规则,配置相应的变量)它能够输出各种各样所需要的makefile或者project文件,从而帮助程序员减轻负担。

    综上所述,我们可一总结出一个大的的项目的大致编译过程分为:

    项目原文件—cmakelist —cmake —makefile —make —生成可执行文件(make中则包含了多条链接以及gcc/g++编译语句)。

  • 编译OpenCV

1、在OpenCV项目目录下新建一个build目录,这个目录用来存放生成的Makefile文件或project文件。输入如下命令:

 cd ~/opencv
 mkdir build
 cd build

2、配置cmake运行所需的参数和路径,从而CmakeLists.txt中的个别参数会相应的改动

  • 在OpenCV官网的安装文档中提供的方法是使用如下命令来一一配置:

    cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local …

  • 上述方式有些繁琐,还有另一种较为快捷的方式可以达到此目的:

    输入命令:apt install cmake-curses-gui

    cmake-curses-gui 是一种专门配置配置cmake运行所需的参数和路径的可视化程序

    3、安装好cmake-curses-gui后,在build目录下输入如下命令:

    ccmake …

    该命令的意思是到上一个目录下(即CmakeList.txt所在的目录下)运行出cmake-curses-gui的界面,修改对应的参数。
    这个项目中我们修改 CMAKE_INSTALL_PREFIX这个选项,即配置install路径(作用是将编译好的OpenCV执行文件放入其中,便于在其他项目中引入编译好的OpenCV)一般
    改到用户目录下/Home/username/install

    4、开始编译OpenCv

    输入命令:make -j6

    j后面的数字表示线程数

    5、编译完成后,创建install目录

    继续在build目录下,输入如下命令:sudo make install,系统就会根据CMAKE_INSTALL_PREFIX中的路径去创建install文件夹

    以上步骤就完成了OpenCV的编译

初识Caffe

为caffe构建编译环境

Caffe(卷及神经网络框架)全称为Convolutional Architecture for Fast Feature Embedding,它是一个清晰、高效的深度学习框架,它是开源的,核心语言是C++,它支持命令行、Python和Matlab接口,它既可以在CPU上运行也可以在GPU上运行。
Caffe可以应用在视觉、语音识别、机器人、神经科学和天文学。由于我的第一个实验是RoadDetector,识别图片中的目标,需要用到caffe这个深度学习框架。所以下面就是安装并编译caffe_ssd的步骤。

可以从caffe官网查看编译依赖包的安装指导,点击这里打开官方网站,根据安装指导,Ubuntu 17.04 以后的版本可以直接从源用apt安装caffe,由于这里使用Ubuntu 16.04,需要安装依赖包后手动编译,运行以下命令:

```bash
sudo apt install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt install --no-install-recommends libboost-all-dev
sudo apt install libopenblas-dev
sudo apt install libgflags-dev libgoogle-glog-dev liblmdb-dev
```

下载Caffe源码包

从Caffe的github页面下载源码包,点击这里打开github界面

使用cmake编译cafee

1、同OpenCV的编译基本一样,首先需要在caffe_ssd目录下新建一个build文件夹用来存放cmake生成的MakeFile文件或project文件

2、在build文件夹下输入如下命令:

ccmake …

跳转到cmake-curses-gui界面,更改编译选项:

  • 将’BLAS’置为open

  • 将’CMAKE_INSTALL_PREFIX’选项的值更改为 ~/caffe_ssd/build/install

  • 将’OPENCV_DIR’选项的值更改到之前编译好的OpenCV文件夹下(一般在install目录下share中)

3、编译caffe,在build目录下输入如下命令:

make -j6

4、在build目录下输入如下命令:

make install

系统将会根据第2步通过ccmake更改’CMAKE_INSTALL_PREFIX’后的路径创建install文件夹,用于装编译好的caffe

以上步骤就完成了cafee的编译

猜你喜欢

转载自blog.csdn.net/weixin_42749767/article/details/82769253
今日推荐