基于自学习的红外图像人体识别方法转让专利

申请号 : CN201810671067.6

文献号 : CN108898095B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 秦嘉安林刘瑜

申请人 : 广东唯仁医疗科技有限公司

摘要 :

公开一种基于自学习的红外图像人体识别方法,包括处理器,红外成像模块,存储数据的RAM和电源,处理器内部设置人体识别方法,所述的人体识别方法包括以下步骤:采集红外图像f(x,y);二值化处理,得到二值图I0(x,y);进行腐蚀运算,得到腐蚀图I1(x,y);在腐蚀图I1(x,y)中搜索红外成像区域Sj,计算长宽比rj和几何中心点oj;根据长宽比rj和几何中心点oj是否移动,增加该区域为人体活跃值,并存储在Array中;根据长宽比rj,几何中心点oj是否移动和Array中的活跃值大小,判断成像区域是否为人体目标。

权利要求 :

1.基于自学习的红外图像人体识别方法,包括进行集中处理的处理器,与所述的处理器连接的红外成像模块,所述的红外成像模块上设置进行聚焦成像的镜头,与所述的处理器连接的存储数据的RAM,还包括提供工作电压的电源,其特征在于:所述的处理器内部设置人体识别方法,所述的人体识别方法包括以下步骤:(1) 设置数据链表L={ai(xi,yi,ci)},其中,i=0,1,2......,xi=1~M,yi=1~N,M为所述的红外成像模块x轴方向上的最大像素个数,N为所述的红外成像模块y轴方向上的最大像素个数,ci为时间计数器,初始值为0,最大值为Cmax;以二维数组的方式设置活跃地图Array[p][q],其中p=1 M/K,q=1 N/K,K为压缩比列,存储成像区域的人体活跃值,数值范围为0‑~ ~

100,初始值为Array[p][q]=0;

(2) 所述的处理器每个固定周期通过所述的红外成像模块获取场景的红外图像f(x,y),其中x=1 M,y=1 N,并存储在所述的RAM中;

~ ~

(3) 对红外图像f(x,y)进行二值化处理,得到二值图I0(x,y),采用的方法为:当T1

(4) 对二值图I0(x,y)进行腐蚀运算,消除成像过程中产生的噪声,得到腐蚀图I1(x,y);

(5) 在腐蚀图I1(x,y)中搜索非零区域Sj,计算非零区域Sj的长宽比rj和几何中心点oj(xj,yj),j=0,1,2......,并将非零区域Sj清零,如果rj>T3,则执行步骤6,否则重复执行步骤

5,其中T3为正常人体的长宽比下限;如果无法搜索到非零区域Sj,则执行步骤8;

(6) 执行匹对算法,以来自同一非零区域的原则,将几何中心点oj(xj,yj)和数据链表L中的元素ai(xi,yi,ci)进行配对,并求两者之间的距离Dij= ,执行步骤7;

如果几何中心点oj(xj,yj)未匹配,则以(xj,yj,cj=Cmax)为新增点,加入数据链表L,返回步骤5;

(7) 如果距离Dij>T4,其中T4代表采样周期内人体正常移动的经验阈值,则所述的处理器判断对应非零区域可能为人体信号,则设置Array[xj/K][yj/K]=Array[xj/K][yj/K]+1,更新数据链表的元素ai(xi,yi,ci),即xi=xj,yi=yj,ci=Cmax,返回步骤5;如果距离Dij≤T4,更新数据链表L的节点数据ai(xi,yi,ci),xi=nxj+(1‑n)xi, yi=nyj+(1‑n)yi,其中n为权重系数,0

(8) 数据链表L中所有元素ai的时间计数器ci自减一,即ci=ci‑1;删除数据链表L中的所有ci为0的节点数据;搜索数据链表L中元素ai,如果Array[xi/K][yi/K]=100,则像素点(xi,yi)对应成像区域为人体目标;返回步骤2。

2.根据权利要求1所述的基于自学习的红外图像人体识别方法,其特征在于:在步骤5中,计算非零区域Sj的长宽比rj和几何中心点oj坐标(xj,yj)采用如下步骤:(5‑1) 搜索非零区域Sj中像素的x坐标的最大值xMAX和最小值xMIN,以及y坐标的最大值yMAX和最小值yMIN;

(5‑2) 则rj=(yMAX‑yMIN)/(xMAX‑xMIN);xj=(xMAX+xMIN)/2,yj=(yMAX+yMIN) /2。

3.根据权利要求1所述的基于自学习的红外图像人体识别方法,其特征在于:在步骤6中,所述的匹对算法通过如下步骤实现:

