About Augmented Reality and ARKit(面关于增强现实和ARKit)

Discover supporting concepts, features, and best practices for building great AR experiences.

发现构建好的AR体验的支持概念,功能和最佳实践。


Overview


The basic requirement for any AR experience—and the defining feature of ARKit—is the ability to create and track a correspondence between the real-world space the user inhabits and a virtual space where you can model visual content. When your app displays that content together with a live camera image, the user experiences augmented reality: the illusion that your virtual content is part of the real world.

In all AR experiences, ARKit uses world and camera coordinate systems following a right-handed convention: the y-axis points upward, and (when relevant) the z-axis points toward the viewer and the x-axis points toward the viewer's right.

Session configurations can change the origin and orientation of the coordinate system with respect to the real world (seeworldAlignment). Each anchor in an AR session defines its own local coordinate system, also following the right-handed, z-towards-viewer convention; for example, theARFaceAnchorclass defines a system for locating facial features.

概述

任何AR体验的基本要求(以及ARKit的定义特征)都是能够创建和跟踪用户处在的真实世界空间与可以为视觉内容建模的虚拟空间之间的对应关系。 当您的应用程序将该内容与实时相机图像一起显示时,用户会体验到增强现实:虚拟内容是真实世界的一部分。

在所有AR体验中,ARKit遵循右手习惯使用世界和摄像机坐标系统:y轴指向上方,(相关时)z轴指向观察者,x轴指向观察者的右侧。

Session 配置可以相对于现实世界改变坐标系的原点和方向(请参阅worldAlignment)。 AR Session中的每个锚点都定义了自己的本地坐标系统,也遵循惯用右手的z向观察者惯例; 例如,ARFaceAnchor类定义了一个用于定位面部特征的系统。

How World Tracking Works

To create a correspondence between real and virtual spaces, ARKit uses a technique calledvisual-inertial odometry. This process combines information from the iOS device’s motion sensing hardware with computer vision analysis of the scene visible to the device’s camera. ARKit recognizes notable features in the scene image, tracks differences in the positions of those features across video frames, and compares that information with motion sensing data. The result is a high-precision model of the device’s position and motion.

World tracking also analyzes and understands the contents of a scene. Use hit-testing methods (see theARHitTestResultclass) to find real-world surfaces corresponding to a point in the camera image. If you enable theplaneDetectionsetting in your session configuration, ARKit detects flat surfaces in the camera image and reports their position and sizes. You can use hit-test results or detected planes to place or interact with virtual content in your scene.

世界追踪系统如何运作

为了创建真实和虚拟空间之间的对应关系,ARKit使用了一种称为视觉 - 惯性测距法的技术。 该过程将来自iOS设备的运动传感硬件的信息与设备摄像头可见的场景的计算机视觉分析相结合。 ARKit识别场景图像中的显着特征,跟踪视频帧中这些特征的位置差异,并将该信息与运动感测数据进行比较。 结果是设备位置和运动的高精度模型。

世界追踪也分析和理解场景的内容。 使用命中测试方法(请参阅ARHitTestResult类)来查找与相机图像中的点相对应的真实世界曲面。 如果在会话配置中启用planeDetection设置,则ARKit会检测摄像机图像中的平面并报告其位置和大小。 您可以使用命中测试结果或检测到的飞机在场景中放置或与虚拟内容交互。

Best Practices and Limitations

World tracking is an inexact science. This process can often produce impressive accuracy, leading to realistic AR experiences. However, it relies on details of the device’s physical environment that are not always consistent or are difficult to measure in real time without some degree of error. To build high-quality AR experiences, be aware of these caveats and tips.

Design AR experiences for predictable lighting conditions. World tracking involves image analysis, which requires a clear image. Tracking quality is reduced when the camera can’t see details, such as when the camera is pointed at a blank wall or the scene is too dark.

Use tracking quality information to provide user feedback. World tracking correlates image analysis with device motion. ARKit develops a better understanding of the scene if the device is moving, even if the device moves only subtly. Excessive motion—too far, too fast, or shaking too vigorously—results in a blurred image or too much distance for tracking features between video frames, reducing tracking quality. TheARCameraclass provides tracking state reason information, which you can use to develop UI that tells a user how to resolve low-quality tracking situations.

Allow time for plane detection to produce clear results, and disable plane detection when you have the results you need.Plane detection results vary over time—when a plane is first detected, its position and extent may be inaccurate. As the plane remains in the scene over time, ARKit refines its estimate of position and extent. When a large flat surface is in the scene, ARKit may continue changing the plane anchor’s position, extent, and transform after you’ve already used the plane to place content.

最佳实践和限制

世界追踪是一种不精确的科学。 这个过程往往能产生令人印象深刻的准确性,从而产生逼真的AR体验 但是,它依赖于设备的物理环境的细节并不总是一致的,或者难以实时测量而没有一定程度的错误。 要打造高品质的AR体验,请注意这些注意事项和提示。

为AR体验设计可预测的照明条件。世界追踪涉及图像分析,这需要一个清晰的图像。 当相机看不到细节时(如相机指向空白墙壁或场景太暗)时,跟踪质量会降低。

使用跟踪质量信息以便来提供用户反馈。世界追踪将图像分析与设备运动关联起来。 即使设备只是巧妙地移动,ARKit也能更好地了解设备正在移动的场景。 过度运动 - 太快,太快或抖动过于剧烈 - 会导致图像模糊或跟踪视频帧之间的特征的距离过长,从而降低跟踪质量。 ARCamera类提供了跟踪状态原因信息,您可以使用该信息开发UI,告知用户如何解决低质量的跟踪情况。

允许一定时间以便进行平面检测以产生清晰的结果,并在您获得所需结果时禁用平面检测。 平面检测结果随时间变化 - 当首次检测到飞机时,其位置和范围可能不准确。 随着飞机长时间停留在现场,ARKit提炼出其位置和范围的估计。 当场景中出现大面积平坦表面时,ARKit可能会在您已经使用飞机放置内容后继续更改飞机锚点的位置,范围和变形。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容