OpenCV4.0.1+Darknet+YOLOv3实现目标检测

OpenCV4.0.1+Darknet+YOLOv3实现目标检测

基于YOLOv3和OpenCV的目标检测复现:https://www.aiuai.cn/aifarm822.html

Darknet是用C语言编写的神经网络框架(yolo作者提出的框架),opencv的 dnn模块可调用darknet框架编写的yolo模型进行目标检测:

opencv中dnn模块的readNetFromDarknet函数可读取yolov3.cfg模型配置文件和yolov3.weights模型权重文件

 

实验环境:ubuntu+opencv4.0.1+darknet+模型(yolov3.cfg yolov3.weights coco.names )

开源代码:https://github.com/spmallick/learnopencv/tree/master/ObjectDetection-YOLO

安装darknet

安装opencv命令

cd opencv-4.0.1

mkdir build

cd build

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

make -j6(等待较长时间 )

sudo make install

sudo gedit /etc/profile.d/pkgconfig.sh

加上 export PKG_CONFIG_PATH=/usr/local/opencv4/lib/pkgconfig:$PKG_CONFIG_PATH

source /etc/profile

验证是否成功 :pkg-config --libs opencv4

sudo gedit /etc/ld.so.conf.d/opencv4.conf

在末尾加上 /usr/local/opencv4/lib

sudo ldconfig

pkg-config --modversion opencv4 查看已安装的opencv版本

 

实验过程中遇到的错误

1、编译命令报错(开源网址上的编译命令有误),改为:

g++ -std=c++11 object_detection_yolo.cpp -o object_detection_yolo.out `pkg-config --cflags --libs /usr/local/opencv4/lib/pkgconfig/opencv4.pc`

2、

未知原因,猜测是因为未安装CUDA,对实验不影响,注释,对实验无影响;

3、

解决方法:将String改成string

4、

解决方法:参考网址https://blog.csdn.net/weixin_44334724/article/details/109510503以及

https://github.com/chineseocr/opencv-for-darknet

将其中的darknet_io.cpp、layers_common.cpp、all_layers.hpp覆盖opencv库中对应的文件:

cp darknet_io.cpp opencv-4.0.1/modules/dnn/src/darknet

cp layers_common.cpp opencv-4.0.1/modules/dnn/src/layers

cp all_layers.hpp opencv-4.0.1/modules/dnn/include/opencv2/dnn/

注意:opencv无需重新cmake

 

运行命令

./object_detection_yolo.out --video=***.mp4

./object_detection_yolo.out --image=***.jpg

实验效果

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值