Z-FLoc

8 분 소요

참고 논문을 찾아보니 매우 인상적이어서 읽어본 논문이다. 이 논문이 인상적인건, 학습을 최대한 자제한 상태에서, Zero-Shot에 포커스를 두었다는 부분과,
가장 최근 논문답게 관련연구들이 잘 정리되어있다. 그 부분이 인상적이다.

Intro

초록을 읽어보면 핵심 문구가 눈에 들어온다.
geometric primitives…… we extract these primitives from bird’s eye view(BEV) projection of monocular 3D reconstrucions …. match them to floorplan via dedicated minimal solvers……..

즉, RGB 이미지를 이용해 3차원 공간을 재구성하고(monocular 3D reconstructions), 그걸 2차원으로 압축하고(BEV), 여기서 직선과 원을 뽑아낸 뒤, 별도의 solver를 이용해 2D CAD도면(floorplan)과 매칭을 수행하여 Global localization을 수행한다는 것이다.

그 외에 이런 저런 말들이 많이 작성은 되어있는데 논문의 서문 특성상 개념적인 말들이 있는 것이니 크게 눈이 가지는 않는다.

어쨌든 이 연구를 통해 Zero-shot 상태에서 데이터셋을 학습하지 않고서도 localization을 가능케 한다고 하는데, LaLaLoc 과 같은 Indoor-2D CAD VPR 분야의 트렌드와 미묘하게 다른 부분이 있다.

Related work

이 논문에서 제법 눈에 들어오는 분야는 Related work부분에서 전체 분야에 대한 정리가 잘되어있고, 장단점을 잘 정리하고 있어서 눈길이 간다.

