Wooseok Song Projects

Graduate Project

OpenHouse

스마트폰 이미지 기반 부동산 매물 3차원 복원 서비스

Period2026.03.03 - 06.30
ClientiOS · SwiftUI · SceneKit
BackendFlask · Status Polling
3D PipelineMapAnything · Open3D · Poisson

내가 맡은 일

  • 매물 복원에 적합한 3D reconstruction 방법 탐색
  • 모바일 기기로 실제 가정집 데이터를 수집하고 3D reconstruction 진행 및 검증
  • 후처리 천장 제거 알고리즘 구현
  • Poisson mesh reconstruction 파라미터 튜닝

프로젝트 개요

Demo 1. 방 1개 reconstruction. 스마트폰 촬영부터 생성된 mesh 확인까지의 전체 흐름.
Demo 2. 여러 방 reconstruction. 복수 공간 촬영과 방·통로 단위 mesh 확인 과정.

직방, 다방, 네이버부동산 등 국내 플랫폼을 통한 온라인 매물 탐색이 보편화되었지만, 사진과 영상만으로는 방의 연결 관계, 실제 크기, 이동 동선을 판단하기 어렵다. 사진은 렌즈와 촬영 각도에 따라 공간감이 달라지고, 영상은 촬영자가 정한 경로 밖을 확인할 수 없다. Matterport와 같은 전문 3D 공간 서비스는 높은 품질을 제공하지만 촬영 조건과 운영 비용이 일반 매물 등록 과정에 부담이 될 수 있다.

사진 중심 플랫폼

각도, 렌즈, 편집에 따라 공간이 다르게 보이며 방 사이의 연결 관계를 한눈에 파악하기 어렵다.

영상 투어

연속적인 분위기는 전달하지만 사용자가 원하는 위치와 시점을 자유롭게 다시 확인하기 어렵다.

Matterport 등 전문 서비스

공간 탐색 품질은 높지만 별도 장비, 촬영 조건, 처리 비용이 일반 사용자에게 진입 장벽이 된다.

OpenHouse는 이 간극을 줄이기 위해 스마트폰으로 수집한 실내 이미지를 자동으로 3D mesh로 재구성하고, 사용자가 현장 방문 전에 구조와 동선을 자유 시점으로 살펴보도록 설계했다.

해결하려는 문제

별도 스캔 장비 없이도 방의 구조, 동선, 크기감, 가구 배치 가능성을 전달하고, 사진 중심 매물 정보에서 발생하는 공간 정보의 불확실성을 줄이는 것.

01 Capture 스마트폰 촬영

iOS 앱과 AR 가이드로 실내 이미지를 수집하고 메타데이터와 함께 업로드한다.

02 Reconstruct 3D mesh 생성

MapAnything의 geometry를 Open3D와 Poisson reconstruction으로 surface mesh로 변환한다.

03 Explore 자유 시점 확인

완성된 mesh를 앱으로 전달하고 SceneKit viewer에서 매물 내부를 확인한다.

구현 파이프라인

촬영 데이터가 앱을 떠난 뒤 서버에서 reconstruction과 mesh 후처리를 거쳐 다시 모바일 viewer로 돌아오는 과정을 하나의 비동기 파이프라인으로 연결했다.

촬영과 업로드부터 3D reconstruction, mesh 처리, 모바일 viewer까지 이어지는 OpenHouse 전체 파이프라인
Figure 1. OpenHouse pipeline. 데이터 수집, 서버 처리, 3D reconstruction, mesh 생성, 앱 내 확인으로 이어지는 전체 흐름.
  1. Data Capture & UploadiOS 앱에서 촬영한 이미지와 메타데이터를 하나의 패킷으로 구성해 서버로 전송.
  2. Server Ingestion업로드 데이터를 저장하고 reconstruction에 필요한 frame과 metadata를 추출.
  3. MapAnything ReconstructionRGB image에서 camera pose와 dense point cloud를 생성.
  4. Open3D Mesh Processingceiling removal, Poisson reconstruction, color와 normal transfer를 적용.
  5. Async Delivery상태 polling, reconstruction metadata 갱신, mesh caching과 preload를 처리.
  6. SceneKit Viewing완성된 mesh를 모바일 viewer에서 회전하고 자유 시점으로 확인.

