1. 引言
随着软硬件技术的不断发展 [1] ,利用计算机技术实现计算机视觉功能即由计算机来代替人脑对视频中的信息进行处理和解释,开始逐渐流行起来。基于图像/视频的人数统计与分析系统就是计算机视觉的一个应用。智能视频是指以计算机视觉技术为平台,对图像/视频进行信息处理和信息分析,通过对图像自动分析得到人脸特征 [2] ,对目标进行检测、跟踪及计数,并在此结果上分析判断所关注目标的行为。基于智能化的人数统计与分析算法就是基于计算机视频处理技术的一个智能视频系统,在无人干预的情形中,对图像/视频进行一定时间内的检测与分析,从而进行精确的人数统计与分析。
钱鹤庆 [3] 采用AdaBoost分类器较好的实现了教师实验场景的人脸识别及人数统计与分析工作,主要利用了人脸区域的相关特征实现。吴冰 [4] 较好是实现侧脸识别,将整个应用提升到公共场所,其人数统计与分析的准确度也是很高的。但处理时间上,基于Harr特征和采用级联分类器结构Adaboost [5] 人脸识别算法却远远超越了其他方法,对于图像/视频的处理在保证准确度的基础上需要一个良好的人脸识别算法,而基于Adaboost分类器的人脸识别算法在准确度与实时性这两者中间有一个很好的平衡性,因此本文选取这种方法进行人脸识别 [6] 。
2. 系统方案设计及软硬件平台介绍
2.1. 系统方案设计
本设计人数统计与分析系统总体框图如图1与图2所示,主要是ZYNQ-7000平台连接一台VGA接口显示器,以C170罗技网络摄像头采集图像,并连接上鼠标和键盘等外部设备。
2.2. 硬件开发平台ZYNQ-7000
本研究设计的人数统计与分析系统采用德致伦公司的Zynq-7000开发板作为主要硬件开发平台。Zynq-7000实物图如图3。

Figure 1. Framework of people counting and analysis system
图1. 人数统计与分析系统总体框图

Figure 2. People counting and analysis system
图2. 人数统计与分析系统实物图

Figure 3. Zynq-7000 development board
图3. Zynq-7000实物图
ZYNQ AP SOC分为两个不同的子系统:处理器系统(Processing System, PS)和可编程逻辑(Programmable Logic, PL)。处理器系统(PS)包含了许多组成部分,包括应用处理单元(Application Processing Unit, APU) (包含两Cortex-A9处理器),连接微控制器总线(AMBA),DDR3记忆控制器与外围控制器,这些外围控制器连接54个输入输出口。外围控制器通过AMBA走线作为从属器件连接到处理器,包含可读可写的控制寄存器,可以在处理器的存储空间读取。可编程逻辑模块也作为从属器件连接到内部。
2.3. 交叉编译
交叉编译是指在一个平台编译出可在另一个平台运行的可执行代码,这个平台包含两个概念:体系结构(Architecture)和操作系统(Operating System)。这是因为嵌入式系统的资源往往是有限的,处理能力和存储空间通常都不富余。所以一般做法是主机端(X86体系结构)安装交叉编译器,以此编译出能够在目标平台运行的代码,当然这个可执行文件是不能在主机上运行的。
本研究采用基于ZYNQ的Linux交叉编译平台,首先建立交叉编译平台需要有个Linux的PC机,笔者在PC机安装了Ubuntu12.04,以下则以Ubuntu12.04为平台介绍建立交叉编译平台。首先需要进行Ubuntu-Linux系统与OpenCV交叉编译环境的搭建。图4是交叉编译所需OpenCV链接库。
3. Haar特征提取及AdaBoost算法原理
3.1. Haar特征提取
Haar特征是一种邻域矩形灰度差特征 [7] ,是黑色区域和白色区域的灰度值总和之差,有三类特征:4-矩形特征、3-矩形特征、2-矩形特征。基本模板如图5所示。
模板A的特征值计算公式为:
模板B的特征只计算公:
模板C的特征只计算公式为
模板D的特征只计算公式为:
。
模板C中像素的数目相等,
。
3.2. AdaBoost算法原理
AdaBoost算法就是对大量正样本进行训练,得到很多弱分类器,再串联弱分类器即可得到准确率很高的强分类器。
1) 对于训练集合
,
指第
个图像的第
个特征,
分别表示正、负样本。
2) 初始化权重
,其中
是正样本和负样本的总数。
3) 查找
个弱分类器
① 对于样本中第
个特征,可以训练出一个弱分类器
,阈值
和方向
便可得到,错误率
将会减小
(1)
而弱分类器
为
(2)
其中,
决定不等式方向,只有±1两种情况。
② 在所有弱分类器中,存在具有最小误差
的弱分类器
。
③ 对所有的样本权重值进行更新:
令
(3)
在
轮训练后可以得到
个最优的弱分类器,级联即可得到一个强分类器
(4)
若存在样本特征集合如图6,
表示正样本,
表示负样本,样本数是10,
是错误率,
是分类器权重。
做第一轮分类,如图7所示A,B,C是我们分类错的样本,并且更新
,
。
做第二轮分类,如图8所示D,E,F是我们分类错的样本,并且更新
,
。
做第三轮分类,如图9所示。G,H,I是我们分类错的样本,并且更新
,
。
级联后最优弱分类器即可得到最终强分类器:

