Seunghan Paek

백승한 · Ph.D. Candidate in Computer Science
한양대학교 컴퓨터소프트웨어학과 (Expected Graduation: August 2026) · 지도교수 박종일

학위논문 Floorplan-Mediated Indoor 3D Reconstruction from Raster Floorplans and Image Sequences

RGB, Vectorized Floorplan, 3D Model 세 노드를 잇는 삼각형 다이어그램. 파란 화살표는 RGB에서 3D Model로 직행하는 기존 방식, 초록 화살표는 RGB에서 Floorplan으로, 주황 화살표는 Floorplan에서 3D Model로 향한다.
저는 RGB 영상과 3D 모델 사이에 vectorized floorplan을 명시적인 intermediate representation으로 놓습니다. 파란 화살표로 표시된 일반적인 3D reconstruction 대신, vectorized floorplan을 거쳐 실내 공간을 재구축하는 연구를 진행했습니다.

지금까지 진행한 연구

오늘날 실내 공간 복원에는 high quality의 dense mesh만이 아니라, 사람과 프로그램이 함께 다룰 수 있는 편집 가능한 형태가 요구됩니다. 제 박사과정 연구는 그 형태로 평면도를 제시합니다.

실내 3D 복원에서 제가 주목한 문제는 크게 세 가지입니다. 표면을 얼마나 정확하고 촘촘하게 되살리는가 하는 geometric reconstruction, 복원된 공간 안의 fixture와 구조 요소를 무엇이라 부를 것인가 하는 semantic segmentation, 방의 경계와 방 사이의 연결을 어떤 compact한 구조로 인코딩할 것인가 하는 structural·topological representation. 세 가지는 각각 독립된 분야로 성숙했지만, 이들을 하나의 표현으로 엮는 문제는 여전히 열려 있습니다.

저는 이 세 정보를 함께 담을 수 있는 intermediate representation으로 vectorized floorplan을 활용했습니다. 벽과 개구부의 형상·위치 정보, fixture의 위치와 category, 방 사이의 connectivity를 하나의 2D representation에 담을 수 있고, 그대로 3D로 extrusion할 수 있기 때문입니다.

컴퓨터 비전의 하위 문제대응하는 floorplan의 구성 요소
Geometric reconstructionextrusion height를 가진 wall · window · door polygon
Object detection · semantic segmentation위치 · 방향 · category를 가진 fixture icon
Structural · topological representationroom polygon과 opening을 통한 방 사이의 connectivity

digital twin, XR 콘텐츠, robotics, physics simulation 같은 응용에서는 공간의 구조와 외관을 함께 다룰 수 있는 3D representation이 필요하고, 흔히 dense mesh가 그 역할을 맡습니다. 다만 dense mesh는 용량과 연산 비용이 크고, 무엇보다 고쳐 쓰기가 어렵습니다. 구조적으로 단순하고 semantic이 붙어 있으며 editable한 표현이 함께 필요한 이유이고, floorplan이 그 조건을 만족합니다.

지금까지 저는 두 방향을 진행했습니다. 이미 존재하는 raster floorplan을 3D로 올리는 쪽(Floorplan to 3D Model)과, floorplan이 없을 때 casual RGB 시퀀스만으로 되살리는 쪽(RGB to 3D Model)입니다. 각각 아래 두 절에서 설명합니다.

Future Direction — Closing the Loop

앞으로는 이 세 표현을 상호 검증할 수 있는 closed loop로 확장하고자 합니다. 아래 두 그림에서 아직 채워지지 않은 방향이 그 대상입니다.

정방향 순환 다이어그램. RGB에서 Floorplan Reconstruction, Floorplan에서 FP to 3D model로 이어지고, RGB의 Texture Info가 3D Model로 향한다.
Forward loop RGB → floorplan → 3D 모델. 입력 RGB의 texture를 3D 모델에 적용하는 방향이 남아 있습니다.
역방향 순환 다이어그램. RGB에서 3D Reconstruction, 3D Model에서 Floorplan으로 이어지고, Floorplan에서 View Synthesis를 거쳐 RGB로 향한다.
Inverse loop RGB → 3D 모델 → floorplan. floorplan에서 novel view synthesis하는 방향이 남아 있습니다.

