视觉AI应用发展至今,已经遍地开花,你能想到的或想不到的地方,它都存在。至于它的边界在哪里,说是潜力无限也好不夸张,就像今天要评测的赛灵思Kria KV260视觉AI套件,他刷新了我对视觉AI及FPGA上手难易度的认知。
赛灵思Kria KV260视觉AI入门套件是一个开箱即用平台,开发人员可以通过首选设计环境,在任何抽象层添加定制和差异化功能,包括应用软件、AI模型乃至FPGA设计。该套件是超快速简易平台,用于开发应用以使用Kria K26系统模块 (SOM) 进行批量部署。
这个套件包括最多支持八个接口的多摄像头、三个MIPI传感器接口、一个USB摄像头、一个内置ISP组件、HDMI DisplayPort输出以及千兆以太网和USB 3.0/2.0连接功能。该套件还允许开发人员针对任何传感器或接口进行扩展,并访问Pmod生态系统。KV260针对视觉应用进行了优化,通过安森美半导体的影像接入系统 (IAS) 和Raspberry Pi连接器提供多摄像头支持。
Part 1:开箱
在拿到了板卡之后,首先看到的是这个方方正正的箱子:
打开外包装,内部主要有两个盒子,一个是板卡包装盒,可以从外包装上看到,这个就是Kria板卡的外包装,此板卡为视觉AI套件,和视觉AI套件对应的还有机器人套件:
另一个是配件包盒子,配件包盒子就是一个简简单单的牛皮纸盒,但内部提供的配件是非常多的:
打开板卡包装盒,板卡正面特写,可以看到板卡由核心板和一个载板构成,该板卡提供了非常多的外部接口,如千兆以太网、4个USB3.0,1个HDMI,1个DP接口以及一个12V电源输入接口,两个MIPI接口,一个PMOD接口,串口等等,外设接口提供的非常全面,美中不足的是没有提供开关:
板卡背面特写:
源适配器需单独购买:
电源适配器贴心的提供了不同标准接口:
HDMI连接线:
千兆网线:
MicroUSB线:
Cmos Sensor:
Sensor正面
Sensor背面
提供的SD卡架和TF卡,这个出厂里面是空的,并没有烧录镜像。
此外,XILINX还提供了一个安装架,用来固定板卡,安装完成后十分的漂亮:
Part 2 – 板卡外观与接口
板卡基本外观如下所示:
可以看到,板卡其实是由两部分构成的,在红色风扇下面压着的,就是我们的核心板,底部的就是载板,通常被称为Carrier Board。
这种通过核心板+扩展版的设计方法能够有效的减少设计时间与设计风险,核心板与底板可以替换、升级,非常方便。
XILINX将他们的核心板成为SOM(SYSTEM ON MODULE),这块板卡所使用的核心板型号为K26 SOM,官网页面如下所示:
这个SOM核心器件使用了XILINX的ZYNQ Ultrascale+系列SOC/FPGA,该SOM资源种类、资源量、接口种类都非常丰富,如下表所示:
通过以上资源,给了我们非常大的空间与舞台,让我们在这个SOM上实现我们的想法。
对于这个视觉开发套件的载板,也就是Carrier Board, 也提供了非常多的外部接口,如下表所示,它针对AI应用,引出了K26 SOM内偏向于视觉的接口,供我们针对性选用。
KV260载板的硬件框图如下所示:
KV260对应此硬件框图,提供的外部接口资源如下所示:
Part 3 – 上手体验&运行Demo
XILINX为我们提供了页面,告诉我们如何开始,页面如下:
https://china.xilinx.com/products/som/kria/kv260-vision-starter-kit/kv260-getting-started/getting-started.html
首先,根据页面我们需要准备好一些配件:
(1)KV260 电源和适配器 (12V, 3A)
(2)MicroSD 卡 (16GB)
(3)USB-A 至 micro-B 电缆
(4)13MP 自动聚焦 RGB 摄像头 (AR1335) 模块
(5)以太网电缆
(6)HDMI 电缆(连接至监视器)
此外,我还准备了读卡器和DP线缆。
根据页面所述,我们可以选择直接使用编译好的ubuntu或者petalinux,我选择使用petalinux。
点击下方按钮继续:
接下来就是下载镜像和一些烧录,格式化TF卡等等工具,镜像下载界面如下所示:
https://china.xilinx.com/member/forms/download/xef.html?filename=petalinux-sdimage-2021.1-update1.wic.xz
烧录器下载链接:
https://www.balena.io/etcher/
除了页面要求外,我另外准备了串口通信工具MobaXterm,这个软件的Home版本是免费的,足够我们使用。
另外,TF卡格式化工具我选择了老牌的SDFormatter,简单可靠好用。
镜像与工具准备完成如下图所示:
然后,进入“开始设计”的步骤2,按照动图提示,先链接其他连线、TF卡、Sensor,最后再给板卡链接适配器进行供电。
通过终端连接板卡,如下图所示, 可以看到已经有启动的log信息输出:
提示进行登录:
由于是第一次进入板卡系统,要求设置个新密码并确认,按照要求输入即可。
成功进入系统:
然后我们可以尝试进行运行XILINX提供的只能摄像头加速应用。
Xilinx 凭借 Kria™ KV260 视觉 AI 入门套件向用户推出 “加速应用” 的概念。这些是为 AI 及软件开发者预先构建的应用,可帮助他们领先一步开发目标终端应用
您可以快速运行一款我们的加速应用,甚至可以使用不同的人工智能模型或传感器对其进行定制。听起来让人很振奋!我们来试用一下智能相机加速应用。
KV260 Vision AI 入门套件的独特之处在于:它能够加载和运行能通过配置硬件来实现多种功能的应用。“xmutil” 实用程序可用于加载各种应用。一个加速应用可在既定的时间加载。我们将首先加载一个应用,将SOM编程为智能相机,该应用能够处理来自 MIPI 或 USB 相机的 1080p 视频流,并通过 HDMI 或 DisplayPort 进行显示,或通过有线以太网进行流处理。*
智能摄像头加速应用简介:
内置机器学习并能执行面部/行人检测的超高清摄像头,支持从各种视频源(Mipi 摄像头、视频文件 & USB 摄像头)捕获信息,能够通过基于 ROI 编码的视频的 HDMI、DisplayPort 或 RTSP 传输功能输出处理过的视频。
最普及的使用案例:智慧城市应用(面部、行人检测和交通管理)和视频分析功能。
启动智能摄像头加速应用:
在运行目标上动态安装智能相机应用软件包
Xilinx 能够采用运行时软件包管理 (rpm) 格式为用户提供软件包馈送,使他们能够在使用 dnf 软件包管理器实用程序命令“dnf install”运行 Linux 启动器映像的基础上,动态加载 Xilinx 加速应用。此外,Xilinx 还可提供 xmutil 实用程序 (xmutil getpkgs),用于搜索软件包馈送并查询针对 Vision AI 入门套件提供的加速应用软件包组。命令如下:
1) 运行sudo xmutil getpkgs命令,获取所提供的应用软件包组列表。
2) 运行sudo dnf install packagegroup-kv260-smartcam.noarch命令,从上表安装智能相机加速应用软件包组。 出现提示时,按“是”,等待大约 2 分钟,安装 204 个软件包。
出现提示,输入Y确认安装。
正在下载…
自动进行安装:
安装完成
加载智能相机加速应用固件
在执行 /opt/xilinx/bin 上提供的新安装应用之前,需要使用 xmutil 实用程序命令加载 FPGA 固件(PL 位流 + 设备树覆盖 + PL 驱动程序)。按照以下步骤在 Vision AI 入门套件上加载智能相机加速应用固件。
(1)运行sudo xmutil listapps命令,列出 Vision AI 入门套件上可用的现有应用固件。
(2) 运行sudo xmutil unloadapp命令,卸载默认的“kv260-dp”应用固件。
(3) 运行sudo xmutil loadapp kv260-smartcam命令,加载智能相机加速应用固件。
运行智能相机加速应用。
将 AR1335 摄像头模块对准用户面部并运行智能相机加速应用。要使用 IAS 摄像头模块运行加速应用,请使用以下命令:
注: “--usb”的参数 0 取决于 USB 网络摄像头在 Vision AI 入门套件上运行 Linux 时检测到的媒体节点。在本案例中,它是 /dev/media0,所以我们使用“--usb 0。
您也可从 Jupyter Notebook 控制智能相机应用。Linux 启动完成后,请通过在浏览器中输入 SOM 的 IP 地址来启动 Jupyter 笔记本。通过该笔记本的单元来练习 Kria SOM 的智能相机功能。
运行人脸识别加速器效果:
直接拍摄快速识别到人脸
遮挡时识别不到
移开后又识别到人脸
小结:
赛灵思Kria KV260视觉AI入门套件板载接口充足,最令人欣喜的是加速应用生态系统,可以通过首选设计环境在任何抽象等级添加定制和差异化功能,从应用软件到AI模型再到FPGA设计。我相信各类开发人员,不管有没有FPGA经验都可以在短时间内运行应用程序,是我目前见过最快最简单的开发平台。