1. 论文和项目来源
paper:https://arxiv.org/pdf/2307.12101.pdf
code:https://github.com/ucas-vg/PointTinyBenchmark/tree/SSD-Det
2. 论文概述
3. 复现过程遇到的问题
首先,readme文件中有介绍的我就不详细说了。
3.1 成功的环境
克隆项目之后发现整个项目时基于openmmlab项目实现的,在所需要的环境中用到了mmcv和mmdet,也只需要这两个,但是由于整个项目使用的依赖比较老,所以版本适配问题时遇到的第一个问题,也是最重要的一个,首先,展示我成功运行的环境(仅一些主要的依赖):
Name Version
torch 1.10.0+cu113
torchvision 0.11.1+cu113
mmcv-full 1.4.0
mmdet 3.1.0
CUDA 11.3
其他的依赖就按照最新版安装就好了(mmengine并不是刚需),他在运行的时候回重点检查mmcv-full的版本,显示的是mmcv-full>=1.3.5 and mmcv<=1.4.0
,所以我的安装命令是:
pip install mmcv-full==1.4.0 -f https://download.openmmlab.com/mmcv/dist/cu110/torch1.7.0/index.html
重点是cu110
和torch1.7.0
这里需要改成自己机器的版本号,如果报错安装不了,那就是openmmlab并不支持与这个版本匹配的mmcv-full,具体可以看报错信息,里面会有详细讲解。
3.2 错误的环境
一开始,如果你直接使用pip install mmcv
,那么程序是运行不起来的,就会报一些No module name 'mmcv.runner'
等找不到模块的错误,但是明明环境已经安装了mmcv,这是因为默认安装的是最新2.0版本的mmcv,在mmcv官网中说明,2.0版本有了很大的改版,包括(详情见官网) :
OpenMMLab 团队于 2023 年 4 月 6 日发布 MMCV v2.0.0。在 2.x 版本中,它有以下重大变化:
(1)删除了以下组件:
mmcv.fileio 模块,删除于 PR #2179。在需要使用 FileIO 的地方使用 mmengine 中的 FileIO 模块;
mmcv.runner、mmcv.parallel、mmcv.engine 和 mmcv.device,删除于 PR #2216;
mmcv.utils 的所有类(例如 Config 和 Registry)和大部分函数,删除于 PR #2217,只保留少数和 mmcv 相关的函数;
mmcv.onnx、mmcv.tensorrt 模块以及相关的函数,删除于 PR #2225;
删除 MMCV 所有的根注册器并将类或者函数注册到 MMEngine 的根注册器;
(2)新增了 mmcv.transforms 数据变换模块;
(3)在 PR #2235 中将包名 mmcv 重命名为 mmcv-lite、 mmcv-full 重命名为 mmcv。此外,将环境变量 MMCV_WITH_OPS 的默认值从 0 改为 1。
所以项目代码中的import部分跟环境中的新版的依赖对不上,这就是要去费里找对应版本mmcv的原因。