基于YOLOV3的安全帽检测

本文介绍了基于YOLOv3的全卷积网络结构进行安全帽检测的方法,详细阐述了YOLOv3的网络设计,数据集准备,训练集和测试集的制作,以及训练和测试过程中的注意事项,包括学习率调整和warm_up策略的重要性。
摘要由CSDN通过智能技术生成

 作为目标检测的鸿篇巨制YOLOV3,用来做安全帽检测非常合适

01

Yolov3简介

Yolo_v3使用了darknet-53的前面的52层(没有全连接层),yolo_v3这个网络是一个全卷积网络,大量使用残差的跳层连接,并且为了降低池化带来的梯度负面效果,作者直接摒弃了POOLing,用conv的stride来实现降采样。在这个网络结构中,使用的是步长为2的卷积来进行降采样。为了加强算法对小目标检测的精确度,YOLO v3中采用类似FPN的upsample和融合做法(最后融合了3个scale,其他两个scale的大小分别是26×26和52×52),在多个scale的feature map上做检测。作者在3条预测支路采用的也是全卷积的结构,其中最后一个卷积层的卷积核个数是255,是针对COCO数据集的80类:3*(80+4+1)=255,3表示一个grid cell包含3个bounding box,4表示框的4个坐标信息,1表示objectness score。

具体的网络结构介绍可以参见:

https://blog.csdn.net/litt1e/article/details/88907542

model.summary()可以看到整个参数大小

02

数据集介绍

关于安全帽的数据集,可以通过网络爬取,也可以通过其他途径获取,剩下的就是数据打标了,这是一个体力活,具体的打标教程网上也可以找到很多,基本都是LabelImg,具体可以参见:

https://www.jianshu.com/p/ff99d430150f

我这边使用的数据集是已经打标好了的

03

训练集和测试集的制作

Yolov3使用的数据集格式是遵循VOC数据集的格式,所以需要根据如下目录做好训练集和测试集

关于两个数据集的目录,可以手工创建,也可以通过脚本来进行创建

import os
from shutil import copyfile
#根据tarin.txt和test.txt将数据集分为标准数据集
train_text_path = '/home/test/Lewis_Workspace/VOC2028/ImageSets/Main/train.txt'
test_text_path = '/home/test/Lewis_Workspace/VOC2028/ImageSets/Main/test.txt'
#图片存放地址
image_path = '/home/test/Lewis_Workspace/VOC2028/JPEGImages'
#xml文件存放地址
xml_path = '/home/test/Lewis_Workspace/VOC2028/Annotations'


#输出的目录
outdir = '/home/test/Lewis_Workspace/VOC2028'
#创建各级文件夹
test_xml_out = os.path.join(outdir,'VOC/test/VOCdevkit/VOC2028/Annotations')
os.makedirs(test_xml_out)
os.makedirs(os.path.join(outdir,'VOC/test/VOCdevkit/VOC2028/ImageSets/Layout'))
os.makedirs(os.path.join(outdir,'VOC/test/VOCdevkit/VOC2028/ImageSets/Main'))
os.makedirs(os.path.join(outdir,'VOC/test/VOCd
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值