(6‑1) 将几何中心点oj(xj, yj)映射到二值图I0(x, y)中,位于非零区域Sj内,标记为I0(xj, yj)=2;

(6‑2) 数据链表L中的元素ai(xi,yi,ci)也映射到二值图I0(x, y)中,如果I0(xi, yi)等于1,则在该非零区域内搜寻数值为2的像素点,并建立匹配关系(i, j);未形成匹配关系的几何中心点oj(xj,yj)为新增点。

说明书 :

基于自学习的红外图像人体识别方法

技术领域

[0001] 本发明涉及基于自学习的红外图像人体识别方法,属于传感器检测领域。

背景技术

[0002] 人体目标检测具有非常广泛的应用,比如智能监控,根据人体目标的位置调整摄像机的角度,获得最佳的监控效果,还有智能家居,根据人体目标的位置调整空调的出风方
向或者取暖设备的供暖方向,达到最舒适的效果,也可以根据环境内是否有人存在,而控制
空调设备的启动或者停止,达到节约能源的目的。但是目前人体目标检测的方式,主要有两
个:第一种是人体红外热释电的检测方式,这个方式只能检测动态人体,具有很大的局限
性;第二种是靠红外光或者可见光进行成像,然后通过形态学的方法进行识别,这种方式容
易被复杂场景干扰,稳定性差。

发明内容

[0003] 针对上述问题,本发明提供基于自学习的红外图像人体识别方法,该方案通过红外成像模块获取环境的红外图像,并根据人体特征温度进行人体目标提取,并进行形态学
的方法进行筛选,同时不断跟踪这些目标,并在活跃地图上进行标注,为后续的人体识别提
供重要判断依据。
[0004] 本发明解决其技术问题所采用的技术方案是:
[0005] 基于自学习的红外图像人体识别方法,包括进行集中处理的处理器,与所述的处理器连接的红外成像模块,所述的红外成像模块上设置进行聚焦成像的镜头,与所述的处
理器连接的存储数据的RAM,还包括提供工作电压的电源,所述的处理器内部设置人体识别
方法,所述的人体识别方法包括以下步骤:
[0006] (1) 设置数据链表L={ai(xi,yi,ci)},其中,i=0,1,2......,xi=1~M,yi=1~N,M为所述的红外成像模块x轴方向上的最大像素个数,N为所述的红外成像模块y轴方向上的最大
像素个数,ci为时间计数器,初始值为0,最大值为Cmax;以二维数组的方式设置活跃地图
Array[p][q],其中p=1 M/K,q=1 N/K,K为压缩比列,存储成像区域的人体活跃值,数值范围
~ ~
为0‑100,初始值为Array[p][q]=0;
[0007] (2) 所述的处理器每个固定周期通过所述的红外成像模块获取场景的红外图像f(x,y),其中x=1 M,y=1 N,并存储在所述的RAM中;
~ ~
[0008] (3) 对红外图像f(x,y)进行二值化处理,得到二值图I0(x,y),采用的方法为:当T1下限值,T2为人体温度对应红外辐射强度采样值的上限值;
[0009] (4) 对二值图I0(x,y)进行腐蚀运算,消除成像过程中产生的噪声,得到腐蚀图I1(x,y);
[0010] (5) 在腐蚀图I1(x,y)中搜索非零区域Sj,计算非零区域Sj的长宽比rj和几何中心点oj(xj,yj),j=0,1,2......,并将非零区域Sj清零,如果rj>T3,则执行步骤6,否则重复执行
步骤5,其中T3为正常人体的长宽比下限;如果无法搜索到非零区域Sj,则执行步骤8;
[0011] (6) 执行匹对算法,以来自同一非零区域的原则,将几何中心点oj(xj,yj)和数据链表L中的元素ai(xi,yi,ci)进行配对,并求两者之间的距离Dij= ,执行
步骤7;如果几何中心点oj(xj,yj)未匹配,则以(xj,yj,cj=Cmax)为新增点,加入数据链表L,
返回步骤5;
[0012] (7) 如果距离Dij>T4,其中T4代表采样周期内人体正常移动的经验阈值,则所述的处理器判断对应非零区域可能为人体信号,则设置Array[xj/K][yj/K]=Array[xj/K][yj/K]
+1,更新数据链表的元素ai(xi,yi,ci),即xi=xj,yi=yj,ci=Cmax,返回步骤5;如果距离Dij≤
T4,更新数据链表L的节点数据ai(xi,yi,ci),xi=nxj+(1‑n)xi, yi=nyj+(1‑n)yi,其中n为权重
系数,0
[0013] (8) 数据链表L中所有元素ai的时间计数器ci自减一,即ci=ci‑1;删除数据链表L中的所有ci为0的节点数据;搜索数据链表L中元素ai,如果Array[xi/K][yi/K]=100,则像素
点(xi,yi)对应成像区域为人体目标;返回步骤2。
[0014] 在步骤5中,计算非零区域Sj的长宽比rj和几何中心点oj坐标(xj,yj)采用如下步骤:
[0015] (5‑1) 搜索非零区域Sj中像素的x坐标的最大值xMAX和最小值xMIN,以及y坐标的最大值yMAX和最小值yMIN;
[0016] (5‑2) 则rj=(yMAX‑yMIN)/(xMAX‑xMIN);xj=(xMAX+xMIN)/2,yj=(yMAX+yMIN) /2。
[0017] 在步骤6中,所述的匹对算法通过如下步骤实现:
[0018] (6‑1) 将几何中心点oj(xj, yj)映射到二值图I0(x, y)中,位于非零区域Sj内,标记为I0(xj, yj)=2;
[0019] (6‑2) 数据链表L中的元素ai(xi,yi,ci)也映射到二值图I0(x, y)中,如果I0(xi, yi)等于1,则在该非零区域内搜寻数值为2的像素点,并建立匹配关系(i, j);未形成匹配
关系的几何中心点oj(xj,yj)为新增点。
[0020] 本发明的有益效果主要表现在:1、通过红外成像模块获取环境的红外图像,并根据形态学的方法进行筛选;2、跟踪人体目标,并在活跃地图上进行标注,为人体目标识别提
供判断依据。

