栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【深度学习】Yolov5标签归一化处理——json转换为txt

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【深度学习】Yolov5标签归一化处理——json转换为txt

一、标签转换

如下图所示,是标注的json文件。这里转换的时候所需要的,最重要的信息是 category_id和bbox,用这两个来转换成txt

需要完成以下的转换——> 左边的可能是其他渠道或者任务提供的json标注,右边的txt是yolov5所需要的标注

二、边界框(bounding box)说明

在目标检测中,用边界框来表示物体的位置,边界框为能正好包含物体的矩形框。如下图中包含框选的矩形框即为边界框。

边界框的表达形式:
  • xyxy格式: 边界框由左上角坐标(x1,y1)和右下角坐标(x2,y2)表示

  • xywh格式: 边界框由中心坐标(x,y)和框的长宽(w,h)表示——YOLO中主要采用的是这种

根据以上的标准,在进行转化之前,你需要知道你的json文件里面bbox存储的是哪种形式。

三、转换 1. bbox(x1,y1,x2,y2)的情况
  • size为图片的尺寸,一般json文件中可以获取,以list的形式储存,如[1920, 1080]
  • box为json里的边界框bbox,同样以list的形式表示
def convert(size,box):
    dw = 1. / size[0]
    dh = 1. / size[1]
    x = (box[0] + box[2]) / 2.0
    y = (box[1] + box[3]) / 2.0
    w = box[2] - box[0]
    h = box[3] - box[1]
    x = x * dw
    w = w * dw    
    y = y * dh
    h = h * dh
    return(x,y,w,h)
1. bbox(x,y,w,h)的情况
 def convert(siez,box):
    x, y, w, h = item['bbox']
    dw = 1. / size[0]
    dh = 1. / size[1]
    x = x * dw
    w = w * dw
    y = y * dh
    h = h * dh
    return(x,y,w,h)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/869212.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号