借助于Kria SoM部署边缘人工智能

FPGA开发圈 2021-11-19 12:05

图源:Itsanan/Shutterstock.com



简介



生产线已步入了快节奏时代,但要提高交付速度和客户满意度,势必需要在装运前检测制造或包装缺陷。然而,自动化检测设备需要在不降低生产线速度的情况下进行处理和做出决策。所以,我们需要借助于Xilinx Kria K26系统模块(SoM)等器件的帮助。
Kria K26 SoM(见图1)允许开发人员利用可编程逻辑与高性能Arm处理器内核相结合的并行特性。Kria SoM的优势在于Xilinx首次为SoC(XCK26)提供了异构SoC和必要的支持基础设施,如4GB DDR4内存、16GB eMMC、512Mb QSPI、TPM安全模块以及必要的电源基础设施。

图1:Kria SoM

为便于与应用接口,此器件提供了可拆分成245个IO的两个240针连接器。

Xilinx还提供了Kria KV260视觉AI入门套件,让开发人员能够快速开始设计。该套件为开发人员提供了拥有以下接口的SoM载卡:

  • 3个MIPI接口

  • USB

  • HDMI

  • 显示端口

  • 1GB以太网

  • Pmod

此入门套件还随附了一系列应用示例,帮助用户了解开发基于视觉的人工智能应用是一件非常轻松的工作。Kria视觉AI入门套件非常适合需要快速图像处理的应用,例如检测标签是否已正确应用于生产线上的装运箱。



01

制造业应用案例


接下来让我们将详细地介绍Kria KV260视觉入门套件如何用于制造行业。创建此类应用并不一定需要可编程逻辑设计。然而,却需要进行软件开发,并具有使用Xilinx Vitis AI培训和编译新机器学习模型的能力。首先,我们需要安装和配置Vitis AI。

 物料清单 

  • Kria KV260视觉AI入门套件



02

创建虚拟机


我们需要本地Linux机器或运行受支持的Linux发行版的虚拟机来运行Vitis AI。
在安装完成后,下载Ubuntu Linux磁盘映像,以便在虚拟机上安装Linux系统。此项目所使用的Ubuntu版本是Ubuntu-18.04.4 Desktop-amd64.iso,点击此处即可下载。👈
现在可以开始构建虚拟机了。第一步,在VirtualBox Manager中单击New。
这时将显示一个对话框,用于创建新的虚拟机(见图2)。输入虚拟机名称,并将类型和版本分别设置为Linux和64位Linux版本。此外,还可以设置与虚拟机共享的系统内存大小(见图3)。

图2:创建虚拟机
单击Create按钮,将显示虚拟硬盘的设置。选择512GB,以允许动态分配物理存储空间。随着磁盘使用量的增加,虚拟硬盘大小将扩展到512GB。该项目将外部固态USB C驱动器用作虚拟硬盘,以确保有足够的可用空间。

图3:设置存储空间
配置好虚拟机后,接下来就要安装操作系统了。选中新创建的虚拟机,然后单击start按钮启动VM 9(见图4)。

图4:启动虚拟机
在启动虚拟机时,会要求安装之前下载的Ubuntu ISO(见图5)。

图5:选择安装盘
在虚拟硬盘上安装Ubuntu操作系统。选择安装Ubuntu(见图6)。

图6:安装Ubuntu
在选择好Ubuntu的位置和配置选项后,进行键盘配置(见图7)。

图7:选择本地化设置
选择最小安装(见图8),因为我们不需要使用办公软件、媒体播放器或玩游戏。

图8:选择最小安装
在安装期间擦除磁盘并安装Ubuntu(见图9)。

图9:擦除磁盘
单击continue继续操作(见图10)。

图10:启用磁盘改写
选择您所在的地理位置与时区(见图11)。

图11:设置时区
最后,输入Ubuntu计算机名、用户名及密码(见图12)。

图12:设置帐户名和密码
安装完成后,重启虚拟机(见图13)。

图13:重启虚拟机
重启后,登录并开始安装Vitis AI(见图14)。

图14:登录



03

安装Vitis和Vitis AI‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍


于运行Linux的虚拟机,接下来需要安装Vitis和Vitis AI。安装Vitis时,需要用到在下载时创建的Xilinx帐户。Vitis安装时间较长,所以我们会先安装它。
打开Xilinx下载页面,选择Linux Self Extracting Web Installer(见图15)。

图15:Xilinx Linux Installer
下载web安装程序后,找到下载位置,选择应用程序,右键单击以更改权限,使其能够作为应用程序执行(见图16)。