附图说明

[0021] 图1是系统框图;
[0022] 图2是活跃地图。

具体实施方式

[0023] 下面结合附图对本发明作进一步描述:
[0024] 参照图1-2,基于自学习的红外图像人体识别方法,包括进行集中处理的处理器1,与所述的处理器1连接的红外成像模块2,所述的红外成像模块2上设置进行聚焦成像的
镜头3,与所述的处理器1连接的存储数据的RAM4,还包括提供工作电压的电源5。所述的镜
头3将红外辐射进行聚焦,投射到所述的红外成像模块2,所述的红外成像模块2进行光电转
化,并数字化,所述的处理器1根据所述的红外成像模块2的接口信号要求,进行读取,并存
储到所述的RAM4内。
[0025] 所述的处理器1内部设置人体识别方法,所述的人体识别方法包括以下步骤:
[0026] (1) 设置数据链表L={ai(xi,yi,ci)},其中,i=0,1,2......,xi=1~M,yi=1~N,M为所述的红外成像模块2的x轴方向上的最大像素个数,N为所述的红外成像模块2的y轴方向上
的最大像素个数,ci为时间计数器,初始值为0,最大值为Cmax;以二维数组的方式设置活跃
地图Array[p][q],其中p=1 M/K,q=1 N/K,K为压缩比列,存储成像区域的人体活跃值,数值
~ ~
范围为0‑100,初始值为Array[p][q]=0;
[0027] 步骤1是建立数据链表和活跃地图,为后续数据提取和分析做准备。
[0028] (2) 所述的处理器1每个固定周期通过所述的红外成像模块2获取场景的红外图像f(x,y),其中x=1 M,y=1 N,并存储在所述的RAM4中;
~ ~
[0029] 步骤2是获取红外图像f(x,y),f(x,y)的数值跟场景中的温度成正比,温度越高数值越大。
[0030] (3) 对红外图像f(x,y)进行二值化处理,得到二值图I0(x,y),采用的方法为:当T1下限值,T2为人体温度对应红外辐射强度采样值的上限值;
[0031] 健康人体温度是36°,在异常情况下,体温也不会偏离很大,因此步骤3中,根据实际测量的人体目标红外图像数据值,设定上下限阈值T1和T2,以此对红外图像f(x,y)进行二
值化,提取可能为人体目标的兴趣区域。
[0032] (4) 对二值图I0(x,y)进行腐蚀运算,消除成像过程中产生的噪声,得到腐蚀图I1(x,y);
[0033] 步骤4是对二值图I0(x,y)进行预处理,可采用3*3的模板。
[0034] (5) 在腐蚀图I1(x,y)中搜索非零区域Sj,计算非零区域Sj的长宽比rj和几何中心点oj(xj,yj),j=0,1,2......,并将非零区域Sj清零,如果rj>T3,则执行步骤6,否则重复执行
步骤5,其中T3为正常人体的长宽比下限;如果无法搜索到非零区域Sj,则执行步骤8;
[0035] 步骤5是在腐蚀图I1(x,y)中搜索可能为人体的区域,并计算长宽比rj和几何中心点oj,具体方法后面会详述。满足人体的正常长宽比条件,则执行步骤6,否则继续搜索非零
区域。如果已经完成所有非零区域的搜索,则执行步骤8。
[0036] (6) 执行匹对算法,以来自同一非零区域的原则,将几何中心点oj(xj,yj)和数据链表L中的元素ai(xi,yi,ci)进行配对,并求两者之间的距离Dij= ,执行步
骤7;如果几何中心点oj(xj,yj)未匹配,则以(xj,yj,cj=Cmax)为新增点,加入数据链表L,返
回步骤5;
[0037] 步骤6是将当前检测到的几何中心点oj(xj,yj)与代表历史数据的数据链表L中的元素ai(xi,yi,ci)进行匹对,将来自同一非零区域的坐标进行比较,也就是计算两个点之间
的距离Dij,从而可以判断该非零区域是否产生实质性移动。具体的匹对算法,后文会详细阐
述。
[0038] (7) 如果距离Dij>T4,其中T4代表采样周期内人体正常移动的经验阈值,则所述的处理器1判断对应非零区域可能为人体信号,则设置Array[xj/K][yj/K]=Array[xj/K][yj/
K]+1,更新数据链表的节点数据ai(xi,yi,ci),即xi=xj,yi=yj,ci=Cmax,返回步骤5;如果距离
Dij≤T4,更新数据链表L的节点数据ai(xi,yi,ci),xi=nxj+(1‑n)xi, yi=nyj+(1‑n)yi,其中n
为权重系数,0
[0039] 在步骤7中,首先根据距离Dij判断是否发生移动,当距离Dij大于阈值T4时,代表非零区域发生了运动,是人体目标的可能性很大,而非某种热源。然后,更新元素oi(xi,yi,ci)
中的数据,并增加活跃地图Array[xj/K][yj/K]的数值,代表该区域人体活跃度大;如果距离
Dij≤T4,则表示非零区域没有发生明显移动,还不能判断该区域为人体目标,则将新的坐标
值与旧的坐标值进行融合,得到非零区域晃动的平均位置。
[0040] (8) 数据链表L中所有元素ai的时间计数器ci自减一,即ci=ci‑1;删除数据链表L中的所有ci为0的节点数据;搜索数据链表L中元素ai,如果Array[xi/K][yi/K]=100,则像素
点(xi,yi)对应成像区域为人体目标;返回步骤2。
[0041] 元素ai的时间计数器ci用于记录对应成像区域的滞留时间,如果长时间滞留,则从数据链表L中删除。最后,进行人体目标识别,只需要查询数据链表L和活跃地图Array,直接
代表在活跃区域的人体目标,识别成功率非常高。
[0042] 在步骤5中,计算非零区域Sj的长宽比rj和几何中心点oj坐标(xj,yj)采用如下步骤:
[0043] (5‑1) 搜索非零区域Sj中像素的x坐标的最大值xMAX和最小值xMIN,以及y坐标的最大值yMAX和最小值yMIN;
[0044] (5‑2) 则rj=(yMAX‑yMIN)/(xMAX‑xMIN);xj=(xMAX+xMIN)/2,yj=(yMAX+yMIN) /2。
[0045] 在步骤6中,所述的匹对算法通过如下步骤实现:
[0046] (6‑1) 将几何中心点oj(xj, yj)映射到二值图I0(x, y)中,位于非零区域Sj内,标记为I0(xj, yj)=2;
[0047] 因为几何中心点oj(xj,yj)来自于腐蚀图I1(x,y)中的非零区域,所以映射回二值图I0(x,y),必然位于非零区域内。
[0048] (6‑2) 数据链表L中的元素ai(xi,yi,ci)也映射到二值图I0(x, y)中,如果I0(xi, yi)等于1,则在该非零区域内搜寻数值为2的像素点,并建立匹配关系(i, j);未形成匹配
关系的几何中心点oj(xj,yj)为新增点。
[0049] 数据链表L中的元素ai(xi,yi,ci)也映射到二值图I0(x, y)就可能出现两种情况,如果非零区域还存在,即使处在移动状态,移动距离也会有限,所以元素ai(xi,yi,ci)也会
落在非零区域,即I0(xi,yi)等于1,在该区域内就可以找到对应的几何中心点oj(xj,yj),形
成匹配关系(i,j);在二值图I0(x, y)中,没有被匹配的几何中心点oj(xj,yj)就是新增点,
代表新增目标形成的非零区域。