YOLO 训练数据准备

namesFile = "TrafficSign.names"
f = open(namesFile)

nameDic = {}

iter_f = iter(f)
classId = 0
for line in iter_f:
    tmp = line.split("\n")[0]
    nameDic[tmp] = classId
    classId = classId + 1

print(nameDic)



csvFile = "train-new.csv"

f = open(csvFile)

iter_f = iter(f)

# 注意,这个写死是为了省事, 需要根据图片 实际情况进行调整
width = 2048
height = 2048


for line in iter_f:
    tmp = line.split(",")
    
    fileName = tmp[0]
    if(fileName == "filename"):
        continue
    
    ftxt = open("yolo\\"+fileName.split(".")[0]+".txt", 'a')
    
    #filename,width,height,class,xmin,ymin,xmax,ymax
    #<object-class> <x_center> <y_center> <width> <height>
    obj = nameDic[tmp[3]]
    
    x1 = float(tmp[4]) / width
    y1 = float(tmp[5]) / height
    x2 = float(tmp[6]) / width
    y2 = float(tmp[7]) / height
    
    xCenter = (x2 + x1)/2
    yCenter = (y2 + y1)/2
            
    objW = (x2 - x1)
    objH = (y2 - y1)
    
    ftxt.write(str(obj) + " " + str(xCenter)[0:5] +" "+ str(yCenter)[0:5] +" "+ str(objW)[0:5] +" "+ str(objH)[0:5] + "\n")
    ftxt.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值