本文将介绍在TK1及Manifold安装机器视觉开发环境。
安装CUDA
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 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