发明内容
有鉴于此,本发明提供了一种基于视频监控的人数检测系统、以及一种基于视频监控的人数检测方法,能够实时统计视频监控场景中的人数。
本发明提供的一种基于视频监控的人数检测系统,依次接收视频监控摄像头输出的每一帧图像,该系统包括:
数据库,用于存储前一帧图像中的各运动区域及其对应的人数和位置;
运动检测模块,用于对当前图像进行运动检测,得到当前图像中的各运动区域;
区域分析模块,用于对当前图像中的各运动区域进行分析,得到当前图像中各运动区域所对应的人数和位置;
区域跟踪模块,用于根据当前图像中各运动区域的位置、以及前一帧图像中各运动区域的位置,将当前图像中的各运动区域与存储的前一帧图像中各运动区域进行匹配;根据匹配结果判断当前图像中是否存在同一个运动区域与前一帧图像中多于一个运动区域匹配,如果是,则将当前图像中的该运动区域所对应的人数替换为前一帧图像中与其匹配的多于一个运动区域所对应的人数总和,然后将当前图像中各运动区域及其对应的人数和位置更新至所述数据库、并提供给人数统计模块;否则,直接将当前图像中各运动区域及其对应的人数和位置更新至所述数据库、并提供给人数统计模块;
人数统计模块,用于计算当前图像中的各运动区域对应的人数总和,得到当前图像中的总人数;
其中,所述区域分析模块包括:单人区域识别子模块,用于分别识别当前图像中的各运动区域所包含的单人区域;单人区域统计子模块,用于分别统计当前图像中各运动区域所包含的单人区域数量,得到当前图像中的各运动区域所对应的人数。
该系统进一步包括:区域滤波模块;
所述运动检测模块检测出的当前图像中的各运动区域,经所述区域滤波模块进行形态学滤波后输出至所述区域分析模块。
所述区域跟踪模块包括:
区域匹配子模块,用于根据当前图像中各运动区域的位置、以及前一帧图像中各运动区域的位置,分别计算当前图像中的各运动区域与前一帧图像中各运动区域的重叠比例,并将重叠比例大于预设阈值的运动区域确定为匹配的运动区域;
人数调整子模块,用于根据匹配结果判断当前图像中是否存在同一个运动区域与前一帧图像中多于一个运动区域匹配,如果是,则将当前图像中的该运动区域所对应的人数替换为前一帧图像中与其匹配的多于一个运动区域所对应的人数总和,然后触发数据库更新子模块;否则,直接触发数据库更新子模块;
数据库更新子模块,用于将当前图像中各运动区域及其对应的人数和位置更新至所述数据库、并提供给人数统计模块。
所述区域跟踪模块进一步包括:
历史记录子模块,用于保存各运动区域的历史人数序列,每一运动区域的历史人数序列中包含该运动区域在前P帧图像中对应的人数,P为大于1的正整数;
所述人数调整子模块进一步用于根据各运动区域的历史人数序列调整当前图像中各运动区域对应的人数。
本发明提供的一种基于视频监控的人数检测方法,依次接收视频监控摄像头输入的每一帧图像,该方法包括:
对当前图像进行运动检测,得到当前图像中的各运动区域;
对当前图像中的各运动区域进行分析,得到当前图像中各运动区域所对应的人数;
根据当前图像中各运动区域的位置、以及预先保存的前一帧图像中各运动区域的位置,将当前图像中的各运动区域与前一帧图像中各运动区域进行匹配;
根据匹配结果判断当前图像中是否存在同一个运动区域与前一帧图像中多于一个运动区域匹配;
如果是,则将当前图像中的该运动区域所对应的人数替换为前一帧图像中与其匹配的多于一个运动区域所对应的人数总和,然后保存当前图像中各运动区域及其对应的人数和位置,并计算当前图像中的各运动区域对应的人数总和,得到当前图像中的总人数;
否则,直接保存当前图像中的各运动区域及其对应的人数和位置,并计算当前图像中的各运动区域对应的人数总和,得到当前图像中的总人数;
其中,所述对当前图像中的各运动区域进行分析,得到当前图像中各运动区域所对应的人数包括:识别当前图像中的各运动区域所包含的单人区域;统计当前图像中各运动区域所包含的单人区域数量,得到当前图像中的各运动区域所分别对应的人数。
所述对当前图像中的各运动区域进行分析之前,该方法进一步包括:对当前图像中的各运动区域进行形态学滤波。
所述根据当前图像中各运动区域的位置、以及保存的前一帧图像中各运动区域的位置,将当前图像中的各运动区域与前一帧图像中各运动区域进行匹配包括:
根据当前图像中各运动区域的位置、以及前一帧图像中各运动区域的位置,分别计算当前图像中的各运动区域与前一帧图像中各运动区域的重叠比例;
将重叠比例大于预设阈值的运动区域确定为匹配的运动区域。
所述保存当前图像中的各运动区域及其位置和对应的人数之前,该方法进一步包括:
根据之前保存的各运动区域的历史人数序列调整当前图像中各运动区域对应的人数;
其中,每一运动区域的历史人数序列中包含该运动区域在前P帧图像中对应的人数,P为大于1的正整数。
由上述技术方案可见,本发明基于视频监控摄像头拍摄的图像,能够实时统计视频监控场景中的人数,而且,在针对每一帧图像统计人数时,还能够基于对前一帧图像的跟踪,减少甚至消除由于图像中出现人体遮挡现象而导致的人数误差,保证了人数检测的可靠性。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
图1为本发明实施例中基于视频监控的人数检测系统的示例性结构图。如图1所示,本实施例中的人数检测系统依次接收视频监控摄像头输出的每一帧图像,并依次将每一帧图像作为当前图像进行处理,且该系统包括:运动检测模块、形态学滤波模块、区域分析模块、数据库、区域跟踪模块、以及人数统计模块。
运动检测模块,用于利用现有运动检测技术,对当前图像进行运动检测,得到当前图像中的各运动区域。其中,本实施例中所利用的现有运动检测技术可以为背景差分法、帧间差分法、混合高斯背景差分法等
形态学滤波模块,用于对运动检测模块得到的当前图像中各运动区域进行形态学滤波处理,以去除运动区域中的空洞、去除小面积孤立区域和非连通区域、保留面积大于预设连通面积阈值的连通部分,从而保证当前图像中各运动区域的连通性。其中,所进行的形态学滤波处理可以包括现有各种运算,例如膨胀运算、腐蚀运算、开运算、关运算等。
区域分析模块,用于对经形态学滤波模块滤波后的当前图像中的各运动区域进行分析,得到当前图像中各运动区域所对应的人数和位置。实际应用中,形态学滤波模块为可选的,即运动检测模块可以直接将其得到的当前图像中各运动区域输出至区域分析模块。
数据库,用于存储前一帧图像中各运动区域及其对应的人数和该运动区域在前一帧图像中的位置。也就是说,如果当前图像为第m帧,则这里所述的前一帧图像为第m-1帧,且m为大于1的正整数;且前一帧图像中各运动区域及其对应的人数和该运动区域在前一帧图像中的位置,也是由本实施例中的人数检测系统按照与当前帧相同的方式处理得到的。当然,如果当前图像为第一帧图像,则数据库为空。
区域跟踪模块,用于根据当前图像中各运动区域的位置、以及前一帧图像中各运动区域的位置,将当前图像中的各运动区域与存储的前一帧图像中各运动区域进行匹配;根据匹配结果判断当前图像中是否存在同一个运动区域与前一帧图像中多于一个运动区域匹配,如果是,则将当前图像中的该运动区域所对应的人数替换为前一帧图像中与其匹配的多于一个运动区域匹配所对应的人数总和,然后将当前图像中各运动区域及其对应的人数和位置更新至所述数据库、并提供给人数统计模块;否则,直接将当前图像中各运动区域及其对应的人数和位置更新至所述数据库、并提供给人数统计模块。
其中,区域跟踪模块将当前图像中的各运动区域与内部存储的前一帧图像中各运动区域进行匹配,就是实现对前一帧图像中各运动区域的跟踪比较,以减少由于图像中出现人体遮挡现象而导致的人数误差,且对数据库中存储的前一帧图像中各运动区域及其位置和对应的人数进行更新,也是为了在对下一帧图像处理的过程中实现对当前图像的跟踪。
人数统计模块,用于计算区域跟踪模块提供的当前图像中的各运动区域对应的人数总和,得到当前图像中的总人数。其中,区域跟踪模块可以直接与人数统计模块相连,并向人数统计模块输出当前图像中的各运动区域对应的人数;或者,区域跟踪模块可以先执行更新数据库的操作,然后由人数统计模块主动从数据库中读取。
由上述系统可见,本实施例基于视频监控摄像头拍摄的图像,能够实时统计视频监控场景中的人数,而且,在针对每一帧图像统计人数时,还能够基于对前一帧图像的跟踪,减少甚至消除由于图像中出现人体遮挡现象而导致的人数误差,保证了人数检测的可靠性。
在将如图1所示的系统应用于对人数上限有一定要求的视频监控场景时,还可以设置一告警装置,当人数统计模块得到的总人数相比于人数上限的差值达到预设的告警阈值时,则告警装置产生告警信号,以表示该视频监控场景中不应在有人员进入。其中,该告警装置可以为一光学部件和/或一扬声器。
在如图1所示的系统中,如虚线框所示的形态学滤波模块为一可选的功能模块,即运动检测模块可以直接与区域分析模块相连。
在如图1所示的系统中,当前图像经运动检测后通常为二值化图像,而运动区域则通常表现为二值化图像中的白色区域。
基于此,考虑到每一帧图像中人的头顶点通常是可见的,因此,在本实施例中,区域分析模块可以结合运动区域的几何形状和二值化图像的垂直投影来确定存在于图像中的人的头顶,并分别依据确定的每一个头顶将图像分割为对应数量的单人区域,然后通过统计单人区域的数量估计图像中的各运动区域的人数。对于这一种具体实现方式,参见图2,区域分析模块可以包括:单人区域识别子模块和单人区域统计子模块。
单人区域识别子模块,用于识别当前图像中的各运动区域所包含的单人区域。
具体来说,单人区域识别子模块首先分别计算二值化后的各运动区域的垂直投影,找到垂直投影的所有局部极值点,并将大于预设投影阈值的局部极值点确定为人的头顶点,然后将水平方向的间距小于预设间距阈值的头顶点进行合并,得到最终的各头顶点;此后,将仅包含一个头顶点的运动区域确定为单人区域,将包含多于一个头顶点的运动区域确定为多人区域,并利用椭圆拟和方法将所有多人区域分别分割出对应数量的单人区域,从而能够识别出当前图像中的各运动区域所包含的单人区域。
其中,上述投影阈值和图像中任意位置处的人的高度有关,需要根据不同场景设置。
实际应用中可通过多种现有方式计算场景中任意位置处人的高度,比如利用事先标定的人的高度估计出场景中任意一个位置处人的高度值。具体来说,先估计出图像的灭线(Vanishing Line)l和灭点(Vanishing Point)v,然后,在图像中标定两个点b和t,根据下式估计出两点间的高度差,
其中,α的取值是预先设置的。
这样,利用上述方式计算出任意位置处的人的平均高度,将此作为上述投影阈值;此后,对于单人区域的划分,可以先设置人体的宽度和高度的比例p,然后以人体的头顶点为端点,使用一个长轴和人体的高度相同,宽长比为p的椭圆包围人体区域即可得到一个单人区域。
单人区域统计子模块,用于统计当前图像中各运动区域所包含的单人区域数量,得到当前图像中的各运动区域所对应的人数。
当然,区域分析模块并不限于上述一种实现方式,实际应用中,还可通过对各运动区域中的图像特征进行分析等其他方式来实现区域分析模块。
在如图1所示的系统中,由于人体的运动速度相比于视频监控摄像头输出图像的帧速率比较小,因此,在连续两帧图像中包含相同人体的运动区域之间的重叠系数会比较高。这种情况下,区域跟踪模块可以根据当前图像中的运动区域与前一帧图像中的运动区域之间的重叠系数来进行匹配,请参见图3,区域跟踪模块中可以包括:区域匹配子模块、人数调整子模块、以及数据库更新子模块。
区域匹配子模块,用于根据当前图像中各运动区域的位置、以及前一帧图像中各运动区域的位置,分别计算当前图像中的各运动区域与前一帧图像中各运动区域的重叠比例,并重叠比例大于预设阈值的运动区域确定为匹配的运动区域。
具体来说,区域匹配子模块可以按照如下公式计算重叠比例:
其中,r(i,j)为第i个运动区域与第j个前一帧图像中的运动区域的重叠比例;s(Ai∩Bj)为第i个运动区域与第j个前一帧图像中的运动区域的重叠部分的面积;s(Ai)为第i个运动区域的面积;s(Bj)为第j个前一帧图像中的运动区域的面积;Ai为第i个运动区域;Bj为第j个前一帧图像中的运动区域;i和j为正整数。
人数调整子模块,用于根据匹配结果判断当前图像中是否存在同一个运动区域与前一帧图像中多于一个运动区域匹配,如果是,则将当前图像中的该运动区域所对应的人数替换为前一帧图像中与其匹配的多于一个运动区域匹配所对应的人数总和,然后触发数据库更新子模块;否则,直接触发数据库更新子模块。
具体来说,匹配结果存在5种情况:
假设数据库中共存储有N个前一帧图像中的运动区域
及其对应的人数,且当前图像中包含有M个运动区域
1)
中存在至少一个运动区域对应
中的多于一个前一帧图像中的运动区域,则表明表示前一帧图像中的多于一个运动区域在当前图像中合并为了一个目标区域,即当前图像中出现了遮挡现象;
2)M=N,且与刚好一一匹配,则表明前一帧图像中的所有人体都在当前图像中出现且没有出现遮挡现象;
3)
中存在至少一个前一帧图像中的运动区域对应
中的多于一个运动区域,表明有前一帧图像中的一个运动区域在当前图像中分解了,即前一帧图像中存在遮挡现象,且该遮挡现象在当前图像中不存在;
4)
中存在至少一个运动区域没有匹配的前一帧图像中的运动区域,则表明该运动区域中为当前图像相比于前一帧图像新增加了运动区域,即有人体由视频监控场景之外进入到视频监控场景之内;
5)
中存在至少一个前一帧图像中的运动区域没有匹配的运动区域,表明前一帧图像中的该运动区域在当前图像中消失,即有人体由视频监控场景之内走出至视频监控场景之外。
对于上述情况1),由于遮挡现象的存在,经区域分析模块得到的各运动区域所对应的人数,无法体现出被遮挡的人体数量,因此,需要区域跟踪模块将当前图像中,与前一帧图像中多于一个运动区域的匹配的运动区域所对应的人数,替换为前一帧图像中与该运动区域匹配的多于一个运动区域所对应的人数总和。
假设A1对应的人数为2,且A1同时与B1和B2匹配,则表示前一帧图像中的两个运动区域在当前图像中合并为了一个目标区域,即B1和B2在当前图像中相互遮挡,因此,如果B1对应的人数为2、B2对应的人数为1,则应当将A1对应的人数2替换为B1和B2所对应的人数总和3。
而对于上述情况2)~5),能够被区域分析模块得到的各运动区域所对应的人数所体现,因而无需再进行其他处理。
需要说明的是,对于第一帧图像,则数据库为空,即只存在上述情况4)。
数据库更新子模块,用于将当前图像中各运动区域及其对应的人数和位置更新至所述数据库、并提供给人数统计模块。其中,这里所述的更新是指将当前图像中各运动区域及其对应的人数和在当前图像中的位置,全部替换数据库中存储的前一帧图像中各运动区域及其对应的人数和位置。
此外,为了避免由于图像中存在较大的噪声而造成人数检测的误差,本实施例还可以根据历史信息来消除由于图像噪声而产生的误差。此时,区域跟踪模块可以进一步包括:历史记录子模块(图中未示出),用于保存各运动区域的历史人数序列,每一运动区域的历史人数序列中包含该运动区域在前P帧图像中对应的人数,P为大于1的正整数。
相应地,人数调整子模块进一步用于根据各运动区域的历史人数序列调整当前图像中各运动区域对应的人数。
以上,是对本实施例中人数检测系统的详细说明,下面,再对本实施例中人数检测方法进行说明。
图4为本发明实施例中基于视频监控的人数检测方法的示例性流程图。依次接收视频监控摄像头输入的每一帧图像,并并依次将每一帧图像作为当前图像执行如图4所示的流程,该方法包括:
步骤401,对当前图像进行运动检测,得到当前图像中的各运动区域。
本步骤中,可以利用背景差分法、帧间差分法、混合高斯背景差分法等现有运动检测技术实现运动区域的检测。实际应用中,当前图像经运动检测后通常为二值化图像,而运动区域则通常表现为二值化图像中的白色区域。
步骤402,对当前图像中的各运动区域进行形态学滤波。
本步骤中所执行的形态学滤波处理可以包括现有各种运算,例如膨胀运算、腐蚀运算、开运算、关运算等,因而能够去除运动区域中的空洞、去除小面积孤立区域和非连通区域、保留面积大于预设连通面积阈值的连通部分,从而保证当前图像中各运动区域的连通性。
实际应用中,本步骤为一可选的步骤,即在步骤401之后可直接执行步骤403。
步骤403,对当前图像中的各运动区域进行分析,得到当前图像中各运动区域所对应的人数和位置。
本步骤中,可以先识别当前图像中的各运动区域所包含的单人区域,然后统计当前图像中各运动区域所包含的单人区域数量,得到当前图像中的各运动区域所对应的人数。
其中,识别当前图像中的各运动区域所包含的单人区域的具体处理过程可以为:
a)分别计算二值化后的各运动区域的垂直投影,找到垂直投影的所有局部极值点;
b)将大于预设投影阈值的局部极值点确定为人的头顶点;其中,此处所述的投影阈值和图像中任意位置处的人的高度有关,需要根据不同场景设置,具体的设置方式如系统部分所述,在此不再赘述;
c)将水平方向的间距小于预设间距阈值的头顶点进行合并,得到最终的各头顶点;
d)将仅包含一个头顶点的运动区域确定为单人区域,将包含多于一个头顶点的运动区域确定为多人区域;
e)利用椭圆拟和方法将所有多人区域分别分割为对应数量的单人区域,从而能够识别出当前图像中的各运动区域所包含的单人区域。
当然,本步骤不限于上述一种实现方式,实际应用中,还可通过对各运动区域中的图像特征进行分析等其他方式来实现。
步骤404,根据当前图像中各运动区域的位置、以及针对前一帧图像执行本流程后保存的前一帧图像中各运动区域的位置,将当前图像中的各运动区域与前一帧图像中各运动区域进行匹配。
本步骤中,根据当前图像中各运动区域的位置、以及前一帧图像中各运动区域的位置,分别计算当前图像中的各运动区域与前一帧图像中各运动区域的重叠比例,并重叠比例大于预设阈值的运动区域确定为匹配的运动区域。
具体来说,区域匹配子模块可以按照如下公式计算重叠比例:
其中,r(i,j)为第i个运动区域与第j个前一帧图像中的运动区域的重叠比例;s(Ai∩Bj)为第i个运动区域与第j个前一帧图像中的运动区域的重叠部分的面积;s(Ai)为第i个运动区域的面积;s(Bj)为第j个前一帧图像中的运动区域的面积;Ai为第i个运动区域;Bj为第j个前一帧图像中的运动区域;i和j为正整数。
步骤405,根据匹配结果,判断当前图像中是否存在同一个运动区域与前一帧图像中多于一个运动区域匹配,如果是,则表示前一帧图像中存在多个运动区域在当前图像中相互遮挡的情况,并执行步骤406,否则,执行步骤407。
步骤406,将当前图像中的该运动区域所对应的人数替换为前一帧图像中与其匹配的多于一个运动区域匹配所对应的人数总和,并执行步骤407。
步骤407,保存当前图像中的各运动区域及其对应的人数和位置,并计算当前图像中的各运动区域对应的人数总和,得到当前图像中的总人数。
在本步骤之前,还可以进一步根据之前保存的各运动区域的历史人数序列调整当前图像中各运动区域对应的人数;
其中,每一运动区域的历史人数序列中包含该运动区域在前P帧图像中对应的人数,P为大于1的正整数。
至此,本流程结束。
由上述流程可见,本实施例基于视频监控摄像头拍摄的图像,能够实时统计视频监控场景中的人数,而且,在针对每一帧图像统计人数时,还能够基于对前一帧图像的跟踪,减少甚至消除由于图像中出现人体遮挡现象而导致的人数误差,保证了人数检测的可靠性。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。