2D/3D bounding box计算方式详解

2D bounding box

最大包围矩形计算方式:

代码:

python 复制代码
import numpy as np

points = np.array([
    [2, 3],
    [5, 7],
    [4, 1],
    [6, 4]
])

x_min = np.min(points[:, 0])
y_min = np.min(points[:, 1])
x_max = np.max(points[:, 0])
y_max = np.max(points[:, 1])

bbox = (x_min, y_min, x_max, y_max)
print("Bounding box:", bbox)

两个bounding box的交集计算方式:

1,计算x坐标重叠的范围:左区间x_int_min是bbox的x_min的最大值。右区间x_int_max是bbox的x_max的最小值

对y坐标同理

只有当x_int_min<x_int_max且y_int_min<y_int_max时才会有交集的bbox

一个不存在交集bbox的实例如下:

代码实现:

python 复制代码
bbox1 = (2, 1, 6, 7)
bbox2 = (4, 3, 8, 6)

x_int_min = max(bbox1[0], bbox2[0])
y_int_min = max(bbox1[1], bbox2[1])
x_int_max = min(bbox1[2], bbox2[2])
y_int_max = min(bbox1[3], bbox2[3])

if x_int_min < x_int_max and y_int_min < y_int_max:
    intersection_bbox = (x_int_min, y_int_min, x_int_max, y_int_max)
    print("Intersection bbox:", intersection_bbox)
else:
    print("No intersection")

3D bounding box

2D的bbox计算方法可以轻易扩展到3D,只需对三个平面做投影即可变为2d的问题。

代码实现:

python 复制代码
bbox1 = (1, 2, 3, 5, 6, 7)
bbox2 = (4, 3, 5, 8, 7, 9)

x_int_min = max(bbox1[0], bbox2[0])
y_int_min = max(bbox1[1], bbox2[1])
z_int_min = max(bbox1[2], bbox2[2])

x_int_max = min(bbox1[3], bbox2[3])
y_int_max = min(bbox1[4], bbox2[4])
z_int_max = min(bbox1[5], bbox2[5])

if x_int_min < x_int_max and y_int_min < y_int_max and z_int_min < z_int_max:
    intersection_bbox = (x_int_min, y_int_min, z_int_min,
                         x_int_max, y_int_max, z_int_max)
    print("Intersection 3D bbox:", intersection_bbox)
else:
    print("No intersection")
相关推荐
_Jimmy_22 分钟前
AI应用开发工程师面试题库
人工智能·python·深度学习·机器学习·知识图谱
烬羽2 小时前
递归老写崩?一个"退回"公式,把回溯题变成填空题
javascript·深度学习·算法
hongyucai3 小时前
torch具身常用算子
人工智能·深度学习
林泽毅3 小时前
PyTRIO快速入门(一):概念、推理与训练
人工智能·python·深度学习·机器学习·语言模型
橙臣程6 小时前
深度学习3——数据集概述
人工智能·深度学习
其美杰布-富贵-李6 小时前
P-value 到底是什么?从“原假设”到“统计显著性”的完整理解
深度学习·机器学习·统计
爱吃程序猿的喵7 小时前
LingBot-Map 复现与原理剖析:基于 Geometric Context Transformer 的流式 3D 重建
人工智能·python·深度学习·计算机视觉·3d·transformer
FriendshipT8 小时前
Ultralytics:解读Proto模块
人工智能·pytorch·python·深度学习·目标检测
renhongxia19 小时前
AI安全保卫战:我们如何防止“失控”的智能体?
人工智能·深度学习·安全·机器学习·架构·机器人
AI人工智能+9 小时前
药品经营许可证识别技术,融合计算机视觉、自然语言处理和知识图谱,保障药品供应链安全,助力构建智慧药监体系。
深度学习·ocr·药品经营许可证识别