이 loop가 형성되면 세 표현은 순서대로 변환되기만 하는 것이 아니라 서로를 검증하고 보완할 수 있습니다. floorplan에서 합성한 뷰가 실제 관측과 어긋나면 floorplan을 의심할 근거가 되고, 반대로 floorplan이 옳다면 부분적으로만 관측된 공간의 나머지를 채워 넣을 수 있습니다. 복원이 한 방향의 파이프라인이 아니라 관측과 reconstruction 결과가 서로를 검증할 수 있는 loop가 되는 셈입니다.

이것이 제가 이어서 풀고자 하는 문제입니다.

Floorplan to 3D Model

IEEE Access 2025 · 제1저자 · 게재 완료

이미 존재하는 raster floorplan 한 장을, 사람이 다시 그리지 않고 3D 모델로 만드는 방법.

무엇을 목표로 했나

실무에서 마주치는 평면도는 대부분 raster 이미지입니다. CAD와 BIM은 전문가와 전용 소프트웨어를 전제하고, 그 이전에 지어진 건물에는 디지털 모델이 아예 없습니다. 부동산 매물 페이지, 인테리어 도면, 손으로 그린 스케치, 스캔본 — 가장 많이 쌓여 있는 형식은 결국 그림 파일입니다.

그런데 기존 연구는 대체로 소규모 주거용 도면을 전제하고, Manhattan-world 직교성과 균일한 벽 두께를 가정했습니다. 저는 그 가정을 걷어내고, 다세대 건물 한 층 전체처럼 크고 규칙적이지 않은 도면까지 하나의 프레임워크로 처리하는 것을 목표로 잡았습니다.

무엇을 했나

도면을 통째로 네트워크에 넣는 대신, 겹치도록 자른 patch 단위로 읽고 다시 합치는 구조를 만들었습니다. 하나의 크고 복잡한 segmentation 문제를 수백 개의 작고 비슷한 국소 문제로 바꾼 셈입니다. 덕분에 도면이 아무리 커져도 한 번에 다루는 크기가 일정해서, 입력을 resize하지 않고 원본 해상도 그대로 처리할 수 있습니다. backbone으로는 SegFormer-B5를 썼고, 저해상도 입력에는 Real-ESRGAN을 전처리로 붙였습니다.

합칠 때는 patch마다 나온 결과를 hard voting으로 고르지 않고, softmax 확률을 그대로 누적해 판정합니다. 겹침 영역에서 여러 patch의 판단이 자연스럽게 쌓이기 때문에 patch 경계의 artifact가 사라지고, 결과적으로 test-time augmentation과 같은 효과를 냅니다.

마지막으로 벽을 centerline이 아니라 polygon으로 벡터화합니다. Douglas-Peucker로 근사한 뒤 bin 단위 노이즈 제거를 거쳐 extrusion하면 그대로 3D 모델이 되고, OBJ나 Unreal Engine으로 바로 넘길 수 있습니다.

입력 raster floorplan이 겹치는 patch로 분할되어 semantic segmentation을 거치고, 벽·문·창으로 벡터화된 뒤 3D 모델로 압출되는 과정을 한 줄로 보여주는 그림.
System Overview 입력 floorplan을 겹치는 patch로 나눠 읽고, 합치고, wall · door · window polygon으로 벡터화한 뒤 3D 모델로 extrusion합니다.
파이프라인 구성도. 저해상도 도면에 대한 선택적 super-resolution, 겹치는 patch 분할, Transformer 인코더-디코더 기반 patch 단위 분할과 병합 후처리.
Network Structure 저해상도일 때만 적용되는 super-resolution, 겹치는 patch 분할, patch 단위 segmentation과 확률 누적 병합.

부딪힌 문제

Resize하는 순간 얇은 벽이 사라진다

네트워크 입력 크기에 맞추려고 큰 도면을 축소하면, 한 픽셀 두께로 그려진 벽과 좁은 opening이 그냥 없어집니다. 정확도 이전에 정보가 남아 있지 않은 상태가 됩니다.

resize를 포기하고 원본 해상도에서 patch 단위로 읽는 방식으로 문제 자체를 없앴습니다. 반대로 원본이 애초에 저해상도인 경우에는 patch를 자르기 전에 super-resolution을 먼저 적용했습니다.

