ubuntu yolov4 opencv 编译

# 在 makefile中,修改OPENCV=1

1.查看有无opencv 及版本

在终端输入 

pkg-config --modversion opencv

因为,我之前装了ros,所以,存在2.4.9.1版本。 # 在这里注意 我把 sudo gedit ~/.bashrc 中的ros相关的两行给注释了,记得注释回来。

# 但是编译opencv 的 yolov4,官方推荐 4.x,3.x,2.4.x,但是我的这个版本是不行的,编译一直报错,所以,重新安装了 opencv4 版本。

2. ubuntu装opencv4

注意,opencv 4.x 不是默认生成opencv.pc 的。

1)安装依赖项

sudo apt-get install cmake

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config

2)下载自己需要的版本

https://opencv.org/releases/

附上 4.1.0版本百度网盘地址:

解压后放在自己想放的目录下,在opencv-4.1.0 目录下 建立build 文件夹, 进入 build 文件夹下,打开终端

3)cmake

基本编译命令是 sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

一般来说,opencv 4.x 不会自动生成 opencv.pc , 所以需要在基本命令的基础上 加入OPENCV_GENERATE_PKGCONFIG=ON 也就是:

cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..

4)编译

还是在 build 文件夹下,

sudo make 或者 sudo make -j4/8

5)安装

sudo make install

对应卸载就是

sudo make uninstall

3. 配置opencv环境

1)指定安装路径

/user/local/bin 是opencv安装路径也就是makefile中指定的安装路径。

sudo gedit /etc/ld.so.conf

在文件末尾插入

/usr/loacal/lib

更新一下配置

sudo ldconfig

 2)修改bash.bashrc文件

sudo gedit /etc/bash.bashrc 

文件末尾插入:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

更新一下: 

source /etc/bash.bashrc

4. 检查是否安装成功

pkg-config --modversion opencv

输出版本号即成功。

理论上是这样的,但实际操作中,因为,我已经有了opencv 2.4.9.1 版本。所以,验证的版本还是这个2.4.9.1.

2-4 部分参考自  https://blog.csdn.net/public669/article/details/99044895 ,感谢!

5.多版本opencv安装

#应该是 前面没有创建 opencv.pc

1)创建opencv4.pc

cd /usr/local/lib  # 安装路径
sudo mkdir pkgconfig
cd pkgconfig
sudo touch opencv4.pc  # touch 是新建的意思

2)写入 opencv4.pc

prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib

Name: opencv
Description: The opencv library
Version:4.1.0
Cflags: -I${includedir}/opencv4
Libs: -L${libdir} -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann  -lopencv_core                                            

# 最后一行的内容可能跟版本有关,可以对照 usr/local/lib 看

# tips ,如何打开 /usr  , 直接点击 计算机 即可 。

3)创建完以后,将opencv路径添加到 bashrc 中,这一步我也不知道有没有用 。囧  。

sudo gedit ~/.bashrc

添加:

export PKG_CONFIG_LIBDIR=/usr/local/arm/opencv342arm/lib/pkgconfig
export PKG_CONFIG_PATH
//#PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/arm/opencv342arm/lib/pkgconfig
//注意:LIBDIR比PATH优生级高,一般情况可以用PATH,也就是注解掉的那段。

 测试:

pkg-config --libs opencv4
pkg-config --cflags opencv4

pkg-config --modversion opencv4

还有一种,测试 opencv 版本的,但是不太准。

opencv_version

这个命令,在我安装完成以后,就是4.1.0,但是编译还是报错,仅供参考。还是 pkg-config --modversion opencv 系列命令靠谱。

第5部分参考自:

https://blog.csdn.net/PecoHe/article/details/97476135

https://blog.csdn.net/weixin_41921520/article/details/97927633

https://blog.csdn.net/oopooo/article/details/97491693

https://blog.csdn.net/Hanghang_/article/details/89340243

感谢!!!

# 以上有矛盾的地方,我也是改了好多地方,把 yolov4 opencv 编译成功了. 

6. 应用

连的是手机端的摄像头,在手机上下载ip摄像头app.我是google play 下载的.

使用:

点击最后 开启服务器 ,

根据 ip 地址更改命令中的ip地址.

在终端输入命令:

1) 手机电脑同 wifi 或者 usb 连接. 2) 注意修改ip地址. 

./darknet detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights http://192.168.1.104:8080/video?dummy=param.mjpg -i 0

猜你喜欢

转载自blog.csdn.net/qq_40297851/article/details/107031700