目标检测训练自己的数据集

简介: 笔记

#训练自己的数据集

一、准备数据集

1.准备数据集:先在网上查有没有已经标注的公共数据集,如COCO、VOC数据集,如果公共数据集中没有所需的类,则自己在网上找图片即可(图像尽可能保存为jpg格式),图像尽可能要求分辨率高,背景环境简单

2.数据集的标注:在目标检测中常用labelImg工具进行标注,工具下载地址:link

标注工具github界面如图所示:下载后解压,使用说明见下载文件中的readme.md

1.png

3.进入labelImg-master文件夹:

2.png

在空白处安装键盘的Shift键+鼠标右键,点击“在此处打开Powershell”(如果没有此选项,用cmd进入该目录即可),对于windows系统:在命令窗口输入命令:

pyrcc5 -o libs/resources.py resources.qrc

python labelImg.py

如下图所示(注意,PowerShell或cmd窗口不要关闭!):

3.png

此时会出现labelImg的窗口,如下图所示,在Open Dir找到图片路径:

4.png

比如要检测香烟:按一下键盘上的w键,此时鼠标会变成+,对目标画矩形框,并在跳出来的窗口输入标签,如下图所示:

image.png

Ctrl+s对标签进行保存(不要更改标签文件名字),标签会以xml文件形式进行保存,标签文件内容如下图,按D可切换下一张:

image.png

以上步骤即为自作数据集的全过程,如果在使用labelImg工具标注时发现有鼠标有失控的现象,将工具重新打开即可。

二、训练:

2.1准备工作:

案例介绍的为YOLOv4目标检测,环境为pytorch,显卡为英伟达1650。

代码下载:link.代码相关问题可查看该博主的说明。

下载yolov4的权重文件:链接: link 提取码: q2iv。该权重文件也是上述博主云盘所提供的。将下载好的权重文件放在model_data文件下,同时在model_data下新建一个new_classes.txt文件,输入自己需要检测的类:

image.pngimage.png

打开yolo.py文件,在class YOLO(object)中model_path:为加载的权重文件(前面提到的yolov4的权重文件),文件格式为pth,anchors_path为锚框文件路径,classes_path为检测的类文件路径。

运行predict.py,输入img下的测试图像:street.jpg。如果能显示出检测结果说明程序能正常运行,否则根据报错进行调整,一般错误有某个组件没下载或者版本问题,模型加载路径问题。

2.2 训练自己的数据集:

image.png

在VOCdevit/VOC2007下检查有没有上图文件,没有则自己创建Annotation文件用来存放xml标签文件,JPEGImages用来存放图像文件。

运行voc2yolo4.py,此时会在ImageSets/Main文件下生成每个训练图像的txt文件(txt文件中只有图像的名称,没有坐标信息和格式)。

打开voc_annotation.py,将classes中的类修改为自己标记的类名称,并运行,将xml转换为yolo4可读的txt文件,此时会生成2007_train.txt,2007_test.txt,2007_val.txt文件,打开2007_train.txt可看到每个图像的名称即坐标信息,如下图所示:

image.png

如果在txt文件中没有这些信息,说明转换有错误,再一步一步检查,如果检查标签文件以及Main文件下的txt文件没问题,可修改voc_annotation.py中in_file这一行的代码,代码修改如下:

image.png

打开train_with_tensorboard.py(需要安装tensorboardX),将下图中的classes_path修改为new_classes.txt:

image.png

其他训练参数可根据自身需求进行调整,训练后的模型会保存在logs文件中,训练完以后如果想继续训练,可修改model_path的权重路径为自己权重进行预训练。

在yolo.py中可修改model_path和classes_path为自己权重和类文件,然后再predict.py和video.py进行图像或视频检测。

目录
相关文章
|
3天前
|
机器学习/深度学习 编解码 算法
目标检测舰船数据集整合
目标检测舰船数据集整合
102 0
|
9月前
|
XML 数据挖掘 数据格式
|
6月前
|
传感器 数据采集 编解码
3D目标检测数据集 DAIR-V2X-V
本文分享国内场景3D目标检测,公开数据集 DAIR-V2X-V(也称为DAIR-V2X车端)。DAIR-V2X车端3D检测数据集是一个大规模车端多模态数据集,包括: 22325帧 图像数据 22325帧 点云数据 2D&3D标注 基于该数据集,可以进行车端3D目标检测任务研究,例如单目3D检测、点云3D检测和多模态3D检测。
135 0
|
9月前
|
机器学习/深度学习
使用卷积神经网络CNN训练minist数据集(二)
使用卷积神经网络CNN训练minist数据集(二)
|
10月前
|
网络安全 开发工具 网络架构
YOLOV7详细解读(四)训练自己的数据集
YOLOV7详细解读(四)训练自己的数据集
595 0
|
存储 编解码 固态存储
一文带你了解时下最新的目标检测模型——YOLOv8
Ultralytics YOLOv8: State-of-the-Art YOLO Models,作者:Sovit Rath
1225 0
|
固态存储 开发工具 git
mmdetection目标检测训练自己的数据
mmdetection目标检测训练自己的数据
224 0
|
算法 搜索推荐
每日训练(二)
每日训练(二),题目来源:力扣,PTA。
每日训练(二)