AR增强现实技术解读

article/2025/8/17 22:57:51

来源:网络  

AR增强现实,是用户对现实世界感知的新技术。

一般认为,AR技术的出现源于虚拟现实技术(Virtual Reality,简称VR)的发展,但二者存在明显的差别。

传统VR技术给予用户一种在虚拟世界中完全沉浸的效果,是另外创造一个世界;而AR技术则把计算机带入到用户的真实世界中,通过听、看、摸、闻虚拟信息,来增强对现实世界的感知,实现了从“人去适应机器”到技术“以人为本”的转变。 

AR技术原理

AR从其技术手段和表现形式上,可以明确分为大约两类,一是Vision based AR,即基于计算机视觉的AR,二是LBS basedAR,即基于地理位置信息的AR。 

01

Vision based AR

基于计算机视觉的AR是利用计算机视觉方法建立现实世界与屏幕之间的映射关系,使我们想要绘制的图形或是3D模型可以如同依附在现实物体上一般展现在屏幕上,如何做到这一点呢?

本质上来讲就是要找到现实场景中的一个依附平面,然后再将这个3维场景下的平面映射到我们2维屏幕上,然后再在这个平面上绘制你想要展现的图形,从技术实现手段上可以 分为2类 :

1、 Marker-Based AR

这种实现方法需要一个事先制作好的Marker(例如:绘制着一定规格形状的模板卡片或者二维码),然后把Marker放到现实中的一个位置上,相当于确定了一个现实场景中的平面。

然后通过摄像头对Marker进行识别和姿态评估(Pose Estimation),并确定其位置,然后将该Marker中心为原点的坐标系称为Marker Coordinates即模板坐标系

我们要做的事情实际上是要得到一个变换从而使模板坐标系和屏幕坐标系建立映射关系,这样我们根据这个变换在屏幕上画出的图形就可以达到该图形依附在Marker上的效果。

理解其原理需要一点3D射影几何的知识,从模板坐标系变换到真实的屏幕坐标系需要先旋转平移到摄像机坐标系(Camera Coordinates)然后再从摄像机坐标系映射到屏幕坐标系。

在实际的编码中,所有这些变换都是一个矩阵,在线性代数中矩阵代表一个变换,对坐标进行矩阵左乘便是一个线性变换(对于平移这种非线性变换,可以采用齐次坐标来进行矩阵运算)。公式如下:

矩阵C的学名叫摄像机内参矩阵,矩阵Tm叫摄像机外参矩阵,其中内参矩阵是需要事先进行摄像机标定得到的,而外参矩阵是未知的,需要我们根据屏幕坐标(xc ,yc)和事先定义好的Marker 坐标系以及内参矩阵来估计Tm,然后绘制图形的时候根据Tm来绘制(初始估计的Tm不够精确,还需要使用非线性最小二乘进行迭代寻优)。

比如使用OpenGL绘制的时候就要在GL_MODELVIEW的模式下加载Tm矩阵来进行图形显示。

2、 Marker-Less AR

基本原理与Marker based AR相同,不过它可以用任何具有足够特征点的物体(例如:书的封面)作为平面基准,而不需要事先制作特殊的模板。

摆脱了模板对AR应用的束缚。

它的原理是通过一系列算法(如:SURF,ORB,FERN等)对模板物体提取特征点,并记录或者学习这些特征点。

当摄像头扫描周围场景,会提取周围场景的特征点并与记录的模板物体的特征点进行比对,如果扫描到的特征点和模板特征点匹配数量超过阈值,则认为扫描到该模板,然后根据对应的特征点坐标估计Tm矩阵,之后再根据Tm进行图形绘制(方法与Marker-Based AR类似)。

02

LBS-Based AR

其基本原理是通过GPS获取用户的地理位置,然后从某些数据源(比如wiki,google)等处获取该位置附近物体(如周围的餐馆,银行,学校等)的POI信息,再通过移动设备的电子指南针和加速度传感器获取用户手持设备的方向和倾斜角度,通过这些信息建立目标物体在现实场景中的平面基准(相当于marker),之后坐标变换显示等的原理与Marker-Based AR类似。

这种AR技术利用设备的GPS功能及传感器来实现,摆脱了应用对Marker的依赖,用户体验方面要比Marker-Based AR更好。

而且由于不用实时识别Marker姿态和计算特征点,性能方面也好于Marker-Based AR和Marker-Less AR,因此对比Marker-Based AR和Marker-Less AR,LBS-Based AR可以更好的应用到移动设备上。

03

AR增强现实系统组成

1、Monitor-based系统

基于计算机显示器的AR实现方案中,摄像机摄取的真实世界图像输入到计算机中,与计算机图形系统产生的虚拟景象合成,并输出到屏幕显示器。

用户从屏幕上看到最终的增强场景图片。它虽然不能带给用户多少沉浸感,但却是一套最简单使用的AR实现方案。

