资源简介

这是一个代码,用于将精细标注的语义分割(多边形标注的json文件)标注转为目标检测框标注文件,并生成yolo需要的txt文件(需要的输出格式你们可以自己改)

资源截图

代码片段和文件信息

import json
import os 
from os import listdir getcwd
from os.path import join
import os.path
rootdir=‘/home/wang/下载/数据集/cityscapes/Images/train‘ #写自己存放图片的数据地址
def position(pos): #该函数用来找出xminyminxmaxymax即bbox包围框
    x=[]
    y=[]
    nums=len(pos)
    for i in range(nums):
        x.append(pos[i][0])
        y.append(pos[i][1])
    x_max=max(x)
    x_min=min(x)
    y_max=max(y)
    y_min=min(y)
    b=(float(x_min)float(x_max)float(y_min)float(y_max))
    return b

def convert(size box): #该函数将xminyminxmaxymax转为xywh中心点坐标和宽高
    dw = 1./(size[0])
    dh = 1./(size[1])
    x = (box[0] + box[1])/2.0 - 1
    y = (box[2] + box[3])/2.0 - 1
    w = box[1] - box[0]
    h = box[3] - box[2]
    x = x*dw
    w = w*dw
    y = y*dh
    h = h*dh
    return (xywh)

def convert_annotation(image_id):   
    load_f=open(“./train/%s.json“%(image_id)‘r‘)#导入json标签的地址
    load_dict = json.load(load_f)
    out_file = open(‘./voc_type/train/%s.txt‘%(image_id) ‘w‘) #输出标签的地址
    #keys=tuple(load_dict.keys()) 
    w=load_dict[‘imgWidth‘]  #原图的宽,用于归一化
    h=load_dict[‘imgHeight‘]
    #print(h)
    objects=load_dict[‘objects‘]
   

评论

共有 条评论