YOLOV3—进行车辆检测

目录

  1. 数据集的准备
    1.数据集的介绍及下载;
    2.数据集格式转换----转换为VOC数据格式;
  2. Yolov3相关代码的调整
  3. 开始训练
  4. 模型测试

一. 数据集的准备

1.数据集介绍:UA-DETRAC
数据集主要拍摄于北京和天津的道路过街天桥,多为摄像头俯视视角;
数据集:
DETRAC-Train-Images (5.22GB, 60 sequences)
DETRAC-Test-Images (3.94GB, 40 sequences)
DETRAC-Train-Annotations-XML
2.数据集格式转换----转换为VOC格式(该部分来自于CSDN搜索,链接:
https://blog.csdn.net/w5688414/article/details/78931910 感谢大佬的分享,若该部分书写有涉及侵权,将立即删除)

代码共分为三个部分:(代码使用过程中请注意相关数据集的路径问题
第一部分:从数据提供的XML文件中,提取出每张图片voc格式的xml文件,代码为DETRAC_xmlParser.py
第二部分:根据生成的XML文件,迁移相应的图片到目标目录中。代码为voc_data_migrate.py,图片和XML文件生成后,按照VOC数据格式的目录结构来制作该数据;
第三部分:利用代码ImageSets_Convert.py, 产生trainval.txt,test.txt,train.txt,val.txt文件;

二. YOLOV3相关代码的调整

1. 实现算法在该数据集上的训练,需要修改三份文件,分别为:
cfg目录下的网络配置文件:**.cfg文件、.data文件;
data目录下的 .names文件;
具体的修改方法如下文所示;
yolov3.cfg文件的修改,共计三处需要修改,改完后在同一目录下另存为car.cfg
由于我们只需要做一类目标的检测,因此,class数量为1, 需注意:模型训练的batch以及subdivision请依据自己硬件水平来调整;
修改的代码为:
(第一部分)

[convolutional]
size=1
stride=1
pad=1
filters=18 ##255  f=3*(class+5)
activation=linear
[yolo]
mask = 6,7,8
achors=10,13, 16,30, 33,23, 30,61, 62, 45, 50.119, 116,90, 156,198, 373,326
classes=1 ##80
num=9
jitter=.3
ignore_thresh=.7
truth_thresh=1
random=1

(第二部分)

[convolutional]
size=1
stride=1
pad=1
filters=18 ##255  f=3*(class+5)
activation=linear
[yolo]
mask = 3,4,5
achors=10,13, 16,30, 33,23, 30,61, 62, 45, 50.119, 116,90, 156,198, 373,326
classes=1 ##80
num=9
jitter=.3
ignore_thresh=.7
truth_thresh=1
random=1

(第三部分)

[convolutional]
size=1
stride=1
pad=1
filters=18 ##255  f=3*(class+5)
activation=linear
[yolo]
mask = 0,1,2
achors=10,13, 16,30, 33,23, 30,61, 62, 45, 50.119, 116,90, 156,198, 373,326
classes=1 ##80
num=9
jitter=.3
ignore_thresh=.7
truth_thresh=1
random=1

voc.data文件的修改(同级目录下另存为car.data):

classes = 1
train = /your/train/data/train.txt
valid = /your/train/data/test.txt
names = data/car.names
backup = backup

data目录下.names文件的修改:
新建一个names文件car.names,文件内容为:

car 

三. 开始模型的训练

此部分可参考Darknet官网的教程
1. darknet官网下载预训练model---- darknet53.conv.74
2. 开始训练模型
在终端内输入指令

./darknet detector train cfg/car.data cfg/car.cfg darknet53.conv.74 -gpu 0,1

四. 模型效果测试

在这里插入图片描述

模型的实际检测效果相对不错,yolo还是很强大的;
Ps:由于数据的拍摄都属于道路监控类型的角度,因此本人训练出来的模型对于该角度的车辆检测效果还是很不错的,但是,其他角度的检测效果还有提升空间;

总结:该博客仅供参考,属于个人学习经验,有不足之处请多多谅解,互相交流,学习。

猜你喜欢

转载自blog.csdn.net/weixin_38106878/article/details/88684280