【目标检测】指定划分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数据集的简介、下载、使用方法之详细攻略
|
数据处理 开发工具 git
coco2017数据集转换为yolo格式(记录过程)
最近做一个yolov5的落地应用项目,用的anylabeling打标,需要将coco2017的数据集转为yolo格式,故写下记录过程!
|
传感器 算法 数据处理
yolo目标检测+目标跟踪+车辆计数+车辆分割+车道线变更检测+速度估计
yolo目标检测+目标跟踪+车辆计数+车辆分割+车道线变更检测+速度估计
|
3月前
|
传感器 人工智能 自动驾驶
自动驾驶中行人目标检测数据集(近4000张图片已标注)| YOLO训练数据集 AI视觉检测
本数据集含近4000张高质量标注图像,专为自动驾驶行人检测设计,精细划分pedestrian(动态行人)、ped(旁观者)、people(人群)三类,覆盖城市、城郊、商圈等多场景,支持YOLOv5-v10等模型训练,助力行为预测与安全决策。
自动驾驶中行人目标检测数据集(近4000张图片已标注)| YOLO训练数据集 AI视觉检测
|
JSON 计算机视觉 数据格式
数据集学习笔记(一):常用检测、行为检测数据集
这篇文章是关于常用目标检测和行为检测数据集的介绍,包括CIFAR系列、COCO、VOC系列、TT100K和UCF101等数据集的详细信息和使用说明。
970 0
数据集学习笔记(一):常用检测、行为检测数据集
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
27730 59
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
XML 机器学习/深度学习 数据格式
YOLOv8训练自己的数据集+常用传参说明
YOLOv8训练自己的数据集+常用传参说明
26817 3
|
机器学习/深度学习 资源调度 算法
YOLOv11改进策略【损失函数篇】| 引入Soft-NMS,提升密集遮挡场景检测精度,包括GIoU-NMS、DIoU-NMS、CIoU-NMS、SIoU-NMS、 EIou-NMS
YOLOv11改进策略【损失函数篇】| 引入Soft-NMS,提升密集遮挡场景检测精度,包括GIoU-NMS、DIoU-NMS、CIoU-NMS、SIoU-NMS、 EIou-NMS
5031 6
|
人工智能 算法 安全
基于YOLOv8的交通车辆实时检测系统【训练和系统源码+Pyside6+数据集+包运行】
基于YOLOv8的交通车辆实时检测系统,使用5830张图片训练出有效模型,开发了Python和Pyside6的GUI界面系统,支持图片、视频和摄像头实时检测,具备模型权重导入、检测置信度调节等功能,旨在提升道路安全和改善交通管理。
3060 1
基于YOLOv8的交通车辆实时检测系统【训练和系统源码+Pyside6+数据集+包运行】
|
机器学习/深度学习 数据可视化 PyTorch
深度学习之如何使用Grad-CAM绘制自己的特征提取图-(Pytorch代码,详细注释)神经网络可视化-绘制自己的热力图
深度学习之如何使用Grad-CAM绘制自己的特征提取图-(Pytorch代码,详细注释)神经网络可视化-绘制自己的热力图
深度学习之如何使用Grad-CAM绘制自己的特征提取图-(Pytorch代码,详细注释)神经网络可视化-绘制自己的热力图