00實(shí)驗(yàn)環(huán)境
·Ubuntu 16.04
·RTX 2080
·CUDA 10.1
01安裝步驟
1.1 安裝之前
1.1.1 驗(yàn)證cmake版本
cmake--version
cmake版本要大于等于1.13,不然后邊的庫的setup過程會(huì)報(bào)錯(cuò)。不要看網(wǎng)上的博客盲目執(zhí)行pip install cmake或者apt-get autoremove cmake,這樣會(huì)導(dǎo)致出一些額外的錯(cuò)誤。我參考的是這篇博客進(jìn)行cmake的升級(jí)。
1.1.2 驗(yàn)證cuda和cudnn是否安裝好了
先說一下我遇到的問題,因?yàn)檫@次的機(jī)子是我接手別人的,里邊看似是cuda和cudnn都配置好了,但是后邊運(yùn)行的時(shí)候還是過不去。
nvcc -V和nvidia-smi兩個(gè)命令顯示的cuda是不一致的,這個(gè)問題不大。
主要看nvcc -V這條命令顯示的cuda版本。nvidia-smi所顯示的cuda是,這個(gè)臺(tái)機(jī)器安裝驅(qū)動(dòng)所能帶動(dòng)的最大cuda版本,nvcc -V顯示的cuda版本才是運(yùn)行是的版本。
一般來說nvidia-smi所顯示的版本要高一些。但是,我這臺(tái)機(jī)器nvcc -V所顯示是10.2,nvidia-smi所顯示的是10.1,本著能不改驅(qū)動(dòng)就不改驅(qū)動(dòng)的原則(擔(dān)心ubuntu的黑屏),我把~/bashrc中的環(huán)境變量改成了10.1版本的。
nvcc-V#顯示安裝的cuda版本 cat/usr/local/cuda/include/cudnn.h|grepCUDNN_MAJOR-A2##顯示安裝的cudnn版本
下邊所有庫安裝好之后,最好驗(yàn)證一下是否安裝成功,成功后,再進(jìn)行下一步,否則后邊容易出錯(cuò),且難定位。
1.2 配置環(huán)境,安裝需要的庫
1.2.1 創(chuàng)建虛擬環(huán)境
創(chuàng)建虛擬環(huán)境
1.2.2 進(jìn)入該虛擬環(huán)境
condaactivateopenpcdet
1.2.3 安裝pytorch
注:安裝的是gpu版本,安裝之后可以測試一下,torch是否能調(diào)用cuda。
安裝命令,建議去官網(wǎng)復(fù)制粘貼,不容易出現(xiàn)cuda和torch版本不匹配的問題。我沒有換源,直接用下邊的命令行,下載安裝也非??臁?/p>
1.2.4 安裝spconv
這一步比較容易出現(xiàn)問題。目前spconv出了2.0以上版本,而spconv2.只支持cuda10.2以上版本。
如果cuda版本合適,直接運(yùn)行pip安裝即可,像我的系統(tǒng)安裝的是cuda10.1,只能老老實(shí)實(shí)下載原始的版本。
找個(gè)文件夾,開始安裝spconv1.2:
#安裝libboost sudo apt-get install libboost-all-dev # 下載spconv,并切換分支 git clone -b v1.2.1 https://ghproxy.com/https://github.com/traveller59/spconv.git cd spconv # spconv項(xiàng)目中的third_party對(duì)應(yīng)的目錄中有三個(gè)文件夾是空的,刪除了就行; #下載pybind11這個(gè)包替換掉空文件,并把pybind11放入 cd third_party git clone https://ghproxy.com/https://github.com/pybind/pybind11 cd .. #退回 python3 setup.py bdist_wheel #如setup.py這一步報(bào)錯(cuò),可能需要你刪掉build/ dist/ spconv.egg-info/,這幾個(gè)文件夾之后再編譯 cd ./dist pipinstallspconv-1.2.1-cp37-cp37m-linux_x86_64.whl#先檢查一下dist里邊的文件,有可能是空的如果你所用的機(jī)子,可以安裝spconv2.x:
方法一(pip安裝): pip install spconv-cu102 -i https://pypi.tuna.tsinghua.edu.cn/simple 方法二(源碼安裝): #cumm 安裝git clone https://ghproxy.com/https://github.com/FindDefinition/cumm cd ./cumm pip install -e . #spconv安裝 git clone https://ghproxy.com/https://github.com/traveller59/spconv cd ./spconv pipinstall-e.cuda版本對(duì)應(yīng)的spconv版本:
驗(yàn)證是否安裝成功:
python importspconv1.3 安裝OpenPCDet
命令:
gitclonehttps://ghproxy.com/https://github.com/open-mmlab/OpenPCDet.git cdOpenPCDet pipinstall-rrequirements.txt pythonsetup.pydevelop
注:numpy庫不能太低,我的默認(rèn)安裝了1.16.0版本,后邊報(bào)錯(cuò)信息不會(huì)直接顯示numpy版本過低,而是顯示No Module xxx,很難看出是numpy版本的問題。
驗(yàn)證pcdet是否安裝成功:
python importpcdet02可視化部分
ros下的可視化,可以參考我另寫的一篇博客。三維目標(biāo)檢測之ROS可視化
2.1 安裝可視化庫
首先需要安裝可視化的庫,mayavi或者open3d兩者都可以,可以安裝其中一個(gè),也可以兩個(gè)都安裝。
我在安裝mayavi的時(shí)候一直有問題,轉(zhuǎn)而安裝open3d,下邊以open3d為例。
因?yàn)樾掳姹静恢С謚buntu16.04,所以我這里是指定的open3d版本號(hào),這里要感謝這篇博客,之前沒有考慮到open3d的版本選擇跟ubuntu的版本號(hào)也有關(guān)系。
如果不是ubuntu18.04及以上版本,open3d的版本就可以高一些了。
conda install -c open3d-admin open3d==0.9.0 pipinstallopen3d-python
注:open3d的安裝用conda來安裝,pip安裝一直會(huì)出問題。
驗(yàn)證open3d是否安裝成功:
python importopen3d
如果有錯(cuò)誤,可以到文中的第三部分(問題匯總),查看原因,可能是open3d版本不對(duì),也可能是調(diào)用了~/.local中的open3d庫。
tools/demo.py文件中,優(yōu)先使用的是open3d,如下圖所示,如果想要用mayavi這個(gè)庫的話,需要把try部分刪了,只用except里邊的部分。
2.2 測試
從官方下載,想要測試的網(wǎng)絡(luò)模型。
將訓(xùn)練模型和測試的點(diǎn)云數(shù)據(jù)放在合適的位置,執(zhí)行下邊的命令。
python3 demo.py --cfg_file cfgs / kitti_models / pointpillars.yaml --ckpt pointpillars.pth --data_path${POINT_CLOUD_DATA}我用的數(shù)據(jù)是kitti數(shù)據(jù)集中的000000.bin,選用pointpillars來進(jìn)行測試;
測試結(jié)果:
03問題匯總
3.1 mayavi的問題:python3.8安裝mayavi4.7.3
安裝的順序,安裝的版本都有一定的要求,這幾個(gè)的先后編譯順序不能顛倒。
pip install vtk==8.1.2 # 自動(dòng)安裝的vtk是9,會(huì)產(chǎn)生沖突 pip install mayavi==4.7.3 pipinstallPyQt5報(bào)錯(cuò)信息:
AttributeError:typeobject'DialogCode'hasnoattribute'Accepted'這個(gè)問題,我一直沒解決,網(wǎng)上很多方法,在我的機(jī)子上都解決不了。
3.2 Open3d的問題:
如果遇到類似下邊的情況,大概率為open3d版本問題導(dǎo)致。
情況一:
AttributeError:'open3d.geometry.PointCloud()'objecthasnoattribute'voxel_down_sample'
情況二:
ImportError:/lib/x86_64-linux-gnu/libm.so.6:version`GLIBC_2.27'notfound(requiredby/home/xxxx/xxxx/lib/python3.7/site-packages/open3d/open3d_pybind.cpython-37m-x86_64-linux-gnu.so)
我在第二個(gè)問題上卡了一段時(shí)間,明明版本什么都對(duì)了呀,為啥運(yùn)行demo.py的時(shí)候還是出錯(cuò)。
另外,因?yàn)槲抑鞍惭b過open3d,所以在~/.local中有一個(gè)版本錯(cuò)誤的open3d,在運(yùn)行demo程序的時(shí)候,需要加上-s,-s可以讓Python不去查找用戶目錄中的庫。
python-sdemo.py
如何運(yùn)行python而不在其模塊搜索路徑中包含~/.local/lib/pythonX.Y/sitepackages
3.3 運(yùn)行demo時(shí)出錯(cuò)
情況一:段錯(cuò)誤(核心已轉(zhuǎn)儲(chǔ))
(pcdet) auto@auto-System-Product-Name:~/OpenPCDet/tools$ python demo.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml --ckpt pv_rcnn_8369.pth --data_path ../data/kitti/testing/velodyne/000008.bin 2022-03-06 2126,628 INFO -----------------Quick Demo of OpenPCDet------------------------- 2022-03-06 2126,628 INFO Total number of samples: 1 /home/auto/anaconda3/envs/pcdet/lib/python3.7/site-packages/torch/functional.py UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ../aten/src/ATen/native/TensorShape.cpp:2157.) return _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined] 2022-03-06 2129,122 INFO ==> Loading parameters from checkpoint pv_rcnn_8369.pth to CPU 2022-03-06 2129,154 INFO ==> Done (loaded 367/367) 2022-03-06 2129,300 INFO Visualized sample index: 1 段錯(cuò)誤 (核心已轉(zhuǎn)儲(chǔ))
-
命令
+關(guān)注
關(guān)注
5文章
678瀏覽量
21966 -
Ubuntu
+關(guān)注
關(guān)注
5文章
559瀏覽量
29503 -
虛擬環(huán)境
+關(guān)注
關(guān)注
0文章
27瀏覽量
8920 -
pytorch
+關(guān)注
關(guān)注
2文章
802瀏覽量
13116
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論