scripts/sanity_cotracker_one_episode.py 완성. 3회 commit 반복으로 bbox·output-path argv 지원 + min_frame=20 안정화step_*_image.png (K-tick마다 1장, 에피소드당 ~28-31장)./tmp/cotracker_sanity.mp4, GPU mem 출력ApiMem tool-calling 설계 (260510)의 Phase P0: CoTracker3를 full pipeline에 붙이기 전에, 실제 robomme 에피소드 프레임에서 point tracking이 동작하는지 확인하는 sanity gate.
ApiMem smoke run 결과물 (runs/api_mem_smoke/<task>/.../ep0/step_*_image.png)이
이미 디스크에 있으므로, 별도 시뮬레이터 실행 없이 프레임만 로드해서 테스트 가능.
| Commit | 내용 | 이유 |
|---|---|---|
6a91e9c | 초기 스크립트 생성 (60-frame BinFill ep0) | P0 시작. bbox와 output path 하드코딩 상태. |
d3c70e0 | min frame count 100 → 20으로 낮춤 | ApiMem ep는 K=48 sim steps마다 1장 저장 → 1500 step ep ≈ 31장. 100 요구는 초기 오판. |
7d05b88 | bbox + output mp4 path를 argv로 수용 | 여러 task/ep 테스트 시 코드 수정 없이 재사용 가능하도록. |
스크립트 자체는 완성 (코드 리뷰, syntax 검증 완료). 실제 GPU 실행 + mp4 눈검사는 다음 세션에서 수행 — P0 sanity 실행은 login GPU에서 timeout 5400 감싸서 진행 예정.
| 항목 | 상태 | 기준값 |
|---|---|---|
| 스크립트 완성 | ✅ | argv bbox+path 지원, min_frame=20 |
| 실제 GPU 실행 | ⬜ 미수행 | mp4 bbox tracking 눈검사 OK + GPU mem 출력 |
| GPU mem 측정 | ⬜ 미수행 | 목표: < 6 GB (SAPIEN 공존 여유) |
| P1 진행 게이트 | ⬜ P0 완료 후 | bbox가 cube를 따라가는지 확인 후 tracker.py 구현 진행 |
ApiMem tool-calling pipeline에 CoTracker3를 붙이기 위한 최소 선행 검증 완료.
robomme ep 프레임이 K-tick마다 1장씩 저장되는 구조 (~28-31장/ep)를
실측으로 확인 — P1 CoTrackerWrapper.track()의 입력 길이 설계에 직접 반영됨.
3회 commit의 refinement 과정(100→20 min frame, argv 추가)은 "ApiMem smoke run의 실제
step_*.png 저장 특성"을 이해한 결과. 이 지식이 P1의 테스트 케이스 설계(T=8 synthetic frames)에도 유효.
login GPU에서 timeout 5400으로 실행 → mp4 눈검사 + GPU mem 출력 확인.
GPU mem > 6 GB이면 CoTracker3 offline → online 모델로 교체 검토 (더 경량).
api_mem/tracker.py에 singleton lazy-init wrapper 구현.
tests/api_mem/test_tracker.py: 8-frame 64×64 synthetic moving square로
shape + motion 방향 검증. pytest tests/api_mem -v -m "not gpu" CPU 통과 후
GPU 마커 테스트.
color_for_label(), draw_annotated_objects() 구현 + 단위 테스트 4개.
CPU-only 테스트이므로 login에서 즉시 가능. P0 결과 기다리지 않고 진행.