科学技术的发展拓展了人类感知的深度与广度,增强了人类对世界的认知能力。高速的数据流使信息的传递与获取前所未有的便捷,虚实融合技术的出现,开创了人类认知领域新的维度,推动着信息获取向更高效、直观、更具真实感的方向发展。

1.1 增强现实技术概述
增强现实技术是一种将虚拟信息与真实世界融合展示的技术,其广泛运用了人工智能、三维建模、实时跟踪注册、虚实融合、智能交互、传感计算等多种技术手段,将计算机生成的文字、图像、三维模型、音频、视频、动画等虚拟信息模拟仿真后,应用到真实世界中。增强实现技术同时考虑了真实世界与虚拟信息的相互关系,虚实信息互为补充,从而实现对真实世界的增强。

1.1.1 AR概述
VR、AR、XR、MR这些英文术语缩写有时让初学者感到困惑。VR是Virtual Reality的缩写,即虚拟现实,是一种能够创建和体验纯虚拟世界的计算机仿真技术,它利用计算机生成交互式的全数字三维视场,能够营造全虚拟的环境。AR是Augmented Reality的缩写,即增强现实,是采用以计算机为核心的现代科技手段将生成的文字、图像、视频、3D模型、动画等虚拟信息以视觉、听觉、味觉、嗅觉、触觉等生理感觉融合叠加至真实场景中,从而对使用者感知到的真实世界进行增强的技术。VR是创建完全数字化的世界,隔离真实与虚拟,AR则是对真实世界的增强,融合了真实与虚拟。近年来,VR与AR技术快速发展,应用越来越广,并且相互关联、相互促进,很多时候会被统称为XR。

MR是Mixed Reality的缩写,即混合现实,是融合真实和虚拟世界的技术,混合现实概念由微软公司提出,强调物理实体和数字对象共存并实时相互作用,如虚实遮挡、反射等。相对而言,AR强调的是对真实世界的增强,MR则更强调虚实的融合,但AR与MR区分并不明显,随着技术的发展,AR也能够实现环境遮挡、人形遮挡、场景深度等等。

本系列我们主要关注AR技术,并将详细讲述如何利用AREngine技术开发构建移动端AR应用,AR虚实融合效果如图1-1所示。

图1-1 AR技术是将虚拟信息叠加在真实环境之上从而达到增强现实的目的

早在1901年,作家L. Frank Baum就提出将电子数据叠加在实现之上产生虚拟与实现混合的思想,当时他把这种技术称之为“字符标识”,这是有记载最早的虚拟现实设想,但是,受之于当时的软硬件技术及整体科技水平,也只能是一种设想。第一个为用户提供沉浸式增强现实体验功能的AR系统在20世纪90年代初出现,其虚拟装置及系统于1992年在美国空军阿姆斯特朗实验室开发。在AR技术萌芽后,经过无数代人的努力,最早将AR技术带到普通大众视野的是Google公司的Google Glass增强现实眼镜,虽然Google Glass项目进展并不顺利,但它给整个AR行业带来了生机和活力,AR研究及应用由此进入到蓬勃发展时期,微软HoloLens、Magic Leap、太若nReal相继推出眼镜产品。特别是2017年Apple公司的ARKit、Google公司的ARCore SDK,以及华为公司的AREngine SDK的推出,把AR从专门的硬件中剥离了出来,使得普通手机也可以体验到AR带来的奇妙感受,由此,AR越来越受到各大公司的重视,技术也是日新月异,百花齐放。

增强现实顾名思义是对现实世界环境的一种增强,在这种环境中,现实世界中的物体被计算机生成的文字、图像、视频、3D模型、动画等虚拟信息“增强”,甚至可以跨越视觉、听觉、触觉、体感和嗅觉等多种感官模式。叠加的虚拟信息可以是建设性的(即对现实环境的附加),也可以是破坏性的(即对现实环境的掩蔽),并与现实世界无缝的交织在一起,让人产生身临其境、真假难辨的感观体验,分不清虚实。通过这种方式,增强现实可以改变用户对真实世界环境的持续感知,这与虚拟现实将虚实隔离,用虚拟环境完全取代用户真实世界环境完全不一样。

