NVIDIA Jetson AGX Orin配置OpenPCDet环境部署PointPillar

环境:Ubuntu20.04+jetpack5.0-b114

CUDA11.4+cudnn8.3.2

TensorRT版本:8.4.0

配置OpenPCDet环境

conda create -n OpenPCDet5 python=3.8
conda activate OpenPCDet5

1.安装pytorch

因为 Orin是ARM架构,直接从pytorch官网安装pytoch会导致安装不上或者缺少相关依赖导致出错,应该从NVIDIA提供的网址下载pytorch的whl文件编译,注意下载时要对应Python版本和jetpack版本。

下载地址:PyTorch for Jetson - version 1.11 now available - Jetson Nano - NVIDIA Developer Forums

安装pytorch之前,先确保pytorch安装所需要的系统包安装好,不然安装过程中会报错

sudo apt-get -y update
sudo apt-get -y install autoconf bc build-essential g++-8 gcc-8 clang-8 lld-8 gettext-base gfortran-8 iputils-ping libbz2-dev libc++-dev libcgal-dev libffi-dev libfreetype6-dev libhdf5-dev libjpeg-dev liblzma-dev libncurses5-dev libncursesw5-dev libpng-dev libreadline-dev libssl-dev libsqlite3-dev libxml2-dev libxslt-dev locales moreutils openssl python-openssl rsync scons python3-pip libopenblas-dev

 下载好对应版本的安装包后开始安装torch

sudo apt-get install python3-pip libopenblas-base libopenmpi-dev libomp-dev
pip3 install Cython
pip3 install numpy torch-1.11.0-cp38-cp38m-linux_aarch64.whl

安装torchvison

torchvison下载:选择main-->TagsGitHub - pytorch/vision: Datasets, Transforms and Models specific to Computer Vision

cd torchvision
export BUILD_VERSION=0.12.0  
python3 setup.py install --user
cd ../  
pip install 'pillow<7'

查看版本:

python
import torch
import torchvision
torch.__version__
torchvision.__version__
torch.cuda.is_available()

至此,pytorch安装完成,安装教程主要参考这位博主:Jeston AGX Orin安装Pytorch1.11.0+torchvision0.12.0_beautifulback的博客-CSDN博客

2.安装cumm和spconv

参考:NVIDIA Jetson AGX Xavier安装OpenPCDet完整踩坑记录_Popuffu的博客-CSDN博客

安装之前先pip list看一下有没有cumm和spconv,结果没有输出再进行安装,如果有先卸载在安装

pip list | grep spconv
pip list | grep cumm

cumm:从GitHub下载,选择main-->Tags,下载对应版本

GitHub - FindDefinition/cumm: CUda Matrix Multiply library.

这里选用自己编译whl的方式

export CUMM_CUDA_VERSION="11.4" # 11.4为cuda版本
export CUMM_DISABLE_JIT="1" # 不用JIT编译cumm,而是编译成whl后再安装
export CUMM_CUDA_ARCH_LIST="8.7" # xavier是7.2,TX2是6.2,orin是8.7
git clone -b v0.2.8 https://github.com/FindDefinition/cumm # v0.2.8为cumm对应tag版本
cd cumm # cd到cumm的代码根目录
python setup.py bdist_wheel # 编译生成cumm的whl在dist文件夹内
pip install dists/xxx.whl # 安装编译好的cumm的whl,名字应该类似cumm_cu114-0.2.8-cp38-cp38m-linux_aarch64.whl

编译完成后输入python,import cumm验证,静默为正常

spconv:同样选用自己编译whl的方式,安装版本为2.1.22,注意把文件夹中pyproject.toml里的cumm依赖删掉

GitHub - traveller59/spconv: Spatial Sparse Convolution Library

export CUMM_CUDA_VERSION="11.4" # 11.4为cuda版本
export SPCONV_DISABLE_JIT="1" # 不用JIT编译spconv,而是编译成whl后再安装
export CUMM_CUDA_ARCH_LIST="8.7" # xavier是7.2,TX2是6.2,orin是8.7
git clone -b v2.1.22 https://github.com/traveller59/spconv --recursive # v2.1.22换成你想要用的github代码的spconv对应tag版本,注意需要加recursive
cd spconv # cd到spconv的代码根目录
pip install pccm wheel # 安装一些依赖包
python setup.py bdist_wheel # 编译生成spconv的whl在dist文件夹内
pip install dist/xxx.whl # 安装编译好的spconv的whl,名字应该类似spconv_cu114-2.1.22-cp38-cp38m-linux_aarch64.whl

安装好后import验证

3.安装llvm,llvmlite

llvm从对应的github仓库的release里面下载aarch64的对应版本的预编译好的文件,解压以后添加环境变量

Releases · llvm/llvm-project · GitHub

export PATH=$PATH:/home/ls/下载/clang+llvm-11.0.0-aarch64-linux-gnu/bin/ # your path to llvm
export LLVM_CONFIG=/home/ls/下载/clang+llvm-11.0.0-aarch64-linux-gnu/bin/llvm-config # your path to llvm-config

 接下来安装llvmlite:

pip3 install llvmlite==0.37.0 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com 

此处llvm版本为11.0,llvmlite为0.37

二者对应关系:llvmlite · PyPI

4.安装OpenPCDet

git clone -b v0.5.0 https://github.com/open-mmlab/OpenPCDet.git
cd OpenPCDet
pip install -r requirements.txt
python setup.py develop

安装过程中报错:subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1.

网上有的说将['ninja','-v']改成['ninja','--v'] 或者['ninja','--version'],这样会导致g++报错,也有的说pytorch版本太高,但是因为要采用jetson版本的pytorch很难降级,因此将cpp_xtension.py中的

self.use_ninja = kwargs.get('use_ninja', True)

true改为false.

安装过程中报错:fatal error: THC/THC.h: No such file or directory

主要是pytorch版本太高导致,可将版本降低至1.11以下,或者更改./OpenPCDet/pcdet/ops/pointnet2/pointnet2_batch/src和./OpenPCDet/pcdet/ops/pointnet2/pointnet2_stack/src文件夹下的几个cpp文件

//#include <THC/THC.h>
...
//extern THCState *state

将这两行注释掉之后重新编译

幸运的是,openpcdet安装成功。

5.生成ONNX模型

pointpillar推理:https://github.com/NVIDIA-AI-IOT/CUDA-PointPillars

模型转换在./tool文件夹下

https://github.com/NVIDIA-AI-IOT/CUDA-PointPillars/tree/main/tool

cd ../OpenPCDet
python setup.py develop
pip install pyyaml scikit-image onnx onnx-simplifier
pip install onnx_graphsurgeon --index-url https://pypi.ngc.nvidia.com
python exporter.py --ckpt ./pointpillar_7728.pth
mv pointpillar.onnx ../model/ && mv params.h ../include/

安装onnx时会自动将numpy升级,导致报错ImportError: numpy.core.multiarray failed to import

 import SharedArray
ImportError: numpy.core.multiarray failed to import

尝试升级、降级,多次更换版本以后:最终numpy版本为1.17.3

以后安装包时前面添加python -m,只针对当前python环境

导出时报错:onnx报错IndexError: Input 731 is undefined

onnxsimplifier版本问题

onnx-simplifier · PyPI

卸载重新安装0.3.3

最后放一张环境


ca-certificates           2022.6.15              
ccimport                  0.3.7                       
commonmark                0.9.1                        
cumm-cu114                0.2.8                       
cython                    0.29.30                  
easydict                  1.9                        
fire                      0.4.0                       
flatbuffers               2.0                         
imageio                   2.19.3                       
lark                      1.1.2                     
ld_impl_linux-aarch64     2.36.1                 
libffi                    3.4.2                   
libgcc-ng                 12.1.0                
libgomp                   12.1.0                
libnsl                    2.0.0                  
libuuid                   2.32.1               
libzlib                   1.2.12                  
llvmlite                  0.37.0                     
ncurses                   6.3                     
networkx                  2.8.4                       
ninja                     1.10.2.3                     
numba                     0.54.0                     
numpy                     1.17.3                    
onnx                      1.8.1                       
onnx-graphsurgeon         0.3.19                     
onnx-simplifier           0.3.3                       
onnxoptimizer             0.2.7                       
onnxruntime               1.7.0                       
openssl                   3.0.5                   
packaging                 21.3                        
pccm                      0.3.4                      
pcdet                     0.5.0+d1368b0                 
pillow                    9.2.0                       
pip                       22.1.2              
portalocker               2.5.1                        
protobuf                  3.20.1                      
pybind11                  2.10.0                      
pygments                  2.12.0                   
pyparsing                 3.0.9                      
python                    3.8.13           
python_abi                3.8                        
pywavelets                1.3.0                       
pyyaml                    6.0                        
readline                  8.1.2                
rich                      12.5.1                       
scikit-image              0.19.3                      
scipy                     1.8.1                       
setuptools                63.2.0              
sharedarray               3.2.1                       
six                       1.16.0                     
spconv-cu114              2.1.22                       
sqlite                    3.39.1                  
tensorboardx              2.5.1                       
termcolor                 1.1.0                       
tifffile                  2021.8.8                    
tk                        8.6.12                  
torch                     1.11.0                      
tqdm                      4.64.0                     
typing-extensions         4.3.0                       
wheel                     0.37.1             
xz                        5.2.5                
zlib                      1.2.12                 