图16:设置适当权限
现在可以使用终端窗口来安装Vitis,所需时间取决于虚拟机和internet连接性能。
通过以下sudo命令来安装此工具(见图17)。
sudo ./Xilinx_Unified_2020.2_1118_1232_Lin64.bin
图17:运行安装程序
此时将启动Vitis Installer(见图18)。

图18:启动安装程序
登录您的帐户(见图19)。

图19:登录您的Xilinx帐户
选择Vitis作为目标应用程序,同时还会安装Vivado(见图20)。

图20:安装Vitis与Vivado
为了节省安装空间,应取消选择除SoC以外的所有设备(见图21)。

图21:最大程度节省安装空间
接受安装条件和条款(见图22)。

图22:接受安装条件和条款
选择安装目录,建议使用默认位置(见图23)。
图23:选择安装位置
在Installation Summary中,选择Install并等待安装完毕(见图24)。

图24:完成安装

安装完成后,需要运行以下脚本以安装所有相关项:

sudo <install_dir>/Vitis/<release>/scripts/installLibs.sh


接下来,安装Vitis AI。在本例中,我们将安装Vitis AI以从CPU而不是GPU运行,因而会影响训练性能。
首先要安装docker,请按照此处的说明进行操作。注意,可能需要在安装完成后重启虚拟机。

接下来,请使用以下命令安装Git:sudo apt update sudo apt install git选择/创建Vitis-AI的安装目录。使用以下命令克隆Vitis-AI:git clone https://github.com/Xilinx/Vitis-AI.git一旦克隆好Vitis-AI存储库,请将其改为存储目录,并提取docker映像。cd Vitis-AI docker pull xilinx/vitis-ai:latest从docker下载最新的Vitis-AI映像将需要几分钟的时间。在提取docker映像之后,我们需要构建交叉编译系统。可以通过运行Vitis-AI/setup/mpsoc/VART中的脚本来完成此操作(见图25)。cd Vitis-AI/setup/mpsoc/VART ./host_cross_compiler_setup_2020.2.sh
图25:安装SDK路径
运行脚本后,请确保运行指定的命令以启用交叉编译环境。
我们可以通过编译一个演示程序来测试是否正确安装了Vitis AI。在本例中,我们采用的是demo/VART/Resnet50目录下提供的resnet50应用程序。请使用以下命令编译应用程序:
Bash -x build.sh
如果您在终端窗口中没有看到错误,并且可执行文件出现在目录中,则说明Vitis AI安装成功(见图26):

图26:编译引擎

现在,我们需要开发数据集,以显示正确和错误黏贴的标签。


04

创建数据集


为了训练神经网络,我们首先需要一组正确和错误图像的数据集。我们以几个正确和错误地黏贴了贸泽标签的箱子为例。为了获得多样化的图像,我们从多个角度拍摄了正确和错误黏贴标签的箱子(见图27和28)。

图27:正确的图像

图28:错误的图像
这些图像被整理成两个目录——一个是正确的标签,另一个是错误的标签。
对于捕获到的图像,我们需要训练一个神经网络。在本例中,我们将使用Edge Impulse。请注意,您需要为Edge Impulse创建一个免费的帐户。
在Edge Impulse端,首先要创建一个新项目(见图29)。

图29:创建Edge Impulse项目
新项目创建后,可以上传标记为正确和错误的图像文件夹。首先选择正确目录中的所有文件并进行上传,标记为Label_Correct。随后,上传错误的图像并将其标记为Label_Incorrect(见图30)。

图30:上传数据
所有图像都上传完成后,接下来就要定义Impulse。选择宽度和高度均为224像素的输入图像。选择图像,输入Transfer Learning,然后保存Impulse(见图31)。

图31:设置Impulse
然后,我们可以通过生成特征和训练Impulse来训练模型(见图32)。

图32:生成特征

选择模型MobileNetV2 160x160 1.0,等效模型位于Xilinx Model Zoo下(见图33)。

图33:选择正确的模型
可能需要几分钟的时间来训练模型。训练完成后,返回概览页面,选择下载迁移学习模型(见图34)。
这将包括保存的模型和.zip文件中的变量(检查点)。

图34:下载保存的模型



05

量化并编译模型


接下来使用Vitis AI对模型进行量化和编译。在虚拟机中,我们可以通过发出以下命令来运行Vitis AI(见图35)。

./docker_runs.sh Xilinx/vitis-ai-cpu:latest


图35:启动Vitis AI

加载Vitis AI后,使用以下命令激活TensorFlow(见图36)。

conda activate vitis-ai-tensorflow


图36:激活Vitis AI TensorFlow
接下来,冻结将检查点的信息合并到冻结模型文件的模型(见图37)。

图37:编译冻结模型

一旦模型作为冻结模型输出,我们就可以使用编译器编译输出模型,以部署到系统中。