평가 1. Reconstruction baseline 선정

초기에는 photorealistic한 결과를 목표로 3DGS와 COLMAP 기반 SfM을 검토했다. 그러나 가정집의 흰 벽과 바닥처럼 texture가 부족한 영역에서는 feature matching이 자주 실패했고, 안정적인 camera pose와 geometry를 확보하기 어려웠다.

01 Initial Goal 3DGS 기반 복원

COLMAP SfM으로 pose를 구하고 photorealistic한 scene을 만드는 방향에서 출발.

02 Failure Texture-less 공간

흰 벽과 바닥에서 feature matching이 끊기며 가정집 데이터의 SfM 안정성이 낮아짐.

03 Alternatives 스티커와 Dense SLAM

스티커는 사용 편의성을 해치고, 연속 image stream은 사용자의 촬영 부담을 키움.

04 Direction 3D foundation model

적은 수의 이미지에서도 data-driven prior로 pose와 dense geometry를 함께 추정하는 방식으로 전환.

최종 baseline은 image-only 환경에서 안정적인 모델을 고르기 위해 Isaac Simulator hospital scene의 3개 sector에서 7장씩, 총 21장의 입력 이미지를 사용해 선정했다. MapAnything, DUST3R, VGGT를 pose, geometry, depth와 runtime 관점에서 비교했다.

Input21 Images

3 sectors × 7 views

Methods3 Models

MapAnything · DUST3R · VGGT

GeometryChamfer L1

복원 구조와 GT 사이 거리

DepthAbsRel / RMSE

입력 view의 깊이 오차

MapAnything, DUST3R, VGGT의 pose, geometry, depth, runtime 정량 비교
Figure 2. Baseline quantitative summary. MapAnything은 pose, geometry, projected depth에서 가장 안정적이었고 VGGT는 처리 시간이 가장 짧았다.
MapAnything, DUST3R, VGGT의 in-view color projection 비교
Figure 3. In-view projection. 입력 시점에서 각 모델이 복원한 color projection의 구조와 coverage 비교.
MapAnything, DUST3R, VGGT의 in-view depth와 error 비교
Figure 4. Depth and error. GT depth와 모델별 projected depth, absolute error를 함께 비교.
천장을 제거한 MapAnything, DUST3R, VGGT의 BEV 비교
Figure 5. Ceiling-removed BEV. 천장과 외부 노이즈를 제거한 뒤 평면 구조가 얼마나 안정적으로 남는지 확인.
MapAnything, DUST3R, VGGT의 BEV false-positive 분포 비교
Figure 6. BEV false-positive diagnostic. 실제 공간 경계 밖에 생성된 geometry의 분포를 비교.
선정 결과

MapAnything은 pose error, geometry alignment, projected depth error와 BEV false-positive ratio에서 전반적으로 안정적인 결과를 보였다. OpenHouse의 기준 reconstruction 모델로 MapAnything을 채택하고, 이후 평가는 이 결과를 mesh로 변환하는 흐름을 중심으로 진행했다.

평가 2. Mesh의 서비스 적합성

MapAnything 결과를 Poisson mesh로 변환했을 때 부동산 매물 확인 경험에 적합한지 검토했다. 비교 대상은 Mesh, 3D-GUT, PlanarGS이며, one-room과 many-room 환경에서 BEV, Room View, runtime, GPU memory, 최종 파일 크기를 확인했다.