Patch 안에서는 벽의 long-range continuity가 보이지 않는다

patch 하나 안에서는 벽이 건물 끝까지 이어지는 긴 선인지, 여기서 끊기는 짧은 선인지 알 수가 없습니다. 특히 다세대 건물 한 층 전체처럼 벽이 아주 길게 이어지는 도면에서 이 한계가 드러났습니다.

겹침을 두고 확률을 누적하는 병합으로 상당 부분 메웠지만, 완전히 해결되지는 않았습니다. patch size를 도면에 따라 다르게 잡는 adaptive·multi-scale 방식이 다음 과제로 남아 있습니다.

Centerline으로는 벽 두께를 표현할 수 없다

기존 방식대로 벽의 centerline을 따라 그리면, 같은 벽이라도 구간마다 두께가 달라지는 실제 도면을 담을 수 없습니다. centerline 하나에는 두께가 하나만 붙기 때문입니다.

벽을 polygon으로 벡터화하도록 표현을 바꿨습니다. 이 결정이 가변 벽 두께와 Manhattan 가정 두 가지를 동시에 풀어 준 분기점이 되었습니다.

세 행으로 구성된 비교. 위에서부터 Ground Truth, patch 단위 추론 결과, 전체 이미지 추론 결과이며 각 행 오른쪽에는 확대 영역이 나란히 놓여 있다.
Ablation Study 위에서부터 Ground Truth · patch 단위 · full-scale 추론이고, 오른쪽은 확대입니다. 도면을 통째로 넣으면 벽이 조각나고 opening이 뭉개집니다.
대규모 다세대 건물 도면 결과. 각 예시마다 입력 CAD 도면, 벡터화된 레이아웃, 압출된 3D 모델이 차례로 놓여 있다.
Large-scale Floorplan 각 예시는 입력 도면 → 벡터화된 layout → 3D 모델 순입니다. 다세대 건물 한 층 전체를 원본 해상도 그대로 처리한 결과입니다.
벡터화된 floorplan(왼쪽)과 그로부터 압출된 텍스처가 입혀진 3D 실내 모델 두 시점(오른쪽).
Application Example 복원된 결과에 객체를 배치하는 등으로 사실적인 simulation 공간을 만들 수 있습니다.

RGB to 3D Model

WACV 2027 · 제1저자 · under review

floorplan이 아예 없을 때, 스마트폰으로 방을 한 바퀴 찍은 casual RGB 시퀀스만으로 floorplan과 3D 모델을 함께 만드는 방법.

무엇을 목표로 했나

이전 연구가 도면이 있다는 전제 위에 서 있다면, 이쪽은 그 전제가 없을 때를 다룹니다. 많은 기존 floorplan reconstruction 방법은 LiDAR, RGB-D, 혹은 정합된 panorama처럼 구조 복원에 유리한 입력을 사용하고, 방 안의 fixture는 layout 추론 전에 제거해야 할 clutter로 취급해 왔습니다.

저는 이 두 전제를 모두 걷어내고 싶었습니다. Active depth sensing이나 panorama 정합 없이 casual하게 촬영한 RGB sequence, 그리고 fixture가 그대로 놓여 있는 실제 방. 일반적으로 고려되지 않던 정보를 활용한 3차원 모델 생성이 목표였습니다.

무엇을 했나

출발점은 관점을 뒤집는 데 있었습니다. 침대는 벽에 붙고, 소파는 벽을 등지고, 냉장고는 모서리에 들어갑니다. fixture는 임의로 놓이지 않고 건축 경계를 존중합니다. 그렇다면 fixture의 배치는 지워야 할 clutter가 아니라 벽 위치에 대한 positive evidence입니다.

게다가 이 evidence는 벽 자체의 오차와 독립적입니다. SfM point cloud는 textureless한 벽면에서 특히 sparse하고 noisy한데, fixture 표면은 텍스처가 풍부해 오히려 더 잘 복원되기 때문입니다. 가장 불안정한 곳을 가장 안정적인 증거로 보정하는 셈입니다.