增强现实的主要价值在于它将数字世界带入到个人对现实世界的感知中,而不是简单的数据显示,通过与被视为环境自然部分的沉浸式集成来实现对现实的增强。借助先进的AR技术(例如计算机视觉和物体识别),用户周围的真实世界变得可交互和可操作。简而言之,AR就是将虚拟信息放在现实中展现,并且让用户和虚拟信息进行互动,AR通过环境理解、注册等技术手段将现实与虚拟信息进行无缝对接,将在现实中不存在的事物构建在与真实环境一致的同一个三维场景中予以展现、衔接融合。

增强现实技术的发展将改变我们观察世界的方式,想像用户行走或者驱车行驶在路上,通过增强现实显示器(AR眼镜或者全透明档风玻璃显示器),信息化图像将出现在用户的视野之内(如路标、导航、提示),这些增强信息将实时更新,并且所播放的声音与用户所看到的场景保持同步,从而引发人类对世界认知方式的变革。

1.1.2 AR技术
AR技术是一门交叉综合技术,其涉及到数学、物理、工程、信息技术、计算机技术等多领域的知识,相关专业术语、概念也非常多,其中最重要的概念术语主要有以下一些。

1.硬件
  硬件是AR的物质基础,增强现实需要的硬件主要包括处理器、显示器、传感器和输入设备。有些需要一些特殊的硬件,如深度传感器、眼镜、LiDAR,通常这类AR设备价格昂贵,有些则不需要专门的硬件,普通的移动终端如智能手机和平板电脑就能满足要求,它们也通常包括RGB相机和MEMS传感器(Micro-Electro-Mechanical System,微机电系统),如加速度计、陀螺仪和固态电子罗盘等。

2.显示
  在增强现实中叠加的虚拟信息需要借助显示设备以便反馈到人脑中去,这些显示设备包括光学投影系统、显示器、手持设备和佩戴在人体上的显示系统。头显(Head Mounted Display,HMD)是一种佩戴在前额上的显示装置。HMD将物理世界和虚拟物体的图像放置在用户的眼球视场上,现代HMD经常使用传感器进行6自由度监控,允许系统将虚拟信息与物理世界对齐,并根据用户头部运动相应地调整虚拟信息;眼镜是另一种常见的AR显示设备,眼镜相对更便携也更轻巧;移动终端如手机屏幕也是AR常见显示设备。

3.眼镜
  眼镜(Glassess)这里特指类似近视眼镜的AR显示器,但它远比近视眼镜复杂,它使用RGB相机采集真实环境场景,通过处理器对环境进行跟踪并叠加虚拟信息,并将增强的虚拟信息投射在目镜上。

4.HUD
  抬头显示器(Head Up Display,HUD)是一种透明的显示器,显示数据而不需要用户远离观点。HUD是增强现实技术的先驱技术,在20世纪50年代首次为飞行员开发,将简单的飞行数据投射到他们的视线中,从而让他们保持“抬头”而不用看仪器设备。因为HUD可以显示数据、信息和图像,同时允许用户查看真实世界,也是一种AR显示设备。

5.SAR
  空间增强现实(Spatial Augmented Reality,SAR)利用数字投影仪在物理对象上显示图形信息,SAR系统的虚拟内容直接投影在现实世界中。任何物理表面,如墙体、桌面、泡沫、木块甚至是人体都可以成为可交互的显示屏。随着投影设备尺寸、成本、功耗的降低以及3D投影技术的不断进步,SAR也处于快速发展阶段。

6.跟踪
  跟踪是AR实现定位的基础,增强现实系统综合使用以下一种或多种传感器数据实现用户跟踪:RGB相机和/或其他光学传感器、加速度计、GPS、陀螺仪、固态罗盘、RFID、深度相机、结构光、TOF、LiDAR,这些技术提供了不同的测量方面和精度水平。跟踪最重要的是跟踪用户头部或设备的姿态、跟踪用户的手或手持式输入设备,提供6自由度交互。

