首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

YOLOv3物体检测,即Darknet基本使用

软硬件环境

Intel(R) Xeon(R) CPU E5-1607 v4 @ 3.10GHz

GTX 1070 Ti 32G

ubuntu 18.04 64bit

anaconda with python 3.6

darknet git version

cuda 8.0

opencv 3.1.0

Darknet简介

Darknet是一个用C和CUDA编写的开源的神经网络框架。安装起来非常快速、简单,并同时支持CPU和GPU。源码托管在github上,地址 https://github.com/pjreddie/darknet

YOLO

You Only Look Once (YOLO) 是目前最先进的、实时的物体检测系统,已经发展到了第三个版本,在速度和准确度上都有非常大的提升

安装Darknet

步骤非常简单, 以下是CPU版本

如果需要GPU加速的话,需要修改Makefile, 将 改成 ,然后重新 , 由于我的系统是最新的18.04版本,GCC版本已经升级到了7,编译中出现了如下错误

解决方法如下

在cuda 8.0中做一个gcc-5的一个软连接,非常方便。不建议去修改操作系统的默认gcc版本,风险太大

关于CUDA的安装可以参考之前的一篇文章 http://xugaoxiang.com/post/117

同样的,如果需要opencv的支持,修改Makefile,将 改成 ,接着也是

如果需要debug, 修改 , 很不幸我这里报了个错

解决方法是修改Makefile文件,大概是35行左右,将

修改成

这个是GCC编译器进行编译期优化的参数

我这编译的时候, 是这样的

Darknet命令行工具的使用

首先需要下载yolov3的weights文件, 这里给了2个链接, yolov3-tiny.weights是yolov3.weights的缩小版, 根据需要自行选择

检测图片中的物体

如果需要进行多张图片的连续检测,可以省略上述命令中的图片路径

使用摄像头检测物体

使用GPU加速,fps可以达到25

检测视频文件中的物体

GPU加速的话,fps也能够达到25, 效果还是不错的, 简单测试了下, mp4和mkv封装格式都是支持的

设置检测阈值

增加参数 , 默认值是0.25, 数值越高检测越严格

weights训练

这里以PASCAL VOC数据集为例

准备数据集

生成label文件

首先我们需要生成darknet使用的label文件, 这是一个txt文件, 内容如下, 是跟图片宽度和高度相关的一组数据. 官方已经有了一个转换的脚步, 我们拉下来直接用

执行完后, 在目录VOCdevkit/VOC2007/labels和VOCdevkit/VOC2012/labels下产生很多的label文件, 数据集中有多少图片就对应有多少label文件, 而在darknet根目录同时也生成了几个txt文件, 如下

一般来讲, 在进行数据集的训练时都会准备3份数据, 一份用作训练train, 一份用作验证val, 最后一份用来测试test, 这些文件仅仅指明了相应图片的路径. 这里把2007年的test保留, 其余的都拿来训练, 理论上讲, 训练数据越大, 效果越好, 这里的VOC大概有15000+张图片

编辑VOC数据集的配置文件

配置文件路径是cfg/voc.data, 主要是修改几个txt文件的路径, 如果需要增减class种类, 这里的classes也是需要修改的

下载官方训练好的卷积层weights

在训练VOC的时候需要用到它

开始训练

修改cfg/yolov3-voc.cfg, 训练和测试采用不用的参数

weights文件成功生成, 在backup目录下

参考资料

https://pjreddie.com/darknet/install/

https://stackoverflow.com/questions/6622454/cuda-incompatible-with-my-gcc-version

https://www.youtube.com/watch?v=KD8fT49KXv8

https://groups.google.com/forum/#!topic/darknet/fQ2GQuibBA4

https://github.com/pjreddie/darknet/issues/492

https://pjreddie.com/darknet/yolo/

https://pjreddie.com/media/files/papers/YOLOv3.pdf

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190130G0L59F00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券