변환·전처리 파이프라인을 보조하는 실행 스크립트 모음입니다.
| 파일 | 역할 |
|---|---|
run_conversion.sh |
환경변수 기반 batch 변환 래퍼 (conversion/batch_convert_rosbag_to_lerobot.py 실행) |
visualize_mask_distribution.py |
모든 mask PNG를 누적해 히트맵 + .npy 분포 파일 생성 |
extract_first_mask_frames.py |
각 bag에서 첫 유효(non-zero) mask 프레임을 PNG로 추출 |
resize_dataset_videos.py |
LeRobot 데이터셋의 모든 비디오를 동일 해상도로 리사이즈 (GR00T multi-camera용) |
환경변수로 입력/출력 경로와 변환 파라미터를 설정한 뒤 배치 변환을 실행합니다.
INPUT_DIR=/workspace/dkim_result \
OUTPUT_DIR=/workspace/lerobot_datasets \
REPO_ID=dkim/ffw_sg2_rev1_offline \
FPS=10 ROBOT_TYPE=ffw_sg2_rev1 TASK_NAME="remove the flower" \
bash scripts/run_conversion.shmask PNG들을 모두 더해 어느 위치에 mask가 자주 등장하는지 히트맵으로 시각화합니다. 결과 .npy는 inference 단계의 mask_distribution_monitor.py가 사용합니다.
python scripts/visualize_mask_distribution.py \
--input-dir /workspace/dkim_result_3_extracted_masks \
--output /workspace/dkim_result_3_extracted_masks/mask_distribution.png \
--colormap hot출력: mask_distribution.png, mask_distribution_heatmap.png, mask_distribution_accumulated.npy
각 bag(converted_*)에서 픽셀이 존재하는 첫 mask 프레임을 찾아 {folder_name}.png로 저장합니다. mask 분포 시각화의 입력 데이터를 만들 때 사용합니다.
python scripts/extract_first_mask_frames.py \
--input-dir /workspace/dkim_result_3 \
--output-dir /workspace/dkim_result_3_extracted_masks \
--topic /mf_perception/ch0_binary_image_sam2/compressed \
--skip-emptyLeRobot 데이터셋의 모든 카메라 비디오를 동일한 해상도로 통일합니다. GR00T multi-camera 학습 시 해상도가 일치해야 하므로 필요합니다. 리사이즈 후에는 postprocessing/generate_stats.py로 통계를 재생성해야 합니다.
python scripts/resize_dataset_videos.py \
--input-path /workspace/lerobot_.../dkim_ffw_sg2_rev1_offline_200/ \
--output-path /workspace/lerobot_.../dkim_ffw_sg2_rev1_offline_200_672376 \
--target-height 376 \
--target-width 672 \
--skip-existinginfo.json, modality.json의 해상도 정보도 함께 갱신됩니다.