SimpleBEV是一个简单的基于BEV(Bird's Eye View)的3D目标检测框架,专为自动驾驶和机器人感知应用设计。该框架支持多种数据集(如NuScenes、KITTI),并提供高效的点云处理和BEV特征编码实现。
SimpleBEV/
├── configs/ # 配置文件目录
├── data/ # 数据集目录
├── datasets/ # 数据集加载模块
├── models/ # 模型实现模块
├── tools/ # 辅助工具脚本
│ ├── train.py # 训练脚本
│ ├── download_nuscenes.py # 下载NuScenes数据集
│ └── create_nuscenes_infos.py # 生成数据集信息文件
├── utils/ # 通用工具模块
├── requirements.txt # 项目依赖列表
├── setup.sh # Linux/Mac安装脚本
└── setup.ps1 # Windows安装脚本
- Python 3.7+
- PyTorch 2.0+
- CUDA 11.8+(推荐)
重要提示: 本项目使用NumPy 1.24.3和对应的依赖包。NumPy 2.x会导致某些依赖项(如nuscenes-devkit)出现兼容性问题。
使用提供的安装脚本一键安装所有依赖:
Linux/Mac:
bash setup.sh
Windows:
# 以管理员权限运行PowerShell
.\setup.ps1
- 克隆代码库:
git clone https://github.com/your-username/SimpleBEV.git
cd SimpleBEV
- 创建conda环境(可选):
conda create -n simplebev python=3.8 -y
conda activate simplebev
- 安装依赖:
# 首先安装NumPy 1.24.3(重要!)
pip install numpy==1.24.3
# 安装PyTorch
pip install torch==2.0.1 torchvision==0.15.2 --index-url https://download.pytorch.org/whl/cu118
# 安装numpy-quaternion
pip install numpy-quaternion==2022.4.2
# 安装其他依赖
pip install -r requirements.txt
- 下载NuScenes-mini数据集(约1.4GB):
python tools/download_nuscenes.py --output_dir ./data/nuscenes
- 生成数据信息文件:
python tools/create_nuscenes_infos.py --data_path ./data/nuscenes --version v1.0-mini
使用预配置的参数开始训练:
python tools/train.py --config configs/simple_bev_base.yaml
可以通过以下参数自定义训练过程:
--batch_size
: 设置批次大小--epochs
: 设置训练轮数--workers
: 设置数据加载的工作进程数--output_dir
: 设置输出目录--resume
: 从检查点恢复训练
训练启动后,您可以通过TensorBoard查看训练进度:
tensorboard --logdir output/tensorboard
本项目受到以下开源项目的启发:
此项目采用MIT许可证。
如果在运行tools/train.py
或tools/test.py
时遇到模块导入错误,有以下解决方法:
项目提供了两个便捷的启动脚本,可以正确设置Python路径:
# 训练模型
python run_train.py --config configs/simple_bev_base.yaml
# 测试模型
python run_test.py --config configs/simple_bev_base.yaml --checkpoint path/to/checkpoint.pth
可以将项目以开发模式安装到Python环境中:
# 安装项目
pip install -e .
# 之后可以直接运行原始脚本
python tools/train.py --config configs/simple_bev_base.yaml
python tools/test.py --config configs/simple_bev_base.yaml --checkpoint path/to/checkpoint.pth
# Linux/Mac
export PYTHONPATH=$PYTHONPATH:$(pwd)
# Windows (PowerShell)
$env:PYTHONPATH = "$env:PYTHONPATH;$(Get-Location)"
# 然后运行脚本
python tools/train.py --config configs/simple_bev_base.yaml