nvidia-isaac/video_to_data
Nvidia Isaac Video to Data Pipeline
Video to Data (V2D) – 인간 데모 비디오에서 로봇 준비 훈련 데이터까지
정의 – 사람이 작업을 수행하는 일반 비디오 녹화를 시뮬레이션 준비 3D 자산과 로봇을 위한 물리 기반 강화 학습(RL) 정책으로 변환하는 엔드투엔드 모듈식 파이프라인입니다. 저장소는 독립적으로 또는 함께 실행할 수 있는 4개의 주요 패키지로 나뉩니다.
| 패키지 | 역할 | 실행 방법 |
|---|---|---|
video_ingestion_agent |
원시 비디오를 파싱하고, 액션 클립으로 분할하고, 엔터티 관계 장면 그래프를 구축하고, 프레임별 SigLIP-2 임베딩을 저장합니다. 출력은 검색 가능한 액션 데이터베이스(graph.db + vector.db)입니다. |
Python 가상 환경 + vLLM 서버(LLM 기반 검색). |
reconstruction |
선택한 클립을 프레임별 깊이 맵, 객체 마스크, 텍스처 메시, 6-DoF 객체 포즈, SMPL 인체 매개변수로 변환합니다. 다중 뷰 파이프라인은 스테레오 또는 rosbag 입력을 처리합니다. | Docker 컨테이너(비전 모듈당 하나). |
robotic_grounding |
재구성된 인간 모션을 로봇 모델(예: Sharpa)에 리타겟팅한 다음 NVIDIA Isaac Lab에서 RSL-RL PPO를 사용하여 RL 정책을 훈련합니다. 데이터세트 변환 및 정책 평가 유틸리티가 포함됩니다. | Isaac Lab 2.3.1 기반 Docker 컨테이너. |
robotic_grounding/flash_chord |
FlashSAC/FlashCHORD(Newton / Warp / JAX)를 사용하여 더 빠른 참조 추적 RL을 위한 선택적 가속 훈련 경로. | JAX 기반 스택을 사용하는 별도 컨테이너. |
중요성 – V2D는 쉽게 캡처할 수 있는 인간 데모(전화 비디오)와 실제 하드웨어에 배포할 수 있는 로봇 정책을 훈련하는 데 필요한 고충실도 시뮬레이션 데이터 간의 격차를 해소합니다. 각 단계를 파일 기반의 컨테이너화된 모듈로 노출함으로써 연구자는 다음을 수행할 수 있습니다:
- 전체 파이프라인을 다시 실행하지 않고 중간 결과(예: 깊이 맵)를 재사용합니다.
- 나머지는 유지하면서 개별 구성 요소(다른 깊이 추정기, 다른 RL 알고리즘)를 교체하거나 개선합니다.
- 단일 RTX A6000(또는 L40/L40S) GPU에서 전체 워크플로를 실행하여 많은 연구실에서 접근할 수 있습니다.
주요 구성 요소 및 기술
- LangGraph 기반 수집 에이전트 – LLM 안내 분할, 검증, 액션 클립의 자연어 검색.
- 비전 스택 – Grounding-DINO, SAM-2, FoundationPose, SAM3D-Body, MoGe 등이 Docker 이미지로 패키징되었습니다.
- Isaac Lab 2.3.1 + RSL-RL PPO – 정책 학습을 위한 시뮬레이션 환경 및 RL 알고리즘.
- FlashCHORD – 선택적 JAX 기반 가속 PPO/FlashSAC 훈련.
- 타입 데이터 계약 –
v2d_common은 모듈 인터페이스를 깔끔하게 유지하기 위해 명시적 데이터클래스(DepthImage, CameraIntrinsics, Transform3d 등)를 정의합니다.
일반적인 워크플로
video_ingestion_agent/scripts/run_ingestion.py로 비디오를 수집합니다. 에이전트는 액션 클립의 검색 가능한 데이터베이스를 생성합니다.- 자연어 쿼리(
run_retrieval.py) 또는 제공된 Gradio UI를 사용하여 관심 클립을 검색합니다. - Docker 기반 모듈(전체 다중 뷰 파이프라인용
run_mv_hoi_reconstruction)을 사용하여 선택한 클립에서 3D 데이터를 재구성합니다. - 인간 모션을 로봇 모델에 접지하고 Isaac Lab으로 정책을 훈련합니다(
robotic_grounding/scripts/run_pipeline_docker.py→train.py). - (선택 사항) FlashCHORD로 훈련을 가속화합니다.
- 브라우저 기반 갤러리에서 리타겟된 모션을 시각화합니다.
시작하기 – README에 빠른 시작 시퀀스가 제공됩니다:
# 1. 비디오 수집
cd video_ingestion_agent
uv venv .venv && source .venv/bin/activate
uv pip install -e ".[all]"
python scripts/serve.py -c configs/ingestion.yaml # vLLM 서버 시작
python scripts/run_ingestion.py path/to/video.mp4 -c configs/ingestion.yaml --no-verify -o runs/my_run
python scripts/run_retrieval.py "find clips where someone picks up a mug" -d outputs/ -c configs/retrieval.yaml
# 2. 재구성(Docker)
cd reconstruction
./scripts/install_packages.sh
./scripts/build_containers.sh
python -m v2d.pipelines.run_mv_hoi_reconstruction \
--rosbag_path /data/rosbags/session1 \
--output_dir /data/datasets/session1 \
--calibration_camera_params_path /data/datasets/calibration/extrinsics/edex \
--obj_mesh_path /data/meshes/object.glb
# 3. 로봇 접지 및 RL 훈련
cd robotic_grounding
bash workflow/setup_deps.sh && git lfs pull
python scripts/run_pipeline_docker.py --build-only
python scripts/run_pipeline_docker.py taco --hmd $HOME/datasets/human_motion_data --max-sequences 2
./workflow/run.sh build && ./workflow/run.sh start
python scripts/rsl_rl/train.py --task Sharpa-V2D-v0
문서 링크(E2E 워크플로 가이드, 기술 보고서, Hugging Face의 데이터세트 수집)는 더 깊은 세부 정보와 재현성 검사를 제공합니다.
대상 사용자 – 데모에서 로봇 학습을 연구하는 연구자와 엔지니어, 특히 다음에 관심이 있는 사람:
- 인간-손 상호작용의 비전 기반 3D 재구성.
- 원시 비디오에서 배포 가능한 정책까지의 엔드투엔드 파이프라인.
- NVIDIA 중심 시뮬레이션 및 RL 스택(Isaac Lab, RSL-RL, FlashCHORD).
라이선스 및 기여 – 저장소는 표준 NVIDIA 오픈 소스 라이선스를 따릅니다(각 패키지의 LICENSE 파일 참조). 기여를 환영합니다. 기여 가이드는 reconstruction README에 있으며 새 재구성 모듈(Docker 이미지, 가중치 다운로드 진입점, 타입 API)을 추가하는 방법을 설명합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트