我们可以从Xilinx Model Zoo中包含的YAML文件中了解输出节点的信息(见图38)。

图38:探索模型
要检查冻结的网表,则需要安装Netron。此外,理解量化过程的输入和输出节点名称也很重要(见图39)。

图39:安装Netron
有了量化网表,我们可以将量化网表编译为部署在Kria SoM上的模型(见图40)。

图40:编译模型

借助于SCP/FTP,我们可以将编译后的模型上载到以下目录中的Kria文件系统:

/usr/share/vitis_ai_library/models/
上传好模型后,可以生成一个软件应用程序,用于测试神经网络。这时,我们可以将几个正确和错误的图像上载到Kria SoM,来测试应用程序(见图41和42)。

图41:识别错误的标签

图42:识别正确的标签



结语



该项目展示了对于工业AI/ML应用,在Kria SoM中训练和部署神经网络是一件非常简单的事情,其应用潜力也是无限的。未来可能需要更新软件以利用gstreamer框架,并像在生产线上一样对实时图像进行分类。




Adam Taylor
作者介绍

Adam Taylor非常擅长为多种最终应用开发嵌入式系统和FPGA。在他的职业生涯中,Adam使用FPGA实现了多种多样的解决方案,涵盖雷达系统、安全关键型控制系统(SIL4)和卫星系统等领域,同时他对图像处理和密码学方面也有所涉猎。

Adam从事过多个经理职位,带领过多家大型跨国公司实现长足发展。多年来,他在航天工业中扮演着重要角色。他曾担任Astrium卫星有效负载处理组的设计主管达6年之久,此外还在一家空间影像公司担任了三年的首席工程师,负责了多个影响深远的项目。
FPGA是Adam最早接触的领域。他撰写过许多有关电子设计和FPGA设计的文章和论文,包括330多篇博客文章,并且通过2500多万条评论阐释了如何使用Xilinx的Zynq和Zynq MPSoC。
Adam是一位特许工程师。他是IET英国工程技术学会的会员、林肯大学和Arm Innovator项目的嵌入式系统客座教授,同时还是工程和咨询公司Adiuvo Engineering and Training的所有者。