7.输入设备
  输入设备包括普通的屏幕输入、手柄输入、将声音翻译成计算机指令的语音识别系统、通过视觉检测或从嵌在外围设备中的传感器来解析用户身体运动的肢体识别和手势识别系统等等,输入设备泛指所有输入技术采用的设备。

8.处理器
  处理器负责与增强现实相关的图形及算法运算、虚实融合、显示等等计算处理。处理器接收来自传感器的数据、扫描的环境信息,理解注册跟踪环境,生成图像视频模型等虚拟信息并叠加到合适的位置,最后渲染到显示设备上供用户察看。处理器也从硬盘或者数据库中读取信息,随着处理器技术的进步,处理器的运算速度越快,增强现实能处理的信息就越多,AR体验就越流畅越真实。

9.软件与算法
  AR系统的一个关键度量参数是虚拟信息与真实世界的结合度,AR系统从摄像机图像中获取与摄像机无关的真实世界坐标,这个过程称为图像配准,通常由两个阶段组成:第一阶段是在摄像机图像中检测特征点、基准标记或光流,该步骤可以使用特征检测方法,如角点检测、斑点检测、边缘检测或阈值处理等图像处理方法;第二阶段从第一阶段获得的数据恢复真实世界坐标系,在某些情况下,场景三维结构应预先计算,如果场景是未知的,即时定位和建图(SLAM)可以映射相对位置。第二阶段的数学方法包括射影(极线)几何、几何代数、指数映射旋转表示、卡尔曼滤波和粒子滤波、非线性优化、稳健统计等。在当前的移动AR中,算法大多与计算机视觉相关,主要与图像识别跟踪相关,增强现实的许多计算机视觉方法从视觉测径法继承,随着LiDAR传感设备在移动端的普及应用,对场景的几何结构构建更加的准确高效。

10.交互
  AR中叠加的虚拟信息应该支持与用户的交互,增强现实技术令人兴奋的原因之一也是在真实的世界中引入3D虚拟数字信息并可以与之交互。 这个交互包括用户操作下的反馈,也包括程序自发的主动交互,如随着距离的不同显示不同的细节信息等。

1.1.3 AR技术应用
  AR系统具有3个突出的特点:

①真实世界和虚拟信息融合;

②具有实时交互性;

③在三维尺度空间中定位虚拟物体。

AR技术因为可以将虚拟信息叠加到现实世界之上因而在很多领域都具有广泛的应用前景,从在相当多的领域都具有发展潜力,AR技术可广泛应用于数字领域。游戏和娱乐是最显而易见的应用领域,在该领域AR正处于快速发展中。 除此之外,AR技术在消费、考古、博物、建筑、视觉艺术、零售、应急管理/搜救、教育、工业可视化、工业设计、医学、空间沉浸与互动、飞行训练、军事、导航、旅游观光、虚拟装潢等等领域都有着广阔的应用前景。

提示

在系列博文中:虚拟元素、虚拟对象、虚拟信息、虚拟物体均指在真实环境上叠加的由计算机处理生成的文字、图像、3D模型、视频等虚拟非真实信息,严格来讲它们是有差别的,但在描述时并不严格区分这四者之间的差异。

