AR VR MR 到底有啥区别?

2023-05-16

本文首发于公众号:计算机视觉life。原文链接:AR VR MR 到底有啥区别?

介绍关于AR(Augmented Reality,增强现实)的一系列内容,我们很有必要对它的几个孪生兄妹:VR(Virtual Reality,虚拟现实)、MR(Mixed Reality,混合现实)也做一个介绍。它们都听起来差不多,那么到底它们之间有啥区别呢?

虚拟现实 (VR)

先来说说VR,因为VR最容易理解。简单的来说,VR就是把完全虚拟的世界通过各种各样的头戴显示器(如下图所示)呈现给用户,一般是全封闭的,给人一种沉浸感。所以说,在VR的世界里所有的东西都是虚拟的、假的。
这里写图片描述

最多的应用场景就是游戏,我们在各大展览上看到的带上头盔显示器张牙舞爪的玩游戏的都是VR。本文不多赘述。
这里写图片描述

增强现实 (AR)

顾名思义,就是对真实世界进行增强,这里的「增强」其实是Augment的翻译,其实我觉得翻译为「扩展」更合适,因为AR其实是对真实世界的更多维度的扩展,只不过大家都约定俗成的翻译为「增强」,我们还是沿用增强现实的称谓吧。这里的增强是指通过显示屏幕把虚拟世界叠加到真实世界中去。AR按照原理不同可以分为如下几类:

1、基于标记的增强现实

这里的标记一般使用提前定义好的图案,通过手机、平板电脑的摄像头进行识别,识别后会自动触发(预设好的)虚拟的物体在屏幕上呈现。最早的图案一般都选择二维码来触发AR,因为二维码识别技术非常成熟,简单方便、识别速度快、成功率很高。此外,二维码图案还可以方便的计算镜头位置和方向,实际使用中为了显示效果,一般会将二维码内容进行覆盖。如下图所示

这里写图片描述
不过,现在商业应用不会使用视觉体验较差二维码标记,基本都是基于特定标记图像的增强现实,支付宝的AR实景红包就是这个原理。下图是使用特定图片作为标记的AR展示。
这里写图片描述

2、基于地理位置服务(LBS)的增强现实

基于LBS的增强现实一般使用嵌入在手机等智能设备中的GPS、电子罗盘、加速度计等传感器来提供位置数据。它最常用于地图类应用,比如你打开手机应用开启摄像头对着街道拍照,屏幕上可以显示附近的商家名称、评价等信息。如下图所示。也可以用来进行实景导航等。

这里写图片描述

3、基于投影的增强现实

基于投影的增强现实直接将信息投影到真实物体的表面来呈现信息。举个栗子,比如将手机的拨号键投影到手上,实现隔空打电话。

这里写图片描述
还有就是用于汽车前挡风玻璃的HUD(Head-up Display),可以直接将汽车行驶的速度、油耗、发动机转速、导航等信息直接投影到前挡风玻璃,而不需要低头去看仪表或者手机(这在高速驾驶时非常危险),帮助司机更便捷、全面的感知车况路况,提高驾驶安全性。

4、基于场景理解的增强现实

这是目前使用的最广的,也是最有前景的AR展现形式。其中物体识别和场景理解起着至关重要的作用,直接关系到最终呈现效果的真实感。最有名的就是2016年日本任天堂公司推出的Pokemon Go手游,就是使用的AR技术。玩家可以通过手机屏幕在现实环境里发现精灵,然后进行捕捉或者战斗。比如你面前是一片真实的草地,但透过手机屏幕,你能看见一只小精灵在草地上;把手机移开,其实只有草地,这就是增强现实,把虚拟的物体通过手机屏幕叠加到现实世界里。
这里写图片描述

但是不得不说,Pokemon Go的AR效果其实很差。屏幕显示的精灵很多都是漂浮在现实物体之上的,给人一种非常假的感觉。不过随着AR技术在硬件(深度相机,高性能处理器)和算法(VSLAM算法)方面的发展,目前AR技术在三维场景感知理解方面已经做的非常逼真了。下面是某AR应用的使用场景,大家可以感受一下。
这里写图片描述

混合现实 (MR)

