2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 目标检测yolo voc coco的BBox格式转换

目标检测yolo voc coco的BBox格式转换

时间:2020-06-17 04:05:26

相关推荐

目标检测yolo  voc  coco的BBox格式转换

yolo, voc, coco bbox格式互转函数

yolo: [xmid, ymid, w, h],归一化到0-1

voc: [x1, y1, x2, y2]

coco: [xmin, ymin, w, h]

def voc2yolo(bboxes, image_height=720, image_width=1280):"""voc => [x1, y1, x2, y2]yolo => [xmid, ymid, w, h] (normalized)"""bboxes = bboxes.copy().astype(float) # otherwise all value will be 0 as voc_pascal dtype is np.intbboxes[..., [0, 2]] = bboxes[..., [0, 2]]/ image_widthbboxes[..., [1, 3]] = bboxes[..., [1, 3]]/ image_heightw = bboxes[..., 2] - bboxes[..., 0]h = bboxes[..., 3] - bboxes[..., 1]bboxes[..., 0] = bboxes[..., 0] + w/2bboxes[..., 1] = bboxes[..., 1] + h/2bboxes[..., 2] = wbboxes[..., 3] = hreturn bboxesdef yolo2voc(bboxes, image_height=720, image_width=1280):"""yolo => [xmid, ymid, w, h] (normalized)voc => [x1, y1, x2, y2]""" bboxes = bboxes.copy().astype(float) # otherwise all value will be 0 as voc_pascal dtype is np.intbboxes[..., [0, 2]] = bboxes[..., [0, 2]]* image_widthbboxes[..., [1, 3]] = bboxes[..., [1, 3]]* image_heightbboxes[..., [0, 1]] = bboxes[..., [0, 1]] - bboxes[..., [2, 3]]/2bboxes[..., [2, 3]] = bboxes[..., [0, 1]] + bboxes[..., [2, 3]]return bboxesdef coco2yolo(bboxes, image_height=720, image_width=1280):"""coco => [xmin, ymin, w, h]yolo => [xmid, ymid, w, h] (normalized)"""bboxes = bboxes.copy().astype(float) # otherwise all value will be 0 as voc_pascal dtype is np.int# normolizinigbboxes[..., [0, 2]]= bboxes[..., [0, 2]]/ image_widthbboxes[..., [1, 3]]= bboxes[..., [1, 3]]/ image_height# converstion (xmin, ymin) => (xmid, ymid)bboxes[..., [0, 1]] = bboxes[..., [0, 1]] + bboxes[..., [2, 3]]/2return bboxesdef yolo2coco(bboxes, image_height=720, image_width=1280):"""yolo => [xmid, ymid, w, h] (normalized)coco => [xmin, ymin, w, h]""" bboxes = bboxes.copy().astype(float) # otherwise all value will be 0 as voc_pascal dtype is np.int# denormalizingbboxes[..., [0, 2]]= bboxes[..., [0, 2]]* image_widthbboxes[..., [1, 3]]= bboxes[..., [1, 3]]* image_height# converstion (xmid, ymid) => (xmin, ymin) bboxes[..., [0, 1]] = bboxes[..., [0, 1]] - bboxes[..., [2, 3]]/2return bboxesdef voc2coco(bboxes, image_height=720, image_width=1280):bboxes = voc2yolo(bboxes, image_height, image_width)bboxes = yolo2coco(bboxes, image_height, image_width)return bboxes

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。