이 논문에서 소개하고 있는 Related work들은 다음과 같다. | 논문 약칭 | 요약 | 논문 citation | |—|—|—| | LaLaLoc | 파노라마 이미지와 floorplan에서 생성한 layout 표현을 각각 feature로 임베딩하고, 두 모달리티를 공통 latent space에서 비교하여 위치를 추정한다. RGB 이미지와 floorplan 사이의 modality gap을 학습된 feature space로 해결하는 대표적인 learning-based floorplan localization 방법이다. | Howard-Jenkins, H., Ruiz-Sarmiento, J.-R., Prisacariu, V.A., “LaLaLoc: Latent Layout Localisation in Dynamic, Unvisited Environments,” ICCV, pp. 10107–10116, 2021. | | LaLaLoc++ | LaLaLoc을 확장하여 camera/ceiling height를 알고 있어야 한다는 가정을 제거한다. 전체 floorplan을 직접 feature space에 embedding하여 query image와 비교하며, 새로운 환경의 floorplan에 대한 localization을 수행한다. | Howard-Jenkins, H., Prisacariu, V.A., “LaLaLoc++: Global Floor Plan Comprehension for Layout Localisation in Unvisited Environments,” ECCV, 2022. | | F3Loc | 일반 perspective RGB image로부터 floorplan과 직접 비교 가능한 1D depth ray를 예측한다. Single-view와 multi-view depth prediction을 결합하고, SE(2) histogram filter를 사용하여 시간에 따른 observation을 누적한다. Z-FLoc에서는 learned observation model + sequential filtering 계열의 대표 방법으로 언급한다. | Chen, C., Wang, R., Vogel, C., Pollefeys, M., “F3Loc: Fusion and Filtering for Floorplan Localization,” IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2024. | | Semantic Rays | F3Loc의 depth-ray 기반 localization을 확장하여 wall, window, door 등의 semantic ray를 함께 예측한다. Depth와 semantic information을 하나의 structural-semantic probability volume으로 결합하여 반복적인 floorplan 구조에서 발생하는 localization ambiguity를 줄인다. | Grader, Y., Averbuch-Elor, H., “Supercharging Floorplan Localization with Semantic Rays,” Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), pp. 27116–27125, 2025. | | PF-Net | Particle filter의 motion model과 observation model을 neural network와 결합하여 differentiable particle filtering을 수행한다. 이미지와 map patch 사이의 learned similarity를 observation likelihood로 사용하며, sequential observation을 이용해 pose distribution을 갱신한다. | Karkus, P., Hsu, D., Lee, W.S., “Particle Filter Networks with Application to Visual Localization,” Conference on Robot Learning (CoRL), 2018. | | C3Po | DUSt3R를 활용하여 서로 다른 view와 modality 사이의 point-level correspondence를 학습한다. Image와 floorplan 사이의 correspondence를 얻은 뒤 localization을 geometric registration 문제로 변환한다. 즉 correspondence 추정은 learning에 의존하지만 최종 pose 계산은 geometric registration으로 접근한다. | Huang, K.-W., Li, B., Hariharan, B., Snavely, N., “C3Po: Cross-View Cross-Modality Correspondence by Pointmap Prediction,” Advances in Neural Information Processing Systems (NeurIPS), Vol. 38, 2025. | | FloorplanNet | LiDAR에서 생성한 occupancy map과 floorplan을 graph representation으로 표현하고, graph neural network를 이용하여 두 지도를 matching한다. Geometry를 사용하지만 map matching 자체가 학습 기반이라는 특징이 있다. | Feng, D., He, Z., Hou, J., Schwertfeger, S., Zhang, L., “FloorplanNet: Learning Topometric Floorplan Matching for Robot Localization,” IEEE International Conference on Robotics and Automation (ICRA), pp. 6168–6174, 2023. | | SeDAR | Depth 대신 CNN이 예측한 semantic label을 observation으로 사용한다. Semantic 정보를 floorplan과 비교하고 Monte Carlo Localization을 수행하여 카메라 위치를 추정한다. 순수 geometry만 사용하는 방법과 달리 semantic scene understanding을 localization cue로 활용한다. | Mendez, O., Hadfield, S., Pugeault, N., Bowden, R., “SeDAR: Reading Floorplans Like a Human – Using Deep Learning to Enable Human-Inspired Localisation,” International Journal of Computer Vision, Vol. 128, No. 5, pp. 1286–1310, 2020. | | SPVLoc | Texture가 없는 3D semantic model에서 semantic panorama를 렌더링한 뒤, query perspective image의 embedding과 rendered panorama의 embedding을 matching한다. Semantic rendering을 이용해 perspective image와 구조적 map 사이의 modality gap을 줄인다. | Gard, N., Hilsmann, A., Eisert, P., “SPVLoc: Semantic Panoramic Viewport Matching for 6D Camera Localization in Unseen Environments,” ECCV, 2024. | | OrienterNet | 입력 이미지로부터 neural BEV representation을 예측하고 이를 OpenStreetMap과 neural matching하여 2D 위치와 orientation을 추정한다. 실내 floorplan보다는 outdoor public map localization을 대상으로 하지만, egocentric image를 BEV로 변환한 뒤 overhead map과 정합한다는 점에서 관련된다. | Sarlin, P.-E., DeTone, D., Yang, T.-Y., Avetisyan, A., Straub, J., Malisiewicz, T., Rota Bulò, S., Newcombe, R., Kontschieder, P., Balntas, V., “OrienterNet: Visual Localization in 2D Public Maps with Neural Matching,” CVPR, 2023. | | Spatial Graph-based Localization | LiDAR-derived map과 scaleless floorplan 사이에서 SIFT feature를 matching하고 similarity transformation을 추정한다. 별도의 학습이 필요 없는 training-free 방식이지만, 충분히 정확하고 넓은 영역을 커버하는 LiDAR point cloud를 필요로 한다. | Ewe, Z.L., Chang, F.H., Huang, Y.S., Fu, L.C., “Spatial Graph-based Localization and Navigation on Scaleless Floorplan,” IEEE Robotics and Automation Letters, Vol. 9, No. 4, pp. 3932–3939, 2024. | | 2D Map Alignment | Occupancy map을 영역(region) 단위로 분해하고 room/region 구조를 이용하여 두 2D map을 정합한다. Handcrafted geometric representation을 이용하기 때문에 별도의 학습은 필요 없지만, room geometry가 충분히 완전하게 관측되어야 한다. | Gholami Shahbandi, S., Magnusson, M., “2D Map Alignment with Region Decomposition,” Autonomous Robots, Vol. 43, 2019. | | Area Graph Matching | Occupancy map에서 공간을 영역 단위의 graph로 표현한 뒤 area graph 사이의 구조적 correspondence를 찾아 map을 정합한다. Training-free이지만 안정적인 room/area structure를 생성할 수 있을 정도의 고품질 map을 필요로 한다. | Hou, J., Yuan, Y., He, Z., Schwertfeger, S., “Matching Maps Based on the Area Graph,” Intelligent Service Robotics, Vol. 15, No. 1, pp. 69–94, 2022. | | FGPL | Fully Geometric Panoramic Localization. Panorama에서 추출한 2D line과 사전에 구축된 3D line map의 geometric relationship을 사용한다. Line distance field와 line intersection을 이용해 pose candidate를 탐색한 뒤 primitive 기반 refinement를 수행한다. Learned visual descriptor가 필요 없고 generalization이 강하지만 panorama와 정확한 height 정보가 요구된다. | Kim, J., Jeong, J., Kim, Y.M., “Fully Geometric Panoramic Localization,” Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2024. | | PALMS+ | Off-the-shelf monocular depth foundation model을 사용하여 여러 RGB 이미지로부터 scale-aligned point cloud를 복원한다. 이를 BEV로 투영한 뒤 floorplan과 convolution/correlation 방식으로 비교하여 pose posterior를 구한다. 별도 localization training은 필요 없지만 하나의 고정된 위치에서 360° 전체를 촬영해야 한다. | Cheng, Y., Princen, B., Manduchi, R., “PALMS+: Modular Image-Based Floor Plan Localization Leveraging Depth Foundation Model,” arXiv:2511.09724, 2025; accepted to IEEE/CVF Winter Conference on Applications of Computer Vision (WACV) 2026, Application Track. |

이걸 특징별로 다시 구분해보면 다음과 같다.



계열 대표 연구 핵심 접근 Z-FLoc이 지적하는 한계
Learning-based cross-modal matching LaLaLoc, LaLaLoc++ Image와 floorplan을 공통 feature space에서 비교 Domain-specific training 필요
Learning + Sequential Filtering F3Loc, PF-Net, Semantic Rays Learned observation likelihood를 시간에 따라 누적 학습 데이터 및 domain generalization 문제
Learned Correspondence C3Po Image-floorplan point correspondence를 학습한 뒤 geometric registration Correspondence 생성이 learned model에 의존
Semantic Localization SeDAR, SPVLoc Semantic label 또는 semantic rendering을 활용 Semantic model/annotation 및 학습 필요
Neural BEV Matching OrienterNet Image에서 BEV를 예측하고 overhead map과 neural matching Learned representation에 의존
Training-free Map Alignment Spatial Graph, 2D Map Alignment, Area Graph LiDAR/occupancy map을 floorplan과 geometric matching 정확하고 coverage가 높은 point cloud 필요
Fully Geometric FGPL Line 및 line intersection으로 pose search/refinement Panorama와 정확한 height 정보 필요
Foundation Depth + Dense BEV Matching PALMS+ Monocular depth → point cloud → BEV → floorplan correlation 고정 지점에서 360° observation 필요
Z-FLoc Z-FLoc RGB sequence → 3D reconstruction → BEV → line/circle → hybrid RANSAC Training-free이면서 partial/noisy observation을 다루는 것을 목표로 함

나름 자료검색 많이 했다고 생각했는데, 이걸 보니 또 읽어봐야 할 것이 몇가지 더 있다. C3Po도 그렇고, SeDAR도 있네…. 하.. 분야가 점점 커진다.




Zero-Shot Floorplan Localization

문제 정의

연속된 RGB이미지가 주어진다. 이 이미지들의 카메라 포즈(SE(3)) 와 카메라 내부값(intrinsic)도 같이 주어진다. 이걸 토대로 SE(2)인 2D 캐드도면상의 Pose를 찾는 것이다.

2026-09-15-21-41-01
2026-09-15-21-41-01

전체 pipeline 이미지에서 이런 과정을 간략히 보여주고 있다.

Input 데이터에 대해, 3차원 공간 재구성을 하는 라인과, 이 이미지에서 객체 인식을 통해 벽과 바닥을 구분해내고, 이걸 재구성된 3차원 공간에 적용시켜 벽 정보만 추출, 이걸 Top-view 로 변환한다. 여기서 나온 선과 원을 추출하여 FloorPlan의 원과 선들과 매칭시키는 작업을 수행하는데, 이때 Model estimation이 논문에서 말하는 Solver다. 그리고 그 문제를 풀기위한 Objective function이 Model scoring이라는 이름으로 정리되어있다. 이를 통해 위치를 추정하고 location과 trajectory를 추정해낸다.

천천히 톺아보자.

Pipeline

순서대로 번호를 매겨보자.

1) RGB 이미지와 카메라 포즈정보가 입력된다. 2-1) 이미지 정보를 토대로 3차원으로 재구성한다. (MapAnything) 2-2) 원본 이미지 정보에서 벽과 바닥정보를 구분해 픽셀에 라벨링한다.(Mask2Former) 3) 3D PCD 맵에서 벽만 추출한 다음 BEV로 변환한다. 4) FloorPlan과 BEV View에서 primitives(선, 원) 성분을 추출해낸다. 5) 추출된 Primitives를 4개의 Solver를 이용해 비교하면서 RANSAC 알고리즘을 이용해 반복한다(iteration) 6) iteration을 통해 좀더 지지를 많이 받는 pose를 최종 가설로 선택한다.

1. 입력정보

앞서 서술했듯이 RGB 이미지 시퀸스를 사용하는데, 거기에 더해 각 프레임의 상대 카메라 Pose정보 (SE(3)), 카메라 intrinsic 정보가 모두 주어진다.
상대 Pose만 가지고 있기때문에, 나중에 중력추정을 해서 보정하는 작업을 거쳐야 한다.

그리고 이 정보와 Sync를 맞추기 위해 2D 건축 캐드도면(floorplan)이 필요하다.

이러한 입력정보를 가지고 있는 데이터셋이 필요하다. 논문에선 평가용으로 다음과 같은 데이터셋을 사용했다.

Dataset 유형 특징 Z-FLoc 관점
Gibson(t) Synthetic indoor 작은 실내, upright camera, 넓은 FOV 비교적 정형적인 wall geometry
LaMAR HGE Real-world indoor 대형 대학 건물, occlusion 많음, narrow FOV 복잡하고 cylindrical structure도 존재
LaMAR CAB Real-world indoor HGE와 다른 건물 cross-building generalization 평가

일단 Gibson 데이터셋을 받아서 봤는데 합성데이터란걸 받아보고 나서야 알았다..

2026-09-18-14-18-00
2026-09-18-14-18-00
2026-09-18-14-18-29
2026-09-18-14-18-29

근데… 이렇게 우글우글거리는건 좀 심하지 않나..?

2026-09-18-14-19-05
2026-09-18-14-19-05

각 폴더에 이미지정보와 카메라 포즈정보, 그리고 맵정보도 이렇게 다 같이 들어가있으니 처음 알고리즘 연습해보기엔 좋은 자료인듯 하다.

2026-09-18-14-20-15
2026-09-18-14-20-15

2-1. 이미지정보를 토대로 3차원 재구성하기

이건 MapAnything 어떻게 쓰는지 예제수준일듯 하다…

2-2. 이미지 정보에서 벽과 바닥정보를 구분해 픽셀에 라벨링

이것도 Mask2Former 예제수준이다.

3. 3D PCD 맵에서 벽만 추출한 다음 BEV로 변환

전체 맵을 중력방향으로 정렬한뒤,

4. FloorPlan에서 line/circle 추출

이후는 좀 천천히 리뷰하면서 구현해볼까 한다.

댓글남기기