首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Kitti标签转换为Yolo

将Kitti标签转换为Yolo
EN

Stack Overflow用户
提问于 2022-05-06 11:16:36
回答 1查看 158关注 0票数 0

试图将Kitti标签格式转换为Yolo。但在转换后,bbox被放错了位置。这是基蒂包装箱

这是转换代码:

代码语言:javascript
运行
复制
def convertToYoloBBox(bbox, size):
# Yolo uses bounding bbox coordinates and size relative to the image size.
# This is taken from https://pjreddie.com/media/files/voc_label.py .
dw = 1. / size[0]
dh = 1. / size[1]
x = (bbox[0] + bbox[1]) / 2.0
y = (bbox[2] + bbox[3]) / 2.0
w = bbox[1] - bbox[0]
h = bbox[3] - bbox[2]
x = x * dw
w = w * dw
y = y * dh
h = h * dh
return (x, y, w, h)


convert =convertToYoloBBox([kitti_bbox[0],kitti_bbox[1],kitti_bbox[2],kitti_bbox[3]],image.shape[:2])

该函数进行了一些规范化,这对耶洛和产出是必不可少的:

(0.14763590391908976,0.3397063758389261,0.20452591656131477,0.01810402684563757)

但是,当我试图检查以下代码是否正确地完成了规范化时:

代码语言:javascript
运行
复制
x = int(convert[0] * image.shape[0])
y = int(convert[1] * image.shape[1])
width = x+int(convert[2] * image.shape[0]) 
height = y+ int(convert[3] * image.shape[1])

cv.rectangle(image, (int(x), int(y)), (int(width), int(height)), (255,0,0), 2 )

边框放错了位置:

有什么建议吗?转换功能正确吗?还是问题出在检查代码上?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-09 14:47:32

你把质心计算错了。

Kitti标签按左、上、右、下的顺序排列。

要获得质心,必须执行(左+右)/2和(顶部+底部)/2

所以你的代码会变成

代码语言:javascript
运行
复制
x = (bbox[0] + bbox[2]) / 2.0

y = (bbox[1] + bbox[3]) / 2.0

w = bbox[2] - bbox[0]

h = bbox[3] - bbox[1]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72140608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档