Mesh, 3D-GUT, PlanarGS의 runtime, GPU memory, file size 정량 비교
Figure 7. Deployment and UX metrics. Mesh는 생성 시간과 파일 크기가 크고, 3DGS 계열은 실행 비용과 결과 용량에서 유리한 구간이 있다.
One-room 환경에서 3D-GUT, Mesh, PlanarGS의 BEV와 Room View 비교
Figure 8. One-room comparison. 단일 방에서 각 방식의 공간 구조와 내부 시점 표현 비교.
Many-room 환경에서 3D-GUT, Mesh, PlanarGS의 BEV와 Room View 비교
Figure 9. Many-room comparison. 여러 방이 연결된 환경에서 구조 연결성과 Room View 표현 비교.
Structure 명시적인 surface

벽, 바닥, 방 경계를 읽기 쉽고 ceiling removal과 구조 후처리를 적용하기 편하다.

Integration 표준 3D viewer 연동

SceneKit에서 바로 다룰 수 있어 선택, 충돌, 측정 같은 상호작용으로 확장하기 쉽다.

Cost 생성 시간과 용량

many-room 환경에서는 처리 시간과 결과 크기가 증가해 simplification과 streaming이 필요하다.

서비스 관점의 판단

3DGS 계열은 렌더링 표현력과 결과 크기에서 강점이 있다. OpenHouse는 매물의 구조 확인, 후처리 가능성, 모바일 viewer 연동을 우선해 mesh를 최종 결과 형식으로 선택했다.

서비스 구조

OpenHouse는 국내 부동산 플랫폼의 매물 탐색 흐름에 3D 실내 확인 기능을 연결하는 형태로 설계했다. 등록자는 매물 정보와 촬영 데이터를 올리고, 확인자는 지도와 상세 화면을 거쳐 3D Mesh Viewer를 실행한다.

사용자주요 기능제공 가치
매물 등록자매물 정보 입력, 실내 촬영, 3D 모델 생성 요청스마트폰만으로 입체적인 매물 정보 등록
매물 확인자지도 탐색, 상세 정보 확인, 3D Mesh Viewer 실행방문 전 구조, 동선, 공간감 확인
관리자사용자, 매물, 처리 오류 관리서비스 운영과 reconstruction 작업 관리
매물 등록자, 매물 확인자, 관리자의 OpenHouse 유스케이스 다이어그램
Figure 10. OpenHouse use cases. 매물 등록, 3D 모델 생성, 지도 탐색, 상세 정보와 mesh 확인으로 이어지는 사용자 기능.

프로젝트 결과

OpenHouse는 iOS 촬영, 서버 업로드, 3D reconstruction, mesh 후처리, SceneKit viewer를 하나의 서비스 흐름으로 연결했다. 평가를 통해 MapAnything을 기준 모델로 선정했고, 모바일 매물 확인에는 명시적인 surface와 viewer 연동성이 있는 mesh가 적합하다고 판단했다.

향후 계획

향후 개발은 reconstruction 품질을 먼저 검증하고, 실제 사용자가 공간을 더 정확하고 빠르게 이해하는지 확인한 뒤 서비스 기능을 확장하는 순서로 진행한다.

  1. 품질 기준과 사용자 검증 방 경계, 문 연결 관계, reconstruction 성공률, 공간 측정 오차와 viewer 로딩 시간을 측정하고, 사용자 테스트로 구조·동선 판단과 매물 검토 시간이 실제로 개선되는지 확인한다.
  2. Reconstruction 품질 개선 Scene2Scene과 같은 scene completion 방법과 촬영 가이드를 검토하고, 원룸·다실·복층에서 구조 누락과 잘못된 연결이 발생하는 조건을 기록한다.
  3. 배포 최적화와 기능 확장 Mesh simplification, compression, streaming으로 모바일·서버 비용을 줄인 뒤 자동 평면도와 공간 측정을 연결한다. 가구 배치 기능은 측정 정확도와 모바일 성능이 확보된 이후 추가한다.

Comments