概述
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
实验效果
最后
以上就是大方酸奶为你收集整理的OpenCV4.0.1+Darknet+YOLOv3实现目标检测OpenCV4.0.1+Darknet+YOLOv3实现目标检测的全部内容,希望文章能够帮你解决OpenCV4.0.1+Darknet+YOLOv3实现目标检测OpenCV4.0.1+Darknet+YOLOv3实现目标检测所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复