转自海水和火焰的博客
偶然看到,感觉挺厉害的,分享给大家,学习学习。
——《高密度环境下行人检测与统计》(续)
注:图中为行人检测与跟踪界面。该系统实现了并行架构下的大视场高密度行人检测与跟踪。
距离2010年《高密度环境下行人检测与统计》的工作已经过去了6年。在这6年里,计算机视觉领域新的理论算法层出不穷,各类性能强大的异构计算平台更新换代。在二者不断增强的催化作用下,越来越多的计算机视觉应用出现在手持设备以及各类嵌入式设备中。《高密度环境下行人检测与统计》中的方法也已在嵌入式平台上得以验证。
计算机视觉技术的进步远远赶不上人们日益增长的需求。本文描述的工作是《高密度环境下行人检测与统计》工作的延续。
新版的行人检测与跟踪系统主要针对以下新的需求:
1) 更丰富的信息
随着视频应用需求的不断多样化,如行人的异常行为分析、顾客的行为习惯统计,都需要获取行人在整个场景内长期的轨迹数据。这就需要系统具备全画面的行人检测和跟踪能力。上一版中,为了减少行人检测跟踪的计算量以达到实时性,采用了取巧的方法,只对带状区域内的行人进行检测和短期跟踪,而新的系统必须具备高密度人群实时检测和长期跟踪的能力。
2) 更多的行人
随着摄像机视场的扩展,视频分辨率的提高,场景中的目标行人数量更多。这将导致视频分析中,行人检测和跟踪的计算量大大增加。新的系统想要实时运行,必须依托高效的并行体系,同时寻找更快速更高效的检测跟踪算法及实现。
3) 更大的视场
随着高清网络摄像机的普及,特别是鱼眼、广角高清IP摄像机的应用,使得180°视角、360°视角的超大视场观测、网络高压缩率码流的视频传输逐渐成为标配。这使得视频图像的高速畸变矫正和视频解码接口成为新的行人检测与跟踪系统必须考虑的问题。
为了满足上述需求,新版系统软件对核心算法体系进行了改造,融入了多核并行架构。
主要的创新工作有两点:
1) 基于并行级联增强分类器的高密度行人头部辨识(Parallel Adaptive Boosted Filters)
Boost分类器家族毋庸置疑,仍是当前最高效的分类器之一。新版系统仍然延续了前一版的分类器算法,不同的是代之以并行的Boost分类算法。新版系统的检测器能力如下:
—辨识能力:可识别小至10*10像素,不同形态和朝向的行人;
—处理速度:优化并行后,处理高密度场景耗时可达30毫秒/帧;
—学习能力:增加样本,迭代学习,可持续增强辨识能力。
2) 基于并行核密度相关滤波的高密度行人跟踪 (Parallel Kernerlized Correlation Filters)
视频中的目标跟踪是计算机视觉最活跃的领域之一,核密度相关滤波KCF无疑是近两年最具有竞争力的视频跟踪算法。新版系统用KCF群替代了之前《OpenCV 视频监控(Video Surveilance)的算法体系 》中介绍的基于Kalman滤波器群的多目标跟踪体系,并将其并行化。极大的提高了高密度环境下多目标跟踪的准确性和效率。新版系统的跟踪器能力如下:
—多目标能力:30+行人的并行多目标机动跟踪框架;
—跟踪能力:在行人部分遮挡,形态、姿态、朝向随机变化下稳定跟踪;
—处理速度:并行优化后,10+行人同时跟踪,耗时可达15毫秒/帧
软件系统的结构组成方式,如下图:
1)高密度行人检测跟踪软件
基于Qt5和OpenCV3开发。QT5 community提供界面交互支持,OpenCV3提供图像处理基础算法支持。OpenCV3采用BSD协议,基于OpenCV开发的软件可以闭源商业化。QT5 community采用GPLv2和GPLv3,软件采用动态库的方式调用,因此也可商业化。二者都支持跨平台运行,因此未来软件可以运行于Windows和Linux。
2)摄像机视频采集软件
On
系统将鱼眼摄像机的畸变矫正内嵌于该视频采集软件,效果如上图。
视频采集软件与检测跟踪软件独立设计,而不是整合成一个软件,采用IPC进程间通信的方式传输视频数据,出于两个考虑:
A) 视频采集软件分离后,有利于未来适配不同的摄像机。
B) ODM是采用GPLv2协议的开源软件,基于ODM开发的软件必须开源。如果与检测跟踪软件整合设计,不利于软件的商业化。
实验结果展示
下面是一组小学室内体育馆的场景
从上面这一组给出的检测效果可以看出,在距离适中的场景,检测率高(如几个出入门口的场景,大于90%)。观测距离较远的场景(如几个学生跳舞的场景),由于部分行人头部尺寸小于当前分类器支持的最小尺寸,所以检测率有所降低(约80%)。该问题可通过迭代训练改进和优化分类器解决。