• nvidia xavier部署fcos3d


    huanyuan

    https://www.jianshu.com/p/0543229dc7b8

    sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
    sudo gedit /etc/apt/sources.list
    
    • 1
    • 2
    # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    sudo apt-get update
    
    • 1

    torch+mmcv

    https://www.freesion.com/article/99911008229/

    #cuda环境设置
    export PATH="/usr/local/cuda-11.3/bin:$PATH"
    export CUDA_PATH=/usr/local/cuda-11.3
    export LD_LIBRARY_PATH="/usr/local/cuda-11.3/lib64:$LD_LIBRARY_PATH"
    
    • 1
    • 2
    • 3
    • 4
    sudo pip3 install torch-1.9.0-cp36-cp36m-linux_aarch64.whl 
    
    
    • 1
    • 2

    ceshi

    aarch64-linux-gnu-gcc‘ failed with exit status 1

    sudo pip install pyzmq==25.1.0
    
    • 1

    ImportError: libopenblas.so.0: cannot open

    sudo apt-get  install libopenblas-dev
    
    • 1
    Python 3.6.8 (default, Aug 20 2019, 17:12:48) 
    [GCC 8.3.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import torch
    >>> torch.__version__
    '1.3.0'
    >>> torch.cuda.is_available()
    True
    >>> torch.randn(4,4,4).cuda().mean()
    tensor(-0.0479, device='cuda:0')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    dependence

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple
    -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/
    
    • 1
    • 2
    sudo pip install pyzmq==25.1.0
    pip install matplotlib
    
    • 1
    • 2

    for torchvision

    pip install --upgrade pip setuptools wheel
    pip install pycocotools
    pip install terminaltables
    pip install Cython
    
    • 1
    • 2
    • 3
    • 4

    STEP3 安装MMDETECTOIN、MMCV

    suggestion:
    pip install openmim
    mim install mmcv1.5.3
    mim install mmcls
    0.25.0
    mim install mmdet2.25.1
    mim install mmsegmentation
    0.25.0
    减速带算法mmdet3d pip install -e .
    for Illegal instruction(core dumped)”: export OPENBLAS_CORETYPE=ARMV8
    sudo apt install llvm
    https://github.com/traveller59/spconv to install spconv and cumm,please read README carefully ,change python version in setup.py

    安装cmake

    agx版本:
    sudo chmod +x cmake-3.27.0-rc4-linux-aarch64.sh
    xavier:sudo sh cmake-3.27.0-rc4-linux-aarch64.sh
    # 安装过程中遇到:
    # 选择1
    Do you accept the license? [yn]: 
    # 输入 y
    # 选择2
    By default the CMake will be installed in:
      "/usr/cmake-3.23.0-linux-x86_64"
    Do you want to include the subdirectory cmake-3.23.0-linux-x86_64?
    Saying no will install in: "/usr" [Yn]:
    # 输入 n
    
    x86版本:
    1、sudo wget https://cmake.org/files/v3.18/cmake-3.18.0-Linux-x86_64.sh
    sh cmake-3.18.0-Linux-x86_64.sh
    2、安装包解压后
    export PATH="/home/sen/motan/cmake-3.20.0-linux-x86_64/bin:$PATH"
    
    可以使用cmake --version 查看 如果输出 cmake的版本号说明已经正确安装了cmake 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    安装ppl.cv.

    sudo apt-get update
    sudo apt-get install -y build-essential
    git clone https://github.com/openppl-public/ppl.cv.git
    cd ppl.cv
    export PPLCV_DIR=/home/sen/motan/ppl.cv
    git checkout tags/v0.7.0 -b v0.7.0
    ./build.sh   aarch64/cuda
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    安装onnx

    x86

    pip install onnxruntime==1.14.0
    
    本地下载onnxruntime
    export ONNXRUNTIME_DIR=$(pwd)
    export LD_LIBRARY_PATH=$ONNXRUNTIME_DIR/lib:$LD_LIBRARY_PATH
    echo '# set env for onnxruntime' >> ~/.bashrc
    echo "export ONNXRUNTIME_DIR=${ONNXRUNTIME_DIR}" >> ~/.bashrc
    echo "export LD_LIBRARY_PATH=$ONNXRUNTIME_DIR/lib:$LD_LIBRARY_PATH" >> ~/.bashrc
    source ~/.bashrc
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    安装cuDNN

    export CUDNN_DIR=/usr/local/cudnn-11.3-linux-x64-v8.2.1.32/cuda
    export LD_LIBRARY_PATH=$CUDNN_DIR/lib64:$LD_LIBRARY_PATH
    然后解压,把inculde和lib64里的文件复制到cuda中
    sudo cp -r /usr/local/cudnn-11.3-linux-x64-v8.2.1.32/cuda/include/cudnn*.h /usr/local/cuda/include
    sudo cp -r /usr/local/cudnn-11.3-linux-x64-v8.2.1.32/cuda/lib64/libcudnn* /usr/local/cuda/lib64
    sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
    在/usr/local/cuda/include目录下,查看版本
    vim cudnn_version.h
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    安装tensorrt

    #tensorrt-选择cp37,cp38,cp39对应python版本

    1、pip install TensorRT-8.2.3.0/python/tensorrt-8.2.3.0-cp38-none-linux_x86_64.whl
    2、export TENSORRT_DIR=/usr/local/TensorRT-8.2.3.0
    export LD_LIBRARY_PATH=$TENSORRT_DIR/lib:$LD_LIBRARY_PATH
    3、复制tensorrt路径下的/lib、/include文件夹到对应的系统文件夹
    sudo cp -r ./lib/* /usr/lib
    sudo cp -r ./include/* /usr/include
    4、使用python的tensorrt接口,安装pycuda
    pip install pycuda
    此时tensorrt不能导入,cuDNN安装完后可以
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    添加动态库
    sudo gedit /etc/ld.so.conf

    /usr/local/TensorRT-8.2.3.0/lib
    /usr/local/cuda-11.3/lib64
    sudo ldconfig
    
    • 1
    • 2
    • 3

    安转完后,同样可以进入Python环境,然后简单打印下版本号等信息,只要不报错就说明安装成功。
    import tensorrt
    print(tensorrt.version)
    assert tensorrt.Builder(tensorrt.Logger())

    
    pip install opencv-contrib-python==4.8.0.74
    
    • 1
    • 2

    arm

     
    sudo apt-get install protobuf-compiler libprotoc-dev
     
    export PATH=/usr/local/cuda/bin:${PATH}
    export CUDA_PATH=/usr/local/cuda
    export cuDNN_PATH=/usr/lib/aarch64-linux-gnu
    export CMAKE_ARGS="-DONNX_CUSTOM_PROTOC_EXECUTABLE=/usr/bin/protoc"
     
    mkdir /code
    cd /code
    git clone --recursive https://github.com/Microsoft/onnxruntime
    git submodule update --init --recursive --progress
    cd /code/onnxruntime
     
    ./build.sh --update --config Release --enable_pybind --build_shared_lib --build --build_wheel \
    --use_openmp --use_tensorrt --tensorrt_home /usr/src/tensorrt --cuda_home /usr/local/cuda --cudnn_home /usr/lib/aarch64-linux-gnu
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    https://onnxruntime.ai/docs/build/eps.html#nvidia-jetson-tx1tx2nanoxavier

    tensorrtppl.cv.算子编译

    1、cd path-to-mmdeploy
    mkdir -p build && cd build
       cmake .. \
       		 -DCMAKE_CXX_COMPILER=g++-9 \
           -DMMDEPLOY_BUILD_SDK=ON \
           -DMMDEPLOY_BUILD_SDK_PYTHON_API=ON \
           -DMMDEPLOY_BUILD_EXAMPLES=ON \
           -DMMDEPLOY_TARGET_DEVICES="cuda;cpu" \
           -DMMDEPLOY_TARGET_BACKENDS="trt" \
           -DTENSORRT_DIR=${TENSORRT_DIR} \
    			-DCUDNN_DIR=${CUDNN_DIR} \
    			-DONNXRUNTIME_DIR=${ONNXRUNTIME_DIR} \
           -Dpplcv_DIR=${PPLCV_DIR}/cuda-build/install/lib/cmake/ppl \
           -DMMDEPLOY_CODEBASES=all 
           
    cmake .. -DCMAKE_CXX_COMPILER=g++-7 -DMMDEPLOY_BUILD_SDK=ON -DMMDEPLOY_BUILD_EXAMPLES=ON -DMMDEPLOY_BUILD_SDK_PYTHON_API=ON -DMMDEPLOY_TARGET_DEVICES="cuda;cpu" -DMMDEPLOY_TARGET_BACKENDS="ort;trt" -Dpplcv_DIR=${PPLCV_DIR}/cuda-build/install/lib/cmake/ppl -DTENSORRT_DIR=${TENSORRT_DIR} -DCUDNN_DIR=${CUDNN_DIR} -DONNXRUNTIME_DIR=${ONNXRUNTIME_DIR} -DMMDEPLOY_CODEBASES=all
    
    2、make -j$(nproc) && make install
    3、复制build中lib内所有的文件到mmdeploy/mmdeploy/lib的位置
    4、编译成功后,返回上一层
    cd ..
    apt-get install libjpeg-dev zlib1g-dev
    pip install Pillow==10.0.0
    pip install -v -e .
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    所有环境变量如下:

    #cuda
    export PATH="/usr/local/cuda-11.3/bin:$PATH"
    export CUDA_PATH=/usr/local/cuda-11.3
    export LD_LIBRARY_PATH="/usr/local/cuda-11.3/lib64:$LD_LIBRARY_PATH"
    
    #cmake
    export PATH=/home/sen/motan/cmake-3.18.0-Linux-x86_64/bin:$PATH
    #ppl.cv
    export PPLCV_DIR=/home/sen/motan/ppl.cv
    #tensorrt
    export TENSORRT_DIR=/usr/local/TensorRT-8.2.3.0
    export LD_LIBRARY_PATH=$TENSORRT_DIR/lib:$LD_LIBRARY_PATH
    #CUDNN
    export CUDNN_DIR=/usr/local/cuda-11.3
    export LD_LIBRARY_PATH=$CUDNN_DIR/lib64:$LD_LIBRARY_PATH
    
    export MMDEPLOY_DIR=/home/sen/motan/mmdeploy
    
    export ONNXRUNTIME_DIR=/home/sen/motan/onnxruntime-linux-x64-1.8.1
    export LD_LIBRARY_PATH=$ONNXRUNTIME_DIR/lib:$LD_LIBRARY_PATH
    
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/sen/motan/mmdeploy/mmdeploy/lib
    export LIBRARY_PATH=$LIBRARY_PATH:/home/sen/motan/mmdeploy/mmdeploy/lib
    export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    使用时改
    转engine文件必须用图片代码
    1、/home/sen/motan/DCMMDet3D/demo/data/nuscenes/1.json里图片的路径
    2、/home/sen/motan/mmdeploy/configs/mmdet3d/monocular-detection/monocular-detection_static.py里json的路径

    • 问题
      在这里插入图片描述
      setup.py有问题,要替换掉
  • 相关阅读:
    python使用mongoDB
    十三、函数式编程(1)
    【C语言】通讯录——示例以及详解
    LinuxC/C++ UDP编程实现DNS客户端
    AtCoder ABC324 B~E赛后补题
    固定翼飞机姿态角Backstepping反步法控制
    知识分享|分段函数线性化及matlab测试
    机器学习-预备知识
    Java基础--阳光总在风雨后,请相信彩虹
    冒泡排序:了解原理与实现
  • 原文地址:https://blog.csdn.net/qq_45990036/article/details/131936656