【摘要】本篇主要介绍在ARM架构下虚拟环境的配置,以及在虚拟环境中安装pytorch,最终部署yolov5进行实时推理,深度学习相关环境的配置涉及大量坑,只能遇坑填坑,可能还存在大量未知的BUG,不能囊括所有问题。
【本机配置】

  • JetPack 4.6
  • CUDA 10.2

一、虚拟环境配置

  1. Xavier采用的是ARM架构,无法下载安装 annoconda ,因此需要安装 miniforge 作为 annoconda 的替代品,选择aarch64的linux版本(下载地址
    在这里插入图片描述
  2. 使用sh Miniforge-xxx-Linux-aarch64.sh进行安装
  3. miniforge 使用指令和anconda完全一样
    使用conda create -n yolov5 python=3.6 -y指令创建yolov5环境
    使用conda activate yolov5激活
  4. 在创建环境时可能会出现报错
    Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
    大概率是源的问题,可以换源尝试解决,可以多试试各种源,比如:
    conda config --prepend channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/

二、torch和torchvision安装

  1. 首先老生常谈的问题,注意CUDA版本,安装对应版本的torch和torchvision,否则后续bug无穷。本机CUDA版本为10.2,因此安装1.7.0的torch与0.8.1的torchvision
  2. 使用源码安装 torch ,根据对应的JetPack选择对应版本的torch,本机选择torch1.7(eLinux官网
    在这里插入图片描述
  3. 执行pip install torch-1.7.0-cp36-cp36m-linux_aarch64.whl安装 torch
  4. 命令行执行 python import torch验证 torch是否安装成功,然后执行torch.cuda.is_available()函数检查是否为GPU版本
  5. 在安装torch时可能会出现两个问题:
    1)报错from torch._C import *ImportError: libopenblas.so.0: cannot open shared obj,解决方案是安装 libopenblas-dev ,直接使用apt-get安装可能会出现无法定位包的问题,可以通过先安装相关其他包解决,详情见(链接);
    2) 在导入 torch 时报错“非法指令 (核心已转储)”,是 numpy 版本的问题,可以通过降低numpy版本解决
  6. 使用源码安装 torchvision ,注意版本git clone -b v0.8.1 https://github.com/pytorch/vision.git vision-0.8.1,然后执行 sudo /home/xxx/xxx/envs/yolov5/bin/python3.6 setup.py install
  7. 安装其他依赖包,可以根据 requirement.txt 进行安装,主要有:
    Cython matplotlib numpy Pillow PyYAML scipy tensorboard tqdm seaborn pandas thop pycocotools
  8. opencv 的安装,由于xavier在安装官方SDK时内置了opencv,因此只需将 /usr/lib/python3.6/dist-packages/cv2/python-3.6路径下的 cv2.cpython-36m-aarch64-linux-gnu.so 文件,复制到路径/home/xxx/xxx/envs/yolov5/lib/python3.6文件夹下即可

三、YOLO V5运行实时推理

  1. 下载yolov5源码(v4.0
  2. 下载权重文件,放入weights中
    在这里插入图片描述
  3. 运行推理,自动调用摄像头
    python detect.py --source 0 --weights weights/yolov5s.pt --conf 0.25
    在这里插入图片描述
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