用于目标识别训练的图片标注xml转csv的python代码

用于目标识别的数据需要以下6个字段
图像名称(完整路径),width,height,class,xmin,ymin,xmax,ymax

# coding: utf-8 
import glob 
import pandas as pd 
import xml.etree.ElementTree as ET
classes = ["player","jiangshi"]   
def xml_to_csv(path):
    train_list = []
    eval_list = []       
    for cls in classes:         
        xml_list = []         
        # 读取标注文件         
        for xml_file in glob.glob(path + '/*.xml'):             
            tree = ET.parse(xml_file)             
            root = tree.getroot()             
            for member in root.findall('object'):                 
                if cls == member[0].text:                     
                    value = (path + root.find('filename').text,                              
                        int(root.find('size')[0].text),                              
                        int(root.find('size')[1].text),                              
                        member[0].text,                              
                        int(member[4][0].text),                              
                        int(member[4][1].text),                              
                        int(member[4][2].text),                              
                        int(member[4][3].text)                             
                    )                     
                    xml_list.append(value)           
                for i in range(0,int(len(xml_list) * 0.9)):             
                    train_list.append(xml_list[i])         
                    for j in range(int(len(xml_list) * 0.9) + 1,int(len(xml_list))):             
                            eval_list.append(xml_list[j])       
    column_name = ['filename', 'width', 'height', 'class', 'xmin', 'ymin', 'xmax', 'ymax']         
    # 保存为CSV格式     
    train_df = pd.DataFrame(train_list, columns=column_name)     
    eval_df = pd.DataFrame(eval_list, columns=column_name)     
    train_df.to_csv(path +'train.csv', index=None)     
    eval_df.to_csv(path + 'eval.csv', index=None)     
def main():     
    # path参数跟具自己xml文件所在的文件夹路径修改    
    path = 'C:/Users/53111/Desktop/voc2007/JPEGImages/'  
    xml_to_csv(path)     
    print('Successfully converted xml to csv.')     

main() 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hacker_wooder

谢谢您的赞赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值