파이프라인은 이렇게 구성했습니다. SAM 3의 open-vocabulary segmentation과 Depth Anything 3의 multi-view geometry로 semantic label이 붙은 dense point cloud를 만들고, 이것을 boundary candidatefixture cluster로 갈라 둡니다. boundary 쪽에서 CAGE로 초기 room polygon을 얻은 뒤, fixture rectangle과 opening의 위치를 근거로 그 polygon을 바로잡습니다.

특히 opening은 정의상 벽 위에만 존재하므로, 그 centerline은 벽이 지나가는 자리를 알려 주는 가장 확실한 증거가 됩니다. 이 centerline을 constrained Delaunay triangulation의 segment constraint로 넣어 평면을 원자 삼각형으로 쪼갠 뒤, 삼각형들을 region adjacency graph로 다시 묶습니다. opening에 정렬된 변만 연결에서 빠져 cut edge로 작동하므로, connected component를 세는 것만으로 room이 갈라지고 새로 생깁니다.

마지막으로 fixture를 도면 기호로 바꿔 넣습니다. SAM 3D로 mesh proxy를 만들고 top view와 side view를 orthographic으로 렌더링해 GPT-5에 넘겨 카테고리를 판정하고, mesh proxy와 카테고리를 고려한 vector icon을 생성합니다. 실루엣을 그대로 따면 같은 침대도 찍은 각도에 따라 다르게 그려지므로, 카테고리에서 출발해야 결과물이 시점별 렌더가 아니라 architectural drawing처럼 읽힙니다.

전체 시스템 개요도. 입력 RGB 시퀀스에서 시작해 카메라 포즈와 point cloud를 얻고, structural branch와 fixture branch로 나뉘어 room polygonization과 top-view projection을 거친 뒤, structure optimization을 통해 vectorized floorplan과 3D 복원 결과를 산출한다.
System Overview casual RGB 시퀀스가 semantic label이 붙은 point cloud가 되고, structural branch와 fixture branch로 갈라진 뒤 structure optimization에서 다시 만나 vectorized floorplan과 3D 모델이 됩니다.
CDT 기반 wall refinement의 4단 도해. 입력 boundary와 fixture polygon, 누락된 room 복원, 원자 분할과 RAG 기반 선택적 분리, 단순화를 거친 최종 polygon 복원.
CDT-based Wall Refinement opening centerline을 constraint로 넣어 평면을 원자 삼각형으로 나눈 뒤, region adjacency graph로 다시 묶어 room polygon을 정리합니다.

부딪힌 문제

작은 geometric error가 room topology를 무너뜨린다

casual RGB에서 얻은 SfM point cloud는 textureless한 벽면에서 sparse하고, fixture에 가려 군데군데 비어 있습니다. 여기에 plane fitting을 곧바로 적용하면 몇 센티미터의 오차가 두 벽의 병합이나 room의 소실 같은 topological error로 이어질 수 있습니다. 국소적인 geometric error가 훨씬 큰 structural error로 증폭되는 것입니다.

벽면 관측에만 의존하지 않고, fixture와 opening이라는 독립적인 evidence를 함께 쓰도록 문제를 다시 세웠습니다.

기존 backbone은 깨끗한 입력을 기대한다

floorplan reconstruction 모델들은 Structured3D 같은 정돈된 RGB-D density map으로 학습되어 있어서, SfM에서 얻은 지저분한 boundary point를 그대로 넣으면 제 성능이 나오지 않습니다. 그렇다고 재학습시키면 개선이 전처리 덕인지 학습 덕인지 구분할 수 없게 됩니다.

backbone은 공개 체크포인트 그대로 두고, 입력을 boundary-weighted density map으로 다듬어 모델이 기대하는 형태에 맞췄습니다. 덕분에 제가 더한 optimization 단계의 기여만 따로 확인할 수 있었고, 더 좋은 backbone이 나오면 그대로 갈아 끼울 수 있습니다.

Top view만으로는 fixture를 구별할 수 없다

floorplan은 위에서 내려다본 그림인데, top view에서는 desk와 table과 chair의 좌면이 거의 같은 사각형으로 보입니다. 어떤 카테고리로 판정하느냐에 따라 도면에 들어갈 icon이 달라지므로 이 구분이 필요했습니다.

fixture마다 mesh proxy를 복원한 뒤 top view와 side view를 함께 판정에 넘겼습니다. side view가 수직 방향의 구조를 알려 주기 때문에 구분이 가능해집니다.

