什么样的积极创新可以帮助您设计出这样一个系统——它能够提醒用户有儿童在游泳池中溺水,或是有入侵者试图闯入住宅或者办公场所?这种技术还能够提醒驾驶员道路上即将发生的危险,甚至可以制止他们并线、加速及其它可能会给自身或他人带来危险的操作。它能够给军用无人机或其他机器人配上电子“眼”,使这些设备部分实现甚至完全实现自动化操作。它能够协助内科医生诊断患者的病情。它能够准确地进行面部识别,随后启动一系列操作(例如自动登录用户账号,或者获取相关新闻及其它信息),解读姿态, 甚至觉察人的情绪状态。与GPS、指南针、加速计、陀螺仪和其他功能配合,它还能够提供数据强化(data augmented) 的场景再现。
上面谈到的应用实例都采用了一项共同的技术,即嵌入式视觉。该技术正准备书写新一代电子系统的成功篇章。嵌入式视觉最初应用于组装生产线检测、光学字符识别、机器人、监视和军用系统等传统的计算机视觉应用。不过近年来,随着关键技术构建块成本的不断下降以及功能的不断丰富,嵌入式视觉技术不断向主要的大批量市场加速渗透。
例如,在日益丰富和不断提高的应用需求的推动下,图像传感器的分辨率、低亮度性能、帧速率、尺寸、功耗和成本等关键特性都有着明显的改善。同样,嵌入式视觉应用也要求处理器具备高性能、低成本、低功耗以及灵活的可编程功能。这些理想的特性在不计其数的产品设计中正日渐变为现实。最新一代光学系统、照明模块、易失性和非易失性存储器以及I/O 标准也正在实现类似的特性优化。因此,算法到了迎接挑战的关口,需要充分利用这些硬件性能的改进来提供更稳健可靠的分析结果。
嵌入式视觉指的是能够通过视觉方式理解其所处环境的机器。“嵌入式”的意思指内置图像传感器的非通用型计算机系统。比如,嵌入式可以是手机、平板电脑、监视系统、地面或者具备飞行能力的机器人、安装有一套 360°摄像头的车辆或者是医疗诊断设备。它也可以是有线或者无线用户界面外设。这方面微软针对 Xbo x360 游戏机提供的 Kinect 可能是最好的例证,上市头 2 个月就销售出 800万件。
FPGA 的商机:案例研究
可供选用的稳健可靠的嵌入式视觉处理产品丰富多样,如微处理器与嵌入式控制器、专用 SoC、DSP、图形处理器、ASIC 和 FPGA。FPGA 是一款用于实现嵌入式视觉技术的极富吸引力的芯片平台,因为它将 ASIC的高性能和低功耗硬件以及可运行在CPU、GPU 或 DSP 上的软件算法的灵活性和快速上市优势集于一身。在嵌入式视觉市场处于襁褓时期的当前阶段,灵活性具有特别重要的意义。因为为了支持多样化的算法选择,迅速完成缺陷修正和特性集改进是一种常态,而非偶然。FPGA 的硬件可配置能力也便于让设计经简单直观修改就能适用于支持各种串行和并行(以及模拟和数字)接口的图像传感器。
嵌入式视觉联盟是由世界各地的开发商和提供商组成的统一的全球性联盟,其宗旨是以丰富、迅速和高效的方式将嵌入式视觉的潜力变为现实(见侧边栏)。该联盟的两个创始成员 (BDTI) 伯克利设计技术公司和赛灵思已联合开发出一个参考设计,用于证实嵌入式视觉技术不可估量的市场前景以及 FPGA 在实现该前景中可能发挥的作用。这个项目的目的是探索系统设计人员在开发高度复杂的智能视觉平台时可进行的典型架构决策,该平台所包含的元件需要高强度硬件处理和复杂的软件及算法控制。
BDTI 和赛灵思对设计进行了分区,其中 FPGA 架构负责处理数字信号处理密集型运算,而 CPU 则负责处理复杂的控制和预测算法。在这个探索性实现方案中,CPU 电路板通过以太网接口连接到 FPGA 开发板。FPGA 执行高带宽处理,仅有元数据通过网络 (network tether) 进行交换。该项目还探索了软硬件同步开发,故要求在最终的 FPGA 硬件实现之前使用精准的仿真模型。
第一阶段:道路标志检测
项目的第一阶段和第二阶段均采用了两个基于 PC 的专门功能:正在开发中的赛灵思视频 IP 模块的仿真模型和一个由 BDTI 开发的处理应用(见图 1)。输入数据为 720p 高清分辨率、60 fps 的 YUV 编码视频流,代表车辆正前方摄像头可能采集到的图像。其目的是识别(虽然没有采用光学字符职别技术“读取”,但这项功能可以自然延伸出来)视频帧中的四种类型的对象,以辅助驾驶员驾驶:
• 绿色方向标志
• 黄色和桔红色危险标志
• 蓝色信息标志
• 桔红色安全锥
赛灵思提供的 IP 模块仿真模型负责输出用于识别每帧中各颜色像素组的位置和大小的元数据,这些也是最终硬件 IP 模块生成的元数据。许多嵌入式视觉系统的精度受多种外部因素的影响,比如成像传感器的噪声、突然的照度变化以及难以预测的外部运动。对本项目的必要要求之一是要求FPGA 硬件在尽量节约硬件资源的情况下,借助能够容忍大量外部干扰且不降低检测精确度的预测性软件,在有大量外部干扰的条件下完成图像处理并生成元数据。
BDTI 针对这种特定应用,对这些IP 模块丰富的配置参数集进行了优化,而且 BDTI 的后处理算法还提供了进一步的优化和预测功能。例如,在某些情况下,该硬件只能部分识别一帧中的对象,但应用层软件使用跟踪算法能够继续预测对象的位置。这种方法非常有效,因为在许多情况下物理探测无法做到持续不断,因此软件智能层对提供持续的预测起着关键作用。
再举一个例子。高速公路绿色指路标志上的黑色或白色字符可能会扰乱 IP 模块普通的图像分析功能,会将路标错误地分解成多像素的子集合(见图 2)。根据该应用中使用的成像传感器的质量和设置,IP 模块还会混淆红色和桔红色,从而将其他车辆的尾灯或刹车灯误认为交通锥或交通标识。
图 2 - 采用专门针对应用定制的二级算法进一步处理 FPGA 的视频分析硬件电路输出的元数据
因此,BDTI 开发的针对特定应用定制的算法可用于进一步处理赛灵思提供的元数据。例如,BDTI 的算法知道什么样的标志看上去应该是怎么样的(大小、形状、颜色、图案、在帧中的位置等),故而能够将相关的像素集群组合成更大的群组。类似的,这些算法也能判断什么时候应该去除看似颜色相近但并非标志的像素集群,比如前面提及的车辆刹车灯。
第二阶段:行人检测与跟踪
在项目的第一阶段中,摄像头处于运动状态而待识别的对象(即道路标志)处于静止状态。第二阶段主要针对安全应用,摄像头处于静止状态而对象(本例中为行人)则未必。对这种情况,视频分析算法就不能依靠预设的颜色、图案或其它对象特征,因为行人可以穿着各种衣物,可以高矮胖瘦各异,可以肤色、头发颜色和发型不同(另外还可能戴着遮挡头发的帽子、墨镜等装饰物)。软件还需要解决另一个难题,不仅需要识别和跟踪行人,还需要在行人穿越一道数字“绊网”,进入视频帧的特定区域时发出警报(见图 3)。
图3:在行人检测和跟踪功能中包括一项“绊网”警报功能,当行人进入视频帧的
有界部分的时候就会发出警报
项目第二阶段与第一阶段采用的硬件配置完全相同,只是软件有所变化。视频流馈送到视频分析 IP 核的仿真模型中,所生成的元数据传输到二级算法器件供进一步处理。此时面临的难题包括:
• 解决不必要的噪声和适当的对象分割之间根本性的权衡取舍问题
• 对象不断变化的形态(外形和结构)
• 对象不断变化的运动状态,包括行人间的运动状态变化以及特定行人随时间的运动状态变化
• 元数据消失。比如当行人停止行走,被中间的障碍物遮挡或者是与背景图案混为一体
• 有其他对象出现在场景中,包括静态和动态的
• 行人与摄像头之间的距离不断发生变化
• 人群中个别行人与群体的运动矢量对比,主体运动矢量和反向运动矢量的对比
就“绊网”的实现,四种不同的视频流对视频分析算法的调试和优化尤其有效:
• 以相反方向行走的“近处”行人
• 以不同方向行走的“近处”行人
• 一个“远处”行人和一辆行驶的卡车,从某种角度看,两者大小相仿
•“远处”的多名行人与一辆驶近的卡车,卡车看上去比人群大
第三阶段:硬件转换及未来发展
项目的最后阶段采用赛灵思真正的视频分析 IP 模块(代替之前使用的仿真模块),运行在 Spartan ®-3A 3400 视频入门套件上。MicroBlaze™软核处理器嵌入在 Spartan-3A FPGA内,采用额外的专用功能模块予以强化,并实现了网络协议栈。该网络协议栈主要负责处理高数位率和以太网分组的元数据并将其传输到 BDTI 开发的第二级处理算法,同时实现道路标志检测和行人检测与跟踪功能。虽然这些算法之前在基于 X86 的 PC 上运行,BDTI 已成功地将它们移植到基于ARM® Cor tex TM-A8 的硬件平台(BeagleBoard) 上(见图 4)。
对已经熟悉赛灵思产品计划的用户来说,可能立即就会想到将 FPGA 和Cortex-A8 CPU 集成在单个芯片上的ZynqTM 可扩展处理平台。能不能在单个 Zynq 器件上运行整个视频分析参考设计呢? 答复显然是肯定的, 因为Zynq 产品系列的各器件包含有足够的可编程逻辑资源,同时 BDTI 算法对ARM CPU 核来说负载适中。
嵌入式视觉正在为系统开发商及其半导体和软件供应商书写新一篇重大的技术成功篇章。正如本文中介绍的案例研究所示,FPGA 以及 FPGA 与 CPU组合的 SoC 能够成为实现嵌入式视觉算法极富吸引力的芯片平台。
作者信息:
嵌入式视觉联盟总编 Brian Dipert
dipert@embedded-vision.com
赛灵思公司视频技术工程总监 José Alvarez
jose.alvarez@xilinx.com
BDTI(伯克利设计技术公司)高级 DSP 工程师 Mihran Touriguian
touriguian@bdti.com
评论
查看更多