首先说明一下显卡的配置:(可能图片有点不清楚,将就看看!!!)
可以看到cuda version是12.4,说明能够安装的cuda版本是12.4以下的。
一开始安装了cuda11.3,但是报了计算机架构,什么computer-89的错误。然后就搜索了一下,说是40系列的显卡需要配置cuda11.8及以上。我也不知道对不对,因为搜索的过程中也有看到说配cuda11.3成功的。
所以就安装了cuda11.8,在以下的网址:
找到cuda11-8
点进去,然后选择对应的配置,这里最好选择runfile。
然后下面就有对应的安装cuda的命令,在terminal里面进行安装就好
这里要注意的是,如果系统里面已经有了别的版本的cuda,在安装的时候不选Driver
查看安装是否成功可以在terminal里面输入命令:
nvcc -V
安装好cuda之后,下载对应的pytorch,我的torch版本是2.0.0. 因为是安装好之后才开始的回忆录,torch的安装可以网上搜搜,版本对应好就行。
对应的torchvision、torchaudio版本如下,这些也得对应上,不然会报错(巨坑无比):
ImportError: /usr/local/lib/python3.8/dist-packages/pcdet/ops/iou3d_nms/iou3d_nms_cuda.cpython-38-x86_64-linux-gnu.so: undefined symbol: _ZNK3c1017SymbolicShapeMeta18init_is_contiguousEv
然后按照OpenPCdet的仓库的install.md进行安装:
https://github.com/open-mmlab/OpenPCDet/blob/master/docs/INSTALL.md
这里记得下载的spconv的版本要和安装的cuda版本对应。
如果运行命令
python setup.py develop
不成功,可以改成下面的命令:
pip install -e .
感觉是现在已经不用python setup.py这种命令了,我运行的话是会报错
error: Cannot update time stamp of directory 'pcdet.egg-info'
ERROR: Failed building wheel for pcdet
如果build pcdet不成功,记得运行
python setup.py clean
把上一次运行的一些东西删除,不然可能会报错。
build过程中遇到错误:
error: Cannot update time stamp of directory 'pcdet.egg-info'
可以考虑在运行命令的前面加sudo
安装好pcdet之后跑demo.py也巨多坑……运行demo.py的命令:
python demo.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml --ckpt pv_rcnn_8369.pth --data_path demo_kitti/veloyne/testing/velodyne/000000.bin
这里的demo_kitti需要自己整一个,我是在别的博客里面下载的……
可视化我没有用mayavi+vtk,但是我装了……但是会报错,对应的版本是:
然后就用了open3d,把demo.py前面的使用open3d或者mayavi进行可视化的逻辑强制改成了open3d:
open3d的版本是0.13.0:
报错:
ImportError: Could not import backend for traitsui. Make sure you
have a suitable UI toolkit like PyQt/PySide or wxPython
installed.
这里我没有用Pyqt5的界面,但是我也装了……但是会报错…………
这里我用的是Pysider
记得这里安装命令是:有个2!!! pysider2需要python3.6及其以上,我的是python3.8
pip install Pysider2
最后放一张demo运行成功的图片,但是我不知道为什么明明我的逻辑是open3d……这里的标题是mayavi…………安装的过程还遇到了蛮多坑的,很多坑其实都是版本对应问题造成的。
--------------2024.9.9更新-----
ModuleNotFoundError: No module named 'pcdet.datasets.argo2.argo2_utils'
不小心把pcdet卸载了……天都塌了 主要是自己也安装的有点迷迷糊糊……
又报了个新的错误,这里我看报错的原因是他的pcdet没有这个模块,但是我看我OpenPCDet文件夹里面的pcdet示有这个模块的。但是他找的是我/usr/local/lib/python3.8/site-packages路径下的pcdet,我看了一下,确实没有。然后就把site-packages下的pcdet文件下删除了,把OpenPCDet文件夹下的pcdet拷了过去,就不会报错了。