参考:

Jeston AGX Orin安装Pytorch1.11.0+torchvision0.12.0_beautifulback的博客-CSDN博客

NVIDIA Jetson AGX Xavier安装OpenPCDet完整踩坑记录_Popuffu的博客-CSDN博客

出现错误“subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1”解决方法_放屁带出翔丶的博客-CSDN博客_subprocess.calledprocesserror

fatal error: THC/THC.h: No such file or directory_o0stinger0o的博客-CSDN博客 

  • 9
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
### 回答1: NVIDIA Jetson AGX Orin是一款高性能的嵌入式计算平台,适用于人工智能和机器学习应用。它采用了NVIDIA自主研发的Orin芯片,具有强大的计算能力和低功耗特性,可用于自动驾驶、机器人、智能城市等领域。该平台还支持多种传感器和接口,可实现多种应用场景。 ### 回答2: NVIDIA Jetson AGX Orin是一款功能强大的嵌入式计算平台,专为边缘计算和AI应用而设计。它可以处理复杂的视觉、声音和多传感器融合任务,是集成高性能计算、AI推理和视觉图像处理的终极解决方案。 Jetson AGX Orin的特点包括超高的计算性能、低延迟的响应时间、智能化的信号处理和丰富的数据接口。它采用12颗Arm Cortex-A78 CPU核心和6颗NVIDIA Ampere GPU,可支持11T层次的Tensor Core加速,性能比前一代Jetson Xavier AGX提高了1.7倍。 此外,Jetson AGX Orin还具有高效的功耗控制和灵活的软件开发环境。它支持NVIDIAJetPack和DeepStream SDK,提供完整的AI软件栈和工具套件,可轻松实现目标检测、语音识别、自动驾驶等复杂的应用场景。 总的来说,NVIDIA Jetson AGX Orin是一款非常先进和功能强大的嵌入式计算平台,可满足各种边缘计算和AI应用的需求。无论是智能制造、无人驾驶还是智能安防等领域,它都能提供快速、精确和高效的计算和分析能力。 ### 回答3: NVIDIA Jetson AGX Orin是一款高性能的AI计算平台,可以帮助开发者快速构建高级智能应用。它采用了NVIDIA自主设计的Orin系统芯片,拥有24个CPU和9个CUDA加速器,并支持多种视觉化处理技术。Jetson AGX Orin不仅具有高性能和低功耗的特点,还集成了许多传感器和接口,可以支持各种不同的应用场景,如自动驾驶、智能家居、工业自动化等。 Jetson AGX Orin的CPU采用了NVIDIA自主设计的Carmel核心,这是一种高性能的64位ARMv8 CPU,最高主频可达2.7GHz,具有强大的计算处理能力。它还配备了9个NVIDIA自主设计的CUDA加速器,其中8个可用于AI计算,1个用于图像信号处理。这些加速器可以在原始数据上进行高效且实时的计算,支持深度学习模型和图像处理算法的加速。 除了强大的处理能力,Jetson AGX Orin还与多种传感器和接口相结合,例如6路CSI-2相机接口、HDMI、USB-C和Gigabit以太网等接口。同时,它还集成了多种传感器,包括雷达、毫米波雷达和激光雷达等,可用于实现环境感知、位置和导航、障碍物检测和避障等功能。 总之,NVIDIA Jetson AGX Orin是一款高度集成的AI计算平台,拥有强大的计算能力和多种传感器和接口。它可以帮助开发者快速构建高级智能应用,解锁AI的潜力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值