本博客从使用yolov5部署移动机器人目标检测算法角度来评测旭日x3派性能,为尽可能客观评测x3派性能,我们分别在Jerson nano、树莓派和旭日x3派中部署了yolov5目标检测算法。这里我的评测指标是yolov5处理每一帧图片所需要的时间,不管是MP4还是调用摄像头实时处理,都是计算每一帧的图片,然后重复该过程,其中帧率(fps)可以理解为每秒钟能够处理每一帧图片的次数。故,下面的评测皆以处理每一帧图片所需的时间进行对比,以供参考。

Jerson nano部署yolov5目标检测算法:

       这里我使用的是冰达的开源镜像,其地址为:https://bingda.yuque.com/staff-hckvzc/px5t53/gx6pfbfxxcl5ub44

       该系统为ubuntu18.04,ros版本为melodic,python版本为3.6,故首先更新系统

      sudo apt update

      sudo apt  upgarde

      然后,下载对应版本pytorch v1.8.0和torchvision v0.9.0,其官方网址为:https://pytorch.org/get-started/previous-versions/,其网址为外网需要使用VPN才能访问下载,这里直接提供:

链接: https://pan.baidu.com/s/15Ju9voweWuUZypLscvBRHg?pwd=nffm 提取码: nffm 

     打开pytorch所在位置:pip3 install torch-1.8.0-cp36-cp36m-linux_aarch64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple

     解压torchvision :cd torchvision;添加export BUILD_VERSION=0.9.0到 .bashrc,然后source ~/.bashrc。

    sudo python3 setup.py install #进行安装

     安装  pillow支持包:sudo apt-get install libjpeg-dev

    下载yolov5:

     git clone -b v6.0 https://github.com/ultralytics/yolov5.git

    cd yolov5 ,安装:pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

树莓派部署yolov5目标检测算法:

  • 安装miniconda

    下载miniconda

   wget https://repo.anaconda.com/miniconda/Miniconda3-py37_4.9.2-Linux-aarch64.sh

    下载之后

   bash Miniconda3-py37_4.9.2-Linux-aarch64.sh

    全部选是,看到Thank you for installing Miniconda3即安装成功。

   source ~/.bashrc

 更新环境变量。

  • 安装pytorch

   CPU版本pytorch 和torchvision网址为:https://download.pytorch.org/whl/torch_stable.html

    根据我树莓派系统版本我选择的版本是:

torch-1.9.0-cp37-cp37-linux_aarch64.whl

 torchvision-0.10.0-cp37-cp37m-manylinux2014_aarch64.whl

    cd进入树莓派保存文件的目录

    安装指令

    pip3 install torch-1.9.0-cp37-cp37-linux_aarch64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple

    pip3 install torchvision-0.10.0-cp37-cp37m-manylinux2014_aarch64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple

  • 安装依赖

   sudo apt update

 sudo apt upgrade

sudo apt-get install libopenblas-dev libblas-dev m4 cmake cython python3-dev python3-yaml python3-setuptools python3-wheel python3-pillow python3-numpy

  • 安装yolov5

   从yolov5官网下载yolov5

  git clone https://gitcode.net/mirrors/ultralytics/yolov5.git

  cd yolov5,进入到yolov5空间,安装yolov5

  pip3 install requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

   测试python detect.py,成功效果如下。

旭日x3派部署yolov5目标检测算法可参考:https://guyueju.oss-cn-beijing.aliyuncs.com42683

一.目标检测场景的搭建

      为尽可能真实客观评测x3派性能,我们使用3D打印技术搭建了一个简单的智能驾驶场景,并在车辆移动过程中检测该场景。智能驾驶场景图片如下图所示。此外,我们也使用了一个人流量密集的场景(MP4视频)以客观评测x3派性能。

  二.性能评测

      在本节中我们从使用yolov5训练图片、MP4视频和在移动中检测目标的三种场景,来综合对比评测旭日x派的性能。

2.1 使用yolov5训练图片

   我们在安装好yolov5的树莓派、Jerson nano和旭日x3派中,打开yolov5:cd yolov5;输入python detect.py。

 我们分别使用树莓派、旭日x派和Jerson nano训练图片并给出了训练时的图片如下,由下图可以看出树莓派训练每幅图片的时间是最长的,平均两秒(1000ms=1s),x3派在0.7s,Jerson nano平均0.2s。三个板子均能满足训练图片的需求。

(a)树莓派

(b)旭日x3派

(c)Jerson nano

2.2 使用yolov5训练MP4视频

      在本节中我们使用同一个MP4视频分别对三个板子进行评测,我们首先在yolov5中新建一个MP4文件夹,把我们需要训练的MP4视频放里面,然后修改detect.py训练路径。然后cd yolov5;python detect.py。

在yolov5训练MP4视频时,其实可以将MP4视频看作一帧一帧的图片,yolov5依次处理每一帧的图片,下图为yolov5处理MP4视频的图片。可以清楚的看到树莓派的处理速度最慢,在1.7s左右,旭日x3派在0.6s,处理性能较好;Jerson nano在0.13s,相比之下效果最好。但处理MP4视频是一个离线处理的过程,不涉及处理实时性的问题,经我们的评测三个板子的处理精度上是一致的,均能满足一个处理需求。

(a)树莓派

(b)旭日x3派

(c)Jerson nano

2.3 在车辆移动过程中检测目标场景

      为了做这一节的评测,为此我们在第一节搭了一个简单的智能驾驶场景,模拟车辆的移动过程中实时检测目标。

      ros小车搭建可参考:https://guyueju.oss-cn-beijing.aliyuncs.com43017

      首先修改detect.py中default中参数为摄像头端口号(可通过ls /dev/video*插拔摄像头查看),然后cd yolov5;python detect.py。其效果演示如视频(在剪辑过程中,后续会发出)所示。处理时的的终端如下图所示,可以清楚的看到树莓派处理每一帧图片图片需要2s,已经很难满足实时处理的需求了,在给出的视频中也是如此。旭日x3处理每一帧图片图片需要0.6s,检测帧率fps为1.8,帧率为基本可以满足实时处理的需要,但处理速度有待提高。Jerson nano需要0.2s,检测帧率fps为6.5,处理性能较好。

(a)树莓派

(b)旭日x3派

(c)Jerson nano

三. 总结

       旭日x3派在使用yolov5目标检测算法的过程中,表现还是相对可以的。但从价格的角度上讲,树莓派和Jerson nano都要千元以上,尤其是树莓派从之前的四百元上升到千元以上,而 旭日x3派四百元就可以入手。此外,Jerson nano支持的Ubuntu最高为18.04,后续版本暂不支持,这为使用最新的ROS2带来了不便。如果在预算不是很多,且需要一个性能较为强大的开发板,可以选择国产开发板旭日x3派。

      其中, 地平线旭日®️ X3 派是一款面向生态开发者的嵌入式 AI 开发板,接口兼容树莓派,具有 5 TOPS 端侧推理与 4 核 ARM A53 处理能力。可同时多路 Camera Sensor 的输入并支持 H.264/H.265 编解码。结合地平线的高性能 AI 工具链与机器人开发平台,助力开发者快速落地解决方案。 X3 PI提供两种内存版本供用户选择,分别为2GB和4GB。并且旭日x3派提供了广泛的生态帮助初学者快速开发项目,其网址为https://developer.horizon.ai/sunrise