由于这套方案的硬件要求很低,因此被实验室中的AR系统研究者们大量采用。

2、Video see-through系统

头盔式显示器(Head-mounted displays-HMD)被广泛应用于虚拟现实系统中,用以增强用户的视觉沉浸感。

增强现实技术的研究者们也采用了类似的显示技术,这就是在AR中广泛应用的穿透式HMD。

根据具体实现原理又划分为两大类,分别是基于视频合成技术的穿透式HMD(video see-through HMD)和基于光学原理的穿透式HMD(optical see-through HMD)。

Video see-through增强现实系统实现方案

3、Optical see-through系统

在上述的两套系统实现方案中,输入计算机中的有两个通道的信息,一个是计算机产生的虚拟信息通道,一个是来自于摄像机的真实场景通道。

而在optical see-through HMD实现方案中去除了后者,真实场景的图像经过一定的减光处理后,直接进入人眼,虚拟通道的信息经投影反射后再进入人眼,两者以光学的方法进行合成。

4、三种系统结构的性能比较

三种AR显示技术实现策略在性能上各有利弊。

在基于monitor-based和video see-through显示技术的AR实现中,都通过摄像机来获取真实场景的图像,在计算机中完成虚实图像的结合并输出。

整个过程不可避免的存在一定的系统延迟,这是动态AR应用中虚实注册错误的一个主要产生原因。

但这时由于用户的视觉完全在计算机的控制之下,这种系统延迟可以通过计算机内部虚实两个通道的协调配合来进行补偿。

而基于optical see-through显示技术的AR实现中,真实场景的视频图像传送是实时的,不受计算机控制,因此不可能用控制视频显示速率的办法来补偿系统延迟。

另外,在基于monitor-based和video See-through显示技术的AR实现中,可以利用计算机分析输入的视频图像,从真实场景的图像信息中抽取跟踪信息(基准点或图像特征),从而辅助动态AR中虚实景象的注册过程。而基于optical see-through显示技术的AR实现中,可以用来辅助虚实注册的信息只有头盔上位置传感器。

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”


http://chatgpt.dhexx.cn/article/5P9bXESx.shtml

相关文章

【我的渲染技术进阶之旅】【AR研究】第一集—AR的基本原理科普

AR,即增强现实技术,它的出现意味着能将计算机技术带到现实当中来,能使科技更“贴近”人们的现实世界的生活,被誉为可能是代替智能手机的,未来的下一个平台。 作为永远要离未来更近一些的设计师,当然需要了解…

AR技术简谈:相关原理,技术应用以及设备推荐,带你感受虚拟信息与真实世界巧妙融合。

1.AR技术原理 AR技术是一种增强现实技术,利用计算机生成的模拟信息与真实世界进行混合叠加,从而创造出新的虚拟图像。AR技术可以广泛应用于多媒体、智能交互、传感等领域,例如在游戏、教育、医疗、建筑、旅游等领域中,通过AR技术可…

搭建nutz框架实现登录登出

创建web项目 把jar粘贴到lib目录下 全选build path 新建类 类名为MainModule 添加模块类自动扫描 web.xml文件 注意< display-name> 和< parm-name>标签 需要修改 <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns:xsi&q…

使用nutz框架,找不到入口函数,访问Url报404

案例 今天在跟着nutz框架教程去配置demo时&#xff0c;发现访问URL找不到入口函数&#xff0c;出现了Search mapping for path/user/count : NOT Action match 异常&#xff0c;据nutz文档介绍&#xff0c;找不到方法, 一般是At写错或者UserModule的package写错,导致映射不到或…

Nutz框架-- Cnd条件使用原生sql

案例 今天接到一个临时的业务需求&#xff0c;做一个简单的过滤作为临时业务需要使用一两天&#xff0c;于是想到在原有的Cnd条件上加上一个Not like 进行过滤&#xff0c;但是发现现有Cnd条件查询好像满足不了 解决方案 使用Nutz框架中的Static类来实现自定义sql与Cnd.and()拼…

对于nutz框架的学习入门级使用——配置

准备&#xff1a;eclipse&#xff0c;jdk8.0&#xff0c;tomcat8.5&#xff0c;nutz的jar包 第一步&#xff1a;新建一个项目 第二步&#xff1a;导入需要的包&#xff08;数据的jar包也会同时导入&#xff09; 第三步&#xff1a;新建一个Mainmodule的类&#xff0c;并写入如…

Nutz框架crud持久层操作指南

Nutz框架 nutz框架是一个轻量级的ssh框架&#xff0c;因为它有spring的职责&#xff0c;它又负责了hiberate的持久&#xff0c;以及struct的大servlet功能。以及提供了一系列轻便的工具&#xff0c;所以我们能很容易的只专注于业务&#xff0c;此篇在于介绍一下nutz框架持久层…

开源框架Nutz开发者访谈

