Skip to content

Repository files navigation

NuScenes Splitter

English | 中文

用于切分NuScenes自动驾驶数据集。支持精确场景切分、区间切分、关键字搜索和批量处理等多种模式。 适用于硬件资源有限或者对数据集切分有严格要求的情况

核心功能

  • 精确场景切分: 根据场景名称精确切分数据集
  • 场景区间切分: 支持场景范围切分(如 scene-0061-scene-0120)
  • 关键字搜索: 根据场景描述关键字智能筛选场景
  • 混合模式: 支持多种切分方式组合使用
  • 批量处理: 支持配置文件批量处理多个切分任务
  • 数据完整性: 自动处理相关数据文件的复制和链接
  • 扩展数据支持: 可选包含can_bus、lidarseg等扩展数据
  • Docker支持: 提供完整的容器化解决方案

支持的数据集版本

  • v1.0-mini
  • v1.0-trainval
  • v1.0-test 自动识别数据集版本

项目结构

nuscenes_split/
├── src/nuscenes_splitter/          # 核心源代码
├── scripts/                        # 运行脚本
├── configs/                        # 配置文件示例
├── docker/                         # Docker配置
├── docs/                           # 详细文档
├── tests/                          # 测试文件
└── examples/                       # 使用示例

快速开始

方式一:使用虚拟环境(推荐)

# 克隆项目
git clone https://github.com/TonyFMl/nuscenes_split.git
cd nuscenes_split

# 使用自动化脚本设置虚拟环境
chmod +x scripts/setup_env.sh
./scripts/setup_env.sh

# 激活虚拟环境
source nuscenes_validation_env/bin/activate

# 安装包(开发模式)
pip install -e .

方式二:直接安装

# 克隆项目
git clone https://github.com/TonyFMl/nuscenes_split.git
cd nuscenes_split

# 安装依赖
pip install -r requirements.txt

# 安装包(开发模式)
pip install -e .

** 提示**: 推荐使用虚拟环境方式,可以避免依赖冲突并保持系统环境整洁。

Docker使用

# 构建镜像
docker build -t nuscenes-splitter .

# 查看可用场景
./scripts/run_docker.sh run -s path/to/nuScenes -o output --list-scenes

# 切分单个场景
./scripts/run_docker.sh run -s path/to/nuScenes -o output -n test_scene --scenes scene-0061

# 批量处理
./scripts/run_docker.sh batch -s path/to/nuScenes -o output -c configs/test_batch_config.json

💡 提示:

  • -s 参数应指向包含nuScenes数据的目录(如 data/nuScenes
  • -o 参数指定输出目录
  • 脚本会自动处理路径映射到Docker容器内

基础使用

** 注意**: 如果使用了虚拟环境,请先激活环境:source nuscenes_validation_env/bin/activate

查看可用场景

python scripts/run_splitter.py -s path/to/nuScenes -o output --list-scenes

精确场景切分

python scripts/run_splitter.py \
    -s path/to/nuScenes \
    -o output \
    -n my_subset \
    --scenes scene-0061 scene-0103

关键字搜索切分

python scripts/run_splitter.py \
    -s path/to/nuScenes \
    -o output \
    -n night_scenes \
    --keywords night

批量处理

python scripts/run_batch_splitter.py \
       -s path/to/nuScenes \
       -o output \
       -c configs/config_example.json

详细文档

更多详细的使用说明、配置选项和高级功能,请参考:

完整使用指南

包含以下内容:

  • 详细的切分模式说明
  • 批量处理配置
  • Docker使用指南
  • API编程接口
  • 故障排除和最佳实践

项目架构

核心组件

  • NuScenesSplitter: 主要切分器类,支持所有切分模式
  • BatchSplitter: 批量处理器,支持配置文件驱动
  • 便捷脚本: 简化常用操作的运行脚本

贡献

欢迎提交Issue和Pull Request来改进这个项目。

许可证

本项目采用MIT许可证。详见 LICENSE 文件。

About

用于切分NuScenes自动驾驶数据集。支持精确场景切分、区间切分、关键字搜索和批量处理等多种模式。 适用于硬件资源有限或者对数据集切分有严格要求的情况

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages