1.下载opencv源码:
官网下载:https://opencv.org/releases.html
扩展包contrib库:
https://github.com/opencv/opencv_contrib/releases
2.解压opencv包
在Ubuntu里解压下载好的包:
2.1 压缩包格式是zip
,使用unzip
解压
2.2 压缩包格式是tar.gz
,使用tar -zxvf
解压;
出现报错:
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
改为使用tar -xvf
解压
3.下载依赖包:
从各博客总结下来的,不知道有没有多余,应该不会漏;
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install libopencv-dev libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
sudo apt-get install ffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev
4.下载opencv IPPICV 包
因为在cmake的过程中会自动下载:
iippicv_2019_lnx_intel64_general_20180723.tgz
特别的慢,基本卡死在那,然后就是超时错误;
所以采用了手动下载+修改配置文件的方式:
网上下载:https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20180723/ippicv
或者 网盘下载:
链接:https://pan.baidu.com/s/1J66MCWqDPqSJfWe14tqx7g
提取码:vsfu
然后修改配置文件:
演示默认opencv文件架构:(可以根据自己实际情况对路径进行调整)
opencv
-opencv-4.2.0 //opencv的目录
-iippicv_2019_lnx_intel64_general_20180723.tgz //手动下载的 IPPICV 包放在这里
-opencv_contrib-4.2.0 //opencv_contrib的目录
打开配置文件:
gedit ~/opencv/opencv-4.2.0/3rdparty/ippicv/ippicv.cmake
然后将47行原来:
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}ippicv/"
修改为:
"file:~/opencv/opencv-4.2.0/"
5.下载face_landmark_model.dat文件
理由如上:
因为在cmake的过程中会自动下载,
特别的慢,基本卡死在那,然后就是超时错误;
还是手动下载+修改配置发方式:
下载地址:
网盘:
链接:https://pan.baidu.com/s/1J66MCWqDPqSJfWe14tqx7g
提取码:vsfu
演示默认opencv文件架构:(可以根据自己实际情况对路径进行调整)
opencv
-opencv-4.2.0 //opencv的目录
-iippicv_2019_lnx_intel64_general_20180723.tgz //手动下载的 IPPICV 包放在这里
-opencv_contrib-4.2.0 //opencv_contrib的目录
-face_landmark_model.dat//手动下载的face_landmark_model文件
打开配置文件:
gedit ~/opencv/opencv_contrib-4.2.0/modules/face/CMakeLists.txt
然后将第19行原来:
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${__commit_hash}/"
修改为:
"file:~/opencv/opencv-4.2.0/"
6.下载boostdesc以及vgg_generated一系列文件
理由如上,cmake下载很慢,很可能最后出现超时错误;
网盘下载:
链接:https://pan.baidu.com/s/1J66MCWqDPqSJfWe14tqx7g
提取码:vsfu
然后所有文件解压到路径(根据实际情况修改):
~/opencv/opencv_contrib-4.2.0/modules/xfeatures2d/src/
即可!
7.cuda及cudnn的安装
没有安装过的可以看博文:
https://blog.csdn.net/sazass/article/details/86755077
可以选择更高的版本:
8.cmake编译
先进入opencv-4.2.0的目录,创建build目录:
cd ~/opencv/opencv-4.2.0
mkdir build
cd build
然后进行cmake编译,参数可自行调整:
下面的参数是带cuda和contrib扩展包的
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=/home/HwHiAiUser/opencv/opencv_contrib-4.2.0/modules \
-D PYTHON3_EXECUTABLE=/usr/bin/python3 \
-D PYTHON_EXECUTABLE=/usr/bin/python \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=ON \
-D WITH_GTK=ON \
-D WITH_OPENGL=ON \
-D WITH_OPENMP=ON\
-D BUILD_EXAMPLES=ON \
-D WITH_CUDA=ON \
-D BUILD_TIFF=ON \
-D ENABLE_PRECOMPILED_HEADERS=OFF\
-D INSTALL_PYTHON_EXAMPLES=ON ..
然后编译即可;
9.cmake 出现的错误解决方案:
经过前期的手动下载避免了很多下载超时的错误;还是可能有一些报错中断cmake的,下面列一些我遇到的:
1.cuda方面错误:
CUDA backend for DNN module requires CC 5.3 or higher.
Please remove unsupported architectures from CUDA_ARCH_BIN option.
原因是:DNN module needs that your graphic card supports the 5.3 Compute Capability (CC) version; 但是你的显卡不支持5.3及以下的
解决方式:
gedit ~/opencv/opencv-4.2.0/cmake/OpenCVDetectCUDA.cmake
根据你的cuda版本好修改:
比如我安装了cuda 10.2
在138行和140行修改如下:
set(__cuda_arch_bin "3.0 3.5 3.7 5.0 5.2 6.0 6.1 7.0 7.5")
->改为-> set(__cuda_arch_bin "6.0 6.1 7.0 7.5")
其他问题后面继续补充······
10.make编译以及make install安装
(默认当前目录在build目录下)
make -j8
结束后
sudo make install
11.配置一些OpenCV的编译环境
首先将OpenCV的库添加到路径,从而可以让系统找到:
1.
sudo gedit /etc/ld.so.conf.d/opencv.conf
执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加:
/usr/local/lib
执行如下命令使得刚才的配置路径生效:
sudo ldconfig
2.配置bash
sudo gedit /etc/bash.bashrc
在最末尾添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存,执行如下命令使得配置生效:
source /etc/bash.bashrc
更新:
sudo updatedb
12.opencv测试: