SLAM Phylogeny
Frontier-LLM semantic curation (v2)
References는 frontier LLM이 직접 판정한다
이 사이트의 Matched Handbook references는 더 이상 score 기반의 단계별 매칭이 아닙니다.
1,320개 각 reference에 대해 frontier 모델 (Claude Opus 4.7) 이 SLAM Handbook 본문에서 추출된
citation context와 204개 4-depth taxonomy leaf 전체, 그리고 decision policy를 한 번에 보고
Phylum > Class > Order > Genus까지의 path를 직접 판정합니다.
같은 feature 논문이라도 모델이 "Visual SLAM 장에서 인용됐는지, Place Recognition 절에서 인용됐는지, Learning 장에서 인용됐는지"를 reasoning한 뒤 1-3개의 leaf에 multi-membership을 부여합니다.
Current Pipeline
이전 4-stage script chain (build -> enrich -> context_match -> assign_genus)을
단일 LLM 호출로 대체했습니다.
pip install "anthropic>=0.40.0"
export ANTHROPIC_API_KEY="sk-ant-..."
python run_semantic_assignment.py \
--inventory SLAM_HANDBOOK_REFERENCES_INVENTORY.md \
--leaves SLAM_4DEPTH_TAXONOMY_LEAVES.md \
--output slam_handbook_references_semantic.json \
--model claude-opus-4-7 \
--concurrency 8
핵심 동작:
parse_inventory()가 inventory.md에서 1,320개 reference의 id, title, year, current label as hint, top-5 citation contexts를 구조화.- system prompt에 204개 leaf 전체 + decision policy + primary-label heuristics를 넣고
cache_control: ephemeral처리. 두 번째 호출부터 input 비용 약 10x 절감. - user message로 reference 1개씩 보내고 strict JSON 응답 받음.
- 응답의 모든 path를 leaf set과 대조. hallucination 발생 시 잘못된 path를 알려주고 1회 retry.
- 결과는 JSONL로 즉시 flush. 중단 후 재실행하면 끝난 ID는 자동 skip.
출력은 단일 label이 아니라 matched_paths[]와 함께 저장됩니다.
{
"id": 800,
"title": "DTAM: Dense Tracking and Mapping in Real-Time",
"primary_path": ["SLAM", "Map Representations", "Dense Geometric Maps",
"Dense Reconstruction", "Real-Time Dense Reconstruction"],
"matched_paths": [
{"path": [...], "role": "primary", "confidence": 0.95, "reason": "..."},
{"path": [...], "role": "secondary", "confidence": 0.88, "reason": "..."}
],
"uncertainty": ""
}
Decision Principle
System prompt에 다음 heuristics가 명시되어 모델이 일관된 기준으로 판정하게 합니다.
| 논문이 기여하는 것 | Primary phylum |
|---|---|
| Sensor-specific full system | Sensor & Odometry Modalities |
| New residual / association / registration / loop module | Measurement Front-End |
| New solver / inference / robust objective / differentiable opt | Back-End Optimization & Inference |
| New world representation | Map Representations |
| Manifold / Lie / observability / factor-graph theory | State, Geometry & Probabilistic Modeling |
| Benchmark / metric / runtime / deployment | Robustness, Evaluation & Operations |
| Learning이 핵심 algorithmic novelty | Learning, Semantics & Spatial AI |
| Foundational textbook / historical / era piece | Problem & System Context |
다음 problem family는 prompt에서 명시적으로 주의시킵니다:
- NeRF vs 3D Gaussian Splatting vs generic neural implicit map: 서로 다른 leaf.
- Wheel / leg / inertial / 기타 proprioceptive odometry 구분.
- 순수 place recognition vs full SLAM system: place recognition은 sensor 챕터에서 인용돼도
Measurement Front-End > Place Recognition으로. - 데이터셋/벤치마크는 sensor-specific이라도 evaluation leaf에도 동시 배정.
- "Robust"는 실제 robust estimation 기여일 때만 Robust Back-End leaf 사용.
- 단어 우연 일치 회피. 예:
transactions가ransac을 substring으로 가짐.
Examples
| Handbook context | Semantic assignment |
|---|---|
8.3 LiDAR Place Recognition | Measurement Front-End > Place Recognition and Loop Closure > Place Recognition > LiDAR Place Recognition |
11.3 Observability of Aided Inertial Navigation | State, Geometry & Probabilistic Modeling > Observability and Uncertainty > Inertial Observability > Bias Observability |
14.3 3D Gaussian Splatting | Map Representations > Neural and Differentiable Maps > Gaussian Maps > 3D Gaussian Splatting |
16.4 3D Scene Graphs | Map Representations > Semantic and Structured Maps > Hierarchical Spatial Maps > 3D Scene Graphs |
18.6 Gaussian Belief Propagation | Learning, Semantics & Spatial AI > Computational Structure > Distributed and Hardware-Aware Computation > Gaussian Belief Propagation |
Outputs
| 파일 | 설명 |
|---|---|
data/slam_handbook_references_semantic.json | full semantic curation JSON (v2) |
data/slam_handbook_references_semantic.csv | 사이트가 쓰는 semantic curation CSV |
data/slam_handbook_references_with_contexts.json | reference + citation contexts 입력 |
scripts/run_semantic_assignment.py | v2 frontier-LLM curation pipeline |
matched_paths[]를 읽어 primary와 secondary membership을 함께 표시합니다.
검색 시에도 primary leaf와 secondary leaf가 동시에 펼쳐져, 논문 하나가 여러 SLAM 역할에 참여하는 구조를 볼 수 있습니다.