嵌入式视觉设计要创新,选择FPGA成关键
因此,BDTI 开发的针对特定应用定制的算法可用于进一步处理赛灵思提供的元数据。例如,BDTI 的算法知道什么样的标志看上去应该是怎么样的(大小、形状、颜色、图案、在帧中的位置等),故而能够将相关的像素集群组合成更大的群组。类似的,这些算法也能判断什么时候应该去除看似颜色相近但并非标志的像素集群,比如前面提及的车辆刹车灯。
本文引用地址:https://www.eepw.com.cn/article/221572.htm第二阶段:行人检测与跟踪
在项目的第一阶段中,摄像头处于运动状态而待识别的对象(即道路标志)处于静止状态。第二阶段主要针对安全应用,摄像头处于静止状态而对象(本例中为行人)则未必。对这种情况,视频分析算法就不能依靠预设的颜色、图案或其它对象特征,因为行人可以穿着各种衣物,可以高矮胖瘦各异,可以肤色、头发颜色和发型不同(另外还可能戴着遮挡头发的帽子、墨镜等装饰物)。软件还需要解决另一个难题,不仅需要识别和跟踪行人,还需要在行人穿越一道数字“绊网”,进入视频帧的特定区域时发出警报(见图 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 能够成为实现嵌入式视觉算法极富吸引力的芯片平台。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论