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")
相关推荐
liuyunshengsir20 小时前
从 TVM 到 TileLang:一文读懂深度学习编译器为什么走向 Tile 化
人工智能·深度学习·tvm·tilelang
云和数据.ChenGuang20 小时前
fastapi项目拆分实战数据模型
java·服务器·数据库·人工智能·深度学习·fastapi·强化学习
DogDaoDao1 天前
【第10篇】Python 异常处理与调试入门
python·深度学习·ai·程序员·大模型·异常处理与调试
小棉花的ai跨境之旅1 天前
一个人跑通内容自动化管线:5 个真实大坑,第 1 个我就踩了
深度学习
人工干智能1 天前
科普:从时间序列数据到LSTM多步时序预测
深度学习·机器学习
FriendshipT1 天前
ComfyUI 使用 MiniMax H3 进行文生视频
人工智能·pytorch·python·深度学习·音视频
Yao.Li1 天前
踩坑 5090 编译构建 Paddle 源码
人工智能·深度学习·飞桨·paddle
_codemonster1 天前
Transformer的核心机制
人工智能·深度学习·transformer
江畔柳前堤2 天前
LLM 训练核心机制深度解析:Warmup、Cosine Decay 与 Perplexity 的完整知识体系
网络·人工智能·深度学习·算法·机器学习·语音识别
DM今天肝到几点?2 天前
Meta 开源 Muse Glimmer:30B 本地 Agent 模型技术深度解读
人工智能·深度学习·语言模型·开源·知识图谱