Xilinx FPGA助力智能化人群监控系统

作者:Kenshin

随着经济的不断发展,各种高楼大厦林立而起,同时这些建筑里的人流量也在不断增长,尤其一些大型商业娱乐场所,超市,银行,地铁以及一些召开大型会议场所等人群密集区域,单纯的靠人工来监控这些区域,无疑显得捉襟见肘,如果出现人工疏忽就会导致严重的公共安全事故,危害人身安全。因此需要开发一种智能化的人群监测系统,帮助人们准确及时的对人群中不正常的活动作出判断和预防。

目前很多国家政府和安全部门都开始探索更加智能的人群监控方式,以预防悲剧的发生。但是要实现这个目标仍然面临很多障碍,仅仅靠传统的人工方式肯定是行不通的。唯一的解决方案是开发一套智能化的视觉系统,能够自动监控人群的活动,并且通过视频分析技术识别有潜在危害的行为并通知控制中心。

图1 人群监控识别

图1 人群监控识别

要设计这样一个智能化的机器视觉系统不仅需要高级的图像传感器和光学系统,还需要高性能的视频处理器来完成视频的分析。需求更加强大的视频处理器的原因是复杂的视频分析技术,它们大部分采用计算密集型的视频处理算法。

FPGA是非常符合此类应用需求的处理器芯片,目前Xilinx推出了HLS工具和UltraFast设计方法,可以让开发人员使用FPGA设计更加优化和高性能的应用。我们也可以在FPGA内部实现嵌入式处理器,例如Xilinx MicroBlaze,这就意味着一些需要复杂控制流程的应用可以移植到FPGA上来实现。

Xilinx提供了一个人群行为监控和分类系统的参考设计,设计架构为软核实现系统控制,视频图像分析算法采用硬件加速。FPGA型号采用低成本的Spartan-6 LX45,这个设计从提出到完成并没用花费很长的时间,却展现出期望的实时动态监控性能,具备低成本,高度灵活可扩展的特点。

图2 FPGA内部架构设计

图2 FPGA内部架构设计

人群行为分类算法的实现需要通过视频帧队列函数API接口获取视频帧图像,当获取一帧图像后,应用程序会将当前和图像帧数据和前一帧图像数据传递给硬件加速器,完成行为矢量分析计算,然后软件部分计算行为矢量的统计数据并得出分类结果,在软件部分实现这些步骤的原因是这些都不涉及像素级别的图像处理,不会增加处理器性能开销,当得出分类结果得出后,可以调用屏显函数接口显示计算结果和模拟的行为矢量模型,屏显函数接口采用C/C++语言在Xilinx SDK工具中实现。

FPGA相当于视觉系统的大脑,脑力越发达所能胜任的任务就越多,而人群的行为监控及行为类别判断采用的图像处理算法需要大量的密集型计算处理,FPGA并行处理,硬件加速,设计灵活的特性,使其成为高性能需求领域的不二选择。

声明:本文为原创文章,转载需注明作者、出处及原文链接,谢谢!