首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将边界框坐标转换为Yolo坐标?

将边界框(Bounding Box)坐标转换为Yolo(You Only Look Once)坐标涉及到对目标检测中使用的两种不同坐标系统的理解和转换。以下是详细的解释和转换步骤:

基础概念

  1. 边界框坐标:通常表示为 (x, y, w, h),其中 (x, y) 是左上角的坐标,w 和 h 分别是宽度和高度。
  2. Yolo坐标:表示为 (class_id, x_center, y_center, width, height),其中 (x_center, y_center) 是边界框中心的坐标,width 和 height 是边界框的宽度和高度,所有值都归一化到 [0, 1] 范围内。

转换步骤

假设你有一个边界框坐标 (x, y, w, h),并且你知道图像的宽度和高度分别为 image_width 和 image_height。转换步骤如下:

  1. 计算中心点坐标: [ x_{center} = x + \frac{w}{2} ] [ y_{center} = y + \frac{h}{2} ]
  2. 归一化中心点坐标和尺寸: [ x_{center_norm} = \frac{x_{center}}{image_width} ] [ y_{center_norm} = \frac{y_{center}}{image_height} ] [ width_{norm} = \frac{w}{image_width} ] [ height_{norm} = \frac{h}{image_height} ]
  3. 组合成Yolo格式: [ Yolo_coord = (class_id, x_{center_norm}, y_{center_norm}, width_{norm}, height_{norm}) ]

示例代码

以下是一个Python示例代码,展示如何进行转换:

代码语言:txt
复制
def bbox_to_yolo(bbox, image_width, image_height, class_id):
    x, y, w, h = bbox
    x_center = x + w / 2
    y_center = y + h / 2
    x_center_norm = x_center / image_width
    y_center_norm = y_center / image_height
    width_norm = w / image_width
    height_norm = h / image_height
    return (class_id, x_center_norm, y_center_norm, width_norm, height_norm)

# 示例使用
bbox = (100, 100, 200, 150)
image_width = 800
image_height = 600
class_id = 0

yolo_coord = bbox_to_yolo(bbox, image_width, image_height, class_id)
print(yolo_coord)

应用场景

这种转换在目标检测任务中非常常见,特别是在使用Yolo系列模型进行训练和推理时。Yolo模型需要输入归一化的坐标,因此需要将原始的边界框坐标转换为Yolo格式。

参考链接

通过上述步骤和示例代码,你可以轻松地将边界框坐标转换为Yolo坐标,并应用于目标检测任务中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

卷积神经网络(四) ——目标检测与YOLO算法

当使用上面的fcconv方法时,可以按照把14*14*3成1*1*4的卷积路径,对16*16*3的图片使用同样的方式卷积,则会得到一个2*2*4的结果。...存在的缺点,是无法准确预测边界。 六、YOLO算法 1、概述 YOLO算法,是比较常用的目标检测算法,包括边界预测、非极大值抑制、anchor boxes等概念,下面一一介绍。...3)再次选出此时最大的pc对应的边界,与输出的边界进行IoU的计算,如果IoU的结果≥0.5,则认为这个边界和已经输出的边界相似,则不输出边界;否则输出边界。处理完毕后,剔除该边界。...6、YOLO总结 YOLO是一个非常快速的目标检测的算法,实际中通常设置边界为19*19,设置anchor box 5个左右。...最终输出的y,维度是 边界维度*边界维度*(5+分类数)*anchor数,这里的5,指的是pc、bx、by、bh、bw。 七、R-CNN 除了YOLO,还有一种思想可以解决目标检测。

5.6K60

手把手教你使用PyTorch从零实现YOLOv3(1)

