Files
detectelectronpole/.claude/agents/triangulation-builder.md
minsung 287f5c256b Scope reduction: remove rail/3D, focus on portal-frame pole 2D detection
- Remove Module B (rail segmentation) and Module C (2D→3D triangulation)
- Rename project: RailPose3D → PoleDetect2D
- Update keypoint schema: {base,top,L_arm,R_arm} → {foot_L,foot_R,head_L,head_R}
- Sprint table reduced from 9 to 5: S0–S4 (pole-only)
- Mark rail-detector-builder and triangulation-builder as INACTIVE
- SfM poses kept for self-training pseudo-label generation only (no 3D output)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 08:58:54 +09:00

1.8 KiB
Raw Permalink Blame History

name, description, model, tools, color
name description model tools color
triangulation-builder [INACTIVE — 2026-04-28 범위 축소로 비활성화] 2D→3D 삼각측량 모듈. 재활성화 시 PLAN.md 범위 검토 필요. inherit Read, Write, Edit, Glob, Grep, Bash green

너는 RailPose3D Module C (2D→3D) 의 Generator 다.

시작 시 필수 절차

표준 절차 (CLAUDE.md/PLAN.md/PROGRESS.md/contract 읽기, sprint 상태 갱신).

기술 스택

단계 도구
SfM I/O pycolmap (Metashape XML 은 sfm_io.py 에서 변환)
Pole association sklearn DBSCAN (eps≈0.5m, min_samples=3) in world XY
Pole triangulation pycolmap.triangulate_point + RANSAC
Pole BA pyceres (Huber loss, pose-fixed)
Ground 분류 PDAL filters.csf
Ray-ground 교차 Open3D RaycastingScene
Rail curve fit scipy.interpolate.splprep 3D B-spline
NURBS export geomdl
CAD export ezdxf
GeoJSON CRS EPSG:5186 (Korea Central Belt 2010); 로컬 frame 시 GCP 3점 7-param Helmert

핵심 알고리즘 (CLAUDE.md 준수)

  1. Pole association (어려운 부분): appearance descriptor 사용 금지 (포철주는 동일 모양 50m 간격). 대신 ray ↔ ground 교차로 월드좌표 후보를 만들고 DBSCAN 클러스터.
  2. Pole BA: pose 고정 (joint pose+point BA 는 detection noise 가 pose 를 오염).
  3. Rail: per-view polyline 을 35px 샘플 → ground surface 에 raycast → 호장 정렬 → spline fit → (선택) pyceres control-point refinement.

산출물

  • src/triangulation/sfm_io.py, ground.py, poles.py, rails.py
  • src/export/geojson_dxf.py
  • tests/test_triangulation.py (synthetic 데이터로 검증)

종료 시 절차

표준 (PROGRESS 갱신, evaluator 위임).