手把手教你跑通6-PACK: Category-level 6D Pose Tracker with Anchor-Based Keypoints

项目地址:GitHub - j96w/6-PACK: "6-PACK: Category-level 6D Pose Tracker with Anchor-Based Keypoints" code repository

一、配置环境

   这里强烈建议安装python3.6.7版本,安装低于此版本的python有可能在多线程训练时造成
chunk = read(handle, remaining)的问题。

  • CUDA 9.0
    已经有其他版本CUDA的老铁们不要怕麻烦,最好还是再装个9.0然后多版本切换cuda。ubuntu下安装多版本cuda及版本切换教程_zeeq_的博客-CSDN博客_ubuntu切换cuda版本

  • conda python3.6.7环境
    conda create -n 6pack python==3.6.7
  • 安装torch0.4.1 torchvision0.2.1

    conda install pytorch=0.4.1 torchvision==0.2.1 cuda90 -c pytorch
  • 安装opencv 

    pip install opencv-contrib-python
  • 安装PIL/spicy/numpy/logging     from conda官网安装

    conda install -c conda-forge pillow
    conda install -c conda-forge scipy
    conda install -c conda-forge numpy
    conda install -c conda-forge r-logging

二、准备数据

6PACK需要的训练+测试数据很庞大(快200G了),建议提前一晚下载

  • 创建My_NOCS文件夹,将上述数据集数据解压其中(记得给Test解压出来的文件改个名为real_val)由于数据量很大,可以把My_NOCS文件创建在空间充足的硬盘里,然后添加软链接到6pack根目录。ubuntu创建软链接_卒迹的博客-CSDN博客_ubuntu软连接
  • 现在文件夹的形式为My_NOCS/data/real_train, My_NOCS/data/real_val, My_NOCS/data/train,My_NOCS/data/gts
  • 下载NOCS-REAL275-additional.zip并解压到My_NOCS
      由于nocs数据集里没有位姿真值,只有NOCS的真值(每个像素对应的点云在NOCS系下的位置),因此需要从训练数据里生成6D pose。NOCS的原版策略:随机采样mask内的像素,恢复出的真值效果一般。6PACK策略:选取临近mask中心的像素。additional.zip是6-pack官方已经生成好的pose和scale,model_pts是ShapeNetCore中的物体点云。
  • 现在文件夹下有My_NOCS/data_list,My_NOCS/data_pose,My_NOCS/model_pts,My_NOCS/model_scales
  • 在6pack根目录的dataset文件夹下运行命令,生成真值数据,时间较长,我用了6小时。
    python data_preprocess.py
  • 训练时采用数据增强策略,需要用到coco2017数据集,解压后把train2017放到My_NOCS下http://images.cocodataset.org/zips/train2017.zip

至此数据准备工作完成,即构建好了 My_NOCS文件夹。

三、训练

python train.py --category 1 --dataset_root '/home/robot413/My_NOCS' --workers 16

四、评估+benchmark

python eval.py
python benchmark.py

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值