海量视频数据快速检索
2013-08-15郭斌蔡巍伟王鹏
文/郭斌 蔡巍伟 王鹏
“十一五”期间,国内安防行业一直保持着高速增长,年复合增长率超过23%。作为安防行业最重要的组成部分,视频监控行业在此期间也得到了高速的发展。随着视频监控大规模建设,积累了大量的视频资料,现有的视频监控体系和大量的视频资料,为有关部门查询破案线索、维护公众安全方面起到了巨大的作用。
根据安防“十二五”规划,“十二五”期间,“平安城市”、“科技强警建设工程”、“3111工程”等重大公共工程项目将继续加大实施力度。随着视频监控体系的快速建设和视频资料体量的高速增加,如何高效地使用海量视频数据成为视频监控行业面临的一个挑战。目前视频监控厂家众多,以及人工查看视频数据的现状来分析,在海量视频数据的使用上存在以下三个主要问题:
视频数据封装、编码格式未统一。视频监控的国标目前还在实施中,之前建设的视频监控体系中存在大量封装、编码格式不一致的视频数据,观看不同格式的数据需要不同的播放软件。
完全靠人工查看的方式和视频资料的体量相比较而言效率很低。一个平安城市的视频监控建设,少则几千路,多则上万路甚至数十万路。我们举一个例子,一个视频监控数据达到一万路的某地,因为发生某刑事案件,需要调用其中100路的24小时录像来查找线索,如果一个办案人员按正常速度看完所有视频资料需要2400小时,按4倍速看也需要600小时,如果需要提高查看速度只能使用“人海战术”增加查看视频的人员。而且,使用人工有一弊端,都是容易疲劳,注意力无法长时间集中,或者注意力集中了也容易忽略视频中的某些目标,时而需要多次查看同一视频资料来保证查证效果。
视频数据的汇总的困难。以平安城市为例,分布式存储和集中式存储在实际应用中都是并存的。对于分布式存储来说,需要对视频数据进行检索时,如果我们的检索人员不能分布式工作,要求集中式工作,那么就要求对分布的视频数据进行汇总。
同样的,以上述的100路24小时录像为例,假设这100路平均码率为2Mb/S,每一路24小时的录像文件大小约172800Mb,100路的录像都通过网络上传到集中检索所在处需要消耗的带宽为17280000Mb约等于2110GByte。如果经过普通宽带,以1Mb/S的速度传输,传输完1路24小时的录像文件需要48小时。
通过千兆网络可能达到500Mb/S的速度,但考虑到大部分存储使用普通硬盘上,硬盘的IO瓶颈使实际的传输达不到这样的速度,假设为100Mb/S,以这样的速度传输,需要30分钟左右。如果串行传输完100路,需要3000分钟。
如果不用网络传输数据,以更为原始的插拔硬盘集中的方式,则需要更多的人力、运输成本,还不考虑插拔对硬盘带来可能的损伤。
对于集中式存储则没有这个问题,但本文并非讨论分布式存储和集中式存储的优劣,不进一步展开分析。
这三个问题中,随着国标的推出,各厂家的标准化工作推进,以及部分有研发实力的高兼容性软件的实现,第一个问题可以逐步解决或者不成为问题,其它两个问题在现有框架和技术下成为海量视频数据检索的最大障碍。
我们回过头来考虑视频数据的检索本身,我们需要在视频中检索什么?绝大大部分情况下,视频画面中运动的物体才是我们关注的目标,也正是需要检索的对象。针对这一点,我们可以把视频数据分为两种:有运动目标的视频数据和静止场景视频数据。这就是提升海量视频数据检索速度的第一个方法:
有效视频数据提取
该方法的技术基石是图像分析技术中的移动侦测技术。该技术在业界已经比较成熟。移动侦测我们可以在前端设备中完成,也可以通过后端处理来执行。以24小时录像来说,闹市区场景的录像可能有1/3左右的录像是无运动目标;而郊区场景的录像可能有2/3左右的录像是无运动目标,在检索视频数据时,我们只需要观看有运动目标的视频数据即可,无论是1/3或2/3,均能显著降低所需检索视频数据的大小。
但是,在执行完视频浓缩后,似乎又陷入了人海战术的困境。如今,智能化监控大行其道,我们的智能分析算法能为视频检索带来什么呢?目前,业界推出的智能产品已经有周界防范、车牌识别、人脸识别等较成熟产品,在这些产品里面,触发周界防范规则的物体,被识别的车牌和人脸,都可作为视频检索的输入检索条件。智能算法可以集成在前端嵌入式设备中,也可以在后端设备中进行视频数据的分析。除了利用移动侦测技术外,这里提出提升海量数据检索速度的第二个方法:
基于智能视频分析算法的检索
前面提到,一段24小时的录像,人工查看即使用4倍速查看也需要6小时,而利用计算机通过智能视频分析算法进行视频的自动检索,检索的速度则取决于视频解码和分析算法的运行速度。我们以对4cif的视频数据执行周界防范算法为例,一帧视频数据解码加上算法执行的平均时间可以控制在10ms左右,也就是相当于4倍速。同样四倍速,一个是不知疲倦的计算机,一个是极易疲倦和出错的人脑。孰优孰劣,一目了然。
然而,利用计算机进行视频数据自动分析及检索,引出了海量数据快速视频检索的一大挑战,视频数据解码及智能视频分析算法将消耗大量的计算资源,计算机的性能瓶颈将严重制约海量数据的检索速度,检索效率还是无法得到有效的提升。如果我们检索对象是海量视频数据经过解码并通过智能算法分析后输出的智能源数据(Meta Data),检索速度将大大提高。这里提出提升海量数据检索速度的第三个方法,也是关键性的方法:
基于视频数据的元数据的检索
如果我们把1段24小时的录像,经过解码,智能分析,把获取到的智能元数据都存储下来,对元数据的查询速度可以达到十秒的量级。
我们来回顾一段24小时录像文件的查询速度提升过程:人工,正常速度查询,24小时;人工,四倍速查询,6小时;视频浓缩后,人工四倍速查询,3小时左右;视频浓缩后,基于智能分析算法查询,3小时左右;基于视频数据的元数据查询,十秒量级。
可以看到,最后一步才是质的提升,检索速度量级的飞跃。到此,看上去很美,真的这么美吗?基于元数据的查询存在哪些问题呢?
移动侦测算法虽然比较成熟,但对于飞虫干扰、灯光干扰、树叶抖动等问题目前还没有特别有效的解决办法;基于智能分析算法的检索,比如车牌识别、人脸识别,对视频数据的场景要求比较高,普通的治安监控视频基本无法执行这种分析。对于视频场景适应性相对较好的周界防范,行为分析算法来说,虽然能较为准确分析出目标,但是对于目标进一步的分类,比如人、物、非机动车、机动车、目标的属性特征,比如颜色、纹理、形状等,目前还是业界面临的技术难题。
虽然有上述两大难题,随着元数据的标准化,以及前端设备实时产生元数据和后处理产生元数据两种机制和产品的并存,基于元数据的检索必然会成为海量视频数据检索的主流。