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

目标检测yolo, voc, coco的BBox格式转换相关推荐

  1. yolov3网络结构图_目标检测——YOLO V3简介及代码注释(附github代码——已跑通)...

    GitHub: liuyuemaicha/PyTorch-YOLOv3​github.com 注:该代码fork自eriklindernoren/PyTorch-YOLOv3,该代码相比master分 ...

  2. 目标检测YOLO系列------YOLO简介

    目标检测YOLO系列------YOLO简介 1.为什么会出现YOLO算法 2.YOLO算法会逐渐成为目标检测的主流吗     YOLO以及各种变体已经广泛应用于目标检测算法所涉及到的方方面面,为了梳 ...

  3. 目标检测任务中常用的数据集格式(voc、coco、yolo)

    在目标检测任务中,常见的数据集格式有三种,分别为voc(xml).coco(json).yolo(txt). 一.Pascal VOC Pascal VOC数据集是目标检测的常用的大规模数据集之一,从 ...

  4. 深度学习目标检测数据VisDrone2019(to yolo / voc / coco)---MMDetection数据篇

    1.VisDrone2019数据集介绍 配备摄像头的无人机(或通用无人机)已被快速部署到广泛的应用领域,包括农业.航空摄影.快速交付和监视.因此,从这些平台上收集的视觉数据的自动理解要求越来越高,这使 ...

  5. 【小样本目标检测实践VOC格式】Frustratingly Simple Few-Shot Object Detection

    文章目录 数据准备 数据来源 数据预处理 FSDet step1.配置环境,跑通demo.py step2.准备base model step3.制作自己的few-shot数据集 builtin.py ...

  6. 目标检测 YOLO v3 验证 COCO 模型

    YOLO,是You Only Look Once的缩写,一种基于深度卷积神经网络的物体检测算法,YOLO v3是YOLO的第3个版本,检测算法更快更准. 本文源码:https://github.com ...

  7. Tensorflow框架:目标检测Yolo思想

    Yolo-You Only Look Once YOLO算法采用一个单独的CNN模型实现end-to-end的目标检测: Resize成448448,图片分割得到77网格(cell) CNN提取特征和 ...

  8. [目标检测]YOLO原理

    1 YOLO 创新点: 端到端训练及推断 + 改革区域建议框式目标检测框架 + 实时目标检测 1.1 创新点 (1) 改革了区域建议框式检测框架: RCNN系列均需要生成建议框,在建议框上进行分类与回 ...

  9. 目标检测 | YOLO系列超全讲解v1,v2,v3

    前言 一.YOLOv1 1. 网络结构 2. 实现方法 3. 损失函数 4. 缺点 二.YOLOv2 1. 网络结构 2. 改进方法 3. YOLO9000 4. 网络训练细节 三.YOLOv3 1. ...

  10. 目标检测 YOLO系列算法

    文章目录 1. YOLO算法 1.1 Yolo算法思想 1.2 Yolo的网络结构 1.2.1 网络输入 1.2.2 网络输出 1.7X7网格 2x30维向量 1.3 Yolo模型的训练 1.3.1训 ...

最新文章

  1. Pytorch之GPU加速计算问题以及model=model.to(device)
  2. 设计模式原则--单一职责原则
  3. metasploit 模块和位置
  4. 电商课题I:集群环境下业务限流
  5. docker虚拟机动态扩展内存
  6. EOS 智能合约源代码解读 (10)token合约“简介”
  7. 安卓scrollview无法滑动_安卓上线前,小光有话想对你们说
  8. python代码打开可执行文件_将自己的Python代码打包成exe文件(更换设备可运行的)...
  9. 控制器及其中$scope
  10. Java图形 图像与多媒体基础,十一. 图形、图像与多媒体1.绘图基础
  11. 异常(Exception )
  12. js中ajax的异步性
  13. flask json传输失败_GO小知识之实例演示 json 如何转化为 map 和 struct
  14. js prototype 原型对象
  15. excel随机数_软网推荐:Windows环境下快速生成随机数
  16. ie select option css,ie浏览器不支持select option italic
  17. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day1】 —— 基础篇1
  18. 08-3 Kubernetes 调度器 - 污点
  19. balsamiq原型工具
  20. 3dmax 建模插件 Rappa Tools 3 笔记

热门文章

  1. 自然语言处理(NLP):国内会议
  2. python应用程序无法正常启动0xc000007b_应用程序无法正常启动0xc000007b怎么解决
  3. js对象的三种继承方式
  4. 图计算论文笔记--SPARC: Self-Paced Network Representation for Few-Shot Rare Category Characterization
  5. SNF快速开发平台MVC-集成了百度开源项目echars
  6. 英语3500词(16/20)trade主题(2022.1.28)
  7. 数据库的研究内容主要有哪些方面?
  8. jupyter notebook 拒绝连接 以及 查 IP
  9. AtCoder Beginner Contest 224题解 A-G
  10. postgresql中DROP OWNED BY user_name对普通用户和只读用户的区别