首先,这段代码是看网上大神写的YOLOv1代码学到的,特地在这里记录一下
传送门:动手学习深度学习pytorch版——从零开始实现YOLOv1
def convert(size, bbox):
"""
将bbox的左上角点、右下角点坐标的格式,转换为bbox中心点 + bbox的w,h的格式,并进行归一化
size: [weight, height]
bbox: [Xmin, Ymin, Xmax, Ymax]
即:xyxy(左上右下) ——> xywh(中心宽高)
xyxy(左上右下):左上角的xy坐标和右下角的xy坐标
xywh(中心宽高):边界框中心点的xy坐标和图片的宽度和高度
"""
dw = 1. / size[0]
dh = 1. / size[1]
x = (bbox[0] + bbox[2]) / 2.0
y = (bbox[1] + bbox[3]) / 2.0
w = bbox[2] - bbox[0]
h = bbox[3] - bbox[1]
x = x * dw
y = y * dh
w = w * dw
h = h * dh
return (x, y, w, h)