关键词:
目标检测数据集与标记
学习目标
-
目标
-
了解常用目标检测数据集
-
了解数据集构成
-
了解数据集标记的需求
-
知道labelimg的标记使用
-
-
应用
- 应用labelimg完成商品数据集的标记
1. 常用目标检测数据集
- pascal Visual Object Classes
VOC数据集是目标检测经常用的一个数据集,从05年到12年都会举办比赛(比赛有task: Classification、Detection、Segmentation、PersonLayout),主要由VOC2007和VOC2012两个数据集
注:
官网地址:
http://host.robots.ox.ac.uk/pascal/VOC/
下载地址:
https://pjreddie.com/projects/pascal-voc-dataset-mirror/
- Open Images Dataset V4
2018年发布了包含在 190 万张图片上针对 600 个类别的 1540 万个边框盒,这也是现有最大的具有对象位置注释的数据集。这些边框盒大部分都是由专业注释人员手动绘制的,确保了它们的准确性和一致性。
谷歌的数据集类目较多涵盖范围广,但是文件过多,处理起来比较麻烦,所以选择目前使用较多并且已经成熟的pascavoc数据集
2. pascal voc数据集介绍
通常使用较多的为VOC2007数据集,总共9963张图片,需要判定的总物体类别数量为20个对象类别是:
- *人:*人
- *动物:*鸟,猫,牛,狗,马,羊
- *车辆:*飞机,自行车,船,公共汽车,汽车,摩托车,火车
- *室内:*瓶子,椅子,餐桌,盆栽,沙发,电视/显示器
- 文件结构
- 文件内容
- Annotations: 图像中的目标标注信息xml格式
- JPEGImages:所有图片(VOC2007中总共有9963张,训练有5011张,测试有4952张)
3. XML
以下是一个标准的物体检测标记结果格式,这就是用于训练的物体标记结果。其中有几个重点内容是后续在处理图像标记结果需要关注的。
- size:
- 图片尺寸大小,宽、高、通道数
- object:
- name:被标记物体的名称
- bndbox:标记物体的框大小
如下例子:为000001.jpg这张图片,其中有两个物体被标记
<annotation>
<folder>VOC2007</folder>
<filename>000001.jpg</filename># 文件名
<source># 文件来源
<database>The VOC2007 Database</database>
<annotation>PASCAL VOC2007</annotation>
<image>flickr</image>
<flickrid>341012865</flickrid>
</source>
<owner>
<flickrid>Fried Camels</flickrid>
<name>Jinky the Fruit Bat</name>
</owner>
<size># 文件尺寸,包括宽、高、通道数
<width>353</width>
<height>500</height>
<depth>3</depth>
</size>
<segmented>0</segmented># 是否用于目标分割
<object># 真实标记的物体
<name>dog</name># 目标类别名称
<pose>Left</pose>
<truncated>1</truncated># 是否截断,这个目标因为各种原因没有被框完整(被截断了),比如说一辆车有一部分在画外面
<difficult>0</difficult># 表明这个待检测目标很难识别,有可能是虽然视觉上很清楚,但是没有上下文的话还是很难确认它属于哪个分类,标为difficult的目标在测试评估中一般会被忽略
<bndbox># bounding-box
<xmin>48</xmin>
<ymin>240</ymin>
<xmax>195</xmax>
<ymax>371</ymax>
</bndbox>
</object>
<object># 真实标记的第二个物体
<name>person</name>
<pose>Left</pose>
<truncated>1</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>8</xmin>
<ymin>12</ymin>
<xmax>352</xmax>
<ymax>498</ymax>
</bndbox>
</object>
</annotation>
为什么要进行数据集标记呢?
1、提供给训练的数据样本,图片和目标真是实结果
2、特定的场景都会缺少标记图片
4. 数据集标记工具介绍
4.1 介绍
LabelImg是一个图形图像注释工具。它是用Python编写的,并使用Qt作为其图形界面。注释以PASCAL VOC格式保存为XML文件,这是ImageNet使用的格式。
注:官网:
https://github.com/tzutalin/labelImg
4.2 安装
官网给出了不同平台的安装教程,由于教程过于粗略。安装细节参考安装教程本地文件
- 参考本地文件:
5. 商品数据集标记
在这里我们只是体验标记的过程,那么对于标记这个费时费力的工作,一般会有专门的数据标记团队去做,也称之为打标签,标记师。特别是缺乏具体应用场景的训练数据的时候。
5.1 需求介绍
首先在确定标记之前的需求,本项目以商品数据为例,需要明确的有
- 1、商品图片
- 2、需要被标记物体有哪些
我们确定了8种类别的商品(如需更细致,可将类别商品扩大),如下图:
5.2 标记
使用lableimg进行商品数据集标记
- 运行labelimg
python labelImg.py
打开如下结果:
- 对图片中的物体进行标记
标记原则为图片中所出现的物体与我们确定的8个类别物体相匹配即可
- 按下
ctrl+s
键保存,软件将会保存为默认XML文件格式**(XML文件名与图片文件名保持一致方便后续处理)**
其中关于(xmin,ymin,xmax,ymax)
我们已经解释过,可通过软件标记的时候观察是否一致
6. 总结
- 掌握labelimg的标注使用
加油!
感谢!
努力!
商品检测数据集训练项目训练结构介绍(代码片段)
项目训练结构介绍1.项目目录结构2.train_ssd.py1.项目目录结构ckpt:分为预训练与微调模型datasets:放训练原始数据以及存储数据、读取数据代码以及模型priorboxservingmodel:模型部署使用的模型位置export_serving_model:导出TFserving指定模型类... 查看详情
深度学习目标检测:yolov5实现车辆检测(含车辆检测数据集+训练代码)(代码片段)
深度学习目标检测:YOLOv5实现车辆检测(含车辆检测数据集+训练代码) 目录YOLOv5实现车辆检测(含车辆检测数据集+训练代码)1.前言2.车辆检测数据集说明(1)车辆检测数据集(2)自定义数据集3.基于YOLOv5... 查看详情
深度学习目标检测:yolov5实现车辆检测(含车辆检测数据集+训练代码)(代码片段)
深度学习目标检测:YOLOv5实现车辆检测(含车辆检测数据集+训练代码) 目录YOLOv5实现车辆检测(含车辆检测数据集+训练代码)1.前言2.车辆检测数据集说明(1)车辆检测数据集(2)自定义数据集3.基于YOLOv5... 查看详情
matlab深度学习采用fasterr-cnn实现车辆目标检测(代码片段)
本文展示了如何使用MATLAB训练FasterR-CNN目标检测器,实现对车辆的检测。本例使用一个包含295张图像的小标记数据集。每个图像包含一个或两个已标记的车辆目标。一个小的数据集对于探索FasterR-CNN训练过程是有用的,但... 查看详情
matlab深度学习采用fasterr-cnn实现车辆目标检测(代码片段)
本文展示了如何使用MATLAB训练FasterR-CNN目标检测器,实现对车辆的检测。本例使用一个包含295张图像的小标记数据集。每个图像包含一个或两个已标记的车辆目标。一个小的数据集对于探索FasterR-CNN训练过程是有用的,但... 查看详情
笔记2:yolov5训练自己的目标检测模型_创建并划分数据集(代码片段)
目标检测---数据集格式转化及训练集和验证集划分_didiaopao的博客-CSDN博客1、 我们经常从网上获取一些目标检测的数据集资源标签的格式都是VOC(xml格式)的,而yolov5训练所需要的文件格式是yolo(txt格式)的,这里就需要对x... 查看详情
深度学习目标检测:yolov5实现红绿灯检测(含红绿灯数据集+训练代码)(代码片段)
深度学习目标检测:YOLOv5实现红绿灯检测(含红绿灯数据集+训练代码)1.前言本篇博客,我们将手把手教你搭建一个基于YOLOv5的红绿灯目标检测项目。目前,基于YOLOv5s的红绿灯检测精度平均值mAP_0.5=0.93919,mAP_0... 查看详情
深度学习目标检测:yolov5实现红绿灯检测(含红绿灯数据集+训练代码)(代码片段)
深度学习目标检测:YOLOv5实现红绿灯检测(含红绿灯数据集+训练代码)1.前言本篇博客,我们将手把手教你搭建一个基于YOLOv5的红绿灯目标检测项目。目前,基于YOLOv5s的红绿灯检测精度平均值mAP_0.5=0.93919,mAP_0... 查看详情
paddledet训练旋转目标检测ppyoloe-r训练自己的数据集(代码片段)
1.数据转换labelme2coco,原来是labelme标注的points通过opencv转为4个坐标#encoding=utf-8importargparseimportcollectionsimportdatetimeimportglobimportjsonimportosimportos.pathasospimportsysimportuuidimportcv2imp 查看详情
智能生活垃圾检测与分类系统(ui界面+yolov5+训练数据集)(代码片段)
智能生活垃圾检测与分类系统用于日常生活垃圾的智能监测与分类,通过图片、视频和摄像头识别生活垃圾,对常见的可降解、纸板、玻璃、金属、纸质和塑料等类别垃圾进行检测和计数,以协助垃圾环保分类处理。本文详细介... 查看详情
手把手教你如何自制目标检测框架(从理论到实现)(代码片段)
文章目录前言目标检测图片分类目标检测单目标检测多目标检测问题分析滑动窗口RCNNSPPNetFast-RCNNFasterRCNNRPN工作流程Yolo小结编码神经网络实现骨干网络特征提取网络(预训练)目标检测网络数据集编码预训练数据集目标... 查看详情
智能零售柜商品检测软件(python+yolov5深度学习模型+清新界面)(代码片段)
智能零售柜商品检测软件用于识别零售柜常见商品,检测商品名和位置以了解销售情况,为零售柜商品智能检测和自动销售提供检测功能。本文详细智能零售柜商品检测软件,在介绍算法原理的同时,给出Python的实现代码、训练... 查看详情
目标检测小脚本:提取训练集图片与标签并更新索引(代码片段)
问题场景在做目标检测任务时,我想提取训练集的图片单独进行外部数据增强。因此,需要根据划分出的train.txt来提取训练集图片与标签。需求实现我使用VOC数据集进行测试,实现比较简单。importshutilif__name__==&... 查看详情
目标检测小脚本:数据集划分(代码片段)
需求内容之前写了一篇【目标检测】YOLOv5跑通VOC2007数据集里面写了个脚本是将xml标注格式转换称Yolo格式,同时读取数据集划分。在训练自己的数据时,我发现没有现成的数据集划分文件,于是就写了这个小脚本来读... 查看详情
深度学习和目标检测系列教程17-300:3个类别面罩检测类别数据集训练yolov5s模型(代码片段)
...com/andrewmvd/face-mask-detection这是数据集可以创建一个模型来检测戴口罩、不戴口罩或不正确戴口罩的人。该数据集包含属于3个类别的853张图像,以及它们的PASCALVOC格 查看详情
android实现佩戴安全帽检测和识别(含训练代码+android源码+数据集)(代码片段)
Android实现佩戴安全帽检测和识别(含训练代码+Android源码+数据集)目录 Android实现佩戴安全帽检测和识别(含训练代码+Android源码+数据集)1.前言2.佩戴安全帽检测和识别的方法(1)基于目标检测的佩戴安全帽识... 查看详情
android实现佩戴安全帽检测和识别(含训练代码+android源码+数据集)(代码片段)
Android实现佩戴安全帽检测和识别(含训练代码+Android源码+数据集)目录 Android实现佩戴安全帽检测和识别(含训练代码+Android源码+数据集)1.前言2.佩戴安全帽检测和识别的方法(1)基于目标检测的佩戴安全帽识... 查看详情
android手部检测和手势识别(含训练代码+android源码+手势识别数据集)(代码片段)
Android手部检测和手势识别(含训练代码+Android源码+手势识别数据集)目录Android实时手势动作识别(含训练代码++手势识别数据集)1.前言2.手势识别的方法(1)基于多目标检测的手势识别方法... 查看详情