Manifold & TK1 安装 CUDA OpenCV

Author Avatar
开坦克的贝塔 1月 31, 2017
  • 在其它设备中阅读本文章

本文将介绍在TK1及Manifold安装机器视觉开发环境。

安装CUDA

在Manifold & TK1安装.deb 文件以及CUDA Toolkit

1
2
3
4
5
6
# 下载源文件
$ wget http://developer.download.nvidia.com/compute/cuda/6_5/rel/installers/cuda-repo-l4t-r21.2-6-5-prod_6.5-34_armhf.deb
$ sudo dpkg -i cuda-repo-l4t-r21.2-6-5-prod_6.5-34_armhf.deb
$ sudo apt-get update
$ sudo apt-get install cuda-toolkit-6-5
$ sudo usermod -a -G video $USER

添加环境变量

1
2
3
4
$ echo "# Add CUDA bin & library paths:" >> ~/.bashrc
$ echo "export PATH=/usr/local/cuda/bin:$PATH" >> ~/.bashrc
$ echo "export LD_LIBRARY_PATH=/usr/local/cuda/lib:$LD_LIBRARY_PATH" >> ~/.bashrc
$ source ~/.bashrc

查看 CUDA ToolKit

1
$ nvcc -V

至此 CUDA 6.5 安装完成

安装OpenCV

OpenCV类型及选择

在Manifold & TK1 上,有三种版本的OpenCV可供使用,我们需要从以下三个版本中选择一个进行安装

1> 普通OpenCV
2> 带有GPU加速的OpenCV(使用CUDA的普通OpenCV)
3> 带有GPU和CPU加速的OpenCV4Tegra(NVIDIA优化版的OpenCV 2.4.X)

对于拥有NVIDIA Kepler GPU、192个CUDA核心的Manifold和TK1来说,使用GPU计算是核心,普通OpenCV的性能表现将极差,所以我们不考虑此方案。
对于方案2及方案3的选择就要依据具体项目而定了。
使用方案2的优点是我们可以使用3.X版本的OpenCV,缺点是我们将失去CPU的优化加速。方案3虽然可以在CPU及GPU计算中同时得到加速,但是OpenCV4Tegra是基于OpenCV2.4.X的优化,个人感觉在使用上不如OpenCV3.X版本顺手,特别是在ml模块中。
大部分在使用Manifold及TK1的项目的主要目的就是在实时条件下的目标识别,Haar Cascade Classifiers、LBP Cascade Classifiers、HOG+SVM是目前使用较为广泛的方法。Haar算法在GPU处理表现上与在CPU上表现大致相当,甚至略逊于CPU。LBP以及HOG算法在GPU处理表现非常出色,GPU处理速度可达CPU处理的5-20倍(具体信息)。大家可根据自己的项目,自行选择方案2或方案3进行安装。

注意!!只能选择一个方案进行安装,在不少博客教程中都是先安装OpenCV4Tegra,接着又安装普通OpenCV,这样是错误的方法。使用哪一个直接安装即可。

安装带有GPU加速的OpenCV(方案2)

更新apt

1
2
$ sudo add-apt-repository universe
$ sudo apt-get update

安装依赖

1
2
3
4
5
6
$ sudo apt-get -y install build-essential make cmake cmake-curses-gui g++
$ sudo apt-get -y install libavformat-dev libavutil-dev libswscale-dev
$ sudo apt-get -y install libv4l-dev
$ sudo apt-get -y install libeigen3-dev
$ sudo apt-get -y install libglew1.6-dev
$ sudo apt-get -y install libgtk2.0-dev

安装OpenCV

1
2
3
4
5
6
7
8
$ wget https://github.com/Itseez/opencv/archive/3.1.0.zip
$ unzip 3.1.0.zip
$ cd opencv-3.1.0
$ mkdir build
$ cd build
$ cmake -D WITH_CUDA=ON -D CUDA_ARCH_BIN="3.2" -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D ENABLE_NEON=ON ..
$ sudo make -j4
$ sudo make install

至此方案2安装完成,可直接编写cpp文件及CMakeLists使用OpenCV3.1

安装OpenCV4Tegra(方案3)

1
2
3
4
$ wget http://developer.download.nvidia.com/embedded/OpenCV/L4T_21.2/libopencv4tegra-repo_l4t-r21_2.4.10.1_armhf.deb
$ sudo dpkg -i libopencv4tegra-repo_l4t-r21_2.4.10.1_armhf.deb
$ sudo apt-get update
$ sudo apt-get install libopencv4tegra libopencv4tegra-dev

至此方案3安装完成,可直接编写cpp文件及CMakeLists使用OpenCV4Tegra