資源簡介
這是一個代碼,用于將精細標注的語義分割(多邊形標注的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‘]
???
評論
共有 條評論