使用标记增强技术将虚拟内容呈现到现实场景中

简介: 使用基于标记的增强现实将虚拟内容呈现到场景中。

​一、前言
使用基于标记的增强现实将虚拟内容呈现到场景中。
增强现实 (AR) 通过自然混合真实和虚拟内容来增强现实世界的场景,从而创建新颖的应用程序。例如,增强现实应用程序可以添加虚拟标尺,使用户能够直接从图像数据进行测量。实现增强现实系统需要使用计算机视觉技术来理解场景几何形状,以便可以将虚拟内容以适当的视角和比例添加到场景中。
确定场景几何体的常用方法是使用经过校准的摄像机来检测已知的基准标记,例如 AprilTag。使用基准标记的好处是,它们设计为在各种成像条件和视点下进行检测,并可用于生成准确的相机姿态估计。准确的姿势估计对于产生无缝的AR体验至关重要,这种体验不会随着摄像机在场景中移动而抖动。

在此示例中,校准相机用于检测和跟踪放置在桌子顶部的 AprilTag 标记。AprilTag姿势是在摄像机在场景中移动时估计的,此信息用于在AprilTag顶部投影虚拟长方体。此示例中显示的工作流程突出显示了许多 AR 应用程序中使用的基本计算机视觉技术。

二、加载视频
将视频文件下载到临时目录中。加载要添加AR内容的视频并阅读第一帧。显示第一帧。
1.png

三、加载相机内联函数
AR和VR应用需要经过校准的相机来定义相机在世界上的位置。

四、估计四月标签姿势
函数可用于检测和估计多个AprilTags的姿势。为了估计姿势,该函数需要相机内在和AprilTag的大小。以毫米为单位指定AprilTag的大小,以匹配相机校准期间使用的单位。因为AprilTag是方形的,所以测量一侧的长度就足够了。准确测量尺寸以产生准确的姿势估计非常重要。

若要使 AprilTag 检测速度更快并减少错误检测,请指定 AprilTag 系列。支持广泛的April标签。估计标签姿势。AprilTag 的姿势定义了此示例中使用的世界坐标系。AprilTag的中心是原点。X-Y 平面由 AprilTag 所在的平面定义,Z 轴指向标记。
2.png

按照惯例,该函数返回 AprilTag 姿势,以便 z 轴指向 AprilTag。对于此示例,将 z 轴指向标记之外更为直观,以便可以将位于 AprilTag 顶部的虚拟对象定义为具有正高度值。对估计的标记姿势应用旋转,将 y 轴旋转 180 度以翻转 z 轴。

显示更新的世界坐标轴。

五、定义虚拟内容
定义一个三维长方体以投影到 AprilTag 的顶部。多维数据集以 AprilTag 为中心,并定义为与标记具有相同的大小。

六、向图像添加虚拟内容
使用函数将虚拟长方体顶点投影到影像坐标系中。用虚拟内容扩充图像。

3.png

七、以 3D 形式可视化相机姿势
使用估计的 AprilTag 姿势和相机内在来创建与上面所示图像对应的场景的 3D 虚拟表示。这种虚拟表示对于可视化相机轨迹和调试AR应用程序非常有用。

接下来,使用函数将标签姿势转换为相机外联函数,后者在世界坐标中表示相机方向和位置。最后,使用函数以 3D 形式可视化相机。
5.png

此示例的下一部分演示如何更新相机位置,以便在相机在场景中移动时可视化轨迹。

八、为视频添加虚拟内容并可视化摄像机轨迹
对其余视频帧重复上述步骤。
6.png
7.png
九、总结
此示例展示了使用基于标记的 AR 通过虚拟内容增强场景所需的基本计算机视觉技术。可以扩展此示例中显示的技术,以向场景添加不同类型的内容,例如图像或其他三维形状。

目录
相关文章
|
计算机视觉 Windows Python
windows下使用python + opencv读取含有中文路径的图片 和 把图片数据保存到含有中文的路径下
在Windows系统中,直接使用`cv2.imread()`和`cv2.imwrite()`处理含中文路径的图像文件时会遇到问题。读取时会返回空数据,保存时则无法正确保存至目标目录。为解决这些问题,可以使用`cv2.imdecode()`结合`np.fromfile()`来读取图像,并使用`cv2.imencode()`结合`tofile()`方法来保存图像至含中文的路径。这种方法有效避免了路径编码问题,确保图像处理流程顺畅进行。
1386 1
|
PHP 计算机视觉
罗德里格斯公式推导,以及如何使用cv2.Rodrigues进行旋转矩阵和旋转向量之间的相互转化
罗德里格斯公式推导,以及如何使用cv2.Rodrigues进行旋转矩阵和旋转向量之间的相互转化
546 0
|
Cloud Native 关系型数据库 分布式数据库
PolarDB开源项目未来展望:技术趋势与社区发展方向
【9月更文挑战第5天】随着云计算技术的发展,阿里云推出的云原生分布式数据库PolarDB受到广泛关注。本文探讨PolarDB的未来展望,包括云原生与容器化集成、HTAP及实时分析能力提升、智能化运维与自动化管理等技术趋势;并通过加强全球开源社区合作、拓展行业解决方案及完善开发者生态等措施推动社区发展,目标成为全球领先的云原生数据库之一,为企业提供高效、可靠的服务。
282 5
|
Web App开发 编解码 监控
【Azure 媒体服务】Azure Media Player 在Edge浏览器中不能播放视频问题的分析与解决
【Azure 媒体服务】Azure Media Player 在Edge浏览器中不能播放视频问题的分析与解决
425 0
|
数据可视化 机器人
使用AprilTag标记进行相机校准
AprilTags被广泛用作物体检测、定位应用的视觉标记,并作为相机校准的目标。AprilTags类似于QR码,但旨在编码更少的数据,因此可以更快地解码,这对于实时机器人应用程序非常有用。使用 AprilTags 作为校准模式的优点包括更好的特征点检测以及一致、可重复的检测。
2090 0
|
内存技术
HTTP-FLV详解及分析(二)
HTTP-FLV详解及分析
325 0
|
机器学习/深度学习 Ubuntu Linux
openpose原理及安装教程(姿态识别)
openpose原理及安装教程(姿态识别)
|
算法 编译器 C++
【C++】SonarQube C++ 静态代码检视规则
SonarQube 静态代码检视相关的规则整理
2388 0
|
文件存储 C++
Gazebo导入SolidWorks模型
Gazebo导入SolidWorks模型
1489 0
|
SQL 存储 安全
红蓝对抗-基础学习
安全是一个整体,正如木桶定律,最短的木板是评估木桶品质的标准,安全最薄弱环节也是决定系统好坏的关键。而网络红蓝军对抗的目的就是用来评估企业安全性,有助于找出企业安全中最脆弱的环节,提升企业安全能力的建设。