触类旁通——如何高效完成大型数据集的制作(以VOC数据集为例)

简介: 触类旁通——如何高效完成大型数据集的制作(以VOC数据集为例)

前言


  近期写了一些关于制作数据集的博客,在这里将系统性从逻辑结构构造角度出发进行数据集的制作,网络上关于VOC2COCO数据集的开源代码比比皆是,我门就以VOC数据集的制作为例子为大家介绍如何高效完成数据集的制作。




核心架构


  基于LabelImg进行数据集的制作我想这种方法应该是较为传统的制作数据集的方式,通过开源代码完成LabelImg搭建进行VOC数据集的制作。在这篇博客中我将为大家带来一种快速制作数据集的方式。


核心架构:


  1. 读取摄像头


  1. 构造True循环


  1. 获取视频画面


  1. 对视频画面进行归一化(可设置成自己需要的大小方便后面计算人脸框,避免因外接相机不同造成Bug)


  1. 调用目标检测函数,返回值分别为:目标图像、目标在图像中的X轴坐标值、目标在图像中的Y轴坐标值


  1. 判断返回值中是否存在目标图像或目标在图像中的XY值(有时候画面中没有目标或目标被遮挡导致BUG跳出TURE循环)


  1. 如果返回值判断为不存在目标则disp(No target)


  1. 如果返回值判断为存在目标则执行下面的程序


  1. 给图像命名。图像全名 = 图像名称 + 图像格式


  1. 存储命名结束的图像至指定位置


  1. 给txt文件信息部分进行赋值。TxtInfo = 图像全名+空格+标签+空格+Xmin+空格+Ymin+空格+Xmax+空格+Ymax


  1. 对TxtInfo进行创建txt文件并存储。txt全程 = 图像名称 + .txt


  1. 结束if 和 while True 循环




剖析核心架构:


  在步骤1中,我们读取摄像头是为了获取数据源;我们也可以通过读取文件夹下的图像作为获取数据源;


  在步骤2中,主要是为了能够通过摄像头连接过程中能够持续性获取数据,如果大家是使用读取文件夹的方式的话可以选择剔除掉(如果不剔除的,可以选择一直往指定文件夹内灌数据);


  在步骤3中可以类比为读取图像数据了;


  在步骤4中进行归一化,如果你使用的是通过摄像头获取的数据,可以不用归一化步骤;如果是使用读取文件夹内图像建议使用归一化,这样可以避免采集到的图像的像素大小不统一;


  在步骤5中:这是关键的一步,在调用目标检测函数的时候,我们可以通过形态学自定义搭建检测函数、百度智能云或华为相关接口函数和开源目标检测函数进行完成(大家也自己自己做一个符合自己需要的目标检测函数,例如:fastrcnn\ssd\yolo)


  在步骤6、7和7中的目标作用是筛选出当前获取到的图像是否含有目标,存在目标则计算目标在图像中的XY坐标区间,若没有则打印无目标提示


  在步骤8、9、10中是为了存储存在目标画面,大家在对图像取名的时候可以采用UUID进行命名,整体可以等价为:图像全名 = 图像名称 + 图像格式  | (UUID.JPG = UUID + .JPG)


  在步骤11和12:这是第二关键的一步,我们需要将检测到的信息按照如上所述那般赋值,填写进txt文档中;在给txt文档命名的时候需要将txt文档的名称命名的和图像的名一样 | (UUID.txt ~= UUID.JPG)




展望


  在对txt文档生成后大家可以使用开源代码:txt2xml生成VOC数据集。通过如上核心架构以及对架构的剖析,能够有清晰的思路,在大家需要解决大量数据集的时候能够触类旁通快速完成数据集的制作,在这里希望各位不会再为了数据集的制作而发愁!


   我会例举几个项目至我的Github仓库中:kiven-yangming



相关文章
|
22天前
|
机器学习/深度学习 JSON 数据格式
CatBoost模型部署与在线预测教程
CatBoost模型部署与在线预测教程【2月更文挑战第16天】
47 2
|
22天前
|
SQL Oracle 关系型数据库
C# 利用IDbDataAdapter / IDataReader 实现通用数据集获取
C# 利用IDbDataAdapter / IDataReader 实现通用数据集获取
|
22天前
|
JSON 算法 Shell
【数据集】以人脸关键点为例讲解:如何通过开源项目快速制作关键点数据集
【数据集】以人脸关键点为例讲解:如何通过开源项目快速制作关键点数据集
50 0
|
22天前
|
机器学习/深度学习 缓存 PyTorch
Yolov5如何训练自定义的数据集,以及使用GPU训练,涵盖报错解决
Yolov5如何训练自定义的数据集,以及使用GPU训练,涵盖报错解决
560 0
|
10月前
|
存储 数据挖掘 数据处理
R语言之处理大型数据集的策略
R语言之处理大型数据集的策略
115 4
|
10月前
|
人工智能 缓存 并行计算
终极「揭秘」:GPT-4模型架构、训练成本、数据集信息都被扒出来了
终极「揭秘」:GPT-4模型架构、训练成本、数据集信息都被扒出来了
550 0
|
机器学习/深度学习 数据可视化 Java
深度学习--Pytorch构建栈式自编码器实现以图搜图任务(以cifar10数据集为例)
本文旨在使用CIFAR-10数据集,构建与训练栈式自编码器,提取数据集中图像的特征;基于所提取的特征完成CIFAR-10中任意图像的检索任务并展示效果。
169 0
|
机器学习/深度学习 监控 算法
智能生活垃圾检测与分类系统(UI界面+YOLOv5+训练数据集)
智能生活垃圾检测与分类系统(UI界面+YOLOv5+训练数据集)
796 0
|
机器学习/深度学习 算法 计算机视觉
机器学习中不平衡数据集分类模型示例:乳腺钼靶微钙化摄影数据集(一)
机器学习中不平衡数据集分类模型示例:乳腺钼靶微钙化摄影数据集(一)
216 0
机器学习中不平衡数据集分类模型示例:乳腺钼靶微钙化摄影数据集(一)