mirror of
https://github.com/Tavish9/any4lerobot.git
synced 2026-05-23 17:59:41 +00:00
⬆️ upgrade lerobot to 0.2.0 (#51)
This commit is contained in:
@@ -125,7 +125,7 @@ Dataset Structure of `meta/info.json`:
|
|||||||
## Get started
|
## Get started
|
||||||
|
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> 1.If you want to save depth when converting the dataset, modify `_assert_type_and_shape()` function in [lerobot.common.datasets.compute_stats.py](https://github.com/huggingface/lerobot/blob/main/lerobot/common/datasets/compute_stats.py).
|
> 1.If you want to save depth when converting the dataset, modify `_assert_type_and_shape()` function in [lerobot.datasets.compute_stats.py](https://github.com/huggingface/lerobot/blob/main/src/lerobot/datasets/compute_stats.py).
|
||||||
>
|
>
|
||||||
> ```python
|
> ```python
|
||||||
> def _assert_type_and_shape(stats_list: list[dict[str, dict]]):
|
> def _assert_type_and_shape(stats_list: list[dict[str, dict]]):
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ import torch
|
|||||||
from agibot_utils.agibot_utils import get_task_info, load_local_dataset
|
from agibot_utils.agibot_utils import get_task_info, load_local_dataset
|
||||||
from agibot_utils.config import AgiBotWorld_TASK_TYPE
|
from agibot_utils.config import AgiBotWorld_TASK_TYPE
|
||||||
from agibot_utils.lerobot_utils import compute_episode_stats, generate_features_from_config
|
from agibot_utils.lerobot_utils import compute_episode_stats, generate_features_from_config
|
||||||
from lerobot.common.datasets.compute_stats import aggregate_stats
|
from lerobot.datasets.compute_stats import aggregate_stats
|
||||||
from lerobot.common.datasets.lerobot_dataset import LeRobotDataset, LeRobotDatasetMetadata
|
from lerobot.datasets.lerobot_dataset import LeRobotDataset, LeRobotDatasetMetadata
|
||||||
from lerobot.common.datasets.utils import (
|
from lerobot.datasets.utils import (
|
||||||
check_timestamps_sync,
|
check_timestamps_sync,
|
||||||
get_episode_data_index,
|
get_episode_data_index,
|
||||||
validate_episode_buffer,
|
validate_episode_buffer,
|
||||||
@@ -24,7 +24,7 @@ from lerobot.common.datasets.utils import (
|
|||||||
write_episode_stats,
|
write_episode_stats,
|
||||||
write_info,
|
write_info,
|
||||||
)
|
)
|
||||||
from lerobot.common.datasets.video_utils import get_safe_default_codec
|
from lerobot.datasets.video_utils import get_safe_default_codec
|
||||||
from ray.runtime_env import RuntimeEnv
|
from ray.runtime_env import RuntimeEnv
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
import torch
|
import torch
|
||||||
import torchvision
|
import torchvision
|
||||||
from lerobot.common.datasets.compute_stats import auto_downsample_height_width, get_feature_stats, sample_indices
|
from lerobot.datasets.compute_stats import auto_downsample_height_width, get_feature_stats, sample_indices
|
||||||
|
|
||||||
torchvision.set_video_backend("pyav")
|
torchvision.set_video_backend("pyav")
|
||||||
|
|
||||||
|
|||||||
@@ -1090,7 +1090,7 @@ def early_validation(source_folders, episode_mapping, default_fps=20, fps=None):
|
|||||||
print(f"{colored('WARNING', 'yellow', attrs=['bold'])}: Video file not found for {image_dir}, episode {old_index} in {old_folder}")
|
print(f"{colored('WARNING', 'yellow', attrs=['bold'])}: Video file not found for {image_dir}, episode {old_index} in {old_folder}")
|
||||||
if image_dir_exists:
|
if image_dir_exists:
|
||||||
print(" Image directory exists, encoding video from images.")
|
print(" Image directory exists, encoding video from images.")
|
||||||
from lerobot.common.datasets.video_utils import encode_video_frames
|
from lerobot.datasets.video_utils import encode_video_frames
|
||||||
encode_video_frames(source_image_dir, source_video_path, fps, overwrite=True)
|
encode_video_frames(source_image_dir, source_video_path, fps, overwrite=True)
|
||||||
print(" Encoded video frames successfully.")
|
print(" Encoded video frames successfully.")
|
||||||
else:
|
else:
|
||||||
@@ -1124,7 +1124,7 @@ def early_validation(source_folders, episode_mapping, default_fps=20, fps=None):
|
|||||||
print(f" Expected: {expected_frames}, Found: {video_frame_count}")
|
print(f" Expected: {expected_frames}, Found: {video_frame_count}")
|
||||||
print(f" Re-encoded video frames from {source_image_dir} to {source_video_path}")
|
print(f" Re-encoded video frames from {source_image_dir} to {source_video_path}")
|
||||||
|
|
||||||
from lerobot.common.datasets.video_utils import encode_video_frames
|
from lerobot.datasets.video_utils import encode_video_frames
|
||||||
encode_video_frames(source_image_dir, source_video_path, fps, overwrite=True)
|
encode_video_frames(source_image_dir, source_video_path, fps, overwrite=True)
|
||||||
print(" Re-encoded video frames successfully.")
|
print(" Re-encoded video frames successfully.")
|
||||||
|
|
||||||
|
|||||||
@@ -19,11 +19,11 @@ from multiprocessing import cpu_count
|
|||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from huggingface_hub import HfApi
|
from huggingface_hub import HfApi
|
||||||
from lerobot.common.datasets.compute_stats import get_feature_stats
|
from lerobot.datasets.compute_stats import get_feature_stats
|
||||||
from lerobot.common.datasets.lerobot_dataset import LeRobotDataset
|
from lerobot.datasets.lerobot_dataset import LeRobotDataset
|
||||||
from lerobot.common.datasets.utils import EPISODES_STATS_PATH, STATS_PATH, load_stats, write_episode_stats, write_info
|
from lerobot.datasets.utils import EPISODES_STATS_PATH, STATS_PATH, load_stats, write_episode_stats, write_info
|
||||||
from lerobot.common.datasets.v21.convert_dataset_v20_to_v21 import V20, V21, SuppressWarnings
|
from lerobot.datasets.v21.convert_dataset_v20_to_v21 import V20, V21, SuppressWarnings
|
||||||
from lerobot.common.datasets.v21.convert_stats import check_aggregate_stats, convert_stats, sample_episode_video_frames
|
from lerobot.datasets.v21.convert_stats import check_aggregate_stats, convert_stats, sample_episode_video_frames
|
||||||
from tqdm import tqdm
|
from tqdm import tqdm
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ from pathlib import Path
|
|||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import tensorflow_datasets as tfds
|
import tensorflow_datasets as tfds
|
||||||
from lerobot.common.datasets.lerobot_dataset import LeRobotDataset, LeRobotDatasetMetadata
|
from lerobot.datasets.lerobot_dataset import LeRobotDataset, LeRobotDatasetMetadata
|
||||||
from tensorflow_datasets.core.file_adapters import FileFormat
|
from tensorflow_datasets.core.file_adapters import FileFormat
|
||||||
from tensorflow_datasets.core.utils.lazy_imports_utils import apache_beam as beam
|
from tensorflow_datasets.core.utils.lazy_imports_utils import apache_beam as beam
|
||||||
from tensorflow_datasets.rlds import rlds_base
|
from tensorflow_datasets.rlds import rlds_base
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ import pandas as pd
|
|||||||
import ray
|
import ray
|
||||||
from datatrove.executor import LocalPipelineExecutor, RayPipelineExecutor
|
from datatrove.executor import LocalPipelineExecutor, RayPipelineExecutor
|
||||||
from datatrove.pipeline.base import PipelineStep
|
from datatrove.pipeline.base import PipelineStep
|
||||||
from lerobot.common.datasets.lerobot_dataset import LeRobotDataset, LeRobotDatasetMetadata
|
from lerobot.datasets.lerobot_dataset import LeRobotDataset, LeRobotDatasetMetadata
|
||||||
from lerobot.common.datasets.utils import (
|
from lerobot.datasets.utils import (
|
||||||
write_episode,
|
write_episode,
|
||||||
write_episode_stats,
|
write_episode_stats,
|
||||||
write_info,
|
write_info,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import tqdm
|
import tqdm
|
||||||
from lerobot.common.datasets.lerobot_dataset import LeRobotDatasetMetadata
|
from lerobot.datasets.lerobot_dataset import LeRobotDatasetMetadata
|
||||||
|
|
||||||
|
|
||||||
def validate_all_metadata(all_metadata: list[LeRobotDatasetMetadata]):
|
def validate_all_metadata(all_metadata: list[LeRobotDatasetMetadata]):
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ Dataset Structure of `meta/info.json`:
|
|||||||
## Get started
|
## Get started
|
||||||
|
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> 1.for `bc_z` dataset, modify `encode_video_frames()` in `lerobot/common/datasets/video_utils.py`.
|
> 1.for `bc_z` dataset, modify `encode_video_frames()` in `src/lerobot/datasets/video_utils.py`.
|
||||||
>
|
>
|
||||||
> ```python
|
> ```python
|
||||||
> # add the following content to line 141:
|
> # add the following content to line 141:
|
||||||
|
|||||||
@@ -37,8 +37,8 @@ from pathlib import Path
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
import tensorflow as tf
|
import tensorflow as tf
|
||||||
import tensorflow_datasets as tfds
|
import tensorflow_datasets as tfds
|
||||||
from lerobot.common.constants import HF_LEROBOT_HOME
|
from lerobot.constants import HF_LEROBOT_HOME
|
||||||
from lerobot.common.datasets.lerobot_dataset import LeRobotDataset
|
from lerobot.datasets.lerobot_dataset import LeRobotDataset
|
||||||
from oxe_utils.configs import OXE_DATASET_CONFIGS, ActionEncoding, StateEncoding
|
from oxe_utils.configs import OXE_DATASET_CONFIGS, ActionEncoding, StateEncoding
|
||||||
from oxe_utils.transforms import OXE_STANDARDIZATION_TRANSFORMS
|
from oxe_utils.transforms import OXE_STANDARDIZATION_TRANSFORMS
|
||||||
|
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ Dataset Structure of `meta/info.json`:
|
|||||||
|
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
>
|
>
|
||||||
> 1. If you want to save depth when converting the dataset, modify `_assert_type_and_shape()` function in [lerobot.common.datasets.compute_stats.py](https://github.com/huggingface/lerobot/blob/main/lerobot/common/datasets/compute_stats.py).
|
> 1. If you want to save depth when converting the dataset, modify `_assert_type_and_shape()` function in [lerobot.datasets.compute_stats.py](https://github.com/huggingface/lerobot/blob/main/src/lerobot/datasets/compute_stats.py).
|
||||||
>
|
>
|
||||||
> ```python
|
> ```python
|
||||||
> def _assert_type_and_shape(stats_list: list[dict[str, dict]]):
|
> def _assert_type_and_shape(stats_list: list[dict[str, dict]]):
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ import numpy as np
|
|||||||
import pandas as pd
|
import pandas as pd
|
||||||
import ray
|
import ray
|
||||||
import torch
|
import torch
|
||||||
from lerobot.common.datasets.compute_stats import aggregate_stats
|
from lerobot.datasets.compute_stats import aggregate_stats
|
||||||
from lerobot.common.datasets.lerobot_dataset import LeRobotDataset, LeRobotDatasetMetadata
|
from lerobot.datasets.lerobot_dataset import LeRobotDataset, LeRobotDatasetMetadata
|
||||||
from lerobot.common.datasets.utils import (
|
from lerobot.datasets.utils import (
|
||||||
check_timestamps_sync,
|
check_timestamps_sync,
|
||||||
get_episode_data_index,
|
get_episode_data_index,
|
||||||
validate_episode_buffer,
|
validate_episode_buffer,
|
||||||
@@ -20,7 +20,7 @@ from lerobot.common.datasets.utils import (
|
|||||||
write_episode_stats,
|
write_episode_stats,
|
||||||
write_info,
|
write_info,
|
||||||
)
|
)
|
||||||
from lerobot.common.datasets.video_utils import get_safe_default_codec
|
from lerobot.datasets.video_utils import get_safe_default_codec
|
||||||
from ray.runtime_env import RuntimeEnv
|
from ray.runtime_env import RuntimeEnv
|
||||||
from robomind_uitls.configs import ROBOMIND_CONFIG
|
from robomind_uitls.configs import ROBOMIND_CONFIG
|
||||||
from robomind_uitls.lerobot_uitls import compute_episode_stats, generate_features_from_config
|
from robomind_uitls.lerobot_uitls import compute_episode_stats, generate_features_from_config
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
import torchvision
|
import torchvision
|
||||||
from lerobot.common.datasets.compute_stats import auto_downsample_height_width, get_feature_stats, sample_indices
|
from lerobot.datasets.compute_stats import auto_downsample_height_width, get_feature_stats, sample_indices
|
||||||
from lerobot.common.datasets.utils import load_image_as_numpy
|
from lerobot.datasets.utils import load_image_as_numpy
|
||||||
|
|
||||||
torchvision.set_video_backend("pyav")
|
torchvision.set_video_backend("pyav")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user