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