1.目标检测常用数据集格式
2.制作MXNET数据集
3.超详细!手把手教你使用YOLOX进行物体检测(附数据集)
目标检测常用数据集格式
我们常需利用标注工具如LabelImg、LabelMe等制作数据集,或使用开源数据集进行目标检测模型训练。这些数据集格式多样,不具一致性,疫情出入源码目标检测数据格式又相对复杂。因此,为兼容框架和源码,我们通常需将自定义数据集转换为标准格式,如COCO格式和VOC格式,这两种格式因其知名度和解析库而广受欢迎。许多开源数据集都提供格式转换工具,而使用主流标注工具自行标注的数据集也已有许多成熟的开源转换代码。本文旨在介绍VOC和COCO数据集的格式,并说明如何组织数据集目录结构以方便转换。
PASCAL VOC数据集源自同名竞赛,始于年,结束于年。playerprefs 源码虽然不是特别大型的目标检测数据集,但在COCO诞生前,它是非常流行的目标检测任务基准数据集。主要数据集为VOC和VOC,它们的格式相同。以下以VOC为例进行说明。
根级目录下有5个目录:JPEGImages、Annotations、ImageSets、Layout和Action。JPEGImages目录存放所有,Annotations存放对应的XML标注文件,ImageSets文件夹下的txt文件用于数据集划分,Layout和Action文件夹分别按人体部位和动作类别分类。Segmentation文件夹存放分割数据集划分。对于通用目标检测任务,我们通常只需关注Main文件夹下的四个总体划分文件。
VOC数据集的urkeji 源码标注格式中,最外层为annotation标签,包含图像所在文件夹、文件名、来源、图像尺寸等信息,以及多个object标签,每个标签包含一个目标对象的信息。
制作自定义VOC格式的数据集时,需构建三个文件夹:JPEGImages、Annotations和ImageSets/Main,其中Main文件夹存放train.txt、val.txt和test.txt等数据集划分文件。构建VOC格式数据集相对简单,因为LabelImg等工具生成的xml标注就是VOC格式所需的。
COCO数据集是微软构建的一个大型目标检测基准数据集,包括检测、分割、关键点估计等任务。asimplecache源码本文以COCO数据集为例进行说明。COCO数据集的关键文件包括unlabeled、train、val、test和annotations文件夹。annotations文件夹包含各种类型的标注文件,如instances_train.json和instances_val.json。
COCO数据集的标注文件是json格式,包含info、licenses、images、categories和annotations五个部分。images部分包含信息,categories部分包含类别信息,annotations部分包含标注信息,如id、图像id、类别id、sensetime 源码分割级别标注和边界框标注等。
构建COCO数据集时,只需生成子集文件夹和标注文件夹,标注文件夹每个json对应一个子集的标注。VOC和COCO格式也可以互相转换,转换代码可在Github上搜索。
YOLO格式虽然不常用,但其标注格式与VOC类似,为txt格式,每行包含一个目标框,空格分隔的数值代表目标框的位置和大小。
本文介绍了目标检测中常见的两种数据集格式,VOC和COCO,理解这些格式有助于使用目标检测源码和框架。
制作MXNET数据集
在MXNet框架中,读取图像主要采用两种方法:一种是处理.rec格式文件,类似于Caffe框架中的LMDB,优点在于文件稳定,移植性强,但在空间占用和数据增删灵活性上存在不足。另一种方式是结合.lst文件与图像,首先在生成.rec文件过程中会同步创建.lst文件,即图像路径与标签对应列表,以此灵活控制训练集与测试集变化,但对图像格式要求严格,且在图像路径变更或删除时可能无法找到对应图像。MXNet提供im2rec.py文件来生成.lst和.rec文件,源码可从官方GitHub下载,具体参数解释详尽,使用时只需指定.lst文件位置、图像文件夹及数据前缀。
使用im2rec.py文件生成.lst和.rec文件的步骤如下:
1. 首先,使用命令行运行im2rec.py,参数包括输出.lst文件位置、文件夹路径和数据前缀,例如:python im2rec.py --list /home/mark7/Downloads/data /home/mark7/Downloads/test_images。这将生成对应.lst文件,格式为:路径与标签的对应列表。
2. 其次,使用已生成的.lst文件和文件夹路径,运行另一条命令生成.rec文件,如:python im2rec.py /home/mark7/Downloads/data /home/mark7/Downloads/test_images,这将完成.rec文件的生成。
在自定义数据集时,需自行制作.lst文件。一种常用工具是labelme,其生成的标签文件可通过Python的json处理模块读取,获取标注数据。MXNet要求lst文件格式固定,需参照官方文档理解具体意义。在处理标注数据后,可自动生成lst文件,如使用python处理后的json文件内容制作lst文件,再使用im2rec.py生成.rec文件。最终,通过调用MXNet函数,即可利用自定义的rec、lst和inx文件进行模型训练。
超详细!手把手教你使用YOLOX进行物体检测(附数据集)
手把手教你使用YOLOX进行物体检测详解
YOLOX是一个由旷视开源的高效物体检测器,它在年实现了对YOLO系列的超越,不仅在AP上优于YOLOv3、YOLOv4和YOLOv5,而且在推理速度上具有竞争力。YOLOX-L版本在COCO上以.9 FPS的速度达到了.0%的AP,相较于YOLOv5-L有1.8%的提升,并支持ONNX、TensorRT、NCNN和Openvino等多种部署方式。本文将逐步指导你进行物体检测的配置与实践。1. 安装与环境配置
从GitHub下载YOLOX源码至D盘根目录,用PyCharm打开。
安装Python依赖,包括YOLOX和APEX等。
确认安装成功,如出现环境问题,可参考相关博客。
验证环境,通过下载预训练模型并执行验证命令。
2. 制作数据集
使用VOC数据集,通过Labelme标注并转换为VOC格式。可参考特定博客解决环境问题。3. 修改配置文件
-
调整YOLOX_voc_s.py中的类别数和数据集目录。
修改类别名称和测试路径,确保文件路径正确。
4. 训练与测试
-
推荐命令行方式训练,配置参数并执行命令。
测试阶段,修改__init__.py和demo.py,适用于单张和批量预测。
5. 保存测试结果与常见错误处理
-
添加保存测试结果的功能,解决DataLoader worker异常退出问题。
处理CUDNN error,调整相关命令参数。
阅读完整教程,你将能够顺利地在YOLOX上进行物体检测,并解决可能遇到的问题。想了解更多3D视觉技术,欢迎加入3D视觉开发者社区进行交流和学习。