发明内容
有鉴于此,本发明提供一种基于单个摄像头监控场景配置的视频人数统计方法及系统,能够在不增加摄像头、利用已安装摄像头并不更改已有摄像头的安装和连接线路的情况下,实现人数统计。
本发明提供的一种基于单个摄像头监控场景配置的视频人数统计方法,包括:
a1、根据摄像头安装的方位、与地面的角度的不相同预设四种场景配置,每一种场景配置对应于一种场景,在预设的所述每一种场景配置中包含有不同的人体轮廓模板和特征参数;
a2、根据摄像头的具体安装方式选择确定预设的所述场景配置之一;
a3、根据摄像头安装的高度和所述场景配置设定人体头部大小和计数区域;
a4、利用前一帧图像的背景图像,从当前帧图像中检测出包含运动目标的前景图像;
a5、根据所述步骤a2选择的场景配置中的人体轮廓模板,在当前帧图像中进行人体检测,确定当前帧图像中的各个人体轮廓;
a6、根据前帧、当前帧、后帧图像和所述步骤a2选择的场景配置中的人体轮廓模板,采用模板匹配的方法计算出每个人体的运动轨迹;
a7、根据所述步骤a3设置的计数区域、人体头部大小和所述步骤a6计算出的运动轨迹,对出入封闭区间的人数进行实时统计。
其中,所述步骤a1中安装摄像头的四种场景包括:摄像头安装在出入口两侧的上方;摄像头安装在出入口四个角落的上方,摄像头的视觉方向与出入口所在平面的夹角成45°;摄像头安装在出入口正前上方或正后上方;摄像头安装于出入口正上方,摄像头与地面垂直。
优选的,所述步骤a2中选择确定预设的所述场景配置的方式包括:人工设置和自动设置,其中,所述人工设置是指由安装人员直接选择确定为四种所述场景配置之一,所述自动设置是指根据监控场景中的已有线条图像在摄像机监控画面中的投影来设置。
优选的,所述步骤a3中的人体头部大小和计数区域设置采取人工与系统交互的方式实现,该方式是在监控画面中用线条来标注出计数区域,通过拖动椭圆大小来更改人头大小。
优选的,所述步骤a5进一步包括:
a51、在当前帧图像的前景图像中搜索得到候选人体窗口,所述候选人体窗口中包括人的头部和人体上身;
a52、对候选人体窗口的图像进行边缘检测,得到候选人体的边缘轮廓;
a53、将得到的边缘轮廓与人体轮廓模板进行对比,判断获得的边缘轮廓是否属于人体图像。
优选的,所述步骤a6进一步包括:对当前帧图像中检测出的人体图像进行匹配跟踪,判断当前各个人体图像是否是新出现的人体图像,还是前一帧图像中已有的人体图像;若是新出现的人体图像,标记出在当前帧图像中的位置,若是已有人体图像,根据前一帧图像、当前帧图像的位置移动,得到人体图像的运动轨迹。
优选的,所述步骤a7进一步包括:
a71、根据每个人体图像的运动轨迹,筛选出运动轨迹与出入口方向一致的人体;
a72、当筛选出的人体越出设定的计数区域时,对出入人数加和/或减进行更新,并且记录下此刻封闭区间中的总人数。
本发明提供的一种基于单个摄像头监控场景配置的视频人数统计系统,包括:
场景数据存储模块,用于存储四种场景配置数据,每一种场景配置中包括摄像头安装方位、摄像头与地面夹角、每一种场景的特性参数。
系统配置模块,用于人工或自动选择四种所述场景配置中的一种,人工设置计数区域,以及人工设置人头大小;
中间数据存储模块,用于存储前一帧图像、前一帧图像中检测到的活动人体图像、人体图像的运动轨迹;
人体检测模块,用于在当前帧图像中进行人体检测,确定当前帧图像中的各个人体;
人体运动轨迹估计模块,用于计算出当前帧图像中每一个人体的运动轨迹;
出入人数确定模块,用于根据每一个人体的运动轨迹和设定的计数区域,对出入口人数进行加和/或减操作,并记录此刻封闭区间的总人数。
优选的,该系统进一步包括:前景检测模块,用于利用前一帧图像的背景图像,从当前帧图像中检测出包含运动目标的前景图像;
且所述人体检测模块仅在当前帧图像的前景图像中检测人体。
优选的,所述前景检测模块进一步包括:
前景提取子模块,用于从当前帧图像中检测包含运动目标的前景图像;
运动估计子模块,用于估计出前一帧图像中各运动目标的运动速度矢量;
跟踪子模块,用于利用估计出的前一帧图像中各运动目标的运动速度矢量,确定前一帧图像中各运动目标的跟踪位置,并将该跟踪位置与当前帧图像中各运动目标的位置匹配,以确定前一帧图像中各运动目标在当前帧图像中对应的目标,以及当前帧图像中新出现的运动目标;
背景更新子模块,用于将当前帧图像中在前几帧图像中未移动的运动目标设置为当前帧图像的背景,供所述前景提取子模块从下一帧图像中检测包含运动目标的前景图像时使用;
背景存储子模块,用于存储前一帧视频的背景图像。
优选的,所述系统配置模块进一步包括:
场景选择子模块,用于根据摄像头实际安装情况从场景数据存储模块中选择一种场景配置;
计数区域设置子模块,用于根据所述场景配置设置计数区域;
人头大小设置子模块,用于根据摄像头安装高度设置人头大小。
优选的,所述人体检测模块进一步包括:
候选窗口搜索子模块,用于按照预设的计数区域的位置、尺寸和形状,在当前帧图像的前景图像中搜索得到候选人体窗口,并且在执行该搜索时,按照预设的人头大小进行;
边缘检测子模块,用于对候选人体窗口中的图像进行canny边缘检测,得到候选人体的边缘轮廓;
人体判定子模块,用于将得到的候选人体窗口中的人体的边缘轮廓与预设的人体轮廓模板进行相似性比对,并将相似性大于预设阈值的候选人体窗口确定为当前帧图像中的人体。
优选的,所述人体运动轨迹估计模块进一步包括:
匹配跟踪子模块,用于将当前帧图像中的人体图像与前一帧的人体图像进行匹配跟踪,找出当前帧图像中各人体图像在前一帧中的位置,若匹配失败,则该人体图像是新出现的人体,标记出该人体在当前帧图像中的位置。
运动轨迹计算子模块,用于根据人体图像在前一帧和当前帧图像中的位置,计算出该人体图像的运动速度和运动方向。
优选的,所述出入人数确定模块进一步包括:
出入人体筛选子模块,用于根据各个人体图像的运动轨迹,选择出运动轨迹与出入口方向一致的人体图像;
人数更新子模块,当筛选出的人体图像跨越计数区域时,对出入人数执行加和/或减操作,并更新封闭区间的总人数。
本发明不局限于上述四种摄像头安装场景,在此框架下,可以进一步细分,得到更多的安装场景,每一种场景有一组场景配置参数,场景数越多,人数统计越精确。
具体实施方式
为了使本发明的目的、技术方案及优点更加清晰,下面参照附图并举实施例,对本发明进一步详细说明。
本实施例中基于单个摄像头视频监控,并考虑到摄像头实际安装场景,采用不同的人体轮廓模板,通过人体检测,以及对人体运动轨迹的估计和筛选来实现人数统计,避免直接采用固定人头模板计数的方式带来的计数误差。由于摄像头实际安装位置都高于人体,因此所有进出人体都能可见,可实时检测到所有出入人体,并在视频中进行连续的运动轨迹估计以实现精确的计数。
图1为本发明实施例中人数统计方法的示例性流程图。如图1所示,该方法在进行具体人数统计之前,先一次性执行如下步骤:
步骤101,事先将摄像头千变万化的安装方式简化为四种场景,各种场景摄像头安装的方位、与地面的角度各不相同,每一种场景对应一种不同的场景配置,在每一种场景配置中有不同的人体轮廓模板和特征参数;
步骤102,根据摄像头的具体安装方式为本方法选择一种具体的场景配置;
步骤103,根据摄像头安装的高度和场景设置人头大小和计数区域。
执行完上述步骤以后,如图1所示,本实施例中基于单个摄像头场景配置的视频人数统计方法依次接收监控视频中的每一帧图像,并依次将每一帧图像作为当前帧图像执行如下步骤:
步骤104,利用前一帧图像的背景图像,从当前帧图像中检测出包含运动目标的前景图像。
在本步骤中,可以采用现有的任何一种前景检测方法。
步骤105,在当前帧图像中进行人体检测,确定当前帧图像中的各人体。
步骤106,计算出每个人体的运动轨迹。
步骤107,根据计算出的各人体的运动轨迹,对出入人数进行实时统计。
至此,本流程结束。下面对上述流程中的各个步骤分别进行详细说明:
1)关于步骤101:
本步骤属于系统配置功能,在系统进行人数统计之前执行,且只执行一次。将准备用于人数统计的已经安装的摄像头千变万化的安装方式简化为四种场景。如图2所示,图中双向箭头指示的为人出入的方向,虚线框为可设置的计数区域,半开的粗线围起区域表示需要进行人数统计的封闭区间。
第一种场景为摄像头安装在出入门的两侧上方,摄像头与出入门在同一个平面上,如图2中左上角图所示,摄像头的视觉方向与出入方向垂直。从这个方向观察出入人体时,人体轮廓如图3中左边图所示。此时摄像头观察到的人体轮廓有三个特征:人体头部轮廓呈现椭圆外形,人体左右部分不对称,且左右轮廓交替改变。
第二种场景为摄像头安装在出入口的四个角落上方,如图2中右上图所示,摄像头的视觉方向与初入门所在平面的夹角为45°。从这个方向观察出入人体时,人体轮廓如图3中左边图所示。
第三种场景为摄像头安装在在出入口正前上方或正后上方,如图2中的左下角图所示。从这个方向观察出入人体时,观察到的人体轮廓为人体的前身或者背面,此时观察到的人体轮廓如图3中的中间图所示。图3中的中间图中的字母d表示摄像头观察到的人体上部分的高度,此高度与摄像头俯视角度θ(摄像头与地面的夹角)有关,即高度d是俯视角度θ的函数。
在本实施例中,采用基于学习的模式识别技术来估计高度d,即用已知的人体正本和反样本训练系统得到高度d与俯视角度θ之间的函数关系。具体训练方法可采用已有的如Adaboost理论来实现。
第四种场景为摄像头安装在初入门的正上方,摄像头的视觉方向为垂直向下俯视,如图2中右下角图所示。从这个方向观察出入人体时,观察到的人体轮廓为人体头部和肩部的轮廓,如图3中的右边图所示。头部轮廓和肩部轮廓构成了两个相互重叠的椭圆。
2)关于步骤102:
本步骤属于系统配置功能,在系统进行人数统计之前执行。
该步骤中提出两种场景配置选择方法:人工设置和自动设置。人工设置是指由安装人员直接设置为四种场景中的某一种;自动设置是由系统根据监控场景中的已有线条图像在摄像机监控画面中的投影来设置。监控场景中的已有线条图像与监控画面中的投影之间的关系运算方法可以采用现有任何一种,在此不再一一累述。
3)关于步骤103:
本步骤属于系统配置功能,在系统进行人数统计之前执行。
该步骤中采用人机交互的方式来设置计数区域和人头大小。具体方法是,首先在监控画面中直接用画线的方式来设置/更改计数区域。设置好计数区域后,在计数区域中鼠标点击任一位置,按住鼠标左键后拖动鼠标,此时系统会自动出现一个椭圆,椭圆的大小就是设置的人头大小,拖动鼠标,可以改变椭圆大小,从而改变人头大小。
4)关于步骤104:
将第一帧视频作为当前视频执行步骤104时,整幅图像均为前景图像;而将除第一帧视频之外的后续其它帧视频作为当前帧图像执行步骤104时,通常只有一部分为前景图像,剩余的另一部分为背景图像。
除将第一帧视频之外的每帧视频作为当前帧图像时,均要用该帧图像的前一帧视频的背景图像执行步骤104。因此,步骤104可以在从当前帧图像中检测到包含运动目标的前景图像之后,进一步对检测到的前景图像进行运动估计和跟踪,从而识别出连续在多帧视频中出现的静止背景并更新背景图像,提高人数统计精度。
对检测到的前景图像进行运动估计和跟踪可以采用现有任一种方式,这里不一一累述。
5)关于步骤105:
从步骤104得到的前景图像作为候选人体窗口,利用边缘检测算法检测出候选人体窗口图像的轮廓,将得到的图像轮廓与步骤102所设置的场景中的人体轮廓模板进行匹配,确定当前候选窗口是否为人体图像。
6)关于步骤106:
将当前帧图像中检测到的人体图像与前一帧检测到的人体图像进行匹配跟踪,找出当前帧中各人体图像在前一帧中的位置,若匹配失败,说明该人体图像是新出现的人体,标记出该人体在当前帧中的位置。若匹配成功,根据人体图像在前一帧和当前帧中的位置,计算出该人体图像的运动速度和运动方向。
7)关于步骤107
根据当前帧中各个人体图像的运动轨迹,选择出运动轨迹与出入口方向一致的人体图像,当筛选出的人体图像跨越计数区域时,对出入人数执行加和/或减操作,并更新封闭空间中的总人数。
以上是对本实施例中基于单个摄像头监控场景配置的视频人数统计方法的详细说明。接下来再对本实施例中单个摄像头监控场景配置的视频人数统计系统进行说明。
图4为本发明实施例中人数统计系统的示例性结构图。如图4所示,本实施例中的人数统计系统包括:场景数据存储模块401、系统配置模块402、前景检测模块403、人体检测模块404、人体运动轨迹估计模块405、出入人数确定模块406、以及中间数据存储模块407。
场景数据存储模块401,用于存储四种场景所对应的场景参数。具体的,第一种场景的场景参数有:摄像头安装高度h,描述人体轮廓三个特征ch、cs、cc对应的代价系数α=0.6、β=0.2、γ=0.2,以及总体代价函数c与三个特征之间的线性关系:c=αch+βcs+γcc。第二种场景参数有:摄像头安装高度h,描述人体轮廓三个特征ch、cs、cc对应的代价系数α=0.9、β=0、γ=0.1,以及总体代价函数c与三个特征之间的线性关系:c=αch+βcs+γcc 第三种场景参数有:摄像头安装高度h,摄像头视觉方向与地面夹角θ。第四种场景参数有:摄像头安装高度h。
系统配置模块402,用于按照摄像头实际安装场景选择一种场景参数,设置计数区域和人头大小。
前景检测模块403,用于按照现有任何一种前景检测方式,利用前一帧图像的背景图像,从当前帧图像中检测包含运动目标的前景图像。
人体检测模块404,用于在当前帧图像的前景图像中进行人体检测,确定当前帧图像中的各个人体。具体按照本实施例中方法部分所提出的方法实现人体检测。
人体运动轨迹估计模块405,用于计算出当前帧图像中各个人体图像的运动轨迹,具体方法按照本实施例中方法部分所提出的方法实现。
出入人数确定模块406,用于对出入人数实现加/减操作,并更新封闭区间的总人数。具体方法按照本实施例中方法部分所提出的方法实现。
中间数据存储模块407,用于存储前一帧图像、前一帧图像中检测到的活动人体图像、人体图像的运动轨迹。
图5为本发明实施例中人数统计系统的系统配置模块的示例性结构图。如图5所示,系统配置模块402中包括场景选择子模块408,用于根据摄像头实际安装场景从场景数据存储模块401中选择一组场景配置参数,本实施例中选择方法可以是人工设置,也可以是根据系统根据监控场景中的已有线条图像在摄像机监控画面中的投影来设置,监控场景中的已有线条图像与监控画面中的投影之间的关系运算方法可以采用现有任何一种;计数区域设置子模块409,用于采用人机交互的方式设置出入口的计数区域,具体方法按照本实施例中方法部分所提出的方法实现;人头大小设置子模块410,用于采用人机交互的方式设置计数区域中人头大小,具体方法按照本实施例中方法部分所提出的方法实现。
图6为本发明实施例中人数统计系统的前景检测模块的示例性结构图。如图6所示,前景检测模块403中包括前景提取子模块412,用于按照现有任一前景检测方法,从当前帧图像中检测包含运动目标的前景图像;运动估计子模块411,用于估计出前一帧图像中各运动目标的运动速度矢量;跟踪子模块413,利用估计出的前一帧图像中各运动目标的运动速度矢量,确定前一帧图像中各运动目标的跟踪位置,并将该跟踪位置与当前帧图像中各运动目标的位置匹配,以确定前一帧图像中各运动目标在当前帧图像中对应的目标,以及当前帧图像中新出现的运动目标;背景更新子模块414,用于将当前帧图像中在前几帧图像中未移动的运动目标设置为当前帧图像的背景,供所述前景提取子模块从下一帧图像中检测包含运动目标的前景图像时使用;背景存储子模块415,用于存储前一帧视频的背景图像。其中在第一帧视频作为当前视频时,整幅图像均为前景图像,而对除第一帧视频之外的后续其它帧视频作为当前视频时,通常只有一个部分作为前景图像,剩余的部分为背景图像。
图7为本发明实施例中人数统计系统的人体检测模块的示例性结构图。如图7所示,基于本实施例方法部分所提供的人体轮廓匹配方式的工作原理,人体检测模块404包括:
候选窗口搜索子模块416,用于在当前帧图像的前景图像中搜索得到候选人体窗口,具体的按照预设计数区域位置、尺寸和形状,仅在当前帧图像的前景图像中搜索得到候选人体窗口,且在执行所述搜索时,仅按照预设人头尺寸进行;
边缘检测子模块417,用于对候选人体窗口中的图像进行canny边缘检测,得到图像轮廓;
人体平判定子模块418,用于将得到的候选人体窗口中的图像轮廓与系统配置模块402中的场景选择子模块409设置的人体轮廓模板进行相似性比对,并将相似性大于预设阈值(本实施例中相似度阈值为70%)的候选人体窗口确定为当前帧图像中的人体。
图8为本发明实施例中人数统计系统的人体运动轨迹估计模块的示例性结构图。如图8所示,基于本实施例方法部分所提供的模板匹配方式的工作原理,人体运动轨迹估计模块406包括:
匹配跟踪子模块419,用于将当前帧图像中已确定的人体图像与前一帧中已确定的人体图像进行匹配跟踪,找出当前帧中各人体图像在前一帧中的位置,若匹配失败,说明该人体图像是新出现的人体,标记出该人体在当前帧中的位置;
运动轨迹计算子模块420,用于根据人体图像在前一帧和当前帧中的位置,计算出该人体图像的运动速度和运动方向。
图9为本发明实施例中人数统计系统的出入人数确定模块的示例性结构图。如图9所示,基于本实施例方法部分所提供的轨迹方向筛选方式的工作原理,出入人数确定模块407包括:
出入人体筛选子模块421,用于根据各个人体图像的运动轨迹,选择出运动轨迹与出入口方向一致的人体图像,将该人体图像作为更新人数的候选人体;
人数更新子模块422,用于当筛选出的人体图像跨越计数区域时,对出入人数执行加/减操作,并更新封闭空间中的总人数。
本发明的保护范围并不限于上述的实施例,显然,本领域的技术人员可以对本发明进行各种改动和变形而不脱离本发明的范围和精神。倘若这些改动和变形属于本发明权利要求及其等同技术的范围内,则本发明的意图也包含这些改动和变形在内。