版本需求
Opencv
版本:2.4.10
依赖库:下载地址
下载地址:下载地址
CUDA
版本:6.5
下载地址:下载地址
PS: 在进行以下操作前,请先参照Ubuntu 14.04 binary-armhf源更换下载源,否则下载速度特别慢!
安装CUDA
下载
从CUDA的下载地址,下载安装文件
安装
执行以下命令
1 | sudo dpkg -i cuda-repo-l4t-r21.3-6-5-prod_6.5-42_armhf.deb |
设置访问GPU
设置当前用户下可以访问GPU
1 | sudo usermod -a -G video $USER |
设置环境变量
在~/.bashrc文件最后添加以下内容
1 | export PATH=/usr/local/cuda-6.5/bin:$PATH |
输入后,使用以下命令重新载入.bashrc文件
1 | source ~/.bashrc |
验证编译环境
1 | nvcc --version |
如返回CUDA的版本信息,则环境配置成功
编译并运行例程
PS: 在执行本次操作的时候,请务必开启Manifold的最大性能,以减少等待时间!!!
查看/usr/local/cuda目录下是否有samples文件夹
复制samples文件夹
1 | cuda-install-samples-6.5.sh /home/ubuntu/ |
然后在主目录~/中会看到一个名为NVIDIA_CUDA-6.5_Samples, 进入该目录,然后执行make命令
1 | cd ~/NVIDIA_CUDA-6.5_Samples |
这个过程会非常的慢,大约要一个多小时,这还是在最大性能的情况下,请大家耐心等待!make结束后,会在~/NVIDIA_CUDA-6.5_Samples/bin/armv7/linux/release/gnueabihf/目录下,会生成可执行文件,如图:
要想了解每个Sample的测试功能,可以参考以下信息:http://docs.nvidia.com/cuda/cuda-samples/
安装OpenCV
下载依赖库并安装
1 | sudo dpkg -i install libopencv4tegra-repo_l4t-r21_2.4.10.1_armhf.deb |
下载并解压OpenCV
解压命令
1 | unzip opencv-2.4.10.zip |
编译OpenCV
在opencv-2.4.10的旁边新建一个名为build的文件夹,并进入该目录,然后执行cmake命令
1 | mkdir build |
注意运行完成后的返回信息,看一下Use CUDA是否为Yes,如果是Yes,表示可以启用CUDA
PS: 如果该步提示找不到cmake,那么请先安装,该命令包含cmake、g++等命令
1 | sudo apt-get install build-essential make cmake g++ |
安装OpenCV
1 | sudo make -j4 install |
修改环境变量
1 | echo "# Use OpenCV and other custom-built libraries." >> ~/.bashrc |
测试OpenCV的样例
第一个示例 基础测试
进入opencv-2.4.10/samples/cpp
1 | g++ edge.cpp -lopencv_core -lopencv_imgproc -lopencv_highgui -o edge |
运行结果如图所示
第二个示例 测试摄像头
进入opencv-2.4.10/samples/cpp
1 | g++ laplace.cpp -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_calib3d -lopencv_contrib -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_legacy -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_video -lopencv_videostab -o laplace |
运行结果如图所示
PS: 这个例子我运行的时候出现错误,摄像头启动后,会闪退,原因未知。
第三个示例 测试GPU加速
进入opencv-2.4.10/samples/gpu
1 | g++ houghlines.cpp -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_calib3d -lopencv_contrib -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_legacy -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_video -lopencv_videostab -o houghlines |
运行结果如图所示
原图
CPU运行效果图
GPU运行效果图
CPU和GPU运行时间对比图