yoloV1 bbox标签转换为yolo

import numpy as np
def convert_bbox2labels(bboxes):
"""
:param bboxes:(N,5)的bbox信息列表
:return:(30,7,7)的yolov1格式的label,需要将(cls_index,dx,dy,dw,dh)转换成(cx,cy,dw,dh,confidence,cx,cy,dw,dh,confidence,....)
tips:(30,7,7) = (info_dim,x,y)
这里进来的值相当于是已经归一化了的
"""
grid_size = 1 / 7.0
label = np.zeros(shape=(30, 7, 7))
# 遍历每一个bbox,把它放入该放的地方
for i in range(len(bboxes)):
bbox = bboxes[i]
# 获取中心点所在-下标-
grid_x = int(bbox[1] // grid_size) #grid_x\grid_y 是物体中心点所在网格的左上角坐标位置
grid_y = int(bbox[2] // grid_size)
cx = bbox[1] / grid_size - grid_x #cx\cy 是物体中心点相对于网格的偏移距离 0~1
cy = bbox[2] / grid_size - grid_y
label[0:5, grid_x, grid_y] = np.array([cx, cy, bbox[3], bbox[4], 1]) # 第一个bounding_box
label[5:10, grid_x, grid_y] = np.array([cx, cy, bbox[3], bbox[4], 1]) # 第二个bounding_box
label[10 + int(bbox[0]), grid_x, grid_y] = 1 # 类别概率
return label

__EOF__

本文作者DeepBrainBoy
本文链接https://www.cnblogs.com/tccjx/p/17013629.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   TCcjx  阅读(235)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