Nutz是SSH的替代方案,它是一组轻便小型的框架的集合, 各个部分可以被独立使用。 Nutz 的目标是: 在力所能及的情况下,最大限度的提高Web开发人员的生产力 “是的,提高生产力是这个框架唯一的目标。 就像 Java 设计之初,考虑最多的是程序员的易用性和运行时效率的权衡, …

Nutz框架学习(一)

dao层学习 1.创建 POJO(java bean实体类) 在 Java 项目中建立一个POJO&#xff0c;比如 com.zzh.demo.Person : package com.dodoke.bean;import java.util.Date;import org.nutz.dao.entity.annotation.*;Table("t_test") // 声明了Test对象的数据表 public …

Nutz框架的简单使用

Q&#xff1a;什么是Nutz。 A&#xff1a;类似于SSH的一个框架。官网http://www.nutzam.com/ Q&#xff1a;Nutz怎么读。 A&#xff1a;读作 “纳特Z&#xff08;Z发重音&#xff09;”。Nutz 的 Nut 是因为霍金的《果壳中的宇宙》是 zozoh 最喜欢的一本书之一。 Z 是 zozoh 小…

nutz mysql 关键词_nutz框架简单入门

最近几年随着python语言的崛起&#xff0c;java在web方面被各种脚本语言诟病效率低下&#xff0c;这也是事实&#xff0c;java在运用第三方类库(框架)开发时&#xff0c;效率确实很低下。麻烦的框架整合&#xff0c;复杂的配置文件都是拦路虎&#xff0c;不过今天我要推荐的nut…

给大家推荐一个非常非常非常好用的java轻量级框架-Nutz永远滴神

或许以后再也用不到了&#xff0c;写篇文章纪念一下吧~ 前段时间离职来到了现在的新公司&#xff0c;奔向了光明的未来&#xff0c;唯一让我留恋的就是原本使用的框架—Nutz了&#xff0c;这个框架相对于现在的mybatis&#xff08;过段时间可能会“mybatis真香”&#xff09;来…

【Nutz】Nutz起步

一、Nutz 是一组轻便小型的框架集合&#xff0c;可以极大程度上提高开发人员的生产力&#xff0c;更多内容请点击访问Nutz官网。Nutz主要包括以下几个模块&#xff1a; DAO&#xff1a;针对JDBC进行了薄封装&#xff0c;事务模板&#xff0c;无缓存IoC&#xff1a;JSON风格配…

【工具】——远程协助(向日葵)

在烈日炎炎的午后&#xff0c;一片片金黄金黄的田野中&#xff0c;要是能够看到上图这样的风景&#xff0c;那是多么的赏心悦目啊 &#xff0c;并且身旁有佳人&#xff0c;那是何等的荣幸之至。当然&#xff0c;今天的主体就是向日葵&#xff0c;一个远在千里却近乎咫尺之间的桌…

Windows系统自带远程桌面和远程协助怎么连接?

随着IT技术的发展和远程办公的兴起&#xff0c;在日常工作中&#xff0c;远程桌面和远程协助等功能已经成为很多用户需要掌握的技能之一。而对于使用Windows系统的用户来说&#xff0c;Windows系统自带的远程桌面和远程协助功能&#xff0c;更是令人欣喜的利器。下面我们就来一…

Windows实用小工具–Windows远程协助

在企业里&#xff0c;有的公司办公区域比较大&#xff0c;电脑有问题一般都是通过远程、徒步、电话等方式来解决&#xff0c;对于远程协助解决问题&#xff0c;我们首先想到的会是如何连接对方的电脑&#xff0c;相信大家都已经使用过很多的软件了吧&#xff01;当然还有Micros…

远程协助软件

向日葵 https://sunlogin.oray.com/ anydesk https://anydesk.com/zhs/downloads/windows?dvwin_exe ToDesk https://www.todesk.com/ 快速助手 中文&#xff1a;https://learn.microsoft.com/zh-cn/windows/client-management/quick-assist 英文&#xff1a;https://l…

常见的远程协助软件简介

1.RayLink远程控制软件 RayLink是一个支持多系统多设备间相互远程控制的软件&#xff0c;是具有远程制作、远程办公、远程游戏、远程协助等需求的IT技术、游戏玩家、网络办公等这些人的最佳选择。通过使用RayLink&#xff0c;可随时随地远程控制其他电脑或手机&#xff0c;远程…

9款免费的Windows远程协助软件

首先,如果网友和你在同一个局域网中你可以使用的就是Windows 的远程桌面功能。如果你不在局域网中,并且只有一个Internet 连接。你可以通过其他的远程协助软件从互联网中得到网友的帮助。这里我们列出九款免费的Windows远程协助软件。 1。 Team Viewer:TeamViewer是一个既简…

windows 域环境应用---VNC远程协助工具的使用

域环境中&#xff0c;少不了远程协助工具&#xff0c;这可以替管理员省掉许多跑腿的事。<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /> 今天我就介绍一下远程协助工具中的一款 real VNC. 此工具有三个软件&#xff0c; vnc se…