在linux下使用opencv编译yolo

129
1
2020年11月9日 09时11分

在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版本,下载

 

1

 

下载之后,进行解压,下载的文件可以在/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

 

若看到以下图像,说明已经成功了!

 

2

 

遇到的问题

如果出现以下问题:

 

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

如果文章对您有帮助,请给个赞或评论支持一下哦 ^ __ ^

 

发表评论

后才能评论

评论列表(1条)

  • Sky-worker 2020年11月25日 下午3:53

    请问老哥的CUDA版本是啥,我是11.1,怎么也装不好opencv3.4.0