发明内容
有鉴于此,本发明提供一种可适用多角度应用场景的人流量统计的方法及系统,以解决现有人流量统计方案统计不全面的问题。
为此,本发明实施例采用如下技术方案:
一种可适用多角度应用场景的人流量统计的方法,包括:对图像中的检测区域进行场景标定,从而将检测区域划分为若干个子区域;在所述子区域内,采用分类器对当前图像进行人头检测,确定当前图像中的各人头;对确定出的各人头进行跟踪,形成人头目标运动轨迹;根据人头目标运动轨迹方向进行人流量计数。
所述对图像中的检测区域进行场景标定包括:选择标定框;计算场景深度变化系数;计算检测区域内人头目标尺寸变化范围;根据人头目标尺寸变化范围将检测区域划分为若干个子区域。
在采用分类器对当前图像进行人头检测之后、确定当前图像中的各人头之前,还包括:对分类器检查到的人头进行边缘特征细筛选处理。
所述对分类器检查到的人头进行边缘特征细筛选处理包括:计算所述分类器判断为人头目标的矩形内边缘特征与预置的上半椭圆弧的拟合度,如果拟合度大于阈值,则将该矩形确定为人头,否则将该矩形从目标列表中去除。
在形成人头目标运动轨迹之后、根据人头目标运动轨迹方向进行人流量计数之前,还包括:对人头目标运动轨迹进行平滑度分析。
所述对人头目标运动轨迹进行平滑度分析包括:确定人头目标运动轨迹的平滑度,判断所述平滑度是否满足阈值,若是,保留该人头目标运动轨迹,否则,丢弃该人头目标运动轨迹。
所述分类器为并联的多类分类器。
所述采用分类器对图像进行人头检测包括:设置各类分类器的检测顺序,按照检测顺序依次采用各个分类器对当前图像进行人头检查,直到确定出人头,其中,所述并联的多类分类器由至少两类分类器并联而成。
所述并联的多类分类器由深色头发通用分类器、浅色头发分类器、帽子分类器和扩展分类器中的任意两种或多种并联而成。
一种可适用多角度应用场景的人流量统计的系统,包括:场景标定模块,用于对图像中的检测区域进行场景标定,从而将检测区域划分为若干个子区域;人头检测模块,用于在所述子区域内,采用分类器对当前图像进行人头检测,确定当前图像中的各人头;人头目标跟踪模块,用于对确定出的各人头进行跟踪,形成人头目标运动轨迹;人流量计数模块,用于在人头目标运动轨迹方向进行人流量计数。
所述人头检测模块还包括细筛选子模块,用于对分类器检测到的人头进行边缘特征细筛选处理。
还包括:人头目标运动轨迹分析模块,用于计算人头目标运动轨迹的平滑度,判断所述平滑度是否满足阈值,若是,保留该人头目标运动轨迹,否则,丢弃该人头目标运动轨迹。
所述分类器为并联的多类分类器;所述人头检查模块包括粗检测子模块,用于设置各类分类器的检测顺序,按照检测顺序依次采用各个分类器对当前图像进行人头检测,直到确定出人头,其中,所述并联的多类分类器由至少两类分类器并联而成。
所述人头检测模块中的所述并联的多类分类器由深色头发通用分类器、浅色头发分类器、帽子分类器和扩展分类器中的任意两种或多种并联而成。
可见,本发明在检测前通过场景标定自动选择检测窗口的尺寸,使本发明能自适应各种摄像机角度,拓宽了应用范围,保证人头统计更加全面和准确。进一步,本发明将多个分类器并联使用,能同时检测深色头发、浅色头发以及各种颜色帽子等多类人头目标,确保统计更加全面。进一步,本发明还设置了一个扩展分类器,可以根据特殊环境的应用,采集样本训练,检测指定颜色或帽子的人头,比如工厂或仓库的工作帽等。进一步,在多个并联的分类器作为人头粗检测的基础上,再利用边缘特征对粗检测结果进行细筛选,最后得到真正的人头目标,使得检测更加准确。并且,通过对人头目标轨迹的平滑度分析可以去除虚假目标,可进一步提高检测准确率。
具体实施方式
本发明提出一种可适用多角度应用场景的人流量统计的方法,请参见图1,为本发明一实施例流程图,包括:
S100:对图像中的检测区域进行场景标定,从而将检测区域划分为若干个子区域;
S101:在所述子区域内,采用分类器对当前图像进行人头检测,确定当前图像中的各人头;
S102:对确定出的各人头进行跟踪,形成人头目标运动轨迹;
S103:根据人头目标运动轨迹方向进行人流量计数。
其中,对图像中的检测区域进行场景标定包括:选择标定框;计算场景深度变化系数;计算检测区域内人头目标尺寸变化范围;根据人头目标尺寸变化范围将检测区域划分为若干个子区域。
可见,本发明在检测前通过场景标定自动选择检测窗口的尺寸,使本发明能自适应各种摄像机角度,拓宽了应用范围,使人头统计更加全面和准确。
为了进一步提高人流量统计的准确性,在图1所示的方案基础上,可进一步进行优化,包括,采用并联的多类分类器进行粗检测、对并联分类器粗检测的人头进行边缘特征细筛选,以及对人头目标运动轨迹进行平滑度分析等,请参见图2,为本发明另一实施例流程图,包括:
S201:场景标定;
具体地,场景标定是指对图像中的检测区域进行场景标定,从而将检测区域划分为若干个子区域。
S202:人头检测;
人头检测进一步包括并联分类器粗检测以及边缘特征细筛选两个步骤,从而确定当前图像中的各人头。
S203:人头目标跟踪;
通过对确定出的各人头进行跟踪,形成人头目标运动轨迹。
S204:对人头目标运动轨迹进行平滑度分析;
具体地,对人头目标运动轨迹进行平滑度分析包括:确定人头目标运动轨迹的平滑度,判断所述平滑度是否满足阈值,若是,保留该人头目标运动轨迹,否则,丢弃该人头目标运动轨迹。
S205:人流量统计:通过人头目标运动轨迹方向对人流量进行计数。
需要说明的是,上述场景标定、对并联分类器粗检测的人头进行边缘特征细筛选,以及对人头目标运动轨迹进行分析的改进点可结合应用,也可单独使用。
下面对包含所有改进点的本发明最优实施例进行详细分析。
1、场景标定
由于用于人流量统计的摄像机一般都是固定安装的,场景变化性较小,因此场景标定模块只需要在第一帧检测人头目标前启用,之后各帧检测人头时均采用第一帧标定的结果即可。如果场景发生变化,则需要再次启用场景标定。
在摄像机无旋转的情况下,场景的深度变化可以近似为沿图像y坐标成线性变化,即:
w(x,y)=f×y+c(1)
其中,w(x,y)表示中心图像坐标为(x,y)的人头目标外接矩形的宽度,f为场景深度系数,c为常数。场景标定的目的就是通过标定框确定f和c的值,从而通过式(1)求出图像中任意坐标处人头目标外接矩形的尺寸。
本发明通过选择4~6个标定框计算式(1)中的两个未知量f和c,从而得到场景的深度变化系数,然后将检测区域外接矩形的上边缘和下边缘坐标代入式(1)中,得到检测区域内最小人头尺寸wmin和最大人头尺寸wmax,最后,根据人头尺寸变化范围将检测区域分为若干个子区域,每个子区域对应一个变化较小的人头尺寸范围,在接下来的人头检测模块中,每个子区域用不同尺寸窗口搜索候选矩形。
场景标定步骤框图如图3所示,包括:
S301:选择标定框;
S302:计算场景深度变化系数;
S303:计算检测区域内人头目标尺寸变化范围;
S304:根据人头目标尺寸变化范围将检测区域划分为若干个子区域。
至此,场景标定结束。接下来开始在每一帧图像中进行人头的检测、跟踪和计数。
2、人头检测
本发明中的人头检测分为并联分类器粗检测和边缘特征细筛选两个环节。
并联分类器粗检测环节中通过预先训练好的分类器将大部分非人头目标排除,剩下人头目标和部分误检为人头目标的非人头目标,然后再通过边缘特征细筛选环节去除大部分误检,保留真实人头目标。人头检测模块结构框图如图4所示。
本发明采用haar特征基于Adaboost算法分别训练包含正面人头和背面人头的深色头发通用分类器、深色头发正面分支分类器、深色头发背面分支分类器、浅色头发分类器、帽子分类器以及为适应特定环境专门设置的扩展分类器等多个分类器。多个分类器的组合方式如图4粗检测环节所示:深色头发通用分类器与正面分支分类器、背面分支分类器组合成树形结构,然后与浅色头发分类器、帽子分类器以及扩展分类器形成并联,分类器检测结果进入人头边缘细筛选环节,最后得到真实的人头目标。
2.1、并联分类器粗检测环节
训练器需要预先用大量正样本和负样本进行训练,本发明采用人脸检测中使用的haar特征加Adaboost算法训练识别器。
Haar特征由两个或三个不同尺寸的矩形构成。通过改变矩形的尺寸、组合方式和角度可以描述特定目标的形状和灰度信息。Adaboost算法是一种能将若干弱分类器组合成强分类器的方法。每一个弱分类器选择一个或几个haar特征来对样本进行分类,若干个弱分类器通过Adaboost算法组合成一级强分类器。本发明中所述的各类分类器,均由若干级强分类器级联而成。
本发明在检测区域内,根据场景标定模块得到的人头目标尺寸,采用穷举的方式搜索人头目标候选矩形。将候选矩形分别输入到深色头发通用分类器、浅色头发分类器、帽子分类器以及扩展分类器中进行分类,如果被分类为人头,则该候选矩形被检测为人头目标输出,继续判断下一个候选矩形,否则,将选候选矩形丢弃,继续判断下一个候选矩形。
在上述过程中,一个候选矩形被分类器分类为人头目标需要逐级通过级联分类器的各级强分类器,否则被分类为非人头目标,其过程示意图如图5所示。
另外,上述分类器检测过程中,优先选择的分类器可以根据实际应用调整。一般的应用场景中深色头发的概率最大,因此优先选择深色头发分类器检测,在特定场景,比如检测仓库门口,可优先选择工作帽样本训练得到的扩展分类器检测,以加快检测速度。
2.2、边缘特征细筛选环节
通过并联分类器粗检测环节,大部分非人头矩形被排除了,只留下真实人头矩形和被分类器误检为人头的矩形。边缘特征细筛选环节则能通过提取矩形内的边缘特征去除大部分误检矩形,保留真实人头目标。
本发明采用椭圆上半圆弧作为人头模型,边缘特征细筛选就是计算被分类器判断为人头目标的矩形内边缘特征与椭圆上半圆弧的拟合度。如果拟合度大于判断阈值,则该矩形为真实人头矩形,否则为误检人头矩形,将该矩形从目标列表中去除。
3、人头跟踪
人头目标检测出来后需要进行跟踪,形成目标运动轨迹,以避免同一个目标重复计数。本发明的目标跟踪模块采用粒子滤波算法对人头目标进行跟踪。
粒子滤波跟踪的流程如图6所示,具体过程如下:
步骤601:粒子初始化;
当新检测到的人头目标没有已有的粒子对应时,则新生成一个粒子跟踪器,并用新检测到的目标初始化跟踪器中各个粒子的位置和尺寸,并赋给各粒子相等的权重值。
步骤602:粒子重采样;
在跟踪过程中,粒子经过几次权重更新后会出现“退化现象”,即接近真实人头矩形的少数粒子的权重会变得较大,而远离人头矩形的大部分粒子的权重变得很小,大量的计算会浪费在这些权重很小的粒子上。为了解决“退化现象”,每次粒子权重更新后应该对粒子进行重采样。
粒子重采样就是保留和复制权重较大的粒子,剔除权重较小的粒子,使原来带权重的粒子映射为等权重的粒子继续预测跟踪。跟踪器新生成时,跟踪器中各粒子的权重相等,因此,不需要在再进行重采样。
步骤603:粒子的传播;
粒子的传播,也即粒子的状态转移,是指粒子的状态随时间的更新过程。本发明中,粒子的状态是指粒子所代表的目标矩形的位置和尺寸。粒子的传播采用一种随机运动过程实现,即粒子的当前状态由上一个状态加上一个随机量得到。这样,当前的每一个粒子都代表着人头目标在当前帧中的一个可能位置和尺寸。
步骤604:根据观测值更新粒子权重;
粒子通过传播方式只是得到了人头目标在当前帧中的可能位置和尺寸,还需要利用当前图像的观测值来确定哪些粒子最有可能是人头矩形。本发明中提取粒子对应图像矩形的haar特征和边缘特征作为观测值更新粒子的权重。粒子的观测值与真实人头越接近,则该粒子对应的矩形越可能是人头矩形,粒子的权重增大;否则,粒子的权重减小。
步骤605:更新目标运动轨迹;
将粒子按权重大小排序,取出权重最大的粒子,计算权重最大的粒子对应的矩形与检测得到的所有人头目标矩形的重叠面积,重叠面积最大,且大于设定阈值的人头目标即是该粒子所在跟踪器代表的人头目标在当前帧中对应的人头,则用该人头目标的位置更新跟踪器的目标运动轨迹,并用该人头目标代替权重最大的粒子,进入下一帧跟踪;如果权重最大的粒子与当前帧中检测出来的所有人头目标均不重叠或重叠面积小于阈值,则认为该粒子所在跟踪器代表的人头目标在当前帧中没有找到对应的人头,则用该粒子的位置更新跟踪器的目标运动轨迹,并进入下一帧跟踪。如果权重最大的粒子连续N(N>2)帧找不到对应人头目标,则说明该粒子所在的跟踪器代表的人头目标以及消失,剔除该跟踪器。
经过上述五个步骤,帧与帧之间的人头目标便关联起来形成了人头目标的运动轨迹。
4、轨迹平滑度分析模块
一般来说,真实人头目标的运动比较平滑,而误检目标则可能会呈现出杂乱的运动,因此,本发明通过对目标运动轨迹的平滑度分析去除误检,进一步提高检测准确性。
对跟踪模块生成的目标运动轨迹进行分析,计算目标轨迹的平滑系数,如果平滑系数大于设定的平滑阈值,则保留该轨迹;否则,剔除该轨迹。轨迹平滑度分析模块流程如图7所示,包括:
S701:获取目标运动轨迹;
S702:确定人头目标运动轨迹的平滑度;
S703:判断平滑度是否满足预置的平滑度阈值要求,若是,执行S704,否则,执行S705;
S704:保留该目标运动轨迹;
S705:丢弃该目标运动轨迹;
S706:输出目标运动轨迹。
5、人流量计数模块
本发明通过人头目标运动轨迹方向对人流量进行计数。本发明在检测区域内判断该目标轨迹的方向与设定的“人流进入”方向是否一致,如果一致,则“进入人数”计数加一,否则“离开人数”计数加一。计数完成后将该目标标记为“已计数”,使轨迹处于无效状态,避免同一个目标重复计数。
至此,通过场景标定、人头检测、人头目标跟踪、人头目标运动轨迹分析和人流量统计这五大步骤,即完成了对人流量的全面、准确统计。
与上述方法相对应,本发明还提供一种人流量统计的系统,该系统可通过软件、硬件或软硬件结合实现。
参考图8,该系统包括:
人头检测模块801,用于采用分类器对当前图像进行人头检测,确定当前图像中的各人头;
人头目标跟踪模块802,用于对人头检测模块801确定出的各人头进行跟踪,形成人头目标运动轨迹;
人流量计数模块803,用于在人头目标跟踪模块802确定的人头目标运动轨迹方向进行人流量计数;
特别地,本发明系统还包括:
场景标定模块804,用于对图像中的检测区域进行场景标定,从而将检测区域划分为若干个子区域。其中,场景标定模块804的目的是获得场景的深度系数,根据场景深度系数可以计算出图像中各个位置的人头目标的大小,为人头目标检测模块提供检测尺寸。此时,人头检测模块801根据场景标定模块804提供的尺寸,在指定的若干个子区域内搜索人头目标。
其中,优选地,人头检测模块采用的分类器为并联的多类分类器。
人头检测模块801包括粗检测子模块,用于设置各类分类器的检测顺序,按照检测顺序依次采用各个分类器对当前图像进行人头检测,直到确定出人头,其中,所述并联的多类分类器由至少两类分类器并联而成。人头检测模块801中的所述并联的多类分类器由深色头发通用分类器、浅色头发分类器、帽子分类器和扩展分类器中的任意两种或多种并联而成。优选地,该人头检测模块801还包括细筛选子模块,用于对并联的多类分类器检测到的人头进行边缘特征细筛选处理。
优选地,该系统还包括:
人头目标运动轨迹分析模块805,用于计算人头目标运动轨迹的平滑度,判断所述平滑度是否满足阈值,若是,保留该人头目标运动轨迹,否则,丢弃该人头目标运动轨迹。此时,人流量计数模块803是在人头目标运动轨迹分析模块805的基础上,根据运动轨迹方向的人头进行统计的。
上述系统的具体实现请参见方法实施例,不作赘述。
可见,本发明在检测前通过场景标定自动选择检测窗口的尺寸,使本发明能自适应各种摄像机角度,拓宽了应用范围。并且,本发明采用haar特征基于Adaboost算法训练多个并联的分类器作为人头粗检测,再利用边缘特征对粗检测结果进行细筛选,最后得到真正的人头目标。本发明中将多个分类器并联使用,能同时检测深色头发、浅色头发以及各种颜色帽子等多类人头目标,本发明还设置了一个扩展分类器,可以根据特殊环境的应用,采集样本训练,检测指定颜色或帽子的人头,比如工厂或仓库的工作帽等。并且,通过对人头目标轨迹的平滑度分析可以去除虚假目标,可提高检测准确率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。