嵌入式视觉设计要创新,选择FPGA成关键
素组的位置和大小的元数据,这些也是最终硬件 IP 模块生成的元数据。许多嵌入式视觉系统的精度受多种外部因素的影响,比如成像传感器的噪声、突然的照度变化以及难以预测的外部运动。对本项目的必要要求之一是要求FPGA 硬件在尽量节约硬件资源的情况下,借助能够容忍大量外部干扰且不降低检测精确度的预测性软件,在有大量外部干扰的条件下完成图像处理并生成元数据。
BDTI 针对这种特定应用,对这些IP 模块丰富的配置参数集进行了优化,而且 BDTI 的后处理算法还提供了进一步的优化和预测功能。例如,在某些情况下,该硬件只能部分识别一帧中的对象,但应用层软件使用跟踪算法能够继续预测对象的位置。这种方法非常有效,因为在许多情况下物理探测无法做到持续不断,因此软件智能层对提供持续的预测起着关键作用。
再举一个例子。高速公路绿色指路标志上的黑色或白色字符可能会扰乱 IP 模块普通的图像分析功能,会将路标错误地分解成多像素的子集合(见图 2)。根据该应用中使用的成像传感器的质量和设置,IP 模块还会混淆红色和桔红色,从而将其他车辆的尾灯或刹车灯误认为交通锥或交通标识。
图 2 - 采用专门针对应用定制的二级算法进一步处理 FPGA 的视频分析硬件电路输出的元数据
因此,BDTI 开发的针对特定应用定制的算法可用于进一步处理赛灵思提供的元数据。例如,BDTI 的算法知道什么样的标志看上去应该是怎么样的(大小、形状、颜色、图案、在帧中的位置等),故而能够将相关的像素集群组合成更大的群组。类似的,这些算法也能判断什么时候应该去除看似颜色相近但并非标志的像素集群,比如前面提及的车辆刹车灯。
第二阶段:行人检测与跟踪
在项目的第一阶段中,摄像头处于运动状态而待识别的对象(即道路标志)处于静止状态。第二阶段主要针对安全应用,摄像头处于静止状态而对象(本例中为行人)则未必。对这种情况,视频分析算法就不能依靠预设的颜色、图案或其它对象特征,因为行人可以穿着各种衣物,可以高矮胖瘦各异,可以肤色、头发颜色和发型不同(另外还可能戴着遮挡头发的帽子、墨镜等装饰物)。软件还需要解决另一个难题,不仅需要识别和跟踪行人,还需要在行人穿越一道数字"绊网",进入视频帧的特定区域时发出警报(见图 3)。
图3:在行人检测和跟踪功能中包括一项"绊网"警报功能,当行人进入视频帧的<br />有界部分的时候就会发出警报
项目第二阶段与第一阶段采用的硬件配置完全相同,只是软件有所变化。视频流馈送到视频分析 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 产品系列的各器件
- 嵌入式视觉技术--潜力巨大,有待开发(07-20)
- 未来的使用者界面--带你走进嵌入式视觉的“前世今生”(07-20)
- 神经网络协同处理器降低视觉处理功耗(05-30)
- 嵌入式视觉系统基本概念以及传感器的选择(11-22)
- 太阳能发电技术与绿色照明(09-10)
- 一种消防应急灯具专用控制芯片的设计(11-02)