论文部分内容阅读
大规模智能视频分析已经成为视频监控的迫切需求,但是具体实现面临两个问题:首先是智能算法的准确性。准确高效的算法可以减少误报、错误率,真正发挥智能监控的效果;其次是分析平台的构建。在进行大规模视频分析时如何解决所需要的计算能力、IO等问题。本文着眼于后者,通过基于流式的方式探讨如何解决大规模监控视频实时分析面临的计算和IO等问题。我们设计并实现一种基于流式计算的大规模监控视频分析系统。该系统的设计与实现主要关注三个关键的问题:1)避免IO的瓶颈。相比日志文件的小文件,监控视频流的数据量大,因此首要解决如何将大规模的监控流导入到分析平台;2)如何为大规模监控视频分析组织所需要的计算能力。智能视频分析算法都是计算密集型工作,需要消耗大量的计算资源;3)实现计算可扩展性来满足用户对视频分析规模的需求变化,需要探究计算可扩展性。我们的方案是基于SPARK分析平台,融合了流式计算技术、内存计算技术,通过优化SPARK使之适合大规模视频智能分析应用,并开发了一个原型系统验证了我们的想法。概况起来,主要完成的工作如下:第一,在大规模视频流汇聚导入到分析平台时,采用基于计算能力感知的接收器位置分配策略。该策略能够依据计算节点的能力将视频流导入的IO分散在不同的计算节点之上,解决IO分布的问题。第二,在实现视频流数据的实时性处理时,采用基于数据本地性的实时任务调度策略,将改进的实时任务调度算法应用在数据的快速处理上,解决延时调度策略产生的数据等待处理的长延时问题。在数据访问上,基于内存计算技术有效降低IO访问时间,提高大规模视频处理效率,有效转化监控视频流的实时价值。第三,在计算扩展性方面,实现了1)自适应的任务计算。通过基于优先级的丢帧策略来保证系统的稳定运行;2)系统的水平可扩展性。通过动态的添加机器来增加系统的计算能力。初步的研究成果表明基于流式计算的大规模监控视频分析能够使得大型视频联网智能监控系统工作,达到对大规模监控视频进行实时智能分析的效果。