00實驗環境
·Ubuntu 16.04
·RTX 2080
·CUDA 10.1
01安裝步驟
1.1 安裝之前
1.1.1 驗證cmake版本
cmake--version
cmake版本要大于等于1.13,不然后邊的庫的setup過程會報錯。不要看網上的博客盲目執行pip install cmake或者apt-get autoremove cmake,這樣會導致出一些額外的錯誤。我參考的是這篇博客進行cmake的升級。
1.1.2 驗證cuda和cudnn是否安裝好了
先說一下我遇到的問題,因為這次的機子是我接手別人的,里邊看似是cuda和cudnn都配置好了,但是后邊運行的時候還是過不去。
nvcc -V和nvidia-smi兩個命令顯示的cuda是不一致的,這個問題不大。
主要看nvcc -V這條命令顯示的cuda版本。nvidia-smi所顯示的cuda是,這個臺機器安裝驅動所能帶動的最大cuda版本,nvcc -V顯示的cuda版本才是運行是的版本。
一般來說nvidia-smi所顯示的版本要高一些。但是,我這臺機器nvcc -V所顯示是10.2,nvidia-smi所顯示的是10.1,本著能不改驅動就不改驅動的原則(擔心ubuntu的黑屏),我把~/bashrc中的環境變量改成了10.1版本的。
nvcc-V#顯示安裝的cuda版本 cat/usr/local/cuda/include/cudnn.h|grepCUDNN_MAJOR-A2##顯示安裝的cudnn版本
下邊所有庫安裝好之后,最好驗證一下是否安裝成功,成功后,再進行下一步,否則后邊容易出錯,且難定位。
1.2 配置環境,安裝需要的庫
1.2.1 創建虛擬環境
創建虛擬環境
1.2.2 進入該虛擬環境
condaactivateopenpcdet
1.2.3 安裝pytorch
注:安裝的是gpu版本,安裝之后可以測試一下,torch是否能調用cuda。
安裝命令,建議去官網復制粘貼,不容易出現cuda和torch版本不匹配的問題。我沒有換源,直接用下邊的命令行,下載安裝也非常快。
1.2.4 安裝spconv
這一步比較容易出現問題。目前spconv出了2.0以上版本,而spconv2.只支持cuda10.2以上版本。
如果cuda版本合適,直接運行pip安裝即可,像我的系統安裝的是cuda10.1,只能老老實實下載原始的版本。
找個文件夾,開始安裝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項目中的third_party對應的目錄中有三個文件夾是空的,刪除了就行; #下載pybind11這個包替換掉空文件,并把pybind11放入 cd third_party git clone https://ghproxy.com/https://github.com/pybind/pybind11 cd .. #退回 python3 setup.py bdist_wheel #如setup.py這一步報錯,可能需要你刪掉build/ dist/ spconv.egg-info/,這幾個文件夾之后再編譯 cd ./dist pipinstallspconv-1.2.1-cp37-cp37m-linux_x86_64.whl#先檢查一下dist里邊的文件,有可能是空的如果你所用的機子,可以安裝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版本對應的spconv版本:
驗證是否安裝成功:
python importspconv1.3 安裝OpenPCDet
命令:
gitclonehttps://ghproxy.com/https://github.com/open-mmlab/OpenPCDet.git cdOpenPCDet pipinstall-rrequirements.txt pythonsetup.pydevelop
注:numpy庫不能太低,我的默認安裝了1.16.0版本,后邊報錯信息不會直接顯示numpy版本過低,而是顯示No Module xxx,很難看出是numpy版本的問題。
驗證pcdet是否安裝成功:
python importpcdet02可視化部分
ros下的可視化,可以參考我另寫的一篇博客。三維目標檢測之ROS可視化
2.1 安裝可視化庫
首先需要安裝可視化的庫,mayavi或者open3d兩者都可以,可以安裝其中一個,也可以兩個都安裝。
我在安裝mayavi的時候一直有問題,轉而安裝open3d,下邊以open3d為例。
因為新版本不支持ubuntu16.04,所以我這里是指定的open3d版本號,這里要感謝這篇博客,之前沒有考慮到open3d的版本選擇跟ubuntu的版本號也有關系。
如果不是ubuntu18.04及以上版本,open3d的版本就可以高一些了。
conda install -c open3d-admin open3d==0.9.0 pipinstallopen3d-python
注:open3d的安裝用conda來安裝,pip安裝一直會出問題。
驗證open3d是否安裝成功:
python importopen3d
如果有錯誤,可以到文中的第三部分(問題匯總),查看原因,可能是open3d版本不對,也可能是調用了~/.local中的open3d庫。
tools/demo.py文件中,優先使用的是open3d,如下圖所示,如果想要用mayavi這個庫的話,需要把try部分刪了,只用except里邊的部分。
2.2 測試
從官方下載,想要測試的網絡模型。
將訓練模型和測試的點云數據放在合適的位置,執行下邊的命令。
python3 demo.py --cfg_file cfgs / kitti_models / pointpillars.yaml --ckpt pointpillars.pth --data_path${POINT_CLOUD_DATA}我用的數據是kitti數據集中的000000.bin,選用pointpillars來進行測試;
測試結果:
03問題匯總
3.1 mayavi的問題:python3.8安裝mayavi4.7.3
安裝的順序,安裝的版本都有一定的要求,這幾個的先后編譯順序不能顛倒。
pip install vtk==8.1.2 # 自動安裝的vtk是9,會產生沖突 pip install mayavi==4.7.3 pipinstallPyQt5報錯信息:
AttributeError:typeobject'DialogCode'hasnoattribute'Accepted'這個問題,我一直沒解決,網上很多方法,在我的機子上都解決不了。
3.2 Open3d的問題:
如果遇到類似下邊的情況,大概率為open3d版本問題導致。
情況一:
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)
我在第二個問題上卡了一段時間,明明版本什么都對了呀,為啥運行demo.py的時候還是出錯。
另外,因為我之前安裝過open3d,所以在~/.local中有一個版本錯誤的open3d,在運行demo程序的時候,需要加上-s,-s可以讓Python不去查找用戶目錄中的庫。
python-sdemo.py
如何運行python而不在其模塊搜索路徑中包含~/.local/lib/pythonX.Y/sitepackages
3.3 運行demo時出錯
情況一:段錯誤(核心已轉儲)
(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 段錯誤 (核心已轉儲)
-
命令
+關注
關注
5文章
692瀏覽量
22063 -
Ubuntu
+關注
關注
5文章
564瀏覽量
29910 -
虛擬環境
+關注
關注
0文章
27瀏覽量
8963 -
pytorch
+關注
關注
2文章
808瀏覽量
13283
發布評論請先 登錄
相關推薦
評論