4. 关键算法分析
4.1. 多特征融合算法
基于学习的方法首先需要准备大量的正负训练样本进行有效的前期训练,得到不同的分类器。将目标的不同特征集成特征库,形成基于特征库的特征模型后即可实现对待测目标的检测。
整个特征包括整个人脸识别的特征,人眼识别的特征,人嘴识别的特征等一系列脸部特征融合的集合。在实际检测过程中,根据检测目标的复杂程度可以自由选择可不同种类的特征库进行多特征融合,后的检测。
但由于多特征融合的局限性,实践中当人脸过小时,发现还是存在一定的错误标记和丢失标记的现象,要解决这个问题,只有不断更新特征库,提取多特征值,实现更好的多特征融合,才能有效地避免这类问题。
4.2. 人脸识别参数自适应算法
目前检测的目标对象主要是人脸识别,也可以加上人眼识别或者人嘴识别。这样可以较好地实现整体脸部的识别。在处理图像中,对不同复杂度的图像/视频,需要采取不同的人脸识别扫描速度:对于人数较少的情况下,可以采取快速人脸识别扫描;当人较多时,则采取适时降低人脸识别扫描速度已达到准确率的保证。因此系统采取人脸识别参数自适应算法:即系统根据处理前一帧图像中人数统计与分析的结果,确定人数后,及时更新系统与之对应的人脸识别参数,在后一帧图像中,人脸识别时则采取匹配度较高的人脸识别扫描参数。这样可以保证系统目标检测的快速性和准确性。
人脸识别参数自适应算法,可以很好的解决系统实时性的要求,在人数较多时也保证了系统对人数统计与分析的高准确率的要求。但前期人脸识别扫描参数的设定和实现会比较复杂,需要大量样本实验。
5. 实验与结果
实验首先从图像中开始验证该系统人脸识别的准确率并进行相应的算法改进。之后将改进的系统应用于实时视频的人数统计与分析。
5.1. 图像中人数统计与分析结果
1) 侧脸识别:初次人脸识别中会发现当人脸区域属于侧脸,基本无法实现人脸识别,接着通过多特征融合算法中引入人眼识别特征,可以很好的实现所有目标的人脸识别,如图10所示。
2) 错误标记:在人脸识别中,出现类似人脸的标识或者目标人脸区域过小,会出现错误标记的现象,可以根据多特征融合算法中引入人嘴识别特征和人脸识别参数自适应算法实时更新人脸识别扫描速度,可以较好处理错误标记的情况,如图11所示。
3) 密集人数:在出现密集人数时,根据人脸识别参数自适应算法,可以很好的实现密集人数的人脸识别。图12是密集人数人脸识别结果。
5.2. 视频中人数统计与分析结果
视频中实现了人脸识别的实时性功能。实时跟踪目标进行人脸识别与跟踪。本视频一共有79帧图像,所以视频处理中对每帧图像都实现了人脸识别与跟踪。图13为部分人脸识别与追踪帧图像集合。图(a)是第14帧图像;图(b)是第22帧图像;图(c)是第36帧图像;图(d)是第47帧图像;图(d)是第55帧图像;图(e)是第63帧图像;图(f)是第74帧图像。
根据表1测试结果,该系统进行不同人数情况下的实验,计数精度达到97%以上。但当人步行速度过快时,会出现漏检的现象。或者人数过于密集时,以致人脸区域非常小,这对于整个人脸识别难度太大,就会出现丢失人脸的现象。另外若出现人脸遮挡的现象,也是无法进行准确人脸识别的。这些问题将在以后工作中继续研究。
表1. 人数统计与分析结果
6. 结论
为了能够在嵌入式平台上进行人数统计与分析,本文采用调用AdaBoost分类器进行人脸识别从而实现人数统计的方法。提出并实现了结合多特征融合算法和人脸识别参数自适应算法进行多目标的人脸识别与跟踪,进而统计出实时人数。由于该系统安装位置灵活,可最大限度地减少由于遮挡等问题造成的统计误差。实验结果证明:本嵌入式系统平台能在获取地指定区域的图像/视频中实现人数统计与分析,且准确率高达97%以上,有效地降低了误判和漏判。未来研究的方向可以在自主训练分类器和实时性方面做进一步的完善。
基金项目
国家自然科学基金(No.61301029)。
*通讯作者。