发明内容
针对上述问题,本发明提供一种基于时序跟踪的红外图像人体检测方法,该方案通过红外成像模块获取环境的红外图像,并根据人体特征温度进行人体目标提取,同时不断跟踪这些目标,将真实的人体目标提取出来,该方法具有检测可靠,算法运算速度快的优点。
本发明解决其技术问题所采用的技术方案是:
一种基于时序跟踪的红外图像人体检测方法,包括进行集中处理的处理器,与所述的处理器连接的红外成像模块,所述的红外成像模块上设置进行聚焦成像的镜头,与所述的处理器连接的存储数据的RAM,还包括提供工作电压的电源,所述的处理器内部设置人体检测方法,所述的人体检测方法包括以下步骤:
(1)设置数据链表L={oi(xi,yi,zi,ci)},其中,i=0,1,2......,xi和yi为坐标值,zi为布尔值,zi=0表示不是人体目标,zi=1表示是人体目标,初始值为0,ci为时间计数器,初始值为0,最大值为Cmax;
(2)所述的处理器每隔固定周期通过所述的红外成像模块获取场景的红外图像f(x,y),其中x=1~M,y=1~N,其中,M为x轴方向上的最大像素个数,N为y轴方向上的最大像素个数,并存储在所述的RAM中;
(3)对红外图像f(x,y)进行二值化处理,得到二值图I0(x,y),采用的方法为:当TL<f(x,y)<TH,则I0(x,y)=1,否则I0(x,y)=0,其中,TL为人体温度对应红外辐射强度采样值的下限值,TH为人体温度对应红外辐射强度采样值的上限值,那么I0(x,y)=1的区域就是可能为人体目标的兴趣区域;
(4)对二值图I0(x,y)进行腐蚀运算,消除成像过程中产生的噪声,得到腐蚀图I1(x,y);
(5)对腐蚀图I1(x,y)进行膨胀运算,去除成像过程中产生的中空区域后得到膨胀图I2(x,y);
(6)对膨胀图I2(x,y)执行循环腐蚀算法,直到只剩下核心点qj(xj,yj),j=0,1,2......,核心点qj(xj,yj)代表兴趣区域的近似中心;
(7)执行匹对算法,以来自同一兴趣区域的原则,将核心点q
j(x
j,y
j)和数据链表L中的节点坐标o
i(x
i,y
i,z
i,c
i)进行配对,并求两者之间的距离D
ij=
;
(8)如果距离Dij>K,其中K代表采样周期内人体正常移动的经验阈值,则所述的处理器判断对应兴趣区域为人体信号,则将核心点qj(xj,yj)判断为人体目标,更新数据链表的节点数据oi(xi,yi,zi,ci),使xi=xj,yi=yj,zi=1,ci=Cmax;如果距离Dij<K或者Dij等于K,更新数据链表L的节点数据oi(xi,yi,zi,ci),xi=pxj+(1-p)xi,yi=pyj+(1-p)yi,其中p为权重系数,0<p<1,如果zi=1,则时间计数器值c减一,并判断如果ci等于0,则令zi=0,将该区域设置为非人体区域;未匹配的核心点qj(xj,yj)为新增点,加入数据链表L;最后,删除数据链表L中的未匹配的节点数据oi(xi,yi,zi,ci);
(9)所述的处理器搜索数据链表L,将zi值不为零的节点数据中的坐标输出,代表检测到的人体的位置;然后返回到步骤2。
在步骤7中,所述的匹对算法通过如下步骤实现:
(1)将核心点qj(xj,yj)映射到膨胀图I2(x,y)中,位于兴趣区域内,标记为I2(xj,yj)=2;
(2)数据链表L中的节点oi(xi,yi,zi,ci)也映射到膨胀图I2(x,y)中,如果I2(xi,yi)等于1,则在该兴趣区域内搜寻数值为2的像素点,并建立匹配关系(i,j);如果I2(xi,yi)等于0,节点oi(xi,yi,zi,ci)没有对应兴趣区域,为消失点;未形成匹配关系的核心点qj(xj,yj)为新增点。
本发明的有益效果主要表现在:1、通过红外成像模块获取环境的红外图像,并根据人体特征温度进行人体目标提取,具有抗干扰能力强的优点;2、不断跟踪人体目标区域,去除干扰目标,将真实的人体目标提取出来,该方法具有检测可靠,算法运算速度快的优点。
具体实施方式
下面结合附图对本发明作进一步描述:
参照图1-2,一种基于时序跟踪的红外图像人体检测方法,包括进行集中处理的处理器1,与所述的处理器1连接的红外成像模块2,所述的红外成像模块2上设置进行聚焦成像的镜头3,与所述的处理器1连接的存储数据的RAM4,还包括提供工作电压的电源5。所述的镜头3将红外辐射进行聚焦,投射到所述的红外成像模块2,所述的红外成像模块2进行光电转化,并数字化,所述的处理器1根据所述的红外成像模块2的接口信号要求,进行读取,并存储到所述的RAM4内。
所述的处理器1内部设置人体检测方法,所述的人体检测方法识别红外图像中的人体目标,包括以下步骤:
(1) 设置数据链表L={oi(xi,yi,zi,ci)},其中,i=0,1,2......,xi和yi为坐标值,zi为布尔值,zi=0表示不是人体目标,zi=1表示是人体目标,初始值为0,ci为时间计数器,初始值为0,最大值为Cmax;
步骤1是建立数据链表,为后续数据提取和分析做准备。
(2)所述的处理器1每隔固定周期通过所述的红外成像模块2获取场景的红外图像f(x,y),其中x=1~M,y=1~N,其中,M为x轴方向上的最大像素个数,N为y轴方向上的最大像素个数,并存储在所述的RAM4中;
步骤2是获取红外图像f(x,y),f(x,y)的数值跟场景中的温度成正比,温度越高数值越大。
(3) 对红外图像f(x,y)进行二值化处理,得到二值图I0(x,y),采用的方法为:当TL<f(x,y)<TH,则I0(x,y)=1,否则I0(x,y)=0,其中,TL为人体温度对应红外辐射强度采样值的下限值,TH为人体温度对应红外辐射强度采样值的上限值,那么I0(x,y)=1的区域就是可能为人体目标的兴趣区域;
健康人体温度是36°,在异常情况下,体温也不会偏离很大,因此步骤3中,根据实际测量的人体目标红外图像数据值,设定上下限阈值TL和TH,以此对红外图像f(x,y)进行二值化,提取可能为人体目标的兴趣区域。
(4) 对二值图I0(x,y)进行腐蚀运算,消除成像过程中产生的噪声,得到腐蚀图I1(x,y);
(5) 对腐蚀图I1(x,y)进行膨胀运算,去除成像过程中产生的中空区域后得到膨胀图I2(x,y);
步骤4和5,是对二值图I0(x,y)进行预处理,可采用3*3的模板。
(6) 对膨胀图I2(x,y)执行循环腐蚀算法,直到只剩下核心点qj(xj,yj),j=0,1,2......,核心点qj(xj,yj)代表兴趣区域的近似中心;
步骤6是通过腐蚀算法将膨胀图I2(x,y)中的兴趣区域不断腐蚀缩小,采用3*3的模板,每循环一次,兴趣区域从外围向中心缩进1个像素的范围,直到剩余一个像素点,这个像素点为核心点qj(xj,yj),代表兴趣区域的近似中心。
(7) 执行匹对算法,以来自同一兴趣区域的原则,将核心点q
j(x
j,y
j)和数据链表L中的节点坐标o
i(x
i,y
i,z
i,c
i)进行配对,并求两者之间的距离D
ij=
;
步骤7是将当前检测到的核心点qj(xj,yj)与代表历史数据的数据链表L中的节点坐标oi(xi,yi,zi,ci)进行匹对,将来自同一兴趣区域的中心坐标进行比较,也就是计算两个点之间的距离Dij,从而可以判断该兴趣区域是否产生实质性移动,从而可以判断是否为人体目标。具体的匹对算法,后文会详细阐述。
(8) 如果距离Dij>K,其中K代表采样周期内人体正常移动的经验阈值,则所述的处理器1判断对应兴趣区域为人体信号,则将核心点qj(xj,yj)判断为人体目标,更新数据链表的节点数据oi(xi,yi,zi,ci),使xi=xj,yi=yj,zi=1,ci=Cmax;如果距离Dij<K或者Dij等于K,更新数据链表L的节点数据oi(xi,yi,zi,ci),使xi=pxj+(1-p)xi,yi=pyj+(1-p)yi,其中p为权重系数,0<p<1,如果zi=1,则时间计数器值c减一,并判断如果ci等于0,则令zi=0,将该区域设置为非人体区域;未匹配的核心qj(xj,yj)为新增点,加入数据链表L;最后,删除数据链表L中的未匹配的节点数据oi(xi,yi,zi,ci);
在步骤8中,首先根据距离Dij判断是否发生移动,当距离Dij大于经验阈值K时,代表兴趣区域发生了运动,是人体目标,而不是某种热源。然后,更新节点oi(xi,yi,zi,ci)中的坐标(xi,yi),并设置标志位zi=1,时间计数器ci赋值为Cmax。在时间计数器ci递减为零之前,如果不能再次检测到移动状态,则返回到非人体目标状态,即zi=0;如果距离Dij<K或者Dij等于K,则表示兴趣区域没有发生明显移动,则将新的坐标值与旧的坐标值进行融合,得到兴趣区域晃动的平均位置;而对于增加或者减少的兴趣区域则进行数据链表L的增加或者删除节点数据。
(9)所述的处理器1搜索数据链表L,将zi值不为零的节点数据中的坐标输出,代表检测到的人体的位置;然后返回到步骤2。
在步骤7中,所述的匹对算法通过如下步骤实现:
(1)将核心点qj(xj,yj)映射到膨胀图I2(x,y)中,位于兴趣区域内,标记为I2(xj,yj)=2;
因为核心点qj(xj,yj)来自于膨胀图I2(x,y)中的兴趣区域即I2(x,y)的区域,所以映射回膨胀图I2(x,y),必然位于兴趣区域内。
(2) 数据链表L中的节点oi(xi,yi,zi,ci)也映射到膨胀图I2(x,y)中,如果I2(xi,yi)等于1,则在该兴趣区域内搜寻数值为2的像素点,并建立匹配关系(i,j);如果I2(xi,yi)等于0,节点oi(xi,yi,zi,ci)没有对应兴趣区域,为消失点;未形成匹配关系的核心点qj(xj,yj)为新增点。
数据链表L中的节点oi(xi,yi,zi,ci)也映射到膨胀图I2(x,y)就可能出现两种情况,如果兴趣区域还存在,即使处在移动状态,也会移动距离有限,所以节点oi(xi,yi,zi,ci)也会落在兴趣区域,即I2(xi,yi)等于1,在该区域内就可以找到对应的核心点qj(xj,yj),形成匹配关系(i,j);如果兴趣区域消失,节点oi(xi,yi,zi,ci)就不会落在兴趣区域,即I2(xi,yi)等于0;在膨胀图I2(x,y)中,没有被匹配的核心点qj(xj,yj)就是新增点,代表新增目标形成的兴趣区域。