3D点云学习:SA-SSD②算法复现

1 源码下载

源码下载: 源码链接

2 注意事项

经过N天的实验,暂时放弃了源码的实现,主要问题在于:作者的开发环境是ubuntu系统+CUDA,由于疫情原因,目前手上只有windows系统和ubuntu18.04虚拟机,虚拟机无法安装CUDA和显卡驱动,也不想去装双系统,因此回到实验室之后再做完整复现。
但一下还是有复现中需要注意的地方,记下来提醒自己。

1 Windows系统下的复现

笔者这里不建议在windows系统下进行复现,因为在mmdet/ops文件夹中,包含有需要预处理的c++文件,生成算法需要调用的包,包括对cpp文件进行编译和对cpp文件+cu文件进行混合编译。cpp文件的编译在pycharm中可以通过调用VS内核进行,但cu文件+cpp文件的混合编译还需要cuda-toolkits里的nvcc,在网上查阅资料后,在visual studio 2019中实现了混合编译,但是还是没能在pycharm中完成。
这个问题留下来,以后再查阅资料。
对mmdet/ops/iou3d进行编译,指令:

$ cd mmdet/ops/iou3d
$ python setup.py build_ext --inplace

报错内容:

src/iou3d.cpp(127): warning C4996: 'c10::detail::deprecated_AT_CHECK': AT_CHECK is deprecated, use TORCH_CHECK instead.
src/iou3d.cpp(128): warning C4996: 'c10::detail::deprecated_AT_CHECK': AT_CHECK is deprecated, use TORCH_CHECK instead.
src/iou3d.cpp(131): warning C4996: 'at::Tensor::data': Tensor.data<T>() is deprecated. Please use Tensor.data_ptr<T>() instead.
src/iou3d.cpp(132): warning C4996: 'at::Tensor::data': Tensor.data<T>() is deprecated. Please use Tensor.data_ptr<T>() instead.
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.26.28801\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2

同时,在作者源码介绍中,使用的指令为:

$ cd mmdet/ops/points_op
$ python3 setup.py build_ext --inplace

但是在pycharm的terminal中,发现这个指令无效,需使用下面这个指令

$ cd mmdet/ops/points_op
$ python setup.py build_ext --inplace

2 ubuntu系统下的复现

① 创建虚拟环境

ubuntu虚拟机中,使用anaconda作为解释器,首先创建虚拟环境

conda create -n SASSD python = 3.7

激活虚拟环境

conda activate SASSD

然后在这个环境下安装需要的包,复现中发现,pytorch=1.5.0时,会报错,降版本到pytorch=1.4.0解决错误,由于我只复现到一半,若后续还有错误,建议使用作者建议的pytorch=1.1.0.

② ubuntu下载源报错

再ubuntu使用apt指令时,报错

Unable to correct problems, you have held broken packages

参考博客: 参考
发现是下载源的问题。原本使用sohu源网速最快,但可能源中的包不全,因此会导致报错,改为清华源之后,可以正常运行。

③ 下载spconv报错

参考博客: 参考
按照上面的博客安装时,有以下问题
1>也就是在这里pytorch版本会报错,报错的内容忘了记了,降版本解决。
2>注意在最后安装spconv时,要看自己下载的包的名称,否则报错,如我的

pip  install spconv-1.2.1-cp37-cp37m-linux_x86_64.whl

④ 运行creat_data.py报错

1>这里遇到的问题会比较多,最多的是少各种各样的包,统统下载。conda install XXX,不行就pip install XXX,再不行就github。
2>还遇到了一个import的问题,报错内容:

ModuleNotFoundError: No module named 'mmdet'

网上没有找到解决方法,后来怀疑是工程无法识别本地自定义包导致的,参考博客: 参考
使用了其中的第二种方法,解决问题!
3>使用CUDA失败错误:

File "/home/tianbihao/anaconda3/envs/SASSD/lib/python3.7/site-packages/numba/cuda/cudadrv/driver.py", line 235, in initialize
raise CudaSupportError("Error at driver init: \n%s:" % e)
numba.cuda.cudadrv.error.CudaSupportError: Error at driver init:[100] Call to cuInit results in CUDA_ERROR_NO_DEVICE:

虚拟机中只有虚拟显卡,无法使用电脑带的显卡,因此也无法安装驱动和CUDA,需要使用ubuntu系统的电脑。

⑤ cpp文件缺少依赖项报错

报错内容:

fatal error: boost/geometry.hpp: No such file or directory

参考博客: 参考,下载缺少的包即好:

sudo apt-get install libboost-all-dev

复现到creat_data.py就停下了,有点尴尬…
跟着github上作者给出的顺序来,只要配置好环境,后面的应该不难,有时间回到实验室再复现吧。下一步啃源码。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值