GDR-Net复现

一、引言

GDR-Net(Geometry-Guided Direct Regression Network)是由Gu Wang等人在CVPR 2021上提出的一种创新方法,它通过几何引导的直接回归网络,有效地解决了这一难题。GDR-Net的核心思想是利用几何信息来指导网络直接回归物体的6D姿态,从而在精度和效率上取得了显著的提升。它为单目相机实现6D对象姿态估计带来了新的突破。

本文探讨GDR-Net在本地的复现,从环境配置到测试程序的运行等。

二、环境配置

先下载工程:

git clone https://github.com/THU-DA-6D-Pose-Group/GDR-Net.git

创建虚拟环境

conda create -n gdrnet python=3.8 -y
conda activate gdrnet

安装python支持库pip install -r requirements.txt,作者给出的列表并不全面。缺少loguru, cffi等库的支持, 并且fastfunc已经不再使用。这里给出一个版本,若仍有提示缺少库直接用pip安装:

cython
plyfile

pycocotools  # or install the nvidia version which is cpp-accelerated

cffi
ninja
setproctitle
#fastfunc
meshplex
OpenEXR
vispy>=0.6.4
tabulate
pytest-runner
pytest
ipdb
tqdm
numba
mmcv
imagecorruptions
pyassimp==4.1.3  # 4.1.4 will cause egl_renderer SegmentFault
pypng
albumentations
transforms3d
pyquaternion
torch==1.13.0
torchvision
open3d
fvcore
tensorboardX
loguru
cffi

pytorch-lightning  # 1.6.0.dev0
fairscale
deepspeed

之后按照作者教程,依次安装依赖:

  • 首先是detectron:
git clone https://github.com/facebookresearch/detectron2.git
cd detectron2/
python setup.py build_ext install
  • 其次运行bash scripts/install_deps.sh
  • 最后运行bash core/csrc/compile.sh

*报错: pytorch_lightning.lite no such module
使用旧版pip,并安装1.x版本的torch。对于pytorch_lightning的版本需求,作者指出需要1.6.0dev版本,本文发现1.6.0也可以。

pip install torch==1.13.0 torchvision
pip install pip==23
pip install pytorch-lightning==1.6.0

*报错:torchmetrics相关
安装0.5版本的torchmetrics

pip install torchmetrics==0.5

三、数据下载

  • LM数据本身比较庞大,建议下载LMO数据。所有相关的数据都可以在BOP Challenge中下载,需要自由的上网。本文推荐使用BOP在huggingface上的下载页。下载所有lmo文件夹下的压缩包,并解压将所有文件移动至根目录GDR-Net/datasets/BOP_DATASETS/lmo

  • 其次,下载作者准备的数据集分割文件和测试框文件:
    https://pan.baidu.com/s/1gGoZGkuMYxhU9LBKxuSz0g#list/path=%2F
    密码:qjfk
    下载完成后将文件解压到lmo中的对应文件夹。

  • VOC 2012选择性下载。

下载完成后,lmo目录结构如下:

├── camera.json
├── dataset_info.md
├── lmo_test_bop19
│   └── test
├── lmo_train
│   └── train
├── models
│   ├── models_info.json
│   ├── obj_000001.ply
│   ├── obj_000005.ply
│   ├── obj_000006.ply
│   ├── obj_000008.ply
│   ├── obj_000009.ply
│   ├── obj_000010.ply
│   ├── obj_000011.ply
│   └── obj_000012.ply
├── models_eval
│   ├── models_info.json
│   ├── obj_000001.ply
│   ├── obj_000005.ply
│   ├── obj_000006.ply
│   ├── obj_000008.ply
│   ├── obj_000009.ply
│   ├── obj_000010.ply
│   ├── obj_000011.ply
│   └── obj_000012.ply
├── test
│   ├── 000002
│   └── test_bboxes
├── test_targets_bop19.json
└── train_pbr

四、运行

根据给出的命令修改数据集为lmo数据集,命令如下

./core/gdrn_modeling/test_gdrn.sh configs/gdrn/lmo/a6_cPnP_AugAAETrunc_BG0.5_lmo_real_pbr0.1_40e.py 0 output/gdrn/lmo/a6_cPnP_AugAAETrunc_BG0.5_lmo_real_pbr0.1_40e/gdrn_lmo_real_pbr.pth

运行结果:

20240927_111034|core.gdrn_modeling.gdrn_custom_evaluator@655: 
objects  ape    can    cat    driller  duck   eggbox  glue   holepuncher  Avg(8)
ad_2     0.34   6.38   0.67   7.74     0.26   0.43    8.66   0.08         3.07
ad_5     12.99  49.79  12.05  39.21    11.20  15.88   42.95  26.28        26.29
ad_10    44.87  79.70  30.58  67.79    39.98  49.79   73.70  62.73        56.14
rete_2   8.89   12.34  6.91   9.64     3.59   0.09    3.11   3.80         6.05
rete_5   52.99  66.61  31.76  58.73    20.30  6.15    42.84  51.32        41.34
rete_10  78.72  92.05  58.72  81.05    65.00  39.37   76.25  90.66        72.73
re_2     9.23   13.01  9.01   12.69    4.02   0.09    4.66   4.71         7.18
re_5     53.16  68.93  32.86  60.46    20.82  6.23    44.06  51.74        42.28
re_10    78.89  94.28  59.48  82.70    65.53  39.62   76.80  91.40        73.59
te_2     71.97  80.12  40.10  58.90    70.95  20.50   44.40  78.02        58.12
te_5     86.75  90.39  66.72  83.44    85.30  57.81   80.36  93.47        80.53
te_10    88.97  94.86  79.44  91.27    89.68  70.11   85.90  96.20        87.06
proj_2   15.81  20.88  18.53  10.46    15.14  1.71    14.21  8.43         13.15
proj_5   65.73  80.53  59.48  60.96    69.99  38.17   58.60  81.49        64.37
proj_10  80.09  97.18  73.88  84.27    86.70  64.30   81.80  95.21        82.93
re       14.97  4.79   18.27  10.03    15.25  17.32   10.10  8.58         12.41
te       0.06   0.02   0.07   0.04     0.05   0.09    0.06   0.02         0.05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值