【目标检测】指定划分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)


完毕!


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


相关文章
【yolo训练数据集】标注好的垃圾分类数据集共享
【yolo训练数据集】标注好的垃圾分类数据集共享
2008 115
【yolo训练数据集】标注好的垃圾分类数据集共享
|
人工智能 数据可视化 数据处理
快速在 PaddleLabel 标注的花朵分类数据集上展示如何应用 PaddleX 训练 MobileNetV3_ssld 网络
快速在 PaddleLabel 标注的花朵分类数据集上展示如何应用 PaddleX 训练 MobileNetV3_ssld 网络
778 0
快速在 PaddleLabel 标注的花朵分类数据集上展示如何应用 PaddleX 训练 MobileNetV3_ssld 网络
|
1月前
|
数据可视化 计算机视觉
训练数据集(一):真实场景下采集的煤矸石目标检测数据集,可直接用于YOLOv5/v6/v7/v8训练
本文介绍了一个用于煤炭与矸石分类的煤矸石目标检测数据集,包含891张训练图片和404张验证图片,分为煤炭、矸石和混合物三类。数据集已标注并划分为训练和验证集,适用于YOLOv5/v6/v7/v8训练。数据集可通过提供的链接下载。
53 1
训练数据集(一):真实场景下采集的煤矸石目标检测数据集,可直接用于YOLOv5/v6/v7/v8训练
|
1月前
|
机器学习/深度学习 数据可视化 自动驾驶
YOLO11-seg分割如何训练自己的数据集(道路缺陷)
本文介绍了如何使用自己的道路缺陷数据集训练YOLOv11-seg模型,涵盖数据集准备、模型配置、训练过程及结果可视化。数据集包含4029张图像,分为训练、验证和测试集。训练后,模型在Mask mAP50指标上达到0.673,展示了良好的分割性能。
399 4
|
1月前
|
机器学习/深度学习 JSON 数据可视化
YOLO11-pose关键点检测:训练实战篇 | 自己数据集从labelme标注到生成yolo格式的关键点数据以及训练教程
本文介绍了如何将个人数据集转换为YOLO11-pose所需的数据格式,并详细讲解了手部关键点检测的训练过程。内容涵盖数据集标注、格式转换、配置文件修改及训练参数设置,最终展示了训练结果和预测效果。适用于需要进行关键点检测的研究人员和开发者。
204 0
|
6月前
|
XML 机器学习/深度学习 算法
目标检测算法训练数据准备——Penn-Fudan数据集预处理实例说明(附代码)
目标检测算法训练数据准备——Penn-Fudan数据集预处理实例说明(附代码)
172 1
|
机器学习/深度学习 存储 自然语言处理
使用预先训练的扩散模型进行图像合成
使用预先训练的扩散模型进行图像合成
138 1
|
数据采集 机器学习/深度学习 算法
【图像分类】基于yolov5的钢板表面缺陷分类(附代码和数据集)
基于yolov5的钢板表面缺陷分类(附代码和数据集)
【图像分类】基于yolov5的钢板表面缺陷分类(附代码和数据集)
|
测试技术 PyTorch TensorFlow
Yolov5-6.2 正式发布 | Yolov5 也可以训练分类模型啦,语义分割+实例分割很快到来
Yolov5-6.2 正式发布 | Yolov5 也可以训练分类模型啦,语义分割+实例分割很快到来
554 0