上帝之眼(BEVSee):多相机间无需标定,将各自目标统一到同一坐标系下(代码开源,提供数据集)
Abstract
我们解决了一个新的问题,即在鸟瞰视角(BEV)中无需预先给定相机校准的多视角相机和目标注册问题。这将多视角目标注册问题提升到一个新的无需校准的阶段,从而极大地缓解了许多实际应用中的限制。然而,这是一个非常具有挑战性的问题,因为其唯一的输入是来自不同第一人称视角first-person views(FPVs)的多个RGB图像,没有BEV图像和FPVs的校准,而输出是从所有视角聚合到一个统一平面的图像,包含目标和相机在BEV中的位置和方向。为此,我们提出了一个端到端的框架,通过利用相机和目标的相互依赖性来共同解决相机和目标注册问题,其主要思路如下:
1. 创建一个目标视角变换模块(VTM)将每个行人从FPV投影到虚拟BEV。
2. 推导一个基于多视角几何的空间对齐模块(SAM)来估计统一BEV中的相对相机位姿。
3. 在统一BEV中选择并细化目标和相机的注册结果。
我们收集了一个具有丰富标注的大规模合成数据集用于训练和评估。此外,我们还收集了一个真实数据集用于跨领域评估。实验结果显示了我们方法的显著效果。代码和提出的数据集可以在BEVSee中获得。
https://github.com/zekunqian/BEVSee
Introduction
注册是计算机视觉中的一个重要任务。在这项工作中,我们研究了一个新的具有挑战性的问题,即在鸟瞰视角(BEV)中无需相机校准的相机和人物注册问题。如图1所示,具体来说,给定多视角的多人场景图像,我们的目标是生成每个人物(在本文中称为目标)和相机在BEV中的位置和方向。

Method
我们首先概述了所提出的方法,主要包含三个阶段,如下图所示。
1. 给定从不同视角同时捕获的多个人体场景的多张图像,我们应用视角变换目标检测模块(VTM)来获取每个人在鸟瞰图(BEV)中的位置和面部朝向估计。
2. 我们应用基于几何变换的空间对齐模块(SAM)来估计BEV中的相对相机位姿候选。
3. 接下来,我们使用基于质心距离的候选选择策略,从SAM获得的候选中选择最终的相机位姿估计结果(相机注册)。对于目标注册任务,我们结合空间和外观信息,在BEV中聚合同一个人的多视角目标注册结果。

一、视图变换检测模块 (View-Transform Detection Module)
对于在多人场景中捕获的多张图像的输入,我们首先获取每个人在鸟瞰视角(BEV)中的位置和面部朝向。为此,我们开发了一个使用轻量级全连接(FC)结构并具有三个头部的LocoNet。在此之前,我们首先应用一个现有的人体姿态检测器PifPaf从原始RGB图像中预测每个人的2D骨骼关节,这些骨骼关节将作为输入传入LocoNet,其结构如下图所示。在LocoNet的末端,我们使用一个由简单的多层感知器(MLP)层组成的人体3D定位头部来预测每个人的位置和面部朝向。

二、空间对齐模块(Spatial Alignment Module )
我们通过目标定位对齐来展示相对相机位姿估计(在鸟瞰视角中)。为方便起见,我们首先介绍两个视角的情况。我们的基本思想是,人体的位置和面部朝向在真实世界的3D坐标系中是唯一的,可以用于对齐相机以生成多个2D图像。在从不同第一人称视角(FPV)图像生成的鸟瞰图(BEV)地图中,通过对齐相应的人体位置和面部朝向(作为对齐点),可以在BEV中获得相机位姿。为此,第一步是从不同视角中找到相同的目标。我们通过人体外观特征在输入图像中识别目标,然后在不同视角的BEV中匹配相应的目标。我们使用ResNet-50网络提取每个人的特征,并应用欧几里得距离和Sigmoid函数来创建相似度矩阵(M_pred),该矩阵表示两个视角中目标之间的相似度。然后,我们对每对目标的相似度进行排序,并选择前K对作为匹配对。之后,我们应用几何变换对齐两个BEV(包含所有目标和相机),它们分别表示参考BEV地图和未注册的BEV地图。具体而言,对于一对匹配点,我们应用几何变换,如图4所示,将未注册BEV中的相机位置和朝向旋转和移动到参考BEV中的相机位置和朝向。
三、相机与目标进行配准
1、相机配准。基于前面中获得的相对相机姿态
(δ x k , δ y k , δ θ k ),我们得到了参考和未配准 BEV 之间的相对相机姿态估计的 K 个候选。这里我们将参考 BEV 上的相机姿态表示为 (0, 0, 0)。然后,我们在参考 BEV 的坐标系上得到未配准 BEV 的相机姿态。

