GraspNet 复现完整指南
项目结构说明
工作空间目录结构
your_workspace/
├── graspnet-baseline/ # 主训练代码仓库
│ ├── pointnet2/ # PointNet++ 模块
│ ├── knn/ # K近邻模块
│ ├── train.py # 训练脚本
│ ├── eval.py # 评估脚本
│ ├── test.py # 测试脚本
│ ├── demo.py # 演示脚本
│ ├── command_train.sh # 训练命令脚本
│ ├── command_test.sh # 测试命令脚本
│ ├── command_demo.sh # 演示命令脚本
│ └── requirements.txt # Python依赖
├── graspnetAPI/ # 评估API仓库
│ ├── setup.py
│ └── graspnetAPI/
└── data/ # 数据集目录(需手动创建)
└── Benchmark/
└── graspnet/ # 数据集存放位置
graspnet-baseline 项目详细结构
graspnet-baseline/
├── logs/ # 日志和权重目录
│ ├── log_rs/ # RealSense 训练日志和权重
│ │ ├── events.out.* # TensorBoard 日志文件
│ │ ├── log.txt # 训练日志
│ │ └── checkpoint.tar # RealSense 模型权重
│ ├── log_kn/ # Kinect 训练日志和权重
│ │ ├── events.out.*
│ │ ├── log.txt
│ │ └── checkpoint.tar # Kinect 模型权重
│ ├── dump_rs/ # RealSense 推理结果(运行后生成)
│ │ ├── *.npy # 预测结果文件
│ │ └── evaluation_result/ # 评估结果
│ └── dump_kn/ # Kinect 推理结果(运行后生成)
│ ├── *.npy
│ └── evaluation_result/
├── pointnet2/ # PointNet++ 实现
│ ├── setup.py
│ ├── pointnet2/
│ └── __init__.py
├── knn/ # K近邻实现
│ ├── setup.py
│ ├── knn/
│ └── __init__.py
└── ...其他源码文件
环境配置步骤
1. 创建 Conda 环境
conda create -n graspnet python=3.7
conda activate graspnet
2. 拉取代码和安装依赖
# 克隆主代码库
git clone https://github.com/graspnet/graspnet-baseline.git
cd graspnet-baseline
# 安装基础依赖
pip install -r requirements.txt
# 安装 PointNet++ 模块
cd pointnet2
python setup.py install
# 安装 KNN 模块
cd ../knn
python setup.py install
# 安装评估 API
cd ..
git clone https://github.com/graspnet/graspnetAPI.git
cd graspnetAPI
pip install .
cd ../..
数据集准备
1. 下载数据集
- 访问官方网站:
https://graspnet.net/ - 下载完整的数据集文件
2. 数据集目录结构
数据集应放置在以下路径:
/data/Benchmark/graspnet/
├── scenes/ # 场景数据
│ ├── scene_0000/ # 每个场景的目录
│ ├── scene_0001/
│ └── ...
├── collisions/ # 碰撞检测数据
└── evaluations/ # 评估数据
重要提示:如果 /data/Benchmark/graspnet 路径不存在,可以:
- 创建软链接:
ln -s /your/actual/path/to/graspnet /data/Benchmark/graspnet - 或者修改训练脚本中的
--dataset_root参数
训练数据需要和标注数据一起使用,获取标注数据的方式有两种,第一种是运行脚本生成标注数据:
cd dataset
sh command_generate_tolerance_label.sh
另外一种方式是在这个链接下下载权重然后手动移动到对应的位置上去。
mv tolerance.tar dataset/
cd dataset
tar -xvf tolerance.tar
预训练权重配置
1. 下载预训练权重
从官网下载两种相机的预训练权重:
- RealSense 相机权重
- Kinect 相机权重
2. 权重文件放置位置
graspnet-baseline/logs/
├── log_rs/
│ └── checkpoint.tar # RealSense 预训练权重
└── log_kn/
└── checkpoint.tar # Kinect 预训练权重
训练流程
1. 训练 RealSense 模型
cd graspnet-baseline
CUDA_VISIBLE_DEVICES=0 python train.py \
--camera realsense \
--log_dir logs/log_rs \
--batch_size 2 \
--dataset_root /data/Benchmark/graspnet
2. 训练 Kinect 模型
cd graspnet-baseline
CUDA_VISIBLE_DEVICES=0 python train.py \
--camera kinect \
--log_dir logs/log_kn \
--batch_size 2 \
--dataset_root /data/Benchmark/graspnet
测试和评估
1. 测试 RealSense 模型
cd graspnet-baseline
CUDA_VISIBLE_DEVICES=0 python test.py \
--dump_dir logs/dump_rs \
--checkpoint_path logs/log_rs/checkpoint.tar \
--camera realsense \
--dataset_root /data/Benchmark/graspnet
2. 测试 Kinect 模型
cd graspnet-baseline
CUDA_VISIBLE_DEVICES=0 python test.py \
--dump_dir logs/dump_kn \
--checkpoint_path logs/log_kn/checkpoint.tar \
--camera kinect \
--dataset_root /data/Benchmark/graspnet
演示运行
运行演示脚本
cd graspnet-baseline
# 使用 Kinect 权重(默认)
./command_demo.sh
# 或者手动指定 RealSense 权重
CUDA_VISIBLE_DEVICES=0 python demo.py \
--checkpoint_path logs/log_rs/checkpoint.tar
重要提示:默认的 command_demo.sh 使用的是 Kinect 权重,如果需要使用 RealSense 权重,需要手动修改脚本或直接运行上面的命令。
故障排除和注意事项
1. 路径问题
- 确保数据集路径正确
- 检查预训练权重文件是否存在
- 确认所有软链接有效
2. 依赖问题
- 确保所有 Python 包正确安装
- 检查 CUDA 和 cuDNN 版本兼容性
- 验证 PointNet++ 和 KNN 模块编译成功
3. 硬件要求
- 需要 GPU 支持(CUDA)
- 建议至少 8GB 显存
- 充足的磁盘空间存放数据集(约 1TB)
4. 文件权限
确保脚本有执行权限:
chmod +x graspnet-baseline/command_*.sh

被折叠的 条评论
为什么被折叠?



