GraspNet 复现过程

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 路径不存在,可以:

  1. 创建软链接:ln -s /your/actual/path/to/graspnet /data/Benchmark/graspnet
  2. 或者修改训练脚本中的 --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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值