1 简介
随着机器承担越来越多的工作量,设备和传感器将产生大量数据,这些推动了对于神经网络处理的需求。数据中心的集中式处理不再高效,并且正在推动数据中心之外的深度学习的发展。这是通过边缘端的AI推理实现的。
过去,机器学习和推理依赖于强大的x86平台和额外的显卡。现在,Arm平台+AI加速模组卡提供了一种更有效的方式来扩展边缘的人工智能推理能力。通过将基于人工智能的任务迁移到专用的人工智能处理器,开发人员可以增加设备上的推理能力并运行复杂的深度学习和计算机视觉应用程序,同时最大限度地降低功耗。
在本文中,我们将介绍研华如何将Hailo的Hailo-8™M.2模块与Arm单板电脑RSB -3720集成在一起,创建可扩展的节能边缘AI解决方案。随着Hailo的AI sdk, TAPPAS和开发环境已经集成到AIM-Linux软件服务中,我们进一步演示了Hailo-8在RSB-3720上的目标检测应用程序。
2 准备
在本演示中,我们将重点关注最常见的物体识别模型的视频监控场景。此场景需要以下项目。
硬件准备 :
1 x 研华RSB-3720 单板电脑
1 x Hailo-8™ M.2(A+E Keys)模组 (研华料号: 968DD00322)
1 x USB 接口UVC 摄像头
1 x HDMI 显示器
1 x USB转串口线
3 软件系统框图 :
RSB-3720板卡已经预装载Yocto 板级支持包(BSP)
4 搭建指导
4.1 主机开发环境架设 :
设置RSB-3720 Docker环境
#update CA certificates
$ sudo apt update
$ sudo apt-get install apt-transport-https ca-certificates -y
$ sudo update-ca-certificates
$ export GIT_SSL_NO_VERIFY=1
$ git config --global user.name “Your Name”
$ git config --global user.email you@example.com
$ git config --global url.“https://”.insteadOf git://
$ sudo chown adv:adv rsb-3720-hailo/
$ repo init -u git://github.com/ADVANTECH-Corp/adv-arm-yocto-bsp.git -b refs/tags/imx8LBVA0333 -m imx8LBVA0333.xml
$ repo sync
4.2 BSP 整合 :
4.2.1 准备 hail meta layer 到Yocto BSP 文件夹
$ cd rsb-3720-hailo/source
$ git clone https://github.com/hailo-ai/meta-hailo -b zeus
$ cd ..
$ MACHINE=imx8mprsb3720a1 DISTRO=fsl-imx-xwayland source imx-setup-release.sh -b hailo
4.2.2 在/conf/bblayers.conf文件增加meta layer
BBLAYERS += " ${BSPDIR}/sources/meta-hailo/meta-hailo-accelerator \
${BSPDIR}/sources/meta-hailo/meta-hailo-libhailort \
${BSPDIR}/sources/meta-hailo/meta-hailo-tappas"
4.2.3 在/conf/local.conf文件中添加HAILO应用程序和驱动程序
INHERIT += "rm_work"
IMAGE_INSTALL_append = " libhailort hailortcli pyhailort libgsthailo hailo-pci hailo-firmware "
IMAGE_INSTALL_append = " libgsthailotools tappas-apps "
4.2.4 制作镜像
$ bitbake imx-image-full
4.2.5 将镜像烧录到SD卡.
$ sudo dd if=./imx-robot-system-melodic-imx8mprsb3720a1-20220309072100.rootfs.wic of=/dev/sdx
5 在RSB-3720+Hailo8上运行Yolov5目标检测应用程序
烧录完镜像并接通RSB-3720电源后,在设备终端输入命令执行应用程序:
$ gst-launch-1.0 v4l2src device=/dev/video2 ! video/x-raw,format=YUY2,width=1280,height=720 ! queue leaky=downstream max-size-buffers=5 max-size-bytes=0 max-size-time=0 ! hailonet hef-path=yolov5m_yuv.hef debug=False is-active=true qos=false batch-size=1 ! queue leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0 ! hailofilter function-name=yolov5 so-path=/usr/lib/hailo-post-processes/libyolo_post.so qos=false debug=False ! queue leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0 ! hailofilter so-path=/usr/lib/hailo-post-processes/libdetection_draw.so qos=false debug=False ! queue leaky=downstream max-size-buffers=5 max-size-bytes=0 max-size-time=0 ! videoconvert ! fpsdisplaysink video-sink=autovideosink name=hailo_display sync=false text-overlay=false
6 结论
将M.2或mPCIE接口的AI加速模块添加到Arm计算平台上,例如将Hailo-8 AI加速模块安装在研华i.MX 8M plus平台上,可以轻松创建可扩展的AI处理单元。当与Hailo-8TM人工智能处理器结合使用时,它为基于Arm平台方案的机器学习进一步提供了最大能量和学习效率。