Ubuntu源码编译Opencv-GPU 4.7.0踩坑记录
Contents
网上安装opencv有很多教程,但是一旦涉及到使用cuda加速的opencv DNN模型等,很多教程就毫无意义,opencv官网2.4k的issues也说明了其bug之多。
本文是作者对opencv gpu源码编译的总结。
参考教程(有些问题,但是大体思路不错):https://learnopencv.com/opencv-dnn-with-gpu-support/
源码编译过程
-
安装依赖。
1 2 3 4 5 6 7 8 9
sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential cmake unzip pkg-config sudo apt-get install libjpeg-dev libpng-dev libtiff-dev sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install libv4l-dev libxvidcore-dev libx264-dev sudo apt-get install libgtk-3-dev sudo apt-get install libblas-dev liblapack-dev gfortran sudo apt-get install python3-dev
-
CUDA CUDNN安装。网上已经有很多教程,这里不再赘述。
- 本文使用CUDA 11.6以及CUDNN 8.4.1。
- 只要CUDA和CUDNN的版本匹配就好了,不需要卸载已经有的版本重新安装,后续源码编译CMakeLists.txt会自动检测最低要求的CUDA和CUDNN要求。
-
下载并解压opencv及opencv_contrib(注意这个路径,cmake编译时候需要使用)源码到home下:
1 2 3 4 5
cd ~ wget -O opencv-4.7.0.zip https://github.com/opencv/opencv/archive/refs/tags/4.7.0.zip unzip -q opencv-4.7.0.zip mv opencv-4.7.0 opencv rm -f opencv-4.7.0.zip
1 2 3 4
wget -O opencv_contrib-4.7.0.zip https://github.com/opencv/opencv_contrib/archive/4.7.0.zip unzip -q opencv_contrib-4.7.0.zip mv opencv_contrib-4.7.0 opencv_contrib rm -f opencv_contrib-4.7.0.zip
-
安装numpy:
pip install numpy
。 -
源码编译opencv:
1 2 3
cd ~/opencv mkdir build cd build
- 我习惯使用
cmake-gui
编译,可以更好的选择编译选项:
1
cmake-gui
- 我习惯使用
-
安装opencv(很慢,有时候会在某个选项卡很久。)
1
make -j `nproc` && sudo make install
-
建立软连接。
1 2 3 4
# 本机python3.8的site-pakages cd /home/rzy/.local/lib/python3.8/site-packages # cv2.so文件安装位置 ln -s /usr/local/lib/python3.8/site-packages/cv2/python-3.8/cv2.cpython-38-x86_64-linux-gnu.so cv2.so
-
现在opencv-gpu就已经安装好了。
C++,Python代码自动补全vscode设置
C++, Python cuda测试
-
文件结构:
1 2 3
├── CMakeLists.txt ├── main.cpp └── main.py
-
CPP测试:
1 2 3 4 5
mkdir build cd build cmake .. make ./main
-
Python测试:
python3 main.py
C++测试代码
main.cpp
|
|
CMakelists.txt
|
|
Python测试代码
|
|