最后重点介绍一下MR,这是一个相对比较新的概念。前面说过,AR是把虚拟的东西叠加到真实世界,而MR则是把真实的东西叠加到虚拟世界里。听起来好像是差不多,反正都是把现实和虚拟互相叠加,但其实差别大了,因为把虚拟叠加到现实里比较容易,只需要用计算机生成好虚拟的物体,然后在真实的画面上显示就好了。但要把现实叠加到虚拟里,可就比较难了。因为首先得把现实的东西虚拟化。虚拟化一般使用摄像头来扫描物体进行三维重建,我们都知道摄像头拍摄的画面其实是二维的,也就是画面是扁平的,丢失了深度信息,所以没有立体感,因此需要通过算法把摄像头拍摄的二维的视频进行三维重建,生成虚拟的三维物体,我们称之为真实物体的虚拟化。MR和AR最大的不同就是可以把虚拟化的效果呈现给多人,实现多人交互。

上面说了这么多,有些读者可能感觉还是太理论了,整个人都蒙蒙哒。我给你举几个例子就比较好理解了。

比如电器故障维修,我们普通消费者在使用电器方面遇到了故障,传统的方法是打售后电话,消费者把电器送到售后维修点或者厂家提供专门的售后上门服务,这一来一回通常需要很多天,而故障很可能就是一个非常简单的小问题,消费者自己就能搞定。如果有了MR技术,消费者只要戴上MR设备,设备上的摄像头将电路板拍成三维的虚拟图像同步给厂商的售后,售后人员看到的就是非常真实的现场情况,他在判断出问题后能直接给出修理建议,而且能在三维的虚拟实体上把每一步都指点出来,消费者只要照着做就行了。
这里写图片描述

此外,MR在教育培训领域也大有用武之地。目前大部分培训还是采用语言文字讲述或者二维图片的形式,非常不直观,各种名词术语很难和真实物体建立联系。如果有了MR技术,培训老师和学员可以处于不同的地方,一起戴上MR设备,眼前就可以呈现相同的三维成像画面,老师在虚拟的三维世界里操作后,学生照做就行了,跟真实世界中的操作基本没有区别。而且还能放大局部,培训效率肯定杠杠滴。

这里写图片描述

还有就是装修设计领域。比如我们要开一家服装店,以前只能在装修结束后才能看到装修后的效果。这就有很大的问题,如果某个设计环节出了问题想要重新调整就要付出不少代价。有了MR,店主可以即时看到装修好的效果,并且可以分享给设计师或者朋友一起讨论交流,想想就令人兴奋。
这里写图片描述

此外,MR还可以在医学、工业制造等领域发挥很大的价值。
这里写图片描述

