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")
相关推荐
ZhouDevin8 小时前
算法论文/数据集3——CLD(TMLR2025)压缩训练集,仅保留对验证集有益的样本
人工智能·深度学习·算法·计算机视觉
船厂电气自动化ai大模型9 小时前
AI大模型与数学/第63课:矩阵定义、矩阵加法、标量乘法(逐级精讲)
数据结构·人工智能·深度学习·线性代数·算法
Jialu.10 小时前
从 102M 到 34M:BERT 到 BiLSTM 的完整知识蒸馏实现
深度学习·nlp·bert
YOLO数据集集合11 小时前
排球动作识别数据集 | 排球动作 体育分析 动作识别9041期
深度学习·数据集·动作识别·排球动作识别·运动动作识别·体育分析·排球动作
Mid_search11 小时前
高估问题、Target Network、Double DQN
人工智能·深度学习·强化学习·double dqn·bootstrapping·target network
YOLO数据集集合11 小时前
隧道病害检测数据集 | 隧道检测 裂缝识别 渗水监测 剥落检测9037期
人工智能·深度学习·yolo·隧道·裂缝检测·裂缝识别·隧道病害
张继雁13 小时前
不同类型磨削液使用安全注意事项
人工智能·深度学习·安全·业界资讯·远程工作·空间计算
小王20414 小时前
Day 32:DeepLab系列与语义分割进阶
深度学习·神经网络·计算机视觉
Magic-ZYJ15 小时前
HarmonyOS 文件选择与读写:DocumentViewPicker、URI、沙箱目录一次搞清
深度学习·华为·harmonyos
力学与人工智能15 小时前
智能流体力学专题研讨会特邀报告3|边鑫:混合深度学习与迭代方法的粘性不可压流动加速求解
人工智能·深度学习·流体力学·ppt分享