FPGA开发圈 这里介绍、交流、有关FPGA开发资料(文档下载,技术解答等),提升FPGA应用能力。
评论
  • 在快速发展的能源领域,发电厂是发电的支柱,效率和安全性至关重要。在这种背景下,国产数字隔离器已成为现代化和优化发电厂运营的重要组成部分。本文探讨了这些设备在提高性能方面的重要性,同时展示了中国在生产可靠且具有成本效益的数字隔离器方面的进步。什么是数字隔离器?数字隔离器充当屏障,在电气上将系统的不同部分隔离开来,同时允许无缝数据传输。在发电厂中,它们保护敏感的控制电路免受高压尖峰的影响,确保准确的信号处理,并在恶劣条件下保持系统完整性。中国国产数字隔离器经历了重大创新,在许多方面达到甚至超过了全球
    克里雅半导体科技 2025-01-03 16:10 105浏览
  • 物联网(IoT)的快速发展彻底改变了从智能家居到工业自动化等各个行业。由于物联网系统需要高效、可靠且紧凑的组件来处理众多传感器、执行器和通信设备,国产固态继电器(SSR)已成为满足中国这些需求的关键解决方案。本文探讨了国产SSR如何满足物联网应用的需求,重点介绍了它们的优势、技术能力以及在现实场景中的应用。了解物联网中的固态继电器固态继电器是一种电子开关设备,它使用半导体而不是机械触点来控制负载。与传统的机械继电器不同,固态继电器具有以下优势:快速切换:确保精确快速的响应,这对于实时物联网系统至
    克里雅半导体科技 2025-01-03 16:11 151浏览
  • 光耦合器,也称为光隔离器,是一种利用光在两个隔离电路之间传输电信号的组件。在医疗领域,确保患者安全和设备可靠性至关重要。在众多有助于医疗设备安全性和效率的组件中,光耦合器起着至关重要的作用。这些紧凑型设备经常被忽视,但对于隔离高压和防止敏感医疗设备中的电气危害却是必不可少的。本文深入探讨了光耦合器的功能、其在医疗应用中的重要性以及其实际使用示例。什么是光耦合器?它通常由以下部分组成:LED(发光二极管):将电信号转换为光。光电探测器(例如光电晶体管):检测光并将其转换回电信号。这种布置确保输入和
    腾恩科技-彭工 2025-01-03 16:27 147浏览
  • 车身域是指负责管理和控制汽车车身相关功能的一个功能域,在汽车域控系统中起着至关重要的作用。它涵盖了车门、车窗、车灯、雨刮器等各种与车身相关的功能模块。与汽车电子电气架构升级相一致,车身域发展亦可以划分为三个阶段,功能集成愈加丰富:第一阶段为分布式架构:对应BCM车身控制模块,包含灯光、雨刮、门窗等传统车身控制功能。第二阶段为域集中架构:对应BDC/CEM域控制器,在BCM基础上集成网关、PEPS等。第三阶段为SOA理念下的中央集中架构:VIU/ZCU区域控制器,在BDC/CEM基础上集成VCU、
    北汇信息 2025-01-03 16:01 159浏览
  • 影像质量应用于多个不同领域,无论是在娱乐、医疗或工业应用中,高质量的影像都是决策的关键基础。清晰的影像不仅能提升观看体验,还能保证关键细节的准确传达,例如:在医学影像中,它对诊断结果有着直接的影响!不仅如此,影像质量还影响了:▶ 压缩技术▶ 存储需求▶ 传输效率随着技术进步,影像质量的标准不断提高,对于研究与开发领域,理解并提升影像质量已成为不可忽视的重要课题。在图像处理的过程中,硬件与软件除了各自扮演着不可或缺的基础角色,有效地协作能够确保图像处理过程既高效又具有优异的质量。软硬件各扮演了什么
    百佳泰测试实验室 2025-01-03 10:39 112浏览
  • 本文继续介绍Linux系统查看硬件配置及常用调试命令,方便开发者快速了解开发板硬件信息及进行相关调试。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。查看系统版本信息查看操作系统版本信息root@ido:/# cat /etc/*releaseDISTRIB_ID=UbuntuDISTRIB_RELEASE=20.04DISTRIB_CODENAME=focalDIS
    Industio_触觉智能 2025-01-03 11:37 127浏览
  • 自动化已成为现代制造业的基石,而驱动隔离器作为关键组件,在提升效率、精度和可靠性方面起到了不可或缺的作用。随着工业技术不断革新,驱动隔离器正助力自动化生产设备适应新兴趋势,并推动行业未来的发展。本文将探讨自动化的核心趋势及驱动隔离器在其中的重要角色。自动化领域的新兴趋势智能工厂的崛起智能工厂已成为自动化生产的新标杆。通过结合物联网(IoT)、人工智能(AI)和机器学习(ML),智能工厂实现了实时监控和动态决策。驱动隔离器在其中至关重要,它确保了传感器、执行器和控制单元之间的信号完整性,同时提供高
    腾恩科技-彭工 2025-01-03 16:28 153浏览
  • 【工程师故事】+半年的经历依然忧伤,带着焦虑和绝望  对于一个企业来说,赚钱才是第一位的,对于一个人来说,赚钱也是第一位的。因为企业要活下去,因为个人也要活下去。企业打不了倒闭。个人还是要吃饭的。企业倒闭了,打不了从头再来。个人失业了,面对的不仅是房贷车贷和教育,还有找工作的焦虑。企业说,一个公司倒闭了,说明不了什么,这是正常的一个现象。个人说,一个中年男人失业了,面对的压力太大了,焦虑会摧毁你的一切。企业说,是个公司倒闭了,也不是什么大的问题,只不过是这些公司经营有问题吧。
    curton 2025-01-02 23:08 270浏览
  • Matter加持:新世代串流装置如何改变智能家居体验?随着现在智能家庭快速成长,串流装置(Streaming Device,以下简称Streaming Device)除了提供更卓越的影音体验,越来越多厂商开始推出支持Matter标准的串流产品,使其能作为智能家庭中枢,连结多种智能家电。消费者可以透过Matter的功能执行多样化功能,例如:开关灯、控制窗帘、对讲机开门,以及操作所有支持Matter的智能家电。此外,再搭配语音遥控器与语音助理,打造出一个更加智能、便捷的居家生活。支持Matter协议
    百佳泰测试实验室 2025-01-03 10:29 125浏览
  • 在测试XTS时会遇到修改产品属性、SElinux权限、等一些内容,修改源码再编译很费时。今天为大家介绍一个便捷的方法,让OpenHarmony通过挂载镜像来修改镜像内容!触觉智能Purple Pi OH鸿蒙开发板演示。搭载了瑞芯微RK3566四核处理器,树莓派卡片电脑设计,支持开源鸿蒙OpenHarmony3.2-5.0系统,适合鸿蒙开发入门学习。挂载镜像首先,将要修改内容的镜像传入虚拟机当中,并创建一个要挂载镜像的文件夹,如下图:之后通过挂载命令将system.img镜像挂载到sys
    Industio_触觉智能 2025-01-03 11:39 108浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