Doorframe이 두 개의 bounding box로 잡힌다

upstream detection이 doorframe 하나를 opening 양쪽의 별개 object 두 개로 내놓는 경우가 있습니다. 그러면 그 뒤의 모든 geometric reasoning이 문이 두 개 있다는 잘못된 전제 위에서 진행됩니다.

현재는 뒷단에서 부분적으로만 걸러 냅니다. geometry processing 단계로 넘기기 전에 조각난 detection을 통합하는 과정이 필요하다고 보고 있고, 이것이 제가 다음으로 풀려는 문제 중 하나입니다.

세 개의 실내 장면에 대한 결과. 각 행마다 입력 RGB 시퀀스에서 얻은 SfM point cloud, 복원된 vectorized floorplan, fixture가 통합된 3D 모델이 나란히 놓여 있다.
Qualitative Results (a)가 입력 RGB에서 얻은 SfM point cloud입니다. 벽면이 조각나고 구멍이 뚫린 이 상태에서 (b)의 vectorized floorplan이 나온다는 점이 이 연구의 요점입니다. (c)는 fixture까지 포함해 extrusion한 3D 모델입니다.

마치며

두 연구는 각각 다른 문제를 풀었지만, vectorized floorplan을 공유합니다.

앞의 연구는 raster 입력에서 출발해 벽을 두께를 가진 polygon으로 다루고, 뒤의 연구는 RGB 입력에서 출발해 벽을 centerline과 thickness로 다룹니다. 표현이 달라 보이지만 두께를 아는 선은 이미 채워진 영역을 정의하므로, 둘 사이의 변환은 단순한 offset 연산에 지나지 않습니다. RGB에서 복원한 floorplan을 그대로 raster 기반 파이프라인에 넣을 수 있다는 뜻입니다. 아래 세 그림이 그것을 보여줍니다.

casual RGB 시퀀스에서 복원된 vectorized floorplan.
(a) casual RGB에서 복원한 floorplan
같은 floorplan을 RGB 기반 프레임워크로 압출한 3D 모델. 벽이 centerline을 따라 세워져 있다.
(b) 같은 floorplan → RGB 기반 방식으로 3D화
같은 floorplan을 patch-wise 프레임워크로 압출한 3D 모델. 벽이 실제 두께를 가진 polygon으로 복원되어 있다.
(c) 같은 floorplan → patch-wise 방식으로 3D화

제가 할 수 있는 일

두 연구를 수행하면서 실내 3차원 복원 파이프라인을 처음부터 끝까지 설계하고 구현하는 경험을 쌓았습니다. 평면도에서는 구조와 semantic 정보를 추출해 3D 모델로 변환하고, RGB 영상에서는 multi-view geometry를 통해 공간을 복원한 뒤 이를 구조화된 floorplan과 3D scene으로 연결했습니다.

이 과정에서 단일 모델의 성능뿐 아니라 입력 표현과 파이프라인 설계가 최종 복원 품질에 큰 영향을 준다는 점을 확인했습니다. Floorplan to 3D Model에서는 다양한 해상도의 도면을 안정적으로 처리하기 위한 patch-based segmentation을 설계했고, RGB to 3D Model에서는 공개 vision/reconstruction 모델의 결과에 fixture와 공간 구조 정보를 결합해 복원된 공간 구조를 보정했습니다.

이를 위해 semantic segmentation, polygon vectorization, SfM 기반 multi-view geometry, open-vocabulary segmentation, VLM, constrained Delaunay triangulation과 region adjacency graph 등 인식부터 computational geometry, 구조 최적화, 3D 모델 생성까지의 전체 reconstruction pipeline을 직접 다루었습니다. 또한 특정 foundation model에 종속되지 않도록 각 단계를 모듈화하여, 새로운 모델을 기존 파이프라인에 쉽게 적용할 수 있는 구조를 지향했습니다.

앞으로는 이러한 경험을 바탕으로 더 크고 복잡한 실제 환경에서의 3D reconstruction, 그리고 앞서 말한 closed loop의 남은 방향인 appearance reconstruction과 지속적인 scene update까지 연구 범위를 확장하고 싶습니다.