在linux下使用opencv编译yolo
- 前言
- 安装opencv
-
- 1) 安装依赖文件
- 2)安装源码并编译
- 3)测试
- 安装darknet
-
- 1)安装源码并编译
- 2)修改为使用opencv编译
- 遇到的问题
前言
系统版本:Ubuntu 18.04 opencv版本:3.4.0 本教程的目的在于成功地在darknet框架通过opencv的方式编译成功。 虽然现在opencv的版本出到了4.1,但在安装4.1之后,我的电脑出现编译yolo错误的问题,这可能是由于新版本opencv编译器的问题,按照网上很多人的说法,3.4.0是没问题的,所以我安装了3.4.0。
安装opencv
1) 安装依赖文件
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
2)安装源码并编译
https://opencv.org/releases.html 在这里找到3.4.0版本,下载
下载之后,进行解压,下载的文件可以在/home/username/Downloads找到 (其中上面的username指的是用户的名字,每个电脑的用户名都不同哦.) 进入到Download目录之后
cp opencv-3.4.0 .. #意思是把opencv-3.4.0这个文件夹复制到上一级目录
cd ..
cd opencv-3.4.0
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make -j8
sudo make install
3)测试
opencv_version
如果出现:3.4.0 说明装好了。
安装darknet
1)安装源码并编译
输入以下命令:
git clone https://github.com/pjreddie/darknet.git
cd darknet
make
2)修改为使用opencv编译
在darknet目录下:
sudo vim Makefile
把OPENCV = 0 改成 = 1 ,然后保存
sudo make
编译成功 进行测试:
./darknet imtest data/eagle.jpg
可能会出现:
./darknet: error while loading shared libraries: libopencv_highgui.so.3.4: cannot open shared object file: No such file or directory
则需要增加以下命令:
cd /etc/ld.so.conf.d/
sudo vim opencv.conf
在opencv.conf文件中增加以下内容并保存。
/usr/local/lib
更新配置:
sudo ldconfig
然后cd 到darknet的目录下,重新运行:
./darknet imtest data/eagle.jpg
若看到以下图像,说明已经成功了!
遇到的问题
如果出现以下问题:
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found
cd /usr/local/lib
ls
看是否有pkgconfig,如果没有的话,新建一个:
mkdir pkgconfig
cd pkgconfig
sudo gedit opencv.pc
把以下内容复制上去:(如果是安装其他opencv版本的话,把下面的版本数改成你自己的版本.)
# Package Information for pkg-config
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir_old=${prefix}/include/opencv
includedir_new=${prefix}/include
Name: OpenCV
Description: Open Source Computer Vision Library
Version: 3.4.0
Libs: -L${exec_prefix}/lib -lopencv_dnn -lopencv_ml -lopencv_objdetect -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_imgproc -lopencv_flann -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir_old} -I${includedir_new}
参考文献: https://pjreddie.com/darknet/install/ https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html https://blog.csdn.net/weixin_42652125/article/details/81238508 如果文章对您有帮助,请给个赞或评论支持一下哦 ^ __ ^