ubuntu 自定义编译OPENCV版本Python配置路径的问题

在nvidia jetson nano的开发板中,编译opencv4.2 cuda 版本, 

4.2的版本中DNN模块已经支持nvidiaGPU了。所以安装4.2版本使用DNN深度学习。

在本教程的其余部分中,我将向您展示如何从源代码编译 OpenCV,以便您可以利用 NVIDIA GPU 加速推理来进行预训练的深度神经网络。

1你知道如何使用命令行。我们将在本教程中使用命令行。如果您不熟悉命令行,我建议您先阅读此命令行介绍,然后花几个小时(甚至几天)练习。同样,本教程不适用于命令行新手。

2您能够读取终端输出并诊断问题。如果您以前从未这样做过,从源代码编译 OpenCV 可能会很有挑战性——有很多事情会让您感到困惑,包括丢失的包、不正确的库路径等。即使使用我的详细指南,您也可能会犯错误一路上。不要气馁!花点时间了解您正在执行的命令,它们的作用,最重要的是,阅读命令的输出!不要盲目复制粘贴;你只会遇到错误。

OPENCV4.2 支持英伟达gpu;

 cd ~
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.2.0.zip
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.2.0.zip
$ unzip opencv.zip
$ unzip opencv_contrib.zip
$ mv opencv-4.2.0 opencv
$ mv opencv_contrib-4.2.0 opencv_contrib
https://developer.nvidia.com/cuda-gpus


$ cd ~/opencv
$ mkdir build
$ cd build

cmake -D CMAKE_BUILD_TYPE=RELEASE \

-D CMAKE_INSTALL_PREFIX=/usr/local \

-D INSTALL_PYTHON_EXAMPLES=ON \

-D INSTALL_C_EXAMPLES=OFF \

-D OPENCV_ENABLE_NONFREE=ON \

-D WITH_CUDA=ON \

-D WITH_CUDNN=ON \

-D OPENCV_DNN_CUDA=ON \

-D ENABLE_FAST_MATH=1 \

-D CUDA_FAST_MATH=1 \

-D CUDA_ARCH_BIN=5.3 \

-D WITH_CUBLAS=1 \

-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \

-D HAVE_opencv_python3=ON \

-D PYTHON_EXECUTABLE=/usr/bin/python3 \

-D BUILD_EXAMPLES=ON ..

编译打开CUDA cudnn 指定archbin的版本号,指定python版本和路径。

CMAKE完成后可以查看输出,确认GPU版本是否正确。

jetson nano 编译opencv4.2 需要将近5个小时。

cd ~/.local/lib/python3.6/site-packages  建立软连接

id@lid-desktop:~/.local/lib/python3.6/site-packages$

lid@lid-desktop:~/.local/lib/python3.6/site-packages$ sudo ln -s /usr/local/lib/python3.6/dist-packages/cv2/python-3.6/cv2.cpython-36m-aarch64-linux-gnu.so cv2.so

lid@lid-desktop:~/.local/lib/python3.6/site-packages$

测试

lid@lid-desktop:~$ python3

Python 3.6.9 (default, Oct  8 2020, 12:12:24)

[GCC 8.4.0] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> import  cv2

>>> cv2.__version__

'4.2.0'

>>> exit()


sitemap