当前位置: 移动技术网 > IT编程>脚本编程>Python > PaddleDetection——使用自己制作的VOC数据集进行模型训练的避坑指南

PaddleDetection——使用自己制作的VOC数据集进行模型训练的避坑指南

2020年07月16日  | 移动技术网IT编程  | 我要评论

问题及解决方案

问题一

creat_list.py执行后,生成的trainval.txt和test.txt为空文件夹在这里插入图片描述

解决方法

标准的trainval.txt文件格式,有".jpg"+".xmi"的照片对应信息。
在这里插入图片描述
目前不知道是什么原因creat_list生成的txt文件为空,但是我们可以自己写一个creat_txt.py文件代替creat_list.py文件,将其进行补全:

  • 创建creat_txt.py

creat_txt.py

import os
#定义路径,根据你自己的txt和voc的文件夹位置进行修改
txt_path = "/home/aistudio/PaddleDetection-release-0.2/dataset/voc/VOCdevkit/VOC2007/ImagesSet/Main"
creat_path = "/home/aistudio/PaddleDetection-release-0.2/dataset/voc"
#操作文件夹,写入trainval和test的txt文件
txt_ftrainval = open(os.path.join(txt_path,'trainval.txt'), 'r')
txt_ftest = open(os.path.join(txt_path, 'test.txt'), 'r')
creat_ftrainval = open(os.path.join(creat_path ,'trainval.txt'), 'w')
creat_ftest = open(os.path.join(creat_path , 'test.txt'), 'w')
#读写操作
for i in txt_ftrainval.readlines():
    i = i.strip('\n')
    jpg1 = str("VOCdevkit/VOC2007/JPEGImages/" + i + ".jpg" + "\n")
    xml1 = str("VOCdevkit/VOC2007/Annotations/" + i + ".xml" + "\n")
    creat_ftrainval.write(jpg1)
    creat_ftrainval.write(xml1)
for p in txt_ftest.readlines():
    p = p.strip('\n')
    jpg2 = str("VOCdevkit/VOC2007/JPEGImages/" + p + ".jpg" + "\n")
    xml2 = str("VOCdevkit/VOC2007/Annotations/" + p + ".xml" + "\n")
    creat_ftest.write(jpg2)
    creat_ftest.write(xml2)
creat_ftrainval.close()
creat_ftest.close()
  • 运行py程序:
!python dataset/voc/creat_txt.py
  • 生成结果:
    在这里插入图片描述

问题二

执行train.py报错:
在这里插入图片描述
该报错说明该函数本应该接收到2个参数,但只接收到一个参数,所以我们需要找到该参数,给该参数进行赋值即可。
查看报错函数:
在这里插入图片描述

解决方法

在voc.py中找到该函数,将“None”改为自己对应的"img_path"(照片的路径)和"anno_path"(label的路径)
在这里插入图片描述

注意

需要将默认的label函数中的标签改为自己的label_list,如下图所示:
在这里插入图片描述

本文地址:https://blog.csdn.net/qq_45779334/article/details/107350499

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网