使用TensorRT加速yolov5时,在make时出现fatal error: opencv2/dnn/dnn.hpp: No such file or directory
,貌似opencv dnn模块有问题,于是重装,安装参考教程
1.安装依赖
sudo apt install build-essential cmake git pkg-config libgtk-3-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev gfortran openexr libatlas-base-dev python3-dev python3-numpy libtbb2 libtbb-dev libdc1394-22-dev
(虽然安装了这些,但后面可能还会出现各种NOT FOUND!!!)
2.克隆 OpenCV和OpenCV contrib 仓库源码(注意检查两者版本要一致)
mkdir ~/opencv_build && cd ~/opencv_build
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
如果是直接download的zip文件,opencv_contrib源码在解压的文件夹去掉后面的版本号,否则后面opencv编译时会找不到opencv_contrib文件夹
3.创建临时构建目录
cd ~/opencv_build/opencv
mkdir build && cd build
CMake设置
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules \
-D BUILD_EXAMPLES=ON ..
结束后可以看到以下输出
如果过程中出现各种NOT FOUND可以参考这篇博文将找不到的包安装上,或者直接百度/谷歌查找需要对应安装什么
Could not find OpenBLAS
解决参考
4.开始编译
make -j48
根据自己的处理器更改-j
后面的数字,如果不知道, 可以使用命令nproc
查看
如果编译过程出现以下报错
建议CMake最后加一条参数-D WITH_FFMPEG=OFF
,可能是由于我之前安装了ffmpeg导致出现问题
编译成功
5.安装
sudo make install
6.验证
pkg-config --modversion opencv4 # output 4.5.1
python3 -c "import cv2; print(cv2.__version__)" #output 4.5.1