본문으로 건너뛰기

단일 equirectangular 파노라마에서 실감형 시차를 구현한 파이프라인과 데모

단일 equirectangular 파노라마와 단안 깊이 추정·LDI·인페인팅을 결합해 브라우저에서 기하학적 시차를 재현한 오픈소스 데모이다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

단일 equirectangular 파노라마에서 실감형 시차를 얻기 위해 단안 깊이 추정(Depth-Anything-3 중심)과 LDI 기반 레이어 슬라이싱, SAM 2 기반 경계 정합, LaMa 인페인팅을 결합한 파이프라인이 제안되었다. 파노라마 특유의 극 영역 왜곡은 pole_blend·floor_keep 같은 휴리스틱과 다중 모델 폴백으로 완화되며, 런타임은 three.js에서 동심구 구조로 구현해 카메라 오프셋으로 기하학적 시차를 얻는다. 주요 트레이드오프로는 레이어 반경이 선형·임의로 설정되어 현실의 시차 크기와 완전히 일치하지 않는 점과 LDI의 이산화로 인한 경사면 계단현상이 있으며 Gaussian Splatting이 이를 해결할 수 있으나 비용과 복잡성 때문에 채택되지 않았다.

실용적 조언

  • 파노라마에서 단안 깊이 모델을 사용할 때는 투영 차이를 고려해 폴 근처에 대한 보정이 필요하다. 작성자는 pole_blend와 floor_keep 같은 휴리스틱을 사용해 DA3의 폴 실패를 완화했고 래핑 패딩을 통해 0°/360° 경계 문맥을 인페인터에 제공했다는 경험을 제시했다. 이러한 전처리·후처리 기법은 파노라마 입력의 구조적 왜곡을 줄이는 실무적 방법이다.
  • 슬랩 기반 LDI를 적용할 때는 임계값 기반 언샷으로 깊이 구간을 나누고 경계에 소프트 알파를 적용해 시각적 계단현상을 완화해야 한다. 전경 경계를 더 정확히 맞추려면 SAM 2로 객체 실루엣을 추출한 뒤 각 객체별로 k-means 깊이 빈을 생성하고 NMS로 중복을 제거해 슬랩 경계를 정합하는 절차가 유용하다. 또한 슬랩 반경을 메트릭 깊이의 중앙값으로 조정하면 실제 시차 크기와 더 정합되는 결과를 얻을 수 있다.
  • 인페인팅은 전경 제거로 생긴 영역만 대상으로 하고 래핑 패딩을 넣어 경계 문맥을 제공하면 품질 대비 효율성이 좋아진다. LaMa를 기본으로 사용하고 실패 구간에 대해서만 OpenCV TELEA로 폴백하는 다중 전략이 실전에서 충분히 실용적이라는 경험적 판단이 제시되었다. 따라서 전체 장면을 대규모로 인페인팅하기보다 디스오클루전 경계 중심으로 처리하는 것이 비용 효율적이다.

섹션별 상세

01
단일 equirectangular 파노라마만으로 실감형 시차를 얻는 것이 문제 제기였다. 입력 이미지는 Depth-Anything-3를 주 모델로 사용하고 Depth-Anything-V2, MiDaS, 합성 그라디언트 순으로 자동 폴백하는 체인을 거쳐 픽셀별 깊이를 추정한다. DA3는 perspective 이미지로 학습되어 폴 근처에서 실패하는 경향이 있고 이에 pole_blend와 floor_keep 휴리스틱으로 보정이 적용되었다는 근거가 제시되었다. 이 방식은 빠른 적용을 허용하지만 DAP 같은 panorama 특화 모델으로 전환하면 메트릭 깊이를 얻어 레이어 반경 산정에 더 일관된 값을 사용할 수 있다는 의미가 도출된다.
02
깊이 기반 레이어 슬라이싱은 임계값으로 깊이 맵을 여러 슬랩으로 분할하고 경계에 소프트 알파 페더링을 적용하는 방식으로 작동한다. 각 슬랩은 별도의 RGBA 텍스처로 렌더링되어 원형 동심구 구조에 배치되며 SAM 2 선택적 패스는 물체 실루엣에 슬랩 경계를 스냅하기 위해 사용된다. SAM 2 처리에서는 각 SAM 오브젝트에 대해 k-means로 깊이 빈을 생성하고 NMS로 중복을 제거하며 360° 래핑 시 가로 이음새를 병합하는 로직이 적용되었다는 구체적 절차가 제시되었다. 이 절차는 전경 오브젝트의 경계에서 불연속을 줄여 시각적 완성도를 높였다는 실무적 의미를 갖는다.
03
디스오클루전 보정을 위해 LaMa를 기본 인페인터로 사용하고 OpenCV TELEA를 폴백으로 설정했다. 인페인팅은 0°/360° 경계에서 문맥을 제공하기 위해 래핑 패딩을 사용하며, 전경 슬랩을 제거한 뒤 생긴 구멍만을 목표로 채우는 방식이 적용되었다는 것이 근거로 제시되었다. 작성자는 인페인팅 품질이 오직 가려진 경계에서만 중요하다고 판단했고 LaMa의 결과가 해당 목적에는 충분하다고 결론지었다.
04
런타임 구현은 three.js에서 외부 구면에 인페인티드 배경을, 내부에 각 전경 슬랩을 담은 더 작은 동심구들을 배치하여 수행되었다. 카메라를 소폭 오프셋하면 가까운 구면이 더 큰 각변화를 나타내므로 실제 기하학적 시차가 발생하며 화면-공간 트릭 없이 이 효과를 얻는 구조로 설계되었다는 기술적 설명이 제공되었다. 공개된 트레이드오프로는 레이어 반경이 현재 선형 분포로 임의 결정되어 있다는 점과 LDI가 연속 깊이를 이산화해 경사면에서 다수 슬랩을 만들어내는 한계가 언급되었고, Gaussian Splatting은 이를 해결할 수 있으나 비용과 복잡성 때문에 채택하지 않았다는 판단이 제시되었다.