AREngine概述AREngine开发教程相关推荐

  1. Android开发教程JAVA基础(汇总)

    Android游戏开发视频教程(汇总) Android开发教程JAVA基础之Java 概述 Android开发教程JAVA基础之标示符.关键字1 Android开发教程JAVA基础之标示符.关键字2 ...

  2. Kendo UI开发教程(9): Kendo UI Validator 概述

    Kendo UI Validator 支持了客户端校验的便捷方法,它基于HTML 5 的表单校验功能,支持很多内置的校验规则,同时也提供了自定义规则的便捷方法. 完整的Kendo UI 的Valida ...

  3. 仙剑奇侠传 游戏 开发 教程 Xianjian qixia development Game development tutorial

    仙剑奇侠传 开发  游戏 开发 教程 Xianjian qixia development Game development tutorial 作者:韩梦飞沙 Author:han_meng_fei_ ...

  4. 微信小游戏开发教程-游戏实现1

    微信小游戏开发教程-游戏实现1 概述 微信开发者工具官方提供一个飞机大战的游戏Demo,这里我们不再使用这个demo,我们以FlappyBird为例,为了让读者更加容易理解. 源码 https://g ...

  5. Unity网络多玩家游戏开发教程(上册)

    Unity网络多玩家游戏开发教程(上册) 试读文档下载地址:http://pan.baidu.com/s/1jGwwxam Unity作为强大的游戏开发平台,为网络游戏的的开发提供大量的组件和API. ...

  6. 推荐20个很有帮助的 Web 前端开发教程

    在平常的搜索中,我碰到过很多有趣的信息,应用程序和文档,我把它们整理在下面这个列表.这是收藏的遇到的有用内容的一个伟大的方式,可以在你需要的时候方便查阅.相信你会在这个列表中发现对你很有用的资料. 您 ...

  7. Hyperledger Fabric Rest API服务开发教程【含源码】

    Hyperledger Fabric Rest API服务开发教程[含源码] Hyperledger Fabric 提供了软件开发包/SDK以帮助开发者访问fabric网络 和部署在网络上的链码,但是 ...

  8. php考试倒计时提交系统,AJAX_基于Ajax技术实现考试倒计时并自动提交试卷,1.概述在开发网络考试系统 - phpStudy...

    基于Ajax技术实现考试倒计时并自动提交试卷 1.概述 在开发网络考试系统时,考试计时并自动提交试卷是必不可少的功能.由于在答卷过程中,试卷不能刷新,所以需要使用Ajax实现无刷新操作.运行本实例,访 ...

  9. iPhone开发教程 UI基础课程(58课时)

    qianqianlianmeng iPhone开发教程 UI基础课程(58课时) 第一章   iPhone开发入门 UI基础课程 第一章 iPhone开发入门 1.1 iOS概述和架构         ...

最新文章

  1. ajax异步后台存放购物车表,jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)...
  2. 一个后台开发工程师的“窦娥冤”!
  3. bzoj1412[ZJOI2009]狼和羊的故事
  4. 【渝粤教育】国家开放大学2018年春季 8638-22T薪酬制度与薪酬管理 参考试题
  5. debian换源_WSL2安装Debian(Ubuntu)并配置国内apt源
  6. MySql join on 和 where
  7. 吴恩达机器学习 7.神经网络参数的反向传播算法
  8. 动态规划——最长公共子序列
  9. java r日历系统_Java GrerorianCalendar 实现日历查询
  10. ixgbe驱动不支持三方兼容光模块SFP+SFP+或者QSFP的解决方案
  11. IntelliJ IDEA 如何设置黑色主题以及Java字体的大小与颜色
  12. 安装Win10操作系统-纯净版
  13. 用git和github来拉近和大牛的距离-郭永峰-专题视频课程
  14. conficker病毒
  15. AT&T拟利用电力线网络提供无线宽带服务
  16. CommonAPI-SomeIP 使用
  17. blos硬盘启动台式计算机,bios设置硬盘启动,最全的bios设置硬盘启动详细方法(两种模式)...
  18. Notes Twenty-third days-渗透攻击-红队-红队自研
  19. 生活大爆炸版石头剪刀布-简单模拟
  20. Nacos开机报错找不到java环境

热门文章

  1. vant按需引入没样式_传统背景墙早看腻了,不如走一圈石膏线简单好看,8种样式随意选...
  2. Insyde uefi 隐藏设置_安卓福利,手机桌面图标隐藏,找应用按字母轻松搞定!
  3. Intellij IDEA中安装使用PlantUML画时序图、类图等
  4. DTO(领域数据传输对象)是做什么的
  5. 什么是servlet?servlet的作用?——计算机网络系列学习笔记
  6. 【C语言】满分:1047 编程团体赛 (20分)
  7. 25行代码AC_ 2017年C/C++ A组第四题 方格分割(dfs剪痕+解题报告)
  8. 腾达n304v2支持万能中继吗_驱动天空 - 网络设备 - 宽带路由器 - 腾达路由器
  9. netsh 查询mac地址_ARP(Address Resolution Protocol)地址解析协议
  10. visual studio code Python终端运行_VS Code 6 月 Python 扩展更新