2、目标配准
2.1、目标匹配
为了匹配来自多个视图的目标,我们在统一的 BEV 中创建了一个人的空间距离矩阵 M_dis 和角度差异矩阵 M_ang,它们测量来自不同视图的所有目标的距离和角度差异。然后,我们将其与前面中提供相似性矩阵 M_pred 结合起来。我们首先使用三个阈值作为过滤器来选择潜在的匹配目标对,只有落在距离和角度阈值内且超过相似性阈值的对会被识别为同一个目标。此外,我们进一步考虑了两个约束条件以确保准确匹配。第一个是循环一致性,这意味着来自所有视图的同一个目标的连接应该形成一个环路。第二个是唯一性,这意味着一个目标在另一个视图中不应该连接到多于一个的目标。对于上述约束,首先,我们使用经典的数据结构,即联合查找(union-find),来聚合传递关系,这使得在联合查找的联合中的所有目标,通过直接和间接连接,被聚集成一个子图,如下图b所示,这解决了所有目标连接成环的循环一致性问题。其次,我们将问题定义为分层最大生成子图问题,逐层(视图对视图)的扩展限制了每个视图中一个目标最多连接一个节点,以避免唯一性冲突,如下图c所示。为了解决这个问题,我们提出了一个参考 Prim 算法的算法。我们在补充材料中提供了上述策略的更多细节和算法流程。

2.2、目标融合。使用上述目标匹配方法,来自多个视图的目标被视为同一个人,然后我们使用方程中相同的策略来估计目标的最终配准结果。具有最小质心距离的目标的位置和方向将被保留,而其他相同的目标将被移除。特别是,如果只有两个视图,我们使用两个目标之间的平均位置和方向作为融合结果。最终,我们可以得到一个统一的 BEV,其中包含了来自多个视图的相机和目标的配准信息。
Experiments
1、相机配准的效果比较

2、目标物的配准的效果比较