以上就是我对于VR,AR,MR的理解,上述介绍可能有不太严谨之处,欢迎指正。另外,你觉得哪个技术能够最快普及到大众?还有哪些应用领域?欢迎留言讨论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AR VR MR 到底有啥区别? 的相关文章

  • PX4开发(1):ubuntu下pixhawk开发环境搭建

    1 介绍 之前买了个330的四轴 xff0c 最近想利用起来 xff0c 所以买了个pixhawk来玩 pixhawk是开源的 xff0c 所以想看看能不能在其基础上开发出什么 要做开发首先要配置环境 xff0c 由于官方推荐在linux环
  • μC/OS-II 要点分析 ------ PendSV_Handler

    首先贴出今天要与大家分享的内容源码 xff08 位于内核源码的 os cpu a asm 中 xff09 xff1a PendSV Handler CPSID I MRS R0 PSP CBZ R0 PendSV Handler Nosav
  • PX4开发(2):QGroundControl的使用及电调校准——准备起飞

    1 介绍 上一节把固件烧写好了 xff0c 接下来进行传感器的校准了 xff0c 传感器校准要使用官方的地面站 xff0c 也就是QGC QGroundControl xff0c 官网下载点击这里 安装好QGC后打开 xff0c 然后将pi
  • Linux驱动开发04:块设备驱动和网络设备驱动

    介绍 因为块设备驱动和网络设备驱动实际中用得较少 xff0c 所以只给出驱动模板 xff0c 我也没有具体测试 xff0c 等到实际用到是再研究吧 xff0c 溜了溜了 块设备驱动模板 span class hljs keyword str
  • 支撑程序员的三种精神

    我注意到有三种精神指引着软件开发人员的灵魂 伟大的艺术家精神 xff0c 可信赖的员工精神和自私的实用主义精神 伟大的艺术家精神 如果你听到一种声音说 你不能这样画 xff0c 然后 xff0c 你继续这样画 xff0c 这种反对的声音就会
  • docker数据迁移

    docker数据迁移 前言 开发服务器随着docker运行服务的变多 xff0c docker目录占用磁盘空间也在逐渐变大 xff0c 终于在最近磁盘彻底占满导致容器启动不起来并提示 34 no device space left 34 为
  • 超好看的个人主页官网源码+带动态特效

    正文 这款个人主页源码感觉是我有史以来见过最好看的 xff0c 功能和页面也比较多 xff0c 简约又不失格调 官网带动态特效视频源码 xff0c 修改主页文件即可 程序 wwvwd lanzouw com i6RWe0ag8gde 图片
  • A2W、W2A、A2T、T2A的使用方法

    1 A2W和W2A 在 Window核心编程 xff0c 多字节和宽字节之间转换比较麻烦的 xff0c MultiByteToWideChar函数和WideCharToMultiByte函数有足够多的参数的意义让我们去理解 那么使用ATL的
  • C语言中int到float的强制类型转换

    最近在看一本名为的书 由于我所看过的计算机理论方面的书较少 xff0c 加上自己大学期间一直也不用功 xff0c 所以对于计算机的工作原理以及程序的工作方式我始终只知甚少 xff0c 印象也十分模糊 不过 xff0c 应该说我碰到了一本好书
  • MFC中如何将焦点设置到指定控件上

    MFC中如何将焦点设置到指定控件上 需求 xff1a 窗口打开的时候就将焦点 xff08 光标 xff09 设置到某个指定的控件上去 实现方法 xff1a 设置焦点需要用到setFocus这个方法 xff08 几乎任何编程环境都这样VC x
  • _tcschr、_tcsrchr

    tcschr tcsrchr 好处 xff1a 是可以不管是用unicode 编码还是其他 代码都不用改 C 43 43 标准库函数提供了字符和字符串的操作函数 xff0c 并提供了其UNICODE版本 xff0c 如 xff1a 1 tc
  • vc++ 6.0编译后生成的文件

    vc 43 43 6 0编译后生成的文件 程序在编译后 在目标路径下会生成多个文件 Debug文件夹 exe ilk obj pch pdb idb pdb cpp dsp ncb plg exe 是生成的可执行文件 ilk 当选定渐增型编
  • 除了pid还有什么控制算法,类似pid算法还有哪些

    什么是专家PID xff1f 他和传统的PID有什么区别 xff1f PID是智能控制啊 比如要控制一个水管的水流量 通过流量计 开关阀 让PID来控制开关阀的开关大小使水流量正确 专家PID记得是PID的高级设置 某些个场合一般的PID无
  • c++编译错误:invalid new-expression of abstract class type

    error invalid new expression of abstract class type UserdataActionI 原因 xff1a 出现这个错误原因是new 了一个抽象类出错 xff0c 说明父类 xff08 接口 x
  • Servlet jsp跳转到Servlet 出现404错误的路径设置方法

    jsp跳转到Servlet 出现404错误的路径设置方法 解决一 xff1a 最近又遇到了这种问题 xff0c 百度了好久 xff0c 发现有人说要在action的路径里面写Servlet文件的绝对路径 xff0c 比如说 xff0c 单独
  • 产品经理做APP从头到尾的所有工作流程详解!

    xff08 一 xff09 项目启动前 从事产品的工作一年多 xff0c 但自己一直苦于这样或者那样的困惑 xff0c 很多人想要从事产品 xff0c 或者老板自己创业要亲自承担产品一职 xff0c 但他们对产品这个岗位的认识却不明晰 xf
  • 使用阿里云搭建自己的原型发布站点

    最近在做项目时 xff0c 使用了Axure团队协同工具 AxureShare 时 xff0c 发现了一个问题 xff1a 由于AxureShare服务器在国外 xff0c Axure共享生成的链接访问时非常慢 xff0c 网上找了很多解决
  • 【FTP工具linux错误】Job for vsftpd.service failed because the control process exited with error code

    环境 xff1a 阿里云centos7 2搭建ftp 问题 xff1a 启动vsftpd服务 xff0c 报错 xff1a Job for vsftpd service failed because the control process
  • 【FileZilla错误】500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list

    环境 xff1a ECS里 Centos 7 2 安装了vsftpd Windows安装了FileZilla 问题 xff1a 当链接时报错 xff1a 500 OOPS could not read chroot list file et
  • VirtualBox通过恢复备份快照VDI文件恢复至备份状态

    昨天很贱 xff0c 看到服务器的VB的快照 xff08 SnapShot xff09 是放在C盘的 xff0c 然后C盘的35G空间被这个快照用掉了14G xff0c 加上系统的18G xff0c 还剩3G的空间 关闭VB xff0c 然

随机推荐