Merged Reality
融合现实是混合现实的同义词,它将真实世界的实时画面与虚拟对象融合在一起,并使虚拟对象遵循真实的几何结构、深度和遮挡关系。
合并现实是混合现实(MR)的同义词:虚拟物体出现在用户的真实环境中并与之交互,例如放在真实桌面上、被真实人物挡住,或从真实墙面弹开。Intel 于 2016 年在 Project Alloy 中提出了这个名称;该项目是一个不受线缆束缚的头显原型,其 RealSense 深度相机将用户的双手和房间环境带入虚拟体验。其基本概念则更早就已出现:Paul Milgram 和 Fumio Kishino 于 1994 年提出的混合现实显示分类,将真实环境和虚拟环境置于现实-虚拟连续体的两端,并将中间的一切称为混合现实。合并现实与简单叠加的区别在于对环境的理解,因此它依赖计算机视觉和空间计算来确定每个表面和人物的位置。
合并现实与 AR、VR 的区别#
- 增强现实(AR)会在真实世界的视图中添加数字内容,既可以是手机屏幕上的文字标签,也可以是眼镜中的 3D 模型。混合现实是指内容与真实场景对齐并能与之交互的增强现实,实际应用中这两个术语大量重叠。
- 虚拟现实(VR)会完全取代真实世界。增强虚拟是现实-虚拟连续体中 Project Alloy 所针对的一端:以虚拟世界为基础,并将用户的双手等真实元素带入其中。
- 扩展现实(XR)是涵盖 AR、MR 和 VR 的总称。
头显通过两种方式之一呈现真实世界。Microsoft HoloLens 2 等光学透视设备通过透明显示屏将光线叠加到用户直接看到的景象中,因此虚拟物体无法比其背后的真实物体更暗。Meta Quest 3 和 Apple Vision Pro 等视频透视设备则通过朝外的相机拍摄房间,并在不透明显示屏上呈现合成画面;这样真实物体可以完全遮挡虚拟物体,但要付出相机延迟的代价。
合并现实的工作原理#
当前头显每秒显示 72 到 120 帧画面,每一帧都会结合设备姿态、场景模型和渲染后的虚拟内容,因此感知模型需要在头显自身的边缘 AI处理器上进行实时推理。视觉 SLAM用于跟踪头显;深度传感器或深度估计用于测量每个真实表面的距离,以便对房间进行3D 重建;语义分割用于标记地板、墙壁和桌子;目标检测用于找到家具和人物;姿态估计则用于跟踪手部关键点,以识别手势。用户最容易注意到的失败问题是遮挡:如果一个虚拟物体漂浮在离相机更近的人物前方,错觉就会立刻被打破。Apple 的 ARKit 自 2019 年起就支持分割人物以实现遮挡效果。
分割掩码可以简单地实现这种遮挡测试。此示例使用 Ultralytics YOLO26实例分割模型,在街景照片中找到人物,并让人物像素显示在放置于人物与公交车之间的虚拟面板前方:
import cv2
import numpy as np
from ultralytics import YOLO
model = YOLO("yolo26n-seg.pt")
result = model("https://ultralytics.com/images/bus.jpg")[0]
camera = result.orig_img
# 渲染一个虚拟物体:一块绿色面板,位于人物和公交车之间
virtual = camera.copy()
cv2.rectangle(virtual, (50, 450), (760, 650), (0, 200, 0), thickness=-1)
# 人物比面板离相机更近,因此他们的像素必须遮挡面板
occluder = np.zeros(camera.shape[:2], np.uint8)
for cls, polygon in zip(result.boxes.cls, result.masks.xy):
if result.names[int(cls)] == "person":
cv2.fillPoly(occluder, [polygon.astype(np.int32)], 255)
merged = np.where(occluder[..., None] > 0, camera, virtual)
cv2.imwrite("merged_reality.jpg", merged)在保存的图像中,面板会遮住公交车,却位于每个被检测到的行人后方,因为只要存在人物掩码,摄像头像素就会优先显示。生产系统会使用度量深度逐像素做出相同判断,这也能处理类别列表中未包含的桌子、墙壁及其他表面。