解释输出 通常,(与所有目标检测器一样)将卷积层学习到的特征传递到分类器/回归器上,该分类器/回归器进行检测预测(边界坐标,类标签等)。 在YOLO中,通过使用1 x 1卷积的卷积层来完成预测。...B表示每个单元格可以预测的边界的数量。根据本文,这些B边界中的每一个都可以专门用于检测某种对象。每个边界都有5+C属性,这些属性描述每个边界的中心坐标,尺寸,置信度得分和C类置信度。...然后,将这些变换应用于锚以获得预测。YOLO v3具有三个锚点,可预测每个单元格三个边界。 回到我们前面的问题,负责检测狗的边界将是具有地面真理的锚具有最高IoU的边界。...做出预测 以下公式描述了如何转换网络输出以获得边界预测。 ? YOLO方程 bx,by,bw,bh是我们预测的x,y中心坐标,宽度和高度。tx,ty,tw,th是网络输出的内容。...通常,YOLO不会预测边界中心的绝对坐标。它预测的偏移量是: 相对于预测对象的网格单元的左上角。 通过特征图中的像元尺寸进行归一化,即1。 例如,考虑我们的狗的形象。

3.6K11
  • 从0到1 实现YOLO v3 (Part one)

    这与YOLO如何训练有关,只有一个边界负责检测任何给定的对象。 首先,我们必须确定这个边界属于哪个单元格。 为此,我们将输入图像划分成与最终特征映射相等的维度网格。...下面对YOLO的输出分别做介绍 03 Anchor Boxes 预测边界的宽度和高度可能是有意义的,但实际上,这会导致训练期间不稳定的梯度。...04 中心点预测 通常情况下,YOLO不预测边界中心的绝对坐标。它预测的是偏移量,预测的结果通过一个sigmoid函数,迫使输出的值在0和1之间。例如,考虑上图中狗的情况。...我们如何将检测结果从10647减少到1? 基于对象置信度的阈值 首先,我们根据对象分数过滤。 通常,具有低于阈值分数的被忽略。 非最大抑制(NMS) NMS打算解决同一图像的多重检测问题。...例如,红色网格单元的所有3个边界可能检测到一个对象,或者相邻单元可能检测到相同的对象。 ? 有关YOLO的原理介绍第一部分完成了, 下面将介绍YOLO的网络搭建部分。

    2.2K60

    【计算机视觉】检测与分割详解

    但是现在我们有了另一个完全连接的层,它从先前层次生成的特征Map中预测对象的边界坐标(x,y坐标以及高度和宽度)。因此,我们的网络将产生两个输出,一个对应于图像类,另一个对应于边界。...YOLO(You only look once) YOLO目标检测 Yolo背后的想法是,不要在所有提议的区域进行独立的处理,而是将所有的预测都重组为一个单一的回归问题,从图像像素到包围坐标和分类概率...(x,y)坐标表示边框的中心相对于网格单元格的边界,而宽度和高度则是相对于整个图像预测。概率是以包含对象的网格单元为条件的。我们只预测每个网格单元格的一组类概率,而不管方框B的数量。...给定一幅图像,我们希望预测该图像中目标的位置和身份(类似于目标检测),但是,与其预测这些目标的边界,不如预测这些目标的整个分割掩码,即输入图像中的哪个像素对应于哪个目标实例。...然而现在,除了进行分类和边界预测之外,我们还预测了每个region proposal的分割掩码。

    1K10

    Object Detection in Foggy Conditions by Fusion of Saliency Map and YOLO

    简介YOLO架构是一个完全卷积的神经网络,它将图像像素转换为生成的边界坐标和类[7]的概率。它在全图像上训练,以优化检测。该网络在Titan X GPU上的速度为每秒150帧。...我们提出了融合过程的算法,该算法考虑了在YOLO中显著性地图预测到目标时生成的边界,以及在YOLO预测到的区域中显著性地图中高于阈值的边界的平均置信度。最后,对所有的边界进行合并,得到最优结果。...F、YOLO实时目标检测输入图像由YOLO分割成S×S。物体中心所在的单元格将导致对该物体的检测。网格中的每个元素估计边界的数量和与每个关联的置信值。置信值显示假设如何确定边界包含该项。...YOLO产生的矩阵),Rs (lt、rt、lb,rb)(代表平方子矩阵)的角落, (阈值寻找边界的目标中发现YOLO显著地图)在该地区的预测了意思, 寻找目标边界(寻找具有像素值的对象的边界的阈值...这些边界是由YOLO对象检测和saliency map生成的边界结合的结果。因此, = 0.70是一个合适的阈值。

    2.9K11

    目标检测(object detection)扩展系列(三) Faster R-CNN,YOLO,SSD,YOLOv2,YOLOv3在损失函数上的区别

    下面提到的区别包含了边界的表示和损失函数,为了表达起来方便,我们把它拆成三个部分,分别是边界的中心(x,y)(x,y)(x,y),边界的尺寸(w,h)(w,h)(w,h)和损失函数LLL。...,YOLOv2和YOLOv3 YOLO系列的结构中,YOLO是没有Anchor的,YOLO只有格子,YOLOv2和YOLOv3带Anchor,但是这并不影响它们边界中心点的选择,它们的边界中心都是在预测距离格子左上角点的...特别说明,上图来自《YOLO文章详细解读》 对于上图中蓝色对应的格子(坐标为(xcol=1,yrow=4)(x_{col}=1,y_{row}=4)(xcol​=1,yrow​=4)),假设它预测的输出是红色的...YOLO边界尺寸这个方面,YOLO显得非常孤立,因为它是这5个结构中唯一无Anchor的,由于没有先验,所以YOLO在表达(w,h)(w,h)(w,h)时非常的简单粗暴,就是相对于整个图片的比例做了归一化...YOLO,YOLOv2和YOLOv3 YOLO系列在边界回归损失上用的是L2,并没有参考RPN。 其他损失 最后就是除了分类损失和回归损失外的其他损失函数,主要是起到辅助作用。

    1.6K20

    deeplearning.ai课程笔记--目标检测

    ,然后接下来的 表示的就是坐标,或者说就是边界参数,一般来说就是左上角的坐标加上边界的宽和高,然后最后 3 个就是代表类别了,有多少个类别,就有多少个参数,其数值表示的预测概率。...然后神经网络的损失函数,一般就是采用平方误差策略,假设类别 和网络的输出 ,那么损失函数就是这么计算了,根据上述的标签定义,是有 9 维的: 当然了,这里是用平方误差简化了,实际应用中,通常做法是对边界坐标应用平方差或者类似方法...YOLO 算法的另一个优点是它采用卷积实现,速度非常快,这也是它很受欢迎的原因。 交并比(Intersection over union) 交并比(IoU)表示两个边界交集和并集之比。...当然这里只是预测是否有汽车,那么其实可以暂时不需要分类部分,也就是每个网格输出一个 5 维向量, 以及边界的四个坐标参数。...然后开始实现非极大值抑制算法: 去掉所有预测概率低于阈值的边界,比如设置阈值是 0.6,那么对于 的边界都被抛弃; 在剩下的边界里,将预测概率最高的边界,将其输出作为预测结果; 然后将还剩下的边界

    52000

    专栏 | 目标检测算法之YOLOv1

    介绍 回顾 YOLO 之前的目标检测算法,都是基于产生大量可能包含物体的先验,然后用分类器判断每个先验对应的边界里是否包含待检测物体,以及物体所属类别的概率或者置信度,同时需要后处理修正边界,最后基于一些准则过滤掉置信度不高和重叠度较高的边界...Fig1 事实上,YOLO 并没有真正的去掉候选区,而是直接将输入图片划分成 7x7=49 个网格,每个网格预测两个边界,一共预测 49x2=98 个边界。...坐标 x,y 代表了预测的 bounding box 的中心与栅格边界的相对值。...它将图像划分为 S× S 网格,并且每个网格单元预测 B 个边界,对这些的置信度以及 C 类概率。这些预测值被编码为 S× S×(B * 5 + C)张量。...在 PASCAL VOC 上,网络预测每个图像的 98 个边界和每个的类概率。YOLO 在测试时间速度非常快,因为它只需要一个网络预测,而不像基于分类器的方法,所以速度很快。

    64420

    目标检测之YOLO v3-You Only Look Once(三)

    xy_grid[tf.newaxis, :, :, tf.newaxis, :], [batch_size, 1, 1, anchor_per_scale, 1]) #要计算位移先把int32换为...NMS NMS也就是非极大值抑制,其实就是去除掉那些重叠率较高并且评分较低的边界,这里的步骤分为三步: 判断边界的数目是否大于0(是否检测出边界)。...按照 socre 排序选出评分最大的边界; 计算这个边界与剩下所有边界的IoU并剔除那些 IoU值高于阈值的边界(IoU的计算代码在损失函数部分给出); 这里NMS也给出了两种方法,分别是普通NMS...和YOLO v1一样,我们将他进行拆解,把整个损失函数分为边界损失+置信度损失+分类损失,我们分开来讲(大部分与YOLO v1的损失函数重合,不了解的读者可以先去看看我YOLO v1中讲解损失函数的部分...,这里只会讲和v1不同的地方) 边界损失 这里和YOLO v1一个不同的地方则是当时YOLO v1计算长宽损失的时候多了一个根号。

    71810

    YOLOV3 原理分析(全网资料整理)

    边界预测(Bounding Box Prediction) Yolo v3关于bounding box的初始尺寸还是采用Yolo v2中的k-means聚类的方式来做,这种先验知识对于bounding...也就是说,如果这个对应的是背景,那么这个值应该是 0,如果这个对应的是前景,那么这个值应该是与对应前景 GT的IoU。 Yolo v3使用逻辑回归预测每个边界的分数。...如果边界与真实的重叠度比之前的任何其他边界都要好,则该值应该为1。如果边界不是最好的,但确实与真实对象的重叠超过某个阈值(Yolo v3中这里设定的阈值是0.5),那么就忽略这次预测。...Yolo v3只为每个真实对象分配一个边界,如果边界与真实对象不吻合,则不会产生坐标或类别预测损失,只会产生物体预测损失。...每个预测任务得到的特征大小都为N ×N ×[3∗(4+1+80)] ,N为格子大小,3为每个格子得到的边界数量, 4是边界坐标数量,1是目标预测值,80是类别数量。

    61610

    目标检测(object detection)扩展系列(三) Faster R-CNN,YOLO,SSD,YOLOv2,YOLOv3在损失函数上的区别

    下面提到的区别包含了边界的表示和损失函数,为了表达起来方便,我们把它拆成三个部分,分别是边界的中心 (...,YOLOv2和YOLOv3 YOLO系列的结构中,YOLO是没有Anchor的,YOLO只有格子,YOLOv2和YOLOv3带Anchor,但是这并不影响它们边界中心点的选择,它们的边界中心都是在预测距离格子左上角点的...特别说明,上图来自《YOLO文章详细解读》 对于上图中蓝色对应的格子(坐标为 (...YOLO边界尺寸这个方面,YOLO显得非常孤立,因为它是这5个结构中唯一无Anchor的,由于没有先验,所以YOLO在表达...YOLO,YOLOv2和YOLOv3 YOLO系列在边界回归损失上用的是L2,并没有参考RPN。 其他损失 最后就是除了分类损失和回归损失外的其他损失函数,主要是起到辅助作用。

    61430

    一文看尽目标检测:从 YOLO v1 到 v3 的进化之路

    每个单元格需要预测 B 个边界(bbox)值(bbox 值包括坐标和宽高),同时为每个 bbox 值预测一个置信度(confidence scores)。 此后以每个单元格为单位进行预测分析。...来预测边界,网络为每个边界预测 4 个坐标。...在 YOLO v3[15] 中使用逻辑回归预测每个边界(bounding box)的对象分数。 如果先前的边界比之前的任何其他边界重叠 ground truth 对象,则该值应该为 1。...与 YOLO v2 不同,我们的系统只为每个 ground truth 对象分配一个边界。如果先前的边界未分配给 grounding box 对象,则不会对坐标或类别预测造成损失。...虽然在 YOLO v3 中每个网格预测 3 个边界,看起来比 YOLO v2 中每个 grid cell 预测 5 个边界要少,但因为 YOLO v3 采用了多个尺度的特征融合,所以边界的数量要比之前多很多

    70760

    基于立体R-CNN的3D对象检测

    与大型NLP不同,YOLO设计得很小,可以为设备上的部署提供实时推理速度。...为了简化计算,它们将高度通道求和并将6×28×28换为6×28,其中前4个通道代表将4个关键点投影到相应的u坐标的概率,后两个通道代表概率左右边界上的关键点的集合。...3D Box估计 使用稀疏关键点信息和2D边界信息,可以估算出粗糙的3D边界。 ? 3D包围盒的状态被定义为x = {x,y,z,θ},其分别表示3D中心的点坐标和水平方向上的偏转角。...它们表示左2D边界的左,上,右和下边界,右2D边界的左和右半径以及透视关键点坐标u。每个参数都需要通过相机内部参数进行归一化。...给定透视关键点,可以推断出3D边界的角和2D边界的边缘之间的对应关系。 密集3D对齐 对于左图像中有效ROI区域的每个归一化像素坐标值,图像误差定义为: ?

    1.2K10

    YOLOV3 原理分析(全网资料整理)

    边界预测(Bounding Box Prediction) Yolo v3关于bounding box的初始尺寸还是采用Yolo v2中的k-means聚类的方式来做,这种先验知识对于bounding...也就是说,如果这个对应的是背景,那么这个值应该是 0,如果这个对应的是前景,那么这个值应该是与对应前景 GT的IoU。 Yolo v3使用逻辑回归预测每个边界的分数。...如果边界与真实的重叠度比之前的任何其他边界都要好,则该值应该为1。如果边界不是最好的,但确实与真实对象的重叠超过某个阈值(Yolo v3中这里设定的阈值是0.5),那么就忽略这次预测。...Yolo v3只为每个真实对象分配一个边界,如果边界与真实对象不吻合,则不会产生坐标或类别预测损失,只会产生物体预测损失。...每个预测任务得到的特征大小都为N ×N ×[3∗(4+1+80)] ,N为格子大小,3为每个格子得到的边界数量, 4是边界坐标数量,1是目标预测值,80是类别数量。

    1.2K00

    使用 YOLO 进行对象检测:保姆级动手教程

    它是通过将图像划分为网格并预测网格中每个单元格的边界和类别概率来完成的。如果我们想使用 YOLO 进行汽车检测,则网格和预测的边界可能如下所示: 上图仅包含过滤后获得的最终集。...我们获取每个检测到的对象的类名、大小和坐标: predict() 方法中有多个参数,让我们指定是否要使用预测的边界、每个对象的文本名称等绘制图像。...是一款轻量级易用的图像标注工具,可以直接输出YOLO模型的标注。 ​ 如何将其他格式的数据转换为YOLO YOLO 的注解是txt 文件的形式。..., 540 , 1 我们可以从 txt 文件中拆分每一行,看看它由什么组成: 一行的第一部分指定图像的基本名称:image1.jpg , image2.jpg 一行的第二部分定义了边界坐标和类标签...边界坐标是一个明确的概念,但是指定类标签的class_id编号呢?每个class_id都与另一个 txt 文件中的特定类相关联。

    5K10

    基于YOLO分析人员工服识别算法

    论文中还提到了更快版本的 Yolo,只有 9 个卷积层,其他则保持一致。       YOLO v1全部使用了均方差(mean squared error)作为损失(loss)函数。...由三部分组成:坐标误差、IOU误差和分类误差。       考虑到每种loss的贡献率,YOLO v1给坐标误差(coordErr)设置权重λcoord=5。...为解决这个问题,YOLO 使用λnoobj=0.5修正(置信度误差)iouErr。(此处的‘包含’是指存在一个物体,它的中心坐标落入到格子内)。...图片YOLOv1最后直接使用全连接层对边界进行预测,其中边界的高度是相对整张照片大小的,而由于各个图片中存在不同尺寸和长宽比的物体,YOLOv1在训练过程中学习适应不同物体的形状是比较困难的,这也导致...YOLOv2借鉴Faster-CNN的RPN网络的先验,PRN对CNN特征提取器得到的特征图进行卷积来预测每个位置的边界以及置信度(是否有目标),并且各个位置设置不同尺寸和比例的先验,所有RPN预测的是边界相对于先验的偏移值

    56300

    工地安全帽识别闸机联动开关

    很多人可能将Yolo的置信度看成边界是否含有目标的概率,但是其实它是两个因子的乘积,预测的准确度也反映在里面。...边界的大小与位置可以用4个值来表征:(x,y,w,h)(x,y,w,h),其中(x,y)(x,y)是边界的中心坐标,而ww和hh是边界的宽与高。...还有一点要注意,工地安全帽识别闸机联动开关算法中心坐标的预测值(x,y)(x,y)是相对于每个单元格左上角坐标点的偏移值,并且单位是相对于单元格大小的,单元格的坐标定义。...而边界的ww和hh预测值是相对于整个图片的宽与高的比例,这样理论上4个元素的大小应该在[0,1][0,1]范围。...这样,每个边界的预测值实际上包含5个元素:(x,y,w,h,c)(x,y,w,h,c),其中前4个表征边界的大小与位置,而最后一个值是置信度。

    18310

    yolov1 模型理解

    yolov1 单阶段目标检测网络 设计理念 yolov1 直接采用 regression(回归)的方法进行坐标的检测以及分类,使用一个end-to-end的简单网络,直接实现坐标回归与分类。...每个单元格会预测 B 个边界(bounding box)以及边界的置信度(confidence score)。 ...对于下图中蓝色的那个单元格(坐标为(xcol=1,yrow=4)),假设它预测的输出是红色的bbox, 设bbox的中心坐标为(\( x_{c},y_{c} \)), 那么最终预测出来的(x,y)是经过归一化处理的...对于定位误差,即边界坐标预测误差,采用较大的权重 \( \lambda_{coord} \) 。...然后其区分不包含目标的边界与含有目标的边界的置信度,对于前者,采用较小的权重值 \( \lambda_{noobj} \) ,其它权重值均设为1,然后采用均方误差。 3.

    56920

    目标检测算法之YOLOv1

    介绍 回顾YOLO之前的目标检测算法,都是基于产生大量可能包含物体的先验,然后用分类器判断每个先验对应的边界里是否包含待检测物体,以及物体所属类别的概率或者置信度,同时需要后处理修正边界,最后基于一些准则过滤掉置信度不高和重叠度较高的边界...Fig1 事实上,YOLO并没有真正的去掉候选区,而是直接将输入图片划分成7x7=49个网格,每个网格预测两个边界,一共预测49x2=98个边界。...坐标x,y代表了预测的bounding box的中心与栅格边界的相对值。坐标w,h代表了预测的bounding box的width、height相对于整幅图像width,height的比例。...它将图像划分为S×S网格,并且每个网格单元预测B个边界,对这些的置信度以及C类概率。这些预测值被编码为S×S×(B * 5 + C)张量。...在PASCAL VOC上,网络预测每个图像的98个边界和每个的类概率。YOLO在测试时间速度非常快,因为它只需要一个网络预测,而不像基于分类器的方法,所以速度很快。

    67320
    领券