【目标检测】指定划分COCO数据集训练(车类,行人类,狗类...)

简介: 【目标检测】指定划分COCO数据集训练(车类,行人类,狗类...)

前言


       目标检测中,训练COCO数据(标注好的)时,我们不一定想要全部的80个类别的数据,而是想要一些指定类别的数据作用于特点的任务。比如:行人检测、车辆检测和动物检测等等。本文正是介绍如何使用Python将COCO数据集(标注好的)进行划分。


coco数据集80个类别:


person
bicycle
car
motorbike
aeroplane
bus
train
truck
boat
traffic light
fire hydrant
stop sign
parking meter
bench
bird
cat
dog
horse
sheep
cow
elephant
bear
zebra
giraffe
backpack
umbrella
handbag
tie
suitcase
frisbee
skis
snowboard
sports ball
kite
baseball bat
baseball glove
skateboard
surfboard
tennis racket
bottle
wine glass
cup
fork
knife
spoon
bowl
banana
apple
sandwich
orange
broccoli
carrot
hot dog
pizza
donut
cake
chair
sofa
pottedplant
bed
diningtable
toilet
tvmonitor
laptop
mouse
remote
keyboard
cell phone
microwave
oven
toaster
sink
refrigerator
book
clock
vase
scissors
teddy bear
hair drier
toothbrush


数据集:标注好的COCO数据分享


链接:https://pan.baidu.com/s/18P-hi8a4VVZlffFzLPj3xA

提取码:k0l8

--来自百度网盘超级会员V3的分享


示例:提取汽车类


'''

进行目标检测时,有时只需要训练数据集中的部分图像,以 coco128 为例,只选出其中的车辆类:bicycle car motorcycle bus truck。

coco128 数据集中的标签为 txt 文件,

每一个图像由若干行,每一行对应一个目标的类别序号和 4 个坐标(中心 x,中心 y,宽,高,只需要选出指定类别序号的 txt 文件,

然后保存同名的图像文件即可。coco 数据集同理。

#  从coco128中提取车类的image和label
# 1 car
# 3 bus
# 4 truck

'''


.py


import os
from shutil import copyfile
import xml.etree.ElementTree as ET
def get_objectName(xmlpath):
    dom=ET.parse(xmlpath)
    root=dom.getroot()
    allobj=root.findall("object")
    xmlNames = []
    for i, obj in enumerate(allobj):
        xmlNames.append(obj.find('name').text)
       # print('the obj-{} name is:{}'.format(i,obj.find('name').text))
    return xmlNames
def get_JPGImgName(xmlpath):
    dom=ET.parse(xmlpath)
    root=dom.getroot()
    #print(root.find('filename').text)
    return root.find('filename').text
def split_VOC2007(src_im_path, src_xml_path, dst_im_path, dst_xml_path, split_classes=[]):
    for xml_name in os.listdir(src_xml_path):
        sub_xml = os.path.join(src_xml_path, xml_name)
        for obj_name in get_objectName(xmlpath=sub_xml):
            #print(obj_name)
            if obj_name in split_classes:
                # -- xml --
                copyfile(sub_xml, os.path.join(dst_xml_path, xml_name))
                # -- jpg --
                im_name =  get_JPGImgName(sub_xml)
                sub_im = os.path.join(src_im_path, im_name)
                copyfile(sub_im, os.path.join(dst_im_path, im_name))
                print('{}|{} is copy!'.format(sub_xml, sub_im))
    pass
if __name__ == '__main__':
    split_calsses = ['car', 'bus', 'truck']
    split_VOC2007(src_im_path=r'VOC2007_JPEGImages',src_xml_path=r'VOC2007_Annotations',
                  dst_im_path=r'VOC2007\JPEGImages', dst_xml_path=r'VOC2007\Annotations',
                  split_classes=split_calsses)


完毕!


是不是超级简单呢?如果觉得 有用的话,欢迎大家点赞+收藏!


相关文章
|
算法 数据库 计算机视觉
Dataset之COCO数据集:COCO数据集的简介、下载、使用方法之详细攻略
Dataset之COCO数据集:COCO数据集的简介、下载、使用方法之详细攻略
|
机器学习/深度学习 计算机视觉 网络架构
改进YOLOv8:添加CBAM注意力机制(涨点明显)
改进YOLOv8:添加CBAM注意力机制(涨点明显)
8332 1
|
数据处理 开发工具 git
coco2017数据集转换为yolo格式(记录过程)
最近做一个yolov5的落地应用项目,用的anylabeling打标,需要将coco2017的数据集转为yolo格式,故写下记录过程!
|
JSON 计算机视觉 数据格式
数据集学习笔记(一):常用检测、行为检测数据集
这篇文章是关于常用目标检测和行为检测数据集的介绍,包括CIFAR系列、COCO、VOC系列、TT100K和UCF101等数据集的详细信息和使用说明。
808 0
数据集学习笔记(一):常用检测、行为检测数据集
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
23844 59
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
XML 机器学习/深度学习 数据格式
YOLOv8训练自己的数据集+常用传参说明
YOLOv8训练自己的数据集+常用传参说明
23711 3
|
人工智能 算法 安全
基于YOLOv8的交通车辆实时检测系统【训练和系统源码+Pyside6+数据集+包运行】
基于YOLOv8的交通车辆实时检测系统,使用5830张图片训练出有效模型,开发了Python和Pyside6的GUI界面系统,支持图片、视频和摄像头实时检测,具备模型权重导入、检测置信度调节等功能,旨在提升道路安全和改善交通管理。
2340 1
基于YOLOv8的交通车辆实时检测系统【训练和系统源码+Pyside6+数据集+包运行】
|
XML 数据格式 Python
YOLOv5入门实践(3)——手把手教你划分自己的数据集
YOLOv5入门实践(3)——手把手教你划分自己的数据集
5556 0
YOLOv5入门实践(3)——手把手教你划分自己的数据集
|
机器学习/深度学习 人工智能 文字识别
ultralytics YOLO11 全新发布!(原理介绍+代码详见+结构框图)
本文详细介绍YOLO11,包括其全新特性、代码实现及结构框图,并提供如何使用NEU-DET数据集进行训练的指南。YOLO11在前代基础上引入了新功能和改进,如C3k2、C2PSA模块和更轻量级的分类检测头,显著提升了模型的性能和灵活性。文中还对比了YOLO11与YOLOv8的区别,并展示了训练过程和结果的可视化
22772 0
|
XML 数据格式 Python
将xml标签转换为txt(voc格式转换为yolo方便进行训练)
该文章提供了一个Python脚本,用于将VOC格式的XML标签文件转换为YOLO训练所需的TXT格式,包括修改数据集类别、输入图像与标注文件夹地址、转换过程和结果展示。
将xml标签转换为txt(voc格式转换为yolo方便进行训练)