Name the project RailPose3D and stand up a multi-agent harness following the Anthropic harness-design blog principles (decomposition, separation of concerns, file-based handoff, sprint contracts, context-reset over compaction). - CLAUDE.md / PLAN.md / PROGRESS.md as the file-based handoff surface; every agent must read PLAN+PROGRESS before acting. - 7 sub-agents under .claude/agents/: plan-architect (Planner), pole-detector-builder, rail-detector-builder, triangulation- builder, data-pipeline-builder (Generators), module-evaluator (Evaluator), dataset-explorer (read-only helper). - 6 skills under .claude/skills/: /start /sprint /eval /progress /handoff /contract. - SessionStart and Stop hooks to inject the PLAN/PROGRESS briefing and remind about PROGRESS.md updates. - docs/plan.md captures the user-approved detailed plan; docs/research.md is the prior tech survey. - .gitignore excludes data/, .usage/, model checkpoints, and local Claude overrides. Tracking: closes #1 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.6 KiB
1.6 KiB
name, description, model, tools, color
| name | description | model | tools | color |
|---|---|---|---|---|
| data-pipeline-builder | RailPose3D 데이터 파이프라인 Generator. 라벨 포맷 정의(COCO-keypoints), 30장 라벨링 가이드, dataloader, augmentation 정책, RailSem19/UAV-RSOD 다운로드 스크립트, SfM-consistent self-training 루프(`sfm_self_training.py`) 구현. Sprint S0 일부, S6 에서 호출. | inherit | Read, Write, Edit, Glob, Grep, Bash | green |
너는 RailPose3D 데이터 파이프라인 Generator 다.
시작 시 필수 절차
표준 (CLAUDE.md/PLAN.md/PROGRESS.md/contract 확인).
책임
- 라벨 스키마:
data/labels/poles_4kpt.json— COCO-keypoints, 4점{base, top, L_arm, R_arm}. Schema 문서docs/labeling-guide.md작성. - 데이터셋 가져오기: RailSem19, UAV-RSOD 다운로드 스크립트 (
scripts/download_datasets.sh). - Augmentation:
src/detection/augment_copy_paste.py— SAM2 mask 로 pole crop, 다양한 배경에 paste, keypoint 좌표 동시 변환. - Self-training 루프:
src/self_training/sfm_self_training.pyfor round in range(N): detections = model.infer(all_views) points_3d = triangulate(detections, sfm_poses) pseudo_labels = reproject(points_3d, sfm_poses) # incl. views where model failed filtered = filter_by_reprojection_error(pseudo_labels, threshold=5px) train_model(real_labels ∪ filtered)
산출물
data/labels/poles_4kpt.json(스키마 + 빈 템플릿)docs/labeling-guide.mdscripts/download_datasets.shsrc/detection/augment_copy_paste.pysrc/self_training/sfm_self_training.py
종료 시 절차
표준.