용어 해설

단안 깊이 추정(Monocular Depth Estimation)
단안 깊이 추정은 단일 이미지에서 각 픽셀의 상대적 또는 절대 깊이를 예측하는 기술이다. 입력 이미지의 색상·질감·경계 등 시각 신호를 기반으로 신경망이 픽셀별 깊이 맵을 출력하며, 이 맵은 원근감 보정이나 레이어 분할에 사용된다. 파노라마처럼 투시 투영과 다른 입력에 대해서는 훈련 데이터 편향으로 오류가 발생하기 쉬워 보정이 필요하다.
등각 파노라마 투영(Equirectangular Projection)
equirectangular 투영은 경도·위도 좌표를 직교격자에 대응시켜 360° 장면을 하나의 이미지로 표현하는 방식이다. 이 투영은 극(폴) 근처에서 기하학적 왜곡이 커지며 Perspective 기반 모델이 학습한 분포와 불일치가 발생한다. 따라서 파노라마를 처리할 때는 극 보정, 래핑 처리, 경계 연결 등 특수한 후처리가 필요하다.
레이어드 깊이 이미지(LDI)(Layered Depth Image)
LDI는 장면을 겹쳐진 깊이 슬래브들로 근사하여 각 슬래브에 RGBA 텍스처를 저장하는 표현이다. 입력 깊이 맵을 임계값으로 여러 층으로 분할한 뒤 전경부터 배경까지 순차적으로 합성하여 시차를 재현하므로 실시간 뷰어에서 카메라 오프셋으로 기하학적 시차를 얻는다. 불연속 깊이를 이산화함으로써 경사면이나 미세한 깊이 변화에서 계단현상이 발생할 수 있다.
가우시안 스플래팅(Gaussian Splatting)
Gaussian Splatting은 장면을 연속적인 가우시안 엘리먼트로 표현하여 뷰 합성과 시차를 부드럽게 처리하는 기법이다. 각 엘리먼트가 위치·크기·색상을 가지므로 연속적 깊이 표현이 가능하고 LDI의 계단현상을 완화한다. 하지만 계산 비용과 구현 복잡도가 높아 경미한 카메라 흔들림을 처리하는 실시간 뷰어에는 과도한 선택이 될 수 있다.
이미지 인페인팅(Image Inpainting)
인페인팅은 이미지에서 제거되거나 가려진 영역을 주변 문맥으로 채우는 알고리즘이다. 딥러닝 기반 모델은 주변 텍스처와 구조를 학습해 자연스러운 보간을 수행하며, 단일 파노라마의 시차 처리에서 전경 슬래브 제거로 생긴 디스오클루전을 복원하는 데 사용된다. 품질은 경계의 정합성과 텍스처 일관성에 민감하다.

언급된 도구

Depth-Anything-3중립

Depth-Anything-3는 단안 깊이 추정에 사용된 주 모델로서 perspective 이미지 기반으로 학습되어 파노라마 입력에서는 극 부분에서 오류가 발생할 수 있다. 작성자는 이를 보완하기 위해 pole_blend와 floor_keep 같은 휴리스틱을 적용했고, 여러 대체 모델과의 자동 폴백 체인을 구성했다. 빠른 실험과 데모 배포 측면에서 실용적인 선택이라는 평가가 병행되었다.

DAP추천

DAP는 파노라마에 특화된 Depth Any Panoramas 접근으로 메트릭 깊이를 출력할 수 있어 레이어 반경 산정에 유리하다. 작성자는 DAP를 '깨끗한 정답'으로 지목했으나 기존 슬라이서가 disparity-like 분포를 전제로 튜닝되어 있어 아직 마이그레이션을 진행하지 않았다고 밝혔다. 메트릭 깊이 활용을 위해서는 슬라이스·렌더링 파라미터 재조정이 필요하다.

SAM 2추천

SAM 2는 객체 실루엣을 추출해 슬랩 경계를 실제 물체 윤곽에 스냅시키는 데 사용되었다. 각 SAM 오브젝트에 대해 k-means로 깊이 빈을 만들고 NMS로 중복을 제거하는 방식이 경계 정합을 강화했다. 360° 래핑 시 가로 이음새를 병합하는 로직과 결합하면 슬랩 엣지의 자연스러움이 향상된다.

LaMa추천

LaMa는 전경 제거로 생긴 디스오클루전 영역을 인페인팅하는 주 모델로 사용되어 경계 품질을 확보했다. 작성자는 LaMa가 이 용도에는 '충분히 좋다'고 평가했으며, 실패 구간에 한해 OpenCV TELEA로 폴백하는 다층 전략을 채택했다. 경계 기반 인페인팅으로 전체 처리 비용을 절감하는 현실적 이점이 있었다.

three.js추천링크

three.js는 런타임에서 외부 배경 구면과 내부 전경 슬랩 구면들을 렌더링하는 데 사용되었다. 카메라 오프셋으로 기하학적 시차를 발생시키는 구조를 실시간 브라우저 환경에서 구현하기 위해 선택되었으며 화면-공간 트릭 없이도 시차를 얻는 설계가 가능했다. 브라우저 호환성과 개발 편의성 측면에서 실용적 이점이 확인되었다.

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 06. 16.수집 2026. 06. 28.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.