总结
文章的主要贡献包括:
1.首次研究了无需预给定相机校准或真实 BEV 图像的多视图多人体场景的相机和人体配准。
2.提出了一个新颖的解决方案,集成了基于深度网络的 VTM 和基于多视图几何的 SAM。
3.构建了一个新的大规模合成数据集,并通过关键模块的实验结果展示了所提方法的优越性和有效性。跨域研究在真实数据集上验证了他们方法的泛化能力。
引用:
From a Bird’s Eye View to See: Joint Camera and Subject Registration without the Camera Calibration
关注我的公众号auto_driver_ai(Ai fighting), 第一时间获取更新内容。
相关文章:
上帝之眼(BEVSee):多相机间无需标定,将各自目标统一到同一坐标系下(代码开源,提供数据集)
Abstract 我们解决了一个新的问题,即在鸟瞰视角(BEV)中无需预先给定相机校准的多视角相机和目标注册问题。这将多视角目标注册问题提升到一个新的无需校准的阶段,从而极大地缓解了许多实际应用中的限制。然而,这是一个…...
imagesc函数 纵坐标翻转 colormap “set” “jet“
纵坐标默认上小下大 翻转: 在Matlab中,使用imagesc函数绘制的图像的纵坐标默认是从上到下递增的,即下面的值较大,上面的值较小。如果想要翻转纵坐标,使之从上到下递增,可以通过设置坐标轴的YDir属性为’n…...
Postman接口测试工具的原理及应用详解(二)
本系列文章简介: 在当今软件开发的世界中,接口测试作为保证软件质量的重要一环,其重要性不言而喻。随着前后端分离开发模式的普及,接口测试已成为连接前后端开发的桥梁,确保前后端之间的数据交互准确无误。在这样的背景下,Postman作为一款功能强大、易于使用的接口测试工…...
IPython脚本加载秘籍:探索脚本魔法的艺术
IPython脚本加载秘籍:探索脚本魔法的艺术 IPython,这个强大的交互式Python解释器,不仅提供了丰富的交互式编程功能,还允许用户加载和运行Python脚本。这一功能极大地扩展了IPython的实用性,使得用户可以在IPython环境…...
使用shell脚本进行clang-tidy静态代码分析
文章目录 0. 引言1. 完整检测脚本代码 clang-tidy-check.sh1.1 流程图1.2 脚本功能概述 2. 该脚本优缺点 0. 引言 clang-tidy 是基于 Clang 的工具,提供了丰富的代码检查功能,可以根据用户配置文件进行定制化的检查和规则定义。 之前的文章《使用 Clang…...
PHP和phpSpider:如何应对网站变动导致的数据爬取失败?
php和phpspider:如何应对网站变动导致的数据爬取失败? 导语: 网络爬虫是一种自动化程序,用于从网站上获取数据并进行处理。PHP是一种广泛使用的编程语言,而phpSpider是一个基于PHP的开源网络爬虫框架。然而࿰…...
聊聊etsy平台,一个年入百万的项目
聊聊etsy平台,一个年入百万的项目 什么是etsy,这是怎样一个平台,怎样盈利的?相信现在大家满脑子都是这些疑问。 这个平台也是无意间一个学员提到的,据说他朋友靠这个平台年赚好几百万。苦于门槛太高,他也做不了。今天…...
SyntaxError: Unexpected token ‘??=‘
前端运行报错: globalThis.GLOBAL_NX_VERSION ?? GLOBAL_NX_VERSION;^^^SyntaxError: Unexpected token ??解决: 检查node版本 node -v当前使用的是14.21.3的版本,切换到一个16.0.0以上的版本即可,推荐使用nvm管理node版本 …...
python如何输出list
直接输出list_a中的元素三种方法: list_a [1,2,3,313,1] 第一种 for i in range(len(list_a)):print(list_a[i]) 1 2 3 313 1 第二种 for i in list_a:print(i) 1 2 3 313 1 第三种,使用enumerate输出list_a方法: for i,j in enum…...
【面试系列】SQL 高频面试题
欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、…...
【代码随想录训练营】【Day 66】【图论-3】| 卡码 101-104
【代码随想录训练营】【Day 66】【图论-3】| 卡码 101-104 需强化知识点 103,104 优化思路 题目 101. 孤岛的总面积 此处 area 多余 def dfs(grid, x, y, area):dirs [[0, 1], [0, -1], [1, 0], [-1, 0]]m, n len(grid), len(grid[0])area[0] 1grid[x][y] …...
【面试系列】C#高频面试题
欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、…...
AI助力校园安全:EasyCVR视频智能技术在校园欺凌中的应用
一、背景分析 近年来,各地深入开展中小学生欺凌行为治理工作,但有的地方学生欺凌事件仍时有发生,严重损害学生身心健康,引发社会广泛关注。为此,教育部制定了《防范中小学生欺凌专项治理行动工作方案》进一步防范和遏…...
Yolov8可视化界面使用说明,含代码
⭐⭐ YOLOv8改进专栏|包含主干、模块、注意力机制、检测头等前沿创新 ⭐⭐ YOLOv8可视化界面如下 使用需要安装opencv-python、torch、numpy及PySide6(python版本>3.9) pip install PySide6 pip install numpy pip install opencv-python 使用说明 运行下方代码…...
怎么使用MarkDown画矩阵
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 今天写文章需要用到矩阵,记录一下 画矩阵需要用到特殊的语法 (1)画普通矩阵,不带括号的 $$be…...
Kafka入门-基础概念及参数
一、Kafka术语 1. Broker Kafka属于分布式的消息引擎系统,它的主要功能是提供一套完备的消息发布与订阅解决方案。可以为每个业务、每个应用甚至是每类数据都创建专属的主题。 Kafka的服务器端由被称为Broker的服务进程构成,即一个Kafka集群由多个Broke…...
Clickhouse 常见操作
数据查询 从json array string中解析字段 json array string 为json.dumps(array(dict)) select JSONExtractString(row,"Date") as Date from( select arrayJoin(JSONExtractArrayRaw(Remarks)) as row from table x )JSONExtractArrayRaw: 将JsonS…...
Docker使用daocloud镜像加速
之前给大家分享的阿里云的镜像加速,今天再给大家分享一个还可以使用的镜像加速地址daocloud。 经过测试速度还是比较快的。 [rootbogon ~]# cat /etc/docker/daemon.json {"registry-mirrors": ["https://docker.m.daocloud.io"] }[rootbogon…...
flink的窗口
目录 窗口分类 1.按照驱动类型分类 1. 时间窗口(Time window) 2.计数窗口(Count window) 2.按照窗口分配数据的规则分类 窗口API分类 API调用 窗口分配器器: 窗口函数 增量聚合函数: 全窗口函数…...
lodash.js 工具库
lodash 是什么? Lodash是一个流行的JavaScript实用工具库,提供了许多高效、高兼容性的工具函数,能够方便地处理集合、字符串、数值、函数等多种数据类型,大大提高工作效率。 lodash官网 文档参见:Lodash Documentation lodash 在Vue中怎么使用? 1、首先安装 lodash np…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
