将COCO数据集转换为VOC数据集,将本代码跟coco2017放在同一目录下,下载COCO官方数据集,直接运行即可,不需要做任何改动。


'''
把coco数据集合的所有标注转换到voc格式,不改变图片命名方式,
注意,原来有一些图片是黑白照片,检测出不是 RGB 图像,这样的图像不会被放到新的文件夹中
'''
from pycocotools.coco import COCO
import os, cv2, shutil
from lxml import etree, objectify
from tqdm import tqdm
from PIL import Image
# 生成图片保存的路径
CKimg_dir = './coco2017_voc/images'
# 生成标注文件保存的路径
CKanno_dir = './coco2017_voc/annotations'
# 若模型保存文件夹不存在,创建模型保存文件夹,若存在,删除重建
def mkr(path):
if os.path.exists(path):
shutil.rmtree(path)
os.mkdir(path)
else:
os.mkdir(path)
def save_annotations(filename, objs, filepath):
annopath = CKanno_dir + "/" + filename[:-3] + "xml" # 生成的xml文件保存路径
dst_path = CKimg_dir + "/" + filename
img_path = filepath
img = cv2.imread(img_path)
im = Image.open(img_path)
if im.mode != "RGB":
print(filename + " not a RGB image")
im.close()
return
im.close()
shutil.copy(img_path, dst_path) # 把原始图像复制到目标文件夹
E = objectify.ElementMaker(annotate

该脚本用于将COCO2017数据集转换为VOC格式,包括图片和标注文件。代码首先检查目标文件夹,然后读取COCO数据集的JSON注释文件,遍历所有图像,提取类别信息,创建VOC格式的XML标注文件,并将图像复制到新目录。转换过程中,非RGB图像将被忽略。
最低0.47元/天 解锁文章
8134





