Merged Reality
혼합 현실의 동의어인 머지드 리얼리티는 실제 세계의 실시간 화면과 실제 기하 구조, 깊이, 가림을 반영하는 가상 객체를 결합합니다.
병합 현실은 혼합 현실(MR)의 동의어입니다. 가상 객체가 사용자의 실제 환경 안에 나타나 현실과 상호작용하는 경험으로, 실제 테이블 위에 놓이고 실제 사람 뒤로 사라지며 실제 벽에 부딪혀 튕기는 것처럼 보입니다. Intel은 2016년 Project Alloy를 통해 이 명칭을 소개했습니다. 이 무선 헤드셋 프로토타입은 RealSense 깊이 카메라를 사용해 사용자의 손과 공간을 가상 경험에 반영했습니다. 이 개념의 기원은 더 오래되었습니다. Paul Milgram과 Fumio Kishino는 1994년 혼합 현실 디스플레이 분류 체계에서 현실 환경과 가상 환경을 현실-가상 연속체의 양 끝에 두고 그 사이의 모든 것을 혼합 현실이라고 불렀습니다. 병합 현실과 단순한 오버레이의 차이는 환경을 이해하는 능력입니다. 따라서 모든 표면과 사람이 어디에 있는지 파악하기 위해 컴퓨터 비전과 공간 컴퓨팅에 의존합니다.
병합 현실과 AR 및 VR 비교#
- 증강 현실(AR)은 휴대전화 화면의 텍스트 레이블부터 안경에 표시되는 3D 모델까지 실제 세계의 시야에 디지털 콘텐츠를 추가합니다. 혼합 현실은 콘텐츠가 실제 장면에 정합되고 실제 장면과 상호작용하는 AR이며, 실제 사용에서는 두 용어가 상당히 겹칩니다.
- 가상 현실(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)저장된 이미지에서 패널은 버스를 가리지만 탐지된 보행자마다 뒤쪽에 표시됩니다. 사람 마스크가 있는 곳에서는 카메라 픽셀이 우선하기 때문입니다. 실제 운영 시스템은 미터 단위 깊이를 이용해 픽셀별로 동일한 결정을 내리며, 클래스 목록에 없는 테이블, 벽, 기타 표면도 처리합니다.
실제 적용 사례#
- 산업 교육 및 유지보수: 기술자는 눈앞의 기계에 고정된 단계별 지침, 토크 값, 원격 전문가의 주석을 확인할 수 있습니다. 교육생은 실제 작업장에 배치된 가상 장비로 절차를 연습합니다.
- 설계 및 건축: 팀은 실제 공간에서 실물 크기의 가상 자동차 내부나 건물 모델을 검토하고, 주변을 걸으며 실제 부품과 비교합니다.
- 게임: Quest 3의 혼합 현실 게임은 플레이어의 공간을 스캔해 가상 캐릭터가 실제 벽 밖으로 나오고 공이 실제 가구에 튕기도록 합니다.
- 수술: 2019년 미국 식품의약국의 허가를 받은 Augmedics의 xvision Spine System은 척추 시술 중 환자의 CT 기반 해부 구조와 계획된 나사 삽입 경로를 외과의의 헤드셋에 오버레이합니다.










