首页 / 专利库 / 数学与统计 / 滤波反投影 / 基于深度学习的手扶电梯乘客摔倒检测算法

基于深度学习的手扶电梯乘客摔倒检测算法

阅读:171发布:2022-02-19

专利汇可以提供基于深度学习的手扶电梯乘客摔倒检测算法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于 深度学习 的手扶 电梯 乘客摔倒检测 算法 ,包括步骤:1)乘客搭乘手扶电梯视频 图像采集 ;2)利用FHOG描述子和SVM分类器检测乘客人脸;3)利用KCF 跟踪 乘客人脸,基于乘客人脸信息新建乘客轨迹列表;4)用迁移学习重新训练yolo2算法模型来检测乘客人身;5)匹配乘客人脸和乘客人身,将人身信息加入到轨迹列表中;6)利用openpose深度学习算法提取乘客骨骼关 节点 序列;7)匹配乘客人身与乘客骨骼关节点序列,将骨骼关节点信息加入到轨迹列表中;8)分析轨迹列表中的骨骼关节点信息,检测乘客摔倒行为。通过本发明算法可以对搭乘手扶电梯的乘客进行摔倒行为检测,当发现摔倒行为时能及时启动应急方案将安全危害降至最低。,下面是基于深度学习的手扶电梯乘客摔倒检测算法专利的具体信息内容。

1.基于深度学习的手扶电梯乘客摔倒检测算法,其特征在于:该方法主要是通过检测并跟踪搭乘手扶电梯的乘客,基于乘客骨骼关节点信息判别乘客摔倒行为,包括以下步骤:
1)乘客搭乘手扶电梯视频图像采集
2)利用FHOG描述子和SVM分类器进行手扶电梯乘客人脸检测
3)利用核相关滤波器KCF对手扶电梯乘客人脸进行跟踪,基于乘客人脸信息新建乘客搭乘手扶电梯的轨迹列表;
4)利用yolo2深度学习算法,用迁移学习方法重新训练乘客检测模型,进行手扶电梯乘客人身检测;
5)将手扶电梯乘客人脸和手扶电梯乘客人身进行匹配,把乘客人身信息加入到乘客搭乘手扶电梯的轨迹列表之中;
6)利用openpose深度学习算法提取乘客搭乘手扶电梯时的骨骼关节点序列;
7)将手扶电梯乘客人身与手扶电梯乘客骨骼关节点序列进行匹配,把乘客骨骼关节点信息加入到乘客搭乘手扶电梯的轨迹列表之中;
8)通过分析乘客搭乘手扶电梯的轨迹列表中的乘客骨骼关节点信息,判别乘客搭乘手扶电梯过程中是否发生摔倒行为。
2.根据权利要求1所述的基于深度学习的手扶电梯乘客摔倒检测算法,其特征在于:在步骤1)中,采用广摄像头进行手扶电梯区域图像采集,摄像头倾斜安装在与手扶电梯楼层板平且距离楼层板预设距离的支架上,与手扶电梯中间处垂直对齐,摄像头方向朝向扶梯中部,使其拍摄范围覆盖手扶电梯的整个区域,且能够清楚地拍摄到搭乘手扶电梯的乘客。
3.根据权利要求1所述的基于深度学习的手扶电梯乘客摔倒检测算法,其特征在于:在步骤2)中,利用FHOG描述子对搭乘手扶电梯的乘客人脸进行特征提取,然后利用SVM分类器作为人脸检测器进行乘客人脸检测,包括以下步骤:
2.1)图像金字塔上采样
利用图像金字塔对输入图像进行一次上采样,使输入图片的尺寸放大为原来的两倍;
2.2)颜色空间归一化
利用Gamma压缩在每个颜色通道上进行归一化操作,Gamma压缩公式为:
H(x,y)=H(x,y)Gamma
其中,Gamma为压缩因子,取Gamma值为0.5,H(x,y)为像素点(x,y)的像素值;
2.3)计算图像每个像素点的梯度
在手扶电梯图像中任意一个像素点H(x,y)的梯度▽H(x,y)是一个向量:
其中,Gx(x,y)为像素点(x,y)在水平方向上的梯度,Gy(x,y)为像素点(x,y)在垂直方向上的梯度,应用一维离散微分模板[-1,0,1]和[-1,0,1]T简单快速地分别计算出Gx(x,y)和Gy(x,y):
梯度▽H(x,y)的幅值和方向分别为:
其中,G(x,y)为梯度▽H(x,y)的幅值, 为梯度▽H(x,y)的方向;
2.4)提取整幅图像的FHOG特征
FHOG特征是HOG特征的改进,FHOG特征只保留了HOG特征中的细胞单元Cell,而用于归一化操作的Block则用另外的归一化操作来代替,定义Cell的大小为8*8的像素大小,将该Cell与位于其正上方、正左方和左上方的Cell做归一化操作,计算归一化后的Cell里的所有像素的梯度方向及梯度幅度,将0到360度每隔20度划分为一个bin区间,划分得到18个bin的梯度方向直方图,令每个像素的梯度方向以梯度幅值大小为权重加权投影到相应的bin区间中,这样即得到18维的特征向量,其对梯度方向符号敏感,然后将360度分成两个
180度,每个0到180度均每隔20度划分为一个bin区间,划分得到9个bin的梯度方向直方图,令每个像素的梯度方向以梯度幅值大小为权重加权投影到相应的bin区间,得到9维的特征向量,其对梯度方向符号不敏感,然后分别将该Cell与位于其正上方、正右方和右上角的Cell做归一化,位于正下方、正右方和右下角的Cell做归一化,位于正下方、正左方和左下角的Cell做归一化,从而得到另外三个归一化的Cell,重复第一个归一化的Cell的梯度方向直方图计算操作,总共得到4*18维对梯度方向敏感的特征向量和4*9维对方向不敏感的特征向量,将其看作4*18的矩阵和4*9的矩阵,4*18的矩阵每列中的元素进行累加,得到FHOG特征的前18维特征,4*9的矩阵每行和每列中的元素进行累加,得到FHOG特征的后4+9=13维特征,最后在末尾添加一个0,补足得到一个32维的特征向量,即为每个Cell的FHOG特征向量,对整幅图像划分成若干个Cell,并依次提取FHOG特征,即可得到整幅图像的FHOG特征;
2.5)滑动扫描图片检测乘客人脸
设置扫描窗口大小为80*80,对原图像以 的比率进行金字塔下采样,即每次采样缩小成上一层图像的 最下层为原图,往上逐层递减,构成多层的图像金字塔,当采样得到的图像小于扫描窗口时停止下采样,通过设置固定大小的扫描窗口和构造多层的图像金字塔,即可达到在不同空间尺度上检测人脸的目的;
2.6)利用SVM分类器进行乘客人脸检测
假定训练集样本T={(x1,y1),(x2,y2),…,(xN,yN)},xi∈Rd,yi∈{+1,-1},其中xi为第i个训练样本,是d维向量,yi是第i个训练样本的标签,+1代表正样本,即乘客人脸样本,-1代表负样本,即非乘客人脸样本,线性SVM假设这些样本是线性可分的,则存在一个超平面ωTx+b=0,其中ω∈Rd是线性判别函数的权值,b是一个常数值的偏差量,能够将N个样本正确地划分开来,即:
调整b的尺度,合并两个不等式得到以下约束不等式:
yi[ωTxi+b]≥1,i=1,2,…,N
离分类超平面最近的正负样本到分类超平面的距离称作分类间隔,分别是+1和-1,计算可得分类间隔M为:
SVM的目的是最大化分类间隔M,最大分类间隔对应的分类超平面称为最优分类超平面,求解最优分类超平面,转化为不等式约束下的优化问题:
s.t yi[ωTxi+b]-1≥0,i=1,2,…,N
通过拉格朗日法可求得上述优化问题的对偶问题:
其中αi≥0,i=1,2,…,N为拉格朗日乘子,α为拉格朗日乘子向量,该问题的最优解αi*,i=1,2,…,N通过求二次优化问题求解,然而线性SVM只能解决线性问题,基于FHOG特征描述的手扶电梯乘客人脸检测问题属于非线性问题,需要引入特征变换来将原空间的非线性问题转化为新空间的线性问题,对样本特征x进行非线性变换,得到在新空间的样本特征其中 为变换函数,通过拉格朗日求得的对偶问题变为:
令函数K(xi,xj)为核函数,引入核函数的目的是为了避免直接计算变换后的在高维空间的新特征 和 而是一步到位地计算两个新特征的内积和,根据泛函空间的有关理论,任一核函数只要满足正定条件,肯定存在一个特征变换 使
其中x′为样本特征,特征变换后的空间也称作可再生核希尔伯
特空间,在手扶电梯乘客人脸检测问题中,采用的核函数为:
该核函数又被称作是径向基RBF核函数,相当于将原来d维特征向量映射为新空间的无限 维向量,考虑到变换后的特征在新空间出现线性不可分的 情况 ,即
不可能被所有样本满足,此时为每个样本引入一个松弛变
量ξi,i=1,2,…,N,使所有样本都满足以下不等式
松弛变量之和 越小,代表样本错分程度越低,SVM效果越好,所以需要将松弛变量之和作为一个正则项引入到求解最优分类超平面的目标函数中,即将 变为:
其中C是一个常量超参数,C值越小,代表对错误分类样本的容忍度越大,对正确分类样本的分类间隔要求越高,C值越大,代表对错误分类样本的容忍度越小,对正确分类样本的分类间隔要求越低,引入松弛变量后的拉格朗日对偶问题变为:
得到对偶问题的解后,即可得到原问题最终解: 支持向量机的决策函
数能够写成 其中b通过以下式子来求解:
总而言之,SVM通过不断迭代求解二次优化问题求解αi*,i=1,2,…,N,进而得到当目标函数 小于预先设定的阈值时,训练停止,得
到最终的决策函数 检测时,将该决策函数应用在滑
动扫描窗口里的待测样本,若决策函数大于0则判断该样本为正样本,即检测得到搭乘手扶电梯的乘客人脸,并以外接矩形框框出。
4.根据权利要求1所述的基于深度学习的手扶电梯乘客摔倒检测算法,其特征在于:在步骤3)中,利用核相关滤波器KCF对手扶电梯乘客人脸进行跟踪,并基于乘客人脸信息新建乘客搭乘手扶电梯的轨迹列表,包括以下步骤:
3.1)令基于FHOG描述子和SVM分类器检测得到的手扶电梯乘客人脸外接矩形框为目标样本,记作向量x,由其循环移位得到若干个训练样本,各训练样本表示成列向量xi,i=1,
2,…n,将这n个向量依序排列得到一个矩阵,形成了由x生成的循环矩阵,称作C(x),每个训练样本xi对应一个标签yi,以目标样本为正样本,其标签可设为1,由目标样本循环移位得到的目标周围样本看作负样本,标签根据与目标样本的距离分布在0到1之间,越靠近目标样本标签值越接近于1,所有训练样本的集合为矩阵X,所有样本标签的集合为列向量y;
3.2)由训练样本xi及其标签训练yi得到人脸检测器,首先假设该样本集线性可分,将其看作线性回归问题,则其决策函数为f(xi)=ωTxi,其中ω为列向量,表示各个训练样本在决策函数中的权重系数,考虑到决策函数的结构复杂性问题,为了提高其泛化能,在决策函数的基础上添加一个正则项λ||ω||2,其中λ为正则项系数,则该线性回归问题的目标函数即为:
通过最小二乘法求得最优解ω*为:
ω*=(XHX+λI)-1XHy
其中I为单位矩阵,H为共轭转置。然而,线性回归只能解决线性问题,为了解决非线性问题,需要引入一个非线性映射函数φ(·)将原空间的xi映射到新空间的φ(xi),此时决策函数变为f(xi)=ωTφ(xi),目标函数变为:
通过拉格朗日法求得上述优化问题的对偶问题:
其中α为拉格朗日乘子,该问题为二次最优问题,对函数求导数,导数的零点即为拉格朗日最优解α*:
α*=(φ(X)φ(X)T+λI)-1y
原问题的最优解ω*为:ω*=φ(X)Tα*;
T
3.3)通过上一的训练样本训练得到决策函数f(xi)=ω φ(xi)后,在新的一帧中,以上一帧的目标样本所在的区域作为初始预测区域,并通过循环移位得到初始预测区域的周围区域,得到测试样本zi,i=1,2,…n,构成测试样本矩阵Z,将测试样本zi代入决策函数求得该样本的响应为f(zi)=αTφ(X)φ(zi),则最大响应对应的测试样本即为在当前帧KCF跟踪得到的目标区域;
3.4)KCF算法将训练样本和测试样本写成循环矩阵的形式,利用循环矩阵在傅里叶空间中可对角化的性质,将运算过程中涉及的大量矩阵运算转化为矩阵点乘运算,大大降低运算量,提高跟踪算法的运算速度,使利用KCF跟踪搭乘手扶电梯的乘客人脸满足实时性的要求,求解目标函数对偶问题时,令K表示新空间的核矩阵,则K=φ(X)φ(X)T,于是α*=(K+λI)-1y,证明K是一个循环矩阵,由循环矩阵的分解性质可知:
其中,F是离散傅里叶矩阵, 为Kxx的傅里叶变换,Kxx=φ(x)Tφ(X)T为行向量,是K中的第一行,则式子两边做傅里叶变换,再用傅里叶反变换得到:
同理,求解测试样本响应时,令Kz表示新空间的核矩阵,则Kz=φ(X)φ(Z)T,证明Kz也是一个核矩阵,由循环矩阵的分解性质可知:
其中,Kxz为Kz的第一行,然后将式子两边做傅里叶变换,再用傅里叶反变换得到:
此外,上述采用的核函数为高斯核函数:
其中x′为样本特征;
3.5)通过KCF跟踪上一帧的手扶电梯乘客人脸,在当前帧得到一系列跟踪框,令其中心点tj,j=1,2,…,n,其中n为跟踪框的个数,然后在当前帧通过步骤2)的FHOG描述子和SVM分类器检测得到手扶电梯乘客人脸pi,i=1,2,…,m,其中m为检测框的个数,计算pi和tj中心之间的欧氏距离dij,并以其为矩阵元素构成一个n行m列的矩阵,注意若m大于n,代表人脸检测器出现误检或者有新人脸出现,则矩阵添加m-n行构成一个方阵,且新增行里的元素全为0,若m小于n,则代表人脸检测器出现漏检或者人脸离开监控区域,此时维持矩阵不变,若m等于n,则代表人脸检测器正确检测或者上述错误情况发生重叠导致,此时维持矩阵不变,得到人脸矩阵后,判断dij是否大于预先设定的阈值,如果大于则代表跟踪到的人脸框和检测到的人脸框相距超过预设值,不可能为同一目标,将dij改为无穷大,若一列中所有元素都为无穷大,则删除该列,经过以上步骤,即可构成人脸匹配矩阵,然后矩阵每一列取一个行号不重复的元素,共计有k种可能的组合,选择其中元素和最小的组合作为最优组合,则最优目标为: 其中每个dij中的j要互不相同,该最优组合中对应的每个元素dij的行列号分别代表第i个人脸检测框和第j个人脸跟踪框匹配成功,为每个人脸检测框新建一个乘客轨迹列表,其中乘客轨迹列表以时间为次序每帧对应列表中的一个元素,每个元素包含该乘客在对应帧的一系列信息,包括人脸检测框的大小及宽高信息,及累加检测强度ConfFace,计算公式为:
ConfFace=ConfFace+ConfFramek
ConfFarmek=a(FT)2-a(FT-1)2-b(NFT)2+b(NFT-1)2
其中,ConfFramek为第k帧的检测强度,a为匹配系数,b为不匹配系数,FT为人脸检测框和人脸跟踪框连续匹配的帧数,NFT为人脸检测框和人脸跟踪框连续不匹配的帧数,显然可知FT*NFT=0,即有且仅有一个不为0,此外ConfFace若超出上限阈值ConfFaceup,则使ConfFace=ConfFaceup,计算乘客轨迹在当前帧图像的ConfFace后,添加进乘客轨迹列表中,将其和预先设置的起始阈值TFaceBeg和终止阈值TFaceEnd进行比较,若大于TFaceBeg,则认为人脸检测器准确检测到一个手扶电梯的乘客人脸,显示人脸检测结果,若小于等于TFaceBeg,则停止显示人脸检测结果,若小于TFaceEnd,则认为该轨迹中的乘客人脸已经消失在监控区域中,应删除该对应的乘客轨迹,以与当前帧乘客在下一帧的人脸跟踪框相匹配的人脸检测框,作为乘客在下一帧对应的人脸检测框,并将该人脸检测框信息添加到下一帧的乘客轨迹列表之中,若再找不到当前帧乘客在下一帧的人脸跟踪框相匹配的人脸检测框,则采用乘客在下一帧的人脸跟踪框作为下一帧对应的人脸检测框,并将该人脸检测框信息添加到下一帧的乘客轨迹列表之中。
5.根据权利要求1所述的基于深度学习的手扶电梯乘客摔倒检测算法,其特征在于:在步骤4)中,利用yolo2深度学习算法,用迁移学习方法重新训练乘客检测模型,进行手扶电梯乘客人身检测,包括以下步骤:
4.1)训练时,将乘客搭乘手扶电梯的图像作为输入图像,将其分成S*S个网格,每个网格要预测B个外接框bounding box,每个bounding box包含5个元素,分别是该框的中心横坐标x、中心纵坐标y、框宽w、框高h和框的预测置信度confidence共5个值,其中,x和y要分别减去所属网格的左上角顶点坐标值再除以网格的宽和高来归一化到0-1之间,w和h要分别除以图像的宽和高归一化到0-1之间,confidence的计算公式为:
其中,Object为待预测目标,Pr(Object)为检测到物体的概率,若有目标落入网格中,则Pr(Object)=1,否则为0, 为预测的bounding box和实际的待预测目标groud truth box之间的重叠度,用交并比IOU来衡量,若遇到某个bounding box和多个groud truth box相交的情况,则取最大IOU值作为 得到的confidence即为最大IOU对应类别的预测置信度,即一个bounding box只预测一个类别,此外,每个网格还有预测C种待预测类别的条件概率Pr(Classi|Object),即当有Object落在网格时其为第i类类别的概率;
4.2)预测时,将每个bounding box预测的confidence值和所属网格的Pr(Classi|Object)相乘得到bounding box预测的某一类的概率class-specific confidence score,和预先设置的阈值进行比较,保留高于阈值的bounding box,并进行非极大值抑制NMS处理,该处理是为了从一堆互相重叠的检测框中筛选出最终有用的检测框,经此处理最终得到检测结果;
4.3)深度学习需要大量的样本进行模型的训练,样本越多模型的训练效果越好,而实际场景中获取训练样本的成本较高,所以需要迁移学习对模型进行训练,迁移学习的核心思想是先用别的训练集对模型进行训练,该训练集通常采用网上公开的大容量训练集,且包含目标类别,由于要进行手扶电梯乘客人身检测,所以采用PASCAL VOC训练集进行预训练,该训练集中包含行人在内的20个类别的训练样本,训练得到预训练模型后,去除yolo2模型的最后一层全连接层,并根据实际问题设计新的全连接层来替代,在此即为乘客有无两种类别,保留除了该全连接层外的所有参数作为模型再训练的初始参数,向该修改后的模型输入自己本地的训练样本作再训练,迭代参数训练得到最终的yolo2模型,用该模型预测待测试图片,并以bounding box的形式进行输出,即预测搭乘手扶电梯的乘客人身并以外接矩形框进行标记。
6.根据权利要求1所述的基于深度学习的手扶电梯乘客摔倒检测算法,其特征在于:在步骤5)中,将手扶电梯乘客人脸和手扶电梯乘客人身进行匹配,把乘客人身信息加入到乘客搭乘手扶电梯的轨迹列表之中,包括以下步骤:
5.1)将步骤4)中得到的乘客人身检测框PPBodyj,j=1,2…,n和乘客轨迹列表中的人脸检测框PPFacei,i=1,2…,m进行匹配,其中n为人身检测框的个数,m为轨迹列表中的人脸检测框或乘客的个数,对PPFacei和PPBodyj进行匹配;
5.2)对于每个PPFacei,统计其重复出现于人身检测框的的次数记为PPFaceNumi,若PPFaceNumi=1,则说明该人脸检测框有且仅出现在一个人身检测框PPBodyj中,则PPFacei和PPBodyj匹配成功,并从匹配序列中消除成功匹配的PPFacei和PPBodyj,然后重新进行匹配,直到找不到匹配的PPFacei和PPBodyj;
5.3)匹配完有且仅出现在一个人身检测框的PPFacei后,此时出现两种情况,一是PPFaceNumi=0,说明人脸检测框找不到对应的人身检测框,采用乘客轨迹中上一帧乘客人脸检测框对应的人身检测框来代替该帧人脸检测框对应的人身检测框,若PPFaceNumi>1,则根据先验规则选择与其匹配度最高的人身检测框PPBodyj,匹配成功后消除成功匹配的PPFacei和PPBodyj;
5.4)重复执行5.2)和5.3),直到只剩下PPFaceNumi=0对应的人脸检测框,则乘客轨迹中的所有人脸检测框与人身检测框匹配过程结束,将与人脸检测框匹配对应的人身检测框信息添加到乘客轨迹列表中对应乘客的人身检测框元素之中。
7.根据权利要求1所述的基于深度学习的手扶电梯乘客摔倒检测算法,其特征在于:在步骤6)中,利用openpose深度学习算法提取乘客搭乘手扶电梯时的骨骼关节点信息,其中乘客的全身骨骼关节点用一串序列表示,序列中包含18个元素,每个元素包含一个骨骼关节点信息(x,y,confidence),其中x和y分别是骨骼关节点在图像中的横坐标和纵坐标,confidence为该骨骼关节点的检测置信度,其值为0到1之间,18个关节点按顺序从前到后分别是鼻子Nose、颈Neck、右肩RShoulder、右肘RElbow、右手腕RWrist、左肩LShoulder、左肘LElbow、左手腕LWrist、右髋RHip、右膝盖RKnee、右脚踝RAnkle、左髋LHip、左膝盖LKnee、左脚踝LAnkle、右眼REye、左眼LEye、右REar、左耳LEar。
8.根据权利要求1所述的基于深度学习的手扶电梯乘客摔倒检测算法,其特征在于:在步骤7)中,将手扶电梯乘客人身与手扶电梯乘客骨骼关节点进行匹配,将乘客骨骼关节点信息加入到乘客搭乘手扶电梯的轨迹列表之中,包括以下步骤:
7.1)针对每个乘客的骨骼关节点序列,使其中18个骨骼关节点坐标(x,y)分别和每个乘客轨迹中的人身检测框计算重合度Cskeleton,若序列中的某个骨骼关节点坐标落在人身检测框中,则重合度加一,若骨骼关节点序列与一个以上的人身检测框重合度相同,则使Cskeleton乘以一个权重系数ωskeleton以作修正再进行进一步的大小比较,即骨骼关节点在分布人身检测框中分布越均匀,权重系数ωskeleton越大,ωskeleton计算公式如下:
其中,maxΔPPSkeletonx为骨骼关节点序列中关节点横坐标差值的最大值,maxΔPPSkeletony为骨骼关节点序列中关节点纵坐标差值的最大值,PPBodywidth为对应的乘客人身检测框宽度,PPBodyheight为对应的乘客人身检测框高度,计算骨骼关节点序列与每个人身检测框的重合度,选择最大重合度对应的人身检测框作为该骨骼关节点序列对应的人身检测框,并将该骨骼关节点序列添加到乘客轨迹列表中对应乘客的骨骼关节点序列元素之中;
7.2)归一化乘客轨迹列表中的骨骼关节点序列元素中的18个骨骼关节点横纵坐标x和y,将x和y分别减去对应人身检测框的左上角顶点的横纵坐标,然后除以人身检测框的宽和高进行归一化,归一化后的的横纵坐标取值为0到1之间。
9.根据权利要求1所述的基于深度学习的手扶电梯乘客摔倒检测算法,其特征在于:在步骤8)中,通过分析乘客搭乘手扶电梯的轨迹列表中的乘客骨骼关节点信息,判别乘客搭乘手扶电梯过程中是否发生摔倒行为,包括以下步骤:
8.1)采集乘客搭乘手扶电梯过程中摔倒行为的视频帧,得到乘客摔倒时的骨骼关节点序列,分析乘客摔倒行为,从骨骼关节点信息方面找到摔倒行为的共性,提取一系列具有代表性的关键骨骼关节点序列,以此为模板进行待匹配;
8.2)测试时,在当前帧图像从乘客轨迹列表中得到每个乘客对应的骨骼关节点序列,使其和预先制作好的摔倒行为骨骼关节点序列模板进行匹配,计算匹配相似度并选择其中最大值Mskeleton,和预先设定的阈值Tskeleton进行比较,其中采用乘客骨骼关节点序列和模板之间的欧氏距离的负对数作为匹配相似度,若大于该阈值则认为乘客在该帧图像发生摔倒行为,然后从乘客刚出现摔倒行为的帧FrameSkeletonbegin开始,直到乘客恢复正常行为的帧FrameSkeletonend为止,统计发生摔倒行为的帧数为FrameSkeletonsum,若FrameSkeletonsum大于预先设定的阈值TSkeletonsum,则检测到乘客在搭乘手扶电梯的过程中发生摔倒行为,并将摔倒行为异常情况反馈至手扶电梯控制台。

说明书全文

基于深度学习的手扶电梯乘客摔倒检测算法

技术领域

[0001] 本发明涉及图像处理及行为识别的技术领域,尤其是指一种基于深度学习的手扶电梯乘客摔倒检测算法。

背景技术

[0002] 随着我国现代化进程的不断推进,人民经济生活平的不断提高,越来越多公共设施出现在公共场所中以便于人民日常生产生活,手扶电梯作为一种方便乘客出行的公共设施,在商场、写字楼、地站等公共场所中随处可见,然而便捷出行的同时随之引起了一系列的安全问题,如在手扶电梯上乘客拥堵、乘客逆行、乘客跑动、乘客摔倒等行为,这些行为尤其是乘客摔倒行为会造成严重的安全事故问题,需要及时监控发现安全问题并发出警告或停运手扶电梯,目前主要是通过人工监控手扶电梯区域来预防手扶电梯发生的安全问题,然而如今人成本越来越高,且重复枯燥的监控工作容易让工作人员出现懈怠而不能及时地处理突发的安全事故。因此,运用人工智能的方法,让机器代替人来监控手扶电梯区域,准确、稳定并及时地发现手扶电梯上出现的安全问题尤其是乘客摔倒问题,使人们从枯燥重复的监控工作中解放出来,具有重大的意义。
[0003] 通过安装在手扶电梯上沿正上方的摄像头实时监控并采集手扶电梯区域图像,利用机器学习技术从输入图像中检测搭乘手扶电梯的乘客人脸,用KCF对乘客人脸进行跟踪进而跟踪乘客,利用深度学习算法检测乘客人身及乘客的骨骼关节点信息,并和对应的乘客进行配对,得到每个乘客搭乘手扶电梯时的骨骼关节点序列,据此来分析乘客是否发生摔倒行为。目前为止,国内针对手扶梯电梯应用场景的乘客行为识别尤其是摔倒行为识别几乎没有,鉴于机器代替人工监控的各种好处,应加快推进相应技术的研发并推广其应用,让先进的技术和平民百姓生产生活相辅相成,让此技术受惠于民。

发明内容

[0004] 本发明的目的在于克服现有技术的缺点与不足,提出了一种基于深度学习的手扶电梯乘客摔倒检测算法,实时、稳定、准确地检测并跟踪搭乘手扶电梯乘客的人脸信息、人身信息及骨骼关节点信息,进而分析判断乘客是否发生摔倒行为。
[0005] 为实现上述目的,本发明所提供的技术方案为:基于深度学习的手扶电梯乘客摔倒检测算法,包括以下步骤:
[0006] 1)乘客搭乘手扶电梯视频图像采集
[0007] 2)利用FHOG描述子和SVM分类器进行手扶电梯乘客人脸检测
[0008] 3)利用核相关滤波器(KCF)对手扶电梯乘客人脸进行跟踪,基于乘客人脸信息新建乘客搭乘手扶电梯的轨迹列表;
[0009] 4)利用yolo2深度学习算法,用迁移学习方法重新训练乘客检测模型,进行手扶电梯乘客人身检测;
[0010] 5)将手扶电梯乘客人脸和手扶电梯乘客人身进行匹配,把乘客人身信息加入到乘客搭乘手扶电梯的轨迹列表之中;
[0011] 6)利用openpose深度学习算法提取乘客搭乘手扶电梯时的骨骼关节点序列;
[0012] 7)将手扶电梯乘客人身与手扶电梯乘客骨骼关节点序列进行匹配,把乘客骨骼关节点信息加入到乘客搭乘手扶电梯的轨迹列表之中;
[0013] 8)通过分析乘客搭乘手扶电梯的轨迹列表中的乘客骨骼关节点信息,判别乘客搭乘手扶电梯过程中是否发生摔倒行为。
[0014] 在步骤1)中,采用分辨率为640*480的USB广摄像头进行手扶电梯区域图像采集,其广角为150度,可以360度旋转,输出格式为YUYV或者MJPG,摄像头倾斜安装在与手扶电梯楼层板水平且距离楼层板约4m的支架上,与手扶电梯中间处垂直对齐,摄像头方向朝向扶梯中部,使其拍摄范围覆盖手扶电梯的整个区域,且能够清楚地拍摄到搭乘手扶电梯的乘客。
[0015] 在步骤2)中,利用FHOG描述子对搭乘手扶电梯的乘客人脸进行特征提取,然后利用SVM分类器作为人脸检测器进行乘客人脸检测,包括以下步骤:
[0016] 2.1)图像金字塔上采样
[0017] 利用图像金字塔对输入图像进行一次上采样,使输入图片的尺寸放大为原来的两倍。
[0018] 2.2)颜色空间归一化
[0019] 利用Gamma压缩在每个颜色通道上进行归一化操作,Gamma压缩公式为:
[0020] H(x,y)=H(x,y)Gamma
[0021] 其中Gamma为压缩因子,取Gamma值为0.5,H(x,y)为像素点(x,y)的像素值;
[0022] 2.3)计算图像每个像素点的梯度
[0023] 在手扶电梯图像中任意一个像素点H(x,y)的梯度▽H(x,y)是一个向量:
[0024]
[0025] 其中,Gx(x,y)为像素点(x,y)在水平方向上的梯度,Gy(x,y)为像素点(x,y)在垂直方向上的梯度,应用一维离散微分模板[-1,0,1]和[-1,0,1]T简单快速地分别计算出Gx(x,y)和Gy(x,y):
[0026]
[0027] 梯度▽H(x,y)的幅值和方向分别为:
[0028]
[0029] 其中,G(x,y)为梯度▽H(x,y)的幅值, 为梯度▽H(x,y)的方向;
[0030] 2.4)提取整幅图像的FHOG特征
[0031] FHOG特征是HOG特征的改进,FHOG特征只保留了HOG特征中的细胞单元(Cell),而用于归一化操作的(Block)则用另外的归一化操作来代替,定义Cell的大小为8*8的像素大小,将该Cell与位于其正上方、正左方和左上方的Cell做归一化操作,计算归一化后的Cell里的所有像素的梯度方向及梯度幅度,将0到360度每隔20度划分为一个bin区间,划分得到18个bin的梯度方向直方图,令每个像素的梯度方向以梯度幅值大小为权重加权投影到相应的bin区间中,这样即得到18维的特征向量,其对梯度方向符号敏感,然后将360度分成两个180度,每个0到180度均每隔20度划分为一个bin区间,划分得到9个bin的梯度方向直方图,令每个像素的梯度方向以梯度幅值大小为权重加权投影到相应的bin区间,得到9维的特征向量,其对梯度方向符号不敏感,然后分别将该Cell与位于其正上方、正右方和右上角的Cell做归一化,位于正下方、正右方和右下角的Cell做归一化,位于正下方、正左方和左下角的Cell做归一化,从而得到另外三个归一化的Cell,重复第一个归一化的Cell的梯度方向直方图计算操作,总共得到4*18维对梯度方向敏感的特征向量和4*9维对方向不敏感的特征向量,将其看作4*18的矩阵和4*9的矩阵,4*18的矩阵每列中的元素进行累加,得到FHOG特征的前18维特征,4*9的矩阵每行和每列中的元素进行累加,得到FHOG特征的后4+9=13维特征,最后在末尾添加一个0,补足得到一个32维的特征向量,即为每个Cell的FHOG特征向量,对整幅图像划分成若干个Cell,并依次提取FHOG特征,即可得到整幅图像的FHOG特征;
[0032] 2.5)滑动扫描图片检测乘客人脸
[0033] 设置扫描窗口大小为80*80,对原图像以 的比率进行金字塔下采样,即每次采样缩小成上一层图像的 最下层为原图,往上逐层递减,构成多层的图像金字塔,当采样得到的图像小于扫描窗口时停止下采样,通过设置固定大小的扫描窗口和构造多层的图像金字塔,即可达到在不同空间尺度上检测人脸的目的;
[0034] 2.6)利用SVM分类器进行乘客人脸检测
[0035] 假定训练集样本T={(x1,y1),(x2,y2),…,(xN,yN)},xi∈Rd,yi∈{+1,-1},其中xi为第i个训练样本,是d维向量,yi是第i个训练样本的标签,+1代表正样本,即乘客人脸样本,-1代表负样本,即非乘客人脸样本,线性SVM假设这些样本是线性可分的,则存在一个超平面ωTx+b=0,其中ω∈Rd是线性判别函数的权值,b是一个常数值的偏差量,能够将N个样本正确地划分开来,即:
[0036]
[0037] 调整b的尺度,并合并两个不等式可得到以下约束不等式:
[0038] yi[ωTxi+b]≥1,i=1,2,…,N
[0039] 离分类超平面最近的正负样本到分类超平面的距离称作分类间隔,分别是+1和-1,计算可得分类间隔M为:
[0040]
[0041] SVM的目的是最大化分类间隔M,最大分类间隔对应的分类超平面称为最优分类超平面,求解最优分类超平面,可转化为不等式约束下的优化问题:
[0042]
[0043] s.t yi[ωTxi+b]-1≥0,i=1,2,…,N
[0044] 通过拉格朗日法可求得上述优化问题的对偶问题:
[0045]
[0046]
[0047] αi≥0,i=1,2,…,N
[0048] 其中αi≥0,i=1,2,…,N为拉格朗日乘子,α为拉格朗日乘子向量,该问题的最优解αi*,i=1,2,…,N可通过求二次优化问题求解,然而线性SVM只能解决线性问题,基于FHOG特征描述的手扶电梯乘客人脸检测问题属于非线性问题,需要引入特征变换来将原空间的非线性问题转化为新空间的线性问题,对样本特征x进行非线性变换,得到在新空间的样本特征 其中 为变换函数,通过拉格朗日求得的对偶问题变为:
[0049]
[0050]
[0051] αi≥0,i=1,2,…,N
[0052] 令函数K(xi,xj)为核函数,引入核函数的目的是为了避免直接计算变换后的在高维空间的新特征 和 而是一步到位地计算两个新特征的内积和,根据泛函空间的有关理论,任一核函数只要满足正定条件,肯定存在一个特征变换 使其中x′为样本特征,特征变换后的空间也称作可再生核希尔伯
特空间,在手扶电梯乘客人脸检测问题中,采用的核函数为:
[0053]
[0054] 该核函数又被称作是径向基(RBF)核函数,相当于将原来d维特征向量映射为新空间的无限维向量,考虑到变换后的特征在新空间出现线性不可分的情况,即不可能被所有样本满足,此时可为每个样本引入一个松弛变量ξi,
i=1,2,…,N,使所有样本都满足以下不等式 松
弛变量之和 越小,代表样本错分程度越低,SVM效果越好,所以需要将松弛变量之和作为一个正则项引入到求解最优分类超平面的目标函数中,即将 变为:
[0055]
[0056] 其中C是一个常量超参数,C值越小,代表对错误分类样本的容忍度越大,对正确分类样本的分类间隔要求越高,C值越大,代表对错误分类样本的容忍度越小,对正确分类样本的分类间隔要求越低,引入松弛变量后的拉格朗日对偶问题变为:
[0057]
[0058]
[0059] 0≤αi≤C,i=1,2,…,N
[0060] 得到对偶问题的解后,即可得到原问题最终解: 支持向量机的决策函数可写成 其中b可通过以下式子来求解:
[0061]
[0062] 总而言之,SVM通过不断迭代求解二次优化问题求解αi*,i=1,2,…,N,进而得到当目标函数 小于预先设定的阈值时,训练停止,得到最终的决策函数 检测时,将该决策函数应用在滑
动扫描窗口里的待测样本,若决策函数大于0则判断该样本为正样本,即检测得到搭乘手扶电梯的乘客人脸,并以外接矩形框框出。
[0063] 在步骤3)中,利用核相关滤波器(Kernelized Correlation Filter,KCF)对手扶电梯乘客人脸进行跟踪,并基于乘客人脸信息新建乘客搭乘手扶电梯的轨迹列表,包括以下步骤:
[0064] 3.1)令基于FHOG描述子和SVM分类器检测得到的手扶电梯乘客人脸外接矩形框为目标样本,方便起见记作向量x,由其循环移位可得到若干个训练样本,各训练样本表示成列向量xi,i=1,2,…n,将这n个向量依序排列可得到一个矩阵,形成了由x生成的循环矩阵,称作C(x),每个训练样本xi对应一个标签yi,以目标样本为正样本,其标签可设为1,由目标样本循环移位得到的目标周围样本看作负样本,标签根据与目标样本的距离分布到0到1之间,越靠近目标样本标签值越接近于1,所有训练样本的集合为矩阵X,所有样本标签的集合为列向量y;
[0065] 3.2)由训练样本xi及其标签训练yi得到人脸检测器,首先假设该样本集线性可分,将其看作线性回归问题,则其决策函数为f(xi)=ωTxi,其中ω为列向量,表示各个训练样本在决策函数中的权重系数,考虑到决策函数的结构复杂性问题,为了提高其泛化能力,在决策函数的基础上添加一个正则项λ||ω||2,其中λ为正则项系数,则该线性回归问题的目标函数即为:
[0066] f(ω)=mωin||Xω-y||2+λ||ω||2
[0067] 通过最小二乘法求得最优解ω*为:
[0068] ω*=(XHX+λI)-1XHy
[0069] 其中I为单位矩阵,H为共轭转置。然而,线性回归只能解决线性问题,为了解决非线性问题,需要引入一个非线性映射函数φ(·)将原空间的xi映射到新空间的φ(xi),此时决策函数变为f(xi)=ωTφ(xi),目标函数变为:
[0070]
[0071] 通过拉格朗日法求得上述优化问题的对偶问题:
[0072]
[0073] 其中α为拉格朗日乘子,该问题为二次最优问题,对函数求导数,导数的零点即为拉格朗日最优解α*:
[0074] α*=(φ(X)φ(X)T+λI)-1y
[0075] 原问题的最优解ω*为:ω*=φ(X)Tα*;
[0076] 3.3)通过上一的训练样本训练得到决策函数f(xi)=ωTφ(xi)后,在新的一帧中,以上一帧的目标样本所在的区域作为初始预测区域,并通过循环移位得到初始预测区域的周围区域,得到测试样本zi,i=1,2,…n,构成测试样本矩阵Z,将测试样本zi代入决策函数求得该样本的响应为f(zi)=αTφ(X)φ(zi),则最大响应对应的测试样本即为在当前帧KCF跟踪得到的目标区域;
[0077] 3.4)KCF算法将训练样本和测试样本写成循环矩阵的形式,利用循环矩阵在傅里叶空间中可对角化的性质,将运算过程中涉及的大量矩阵运算转化为矩阵点乘运算,大大降低了运算量,提高了跟踪算法的运算速度,使利用KCF跟踪搭乘手扶电梯的乘客人脸满足实时性的要求,求解目标函数对偶问题时,可令K表示新空间的核矩阵,则K=φ(X)φ(X)T,于是α*=(K+λI)-1y,可证明K是一个循环矩阵,由循环矩阵的分解性质可知:
[0078]
[0079] 其中,F是离散傅里叶矩阵, 为Kxx的傅里叶变换,Kxx=φ(x)Tφ(X)T为行向量,是K中的第一行,则式子两边做傅里叶变换,再用傅里叶反变换得到:
[0080]
[0081] 同理,求解测试样本响应时,令Kz表示新空间的核矩阵,则Kz=φ(X)φ(Z)T,可证明Kz也是一个核矩阵,由循环矩阵的分解性质可知:
[0082]
[0083] 其中,Kxz为Kz的第一行,然后将式子两边做傅里叶变换,再用傅里叶反变换得到:
[0084]
[0085] 此外,上述采用的核函数为高斯核函数:
[0086]
[0087] 其中x′为样本特征;
[0088] 3.5)通过KCF跟踪上一帧的手扶电梯乘客人脸,可在当前帧得到一系列跟踪框,令其中心点tj,j=1,2,…,n,其中n为跟踪框的个数,然后在当前帧通过步骤2)的FHOG描述子和SVM分类器检测得到手扶电梯乘客人脸pi,i=1,2,…,m,其中m为检测框的个数,计算pi和tj中心之间的欧氏距离dij,并以其为矩阵元素构成一个n行m列的矩阵,注意若m大于n,代表人脸检测器出现误检或者有新人脸出现,则矩阵添加m-n行构成一个方阵,且新增行里的元素全为0,若m小于n,则代表人脸检测器出现漏检或者人脸离开监控区域,此时维持矩阵不变,若m等于n,则代表人脸检测器正确检测或者上述错误情况发生重叠导致,此时维持矩阵不变,得到人脸矩阵后,判断dij是否大于预先设定的阈值,如果大于则代表跟踪到的人脸框和检测到的人脸框相距太远,不可能为同一目标,将dij改为无穷大,若一列中所有元素都为无穷大,则删除该列,经过以上步骤,即可构成人脸匹配矩阵,然后矩阵每一列取一个行号不重复的元素,共计有k种可能的组合,选择其中元素和最小的组合作为最优组合,则最优目标为: 其中每个dij中的j要互不相同,该最优组合中对应的每个元素dij的行列号分别代表第i个人脸检测框和第j个人脸跟踪框匹配成功,为每个人脸检测框新建一个乘客轨迹列表,其中乘客轨迹列表以时间为次序每帧对应列表中的一个元素,每个元素包含该乘客在对应帧的一系列信息,如人脸检测框的大小及宽高等信息,及累加检测强度ConfFace,计算公式为:
[0089] ConfFace=ConfFace+ConfFramek
[0090] ConfFarmek=a(FT)2-a(FT-1)2-b(NFT)2+b(NFT-1)2
[0091] 其中,ConfFramek为第k帧的检测强度,a为匹配系数,b为不匹配系数,FT为人脸检测框和人脸跟踪框连续匹配的帧数,NFT为人脸检测框和人脸跟踪框连续不匹配的帧数,显然可知FT*NFT=0,即有且仅有一个不为0,此外ConfFace若超出上限阈值ConfFaceup,则使ConfFace=ConfFaceup,计算乘客轨迹在当前帧图像的ConfFace后,添加进乘客轨迹列表中,将其和预先设置的起始阈值TFaceBeg和终止阈值TFaceEnd进行比较,若大于TFaceBeg,则认为人脸检测器准确检测到一个手扶电梯的乘客人脸,显示人脸检测结果,若小于等于TFaceBeg,则停止显示人脸检测结果,若小于TFaceEnd,则认为该轨迹中的乘客人脸已经消失在监控区域中,应删除该对应的乘客轨迹,以与当前帧乘客在下一帧的人脸跟踪框相匹配的人脸检测框,作为乘客在下一帧对应的人脸检测框,并将该人脸检测框信息添加到下一帧的乘客轨迹列表之中,若再找不到当前帧乘客在下一帧的人脸跟踪框相匹配的人脸检测框,则采用乘客在下一帧的人脸跟踪框作为下一帧对应的人脸检测框,并将该人脸检测框信息添加到下一帧的乘客轨迹列表之中。
[0092] 在步骤4)中,利用yolo2深度学习算法,用迁移学习方法重新训练乘客检测模型,进行手扶电梯乘客人身检测,包括以下步骤:
[0093] 4.1)训练时,将乘客搭乘手扶电梯的图像作为输入图像,将其分成S*S个网格,每个网格要预测B个外接框(bounding box),每个bounding box包含5个元素,分别是该框的中心横坐标x、中心纵坐标y、框宽w、框高h和框的预测置信度confidence共5个值,其中,x和y要分别减去所属网格的左上角顶点坐标值再除以网格的宽和高来归一化到0-1之间,w和h要分别除以图像的宽和高归一化到0-1之间,confidence的计算公式为:
[0094]
[0095] Object为待预测目标,Pr(Object)为检测到物体的概率,若有目标落入网格中,则Pr(Object)=1,否则为0, 为预测的bounding box和实际的待预测目标(groud truth box)之间的重叠度,用交并比(Intersection Over Union,IOU)来衡量,若遇到某个bounding box和多个groud truth box相交的情况,则取最大IOU值作为 得到的confidence即为最大IOU对应类别的预测置信度,即一个bounding box只预测一个类别,此外,每个网格还有预测C种待预测类别的条件概率Pr(Classi|Object),即当有Object落在网格时其为第i类类别的概率;
[0096] 4.2)预测时,将每个bounding box预测的confidence值和所属网格的Pr(Classi|Object)相乘得到bounding box预测的某一类的概率(class-specific confidence score),和预先设置的阈值进行比较,保留高于阈值的bounding box,并进行非极大值抑制(Non-maximum suppression,NMS)处理,该处理是为了从一堆互相重叠的检测框中筛选出最终有用的检测框,经此处理最终得到检测结果;
[0097] 4.3)深度学习需要大量的样本进行模型的训练,样本越多模型的训练效果越好,而实际场景中获取训练样本的成本较高,所以需要迁移学习对模型进行训练,迁移学习的核心思想是先用别的训练集对模型进行训练,该训练集通常采用网上公开的大容量训练集,且包含目标类别,由于要进行手扶电梯乘客人身检测,所以采用PASCAL VOC训练集进行预训练,该训练集中包含行人在内的20个类别的训练样本,训练得到预训练模型后,去除yolo2模型的最后一层全连接层,并根据实际问题设计新的全连接层来替代,在此即为乘客有无两种类别,保留除了该全连接层外的所有参数作为模型再训练的初始参数,向该修改后的模型输入自己本地的训练样本作再训练,迭代参数训练得到最终的yolo2模型,用该模型预测待测试图片,并以bounding box的形式进行输出,即预测搭乘手扶电梯的乘客人身并以外接矩形框进行标记。
[0098] 在步骤5)中,将手扶电梯乘客人脸和手扶电梯乘客人身进行匹配,把乘客人身信息加入到乘客搭乘手扶电梯的轨迹列表之中,包括以下步骤:
[0099] 5.1)将步骤4)中得到的乘客人身检测框PPBodyj,j=1,2…,n和乘客轨迹列表中的人脸检测框PPFacei,i=1,2…,m进行匹配,其中n为人身检测框的个数,m为轨迹列表中的人脸检测框或乘客的个数,对PPFacei和PPBodyj进行匹配;
[0100] 5.2)对于每个PPFacei,统计其重复出现于人身检测框的的次数记为PPFaceNumi,若PPFaceNumi=1,则说明该人脸检测框有且仅出现在一个人身检测框PPBodyj中,则PPFacei和PPBodyj匹配成功,并从匹配序列中消除成功匹配的PPFacei和PPBodyj,然后重新进行匹配,直到找不到匹配的PPFacei和PPBodyj;
[0101] 5.3)匹配完有且仅出现在一个人身检测框的PPFacei后,此时出现两种情况,一是PPFaceNumi=0,说明人脸检测框找不到对应的人身检测框,可采用乘客轨迹中上一帧乘客人脸检测框对应的人身检测框来代替该帧人脸检测框对应的人身检测框,若PPFaceNumi>1,则根据先验规则选择与其匹配度最高的人身检测框PPBodyj,匹配成功后消除成功匹配的PPFacei和PPBodyj;
[0102] 5.4)重复执行5.2)和5.3),直到只剩下PPFaceNumi=0对应的人脸检测框,则乘客轨迹中的所有人脸检测框与人身检测框匹配过程结束,将与人脸检测框匹配对应的人身检测框信息添加到乘客轨迹列表中对应乘客的人身检测框元素之中。
[0103] 在步骤6)中,利用openpose深度学习算法提取乘客搭乘手扶电梯时的骨骼关节点信息,其中乘客的全身骨骼关节点用一串序列表示,序列中包含18个元素,每个元素包含一个骨骼关节点信息(x,y,confidence),其中x和y分别是骨骼关节点在图像中的横坐标和纵坐标,confidence为该骨骼关节点的检测置信度,其值为0到1之间,18个关节点按顺序从前到后分别是鼻子(Nose)、颈(Neck)、右肩(RShoulder)、右肘(RElbow)、右手腕(RWrist)、左肩(LShoulder)、左肘(LElbow)、左手腕(LWrist)、右髋(RHip)、右膝盖(RKnee)、右脚踝(RAnkle)、左髋(LHip)、左膝盖(LKnee)、左脚踝(LAnkle)、右眼(REye)、左眼(LEye)、右(REar)、左耳(LEar)。
[0104] 在步骤7)中,将手扶电梯乘客人身与手扶电梯乘客骨骼关节点进行匹配,将乘客骨骼关节点信息加入到乘客搭乘手扶电梯的轨迹列表之中,包括以下步骤:
[0105] 7.1)针对每个乘客的骨骼关节点序列,使其中18个骨骼关节点坐标(x,y)分别和每个乘客轨迹中的人身检测框计算重合度Cskeleton,若序列中的某个骨骼关节点坐标落在人身检测框中,则重合度加一,若骨骼关节点序列与一个以上的人身检测框重合度相同,则使Cskeleton乘以一个权重系数ωskeleton以作修正再进行进一步的大小比较,即骨骼关节点在分布人身检测框中分布越均匀,权重系数ωskeleton越大,ωskeleton计算公式如下:
[0106]
[0107] 其中,maxΔPPSkeletonx为骨骼关节点序列中关节点横坐标差值的最大值,maxΔPPSkeletony为骨骼关节点序列中关节点纵坐标差值的最大值,PPBodywidth为对应的乘客人身检测框宽度,PPBodyheight为对应的乘客人身检测框高度,计算骨骼关节点序列与每个人身检测框的重合度,选择最大重合度对应的人身检测框作为该骨骼关节点序列对应的人身检测框,并将该骨骼关节点序列添加到乘客轨迹列表中对应乘客的骨骼关节点序列元素之中;
[0108] 7.2)归一化乘客轨迹列表中的骨骼关节点序列元素中的18个骨骼关节点横纵坐标x和y,将x和y分别减去对应人身检测框的左上角顶点的横纵坐标,然后除以人身检测框的宽和高进行归一化,归一化后的的横纵坐标取值为0到1之间。
[0109] 在步骤8)中,通过分析乘客搭乘手扶电梯的轨迹列表中的乘客骨骼关节点信息,判别乘客搭乘手扶电梯过程中是否发生摔倒行为,包括以下步骤:
[0110] 8.1)采集乘客搭乘手扶电梯过程中摔倒行为的视频帧,得到乘客摔倒时的骨骼关节点序列,分析乘客摔倒行为,从骨骼关节点信息方面找到摔倒行为的共性,提取一系列具有代表性的关键骨骼关节点序列,以此为模板进行待匹配;
[0111] 8.2)测试时,在当前帧图像从乘客轨迹列表中得到每个乘客对应的骨骼关节点序列,使其和预先制作好的摔倒行为骨骼关节点序列模板进行匹配,计算匹配相似度并选择其中最大值Mskeleton,和预先设定的阈值Tskeleton进行比较,其中采用乘客骨骼关节点序列和模板之间的欧氏距离的负对数作为匹配相似度,若大于该阈值则认为乘客在该帧图像发生摔倒行为,然后从乘客刚出现摔倒行为的帧FrameSkeletonbegin开始,直到乘客恢复正常行为的帧FrameSkeletonend为止,统计发生摔倒行为的帧数为FrameSkeletonsum,若FrameSkeletonsum大于预先设定的阈值TSkeletonsum,则检测到乘客在搭乘手扶电梯的过程中发生摔倒行为,并将摔倒行为异常情况反馈至手扶电梯控制台。
[0112] 本发明与现有技术相比,具有如下优点与有益效果:
[0113] 本发明可以对手扶电梯区域进行实时监控,稳定准确地分析搭乘手扶电梯的乘客行为,进而判断乘客是否发生摔倒及其它安全事故,并将突发的安全事故问题通过通信设备及时反馈到手扶电梯控制台,从而根据安全事故类别启动相应的应急方案,最大化地减少安全事故造成的不良影响。此外,本发明存储了搭乘手扶电梯的乘客人脸信息、人身信息和骨骼关节点信息,可通过这些中间信息更深入地挖掘出乘客的自身内在信息,有助于系统后续的扩展及改善。附图说明
[0114] 图1为本发明的算法流程图
[0115] 图2为本发明中摄像头的安装位置示意图。
[0116] 图3为摄像头实时采集的原始图像。
[0117] 图4为搭乘手扶电梯的乘客人脸检测图。
[0118] 图5为基于乘客人脸的历史乘客轨迹图。
[0119] 图6为预测搭乘手扶电梯的乘客人身并以外接矩形框进行标记的示意图。
[0120] 图7为将乘客骨骼关节点序列中的18个关节点按照一定顺序用直线连接在一起构成火柴人形状的示意图。

具体实施方式

[0121] 下面结合具体实施例对本发明作进一步说明。
[0122] 本实施例所提供的基于深度学习的手扶电梯乘客摔倒检测算法,首先利用FHOG描述子和SVM分类器检测乘客人脸,用KCF跟踪乘客人脸,基于乘客人脸信息新建乘客轨迹列表,接着用迁移学习重新训练yolo2算法模型来检测乘客人身,匹配乘客人脸和乘客人身,将人身信息加入到轨迹列表中,然后利用openpose深度学习算法提取乘客骨骼关节点序列,匹配乘客人身与乘客骨骼关节点序列,将骨骼关节点信息加入到轨迹列表中,最后分析轨迹列表中的骨骼关节点信息,检测乘客摔倒行为,算法流程图如图1所示,其具体情况如下:
[0123] 1)乘客搭乘手扶电梯视频图像采集;
[0124] 采用分辨率为640*480的USB接口广角摄像头进行手扶电梯区域图像采集,其广角为150度,可以360度旋转,带UVC驱动在Linux系统免驱使用,输出格式为YUYV(默认格式)或者MJPG,如图2所示,摄像头倾斜安装在与手扶电梯楼层板水平且距离楼层板约4m的支架上,与手扶电梯中间处垂直对齐,摄像头方向朝向扶梯中部,使其拍摄范围覆盖手扶电梯的整个区域,且能够清楚地拍摄到搭乘手扶电梯的乘客,采集的乘客搭乘手扶电梯原始视频图像如图3所示。
[0125] 2)利用FHOG描述子和SVM分类器进行手扶电梯乘客人脸检测;
[0126] 利用FHOG描述子对搭乘手扶电梯的乘客人脸进行特征提取,然后利用SVM分类器作为人脸检测器进行乘客人脸检测,进行乘客人脸检测是因为乘客人脸不容易发生形变且面积小不容易产生重叠,方便后续的KCF跟踪,包括以下步骤:
[0127] 2.1)图像金字塔上采样
[0128] 利用图像金字塔对输入图像进行一次上采样,使输入图片的尺寸放大为原来的两倍,该做法的目的是为了避免图像中的人脸尺寸过小而导致漏检。
[0129] 2.2)颜色空间归一化
[0130] 手扶电梯场景容易受到外部光照的干扰,而颜色空间归一化通过对图像颜色信息进行归一化降低光照不均匀对手扶电梯乘客图像的影响,利用Gamma压缩在每个颜色通道上进行归一化操作,Gamma压缩公式为:
[0131] H(x,y)=H(x,y)Gamma
[0132] 其中Gamma为压缩因子,取Gamma值为0.5,H(x,y)为像素点(x,y)的像素值;
[0133] 2.3)计算图像每个像素点的梯度
[0134] 梯度对应一阶导数,在手扶电梯图像中任意一个像素点H(x,y)的梯度▽H(x,y)是一个向量:
[0135]
[0136] 其中,Gx(x,y)为像素点(x,y)在水平方向上的梯度,Gy(x,y)为像素点(x,y)在垂直方向上的梯度,Gx(x,y)和Gy(x,y)可用数字图像中像素值的差分运算来计算,应用一维离散微分模板[-1,0,1]和[-1,0,1]T简单快速地分别计算出Gx(x,y)和Gy(x,y):
[0137]
[0138] 梯度▽H(x,y)的幅值和方向分别为:
[0139]
[0140] 其中,G(x,y)为梯度▽H(x,y)的幅值, 为梯度▽H(x,y)的方向;
[0141] 2.4)提取整幅图像的FHOG特征
[0142] FHOG特征是HOG特征的改进,FHOG特征只保留了HOG特征中的细胞单元(Cell),而用于Cell归一化操作的块(Block)则用另外的归一化操作来代替,定义Cell的大小为8*8的像素大小,将该Cell与位于其正上方、正左方和左上方的Cell做归一化操作,计算归一化后的Cell里的所有像素的梯度方向及梯度幅度,将0到360度每隔20度划分为一个bin区间,划分得到18个bin的梯度方向直方图,令每个像素的梯度方向以梯度幅值大小为权重加权投影到相应的bin区间中,这样即得到18维的特征向量,其对梯度方向符号敏感,然后将360度分成两个180度,每个0到180度均每隔20度划分为一个bin区间,划分得到9个bin的梯度方向直方图,令每个像素的梯度方向以梯度幅值大小为权重加权投影到相应的bin区间,得到9维的特征向量,其对梯度方向符号不敏感,然后分别将该Cell与位于其正上方、正右方和右上角的Cell做归一化,位于正下方、正右方和右下角的Cell做归一化,位于正下方、正左方和左下角的Cell做归一化,从而得到另外三个归一化的Cell,重复第一个归一化的Cell的梯度方向直方图计算操作,总共得到4*18维对梯度方向敏感的特征向量和4*9维对方向不敏感的特征向量,将其看作4*18的矩阵和4*9的矩阵,4*18的矩阵每列中的元素进行累加,得到FHOG特征的前18维特征,4*9的矩阵每行和每列中的元素进行累加,得到FHOG特征的后4+9=13维特征,最后在末尾添加一个0,补足得到一个32维的特征向量,即为每个Cell的FHOG特征向量,对整幅图像划分成若干个Cell,并依次提取FHOG特征,即可得到整幅图像的FHOG特征;
[0143] 2.5)滑动扫描图片检测乘客人脸
[0144] 设置扫描窗口大小为80*80,对原图像以 的比率进行金字塔下采样,即每次采样缩小成上一层图像的 最下层为原图,往上逐层递减,构成多层的图像金字塔,当采样得到的图像小于扫描窗口时停止下采样,通过设置固定大小的扫描窗口和构造多层的图像金字塔,即可达到在不同空间尺度上检测人脸的目的;
[0145] 2.6)利用SVM分类器进行乘客人脸检测
[0146] 假定训练集样本T={(x1,y1),(x2,y2),…,(xN,yN)},xi∈Rd,yi∈{+1,-1},其中xi为第i个训练样本,是d维向量,yi是第i个训练样本的标签,+1代表正样本,即乘客人脸样本,-1代表负样本,即非乘客人脸样本,线性SVM假设这些样本是线性可分的,则存在一个超平面ωTx+b=0,其中ω∈Rd是线性判别函数的权值,b是一个常数值的偏差量,能够将N个样本正确地划分开来,即:
[0147]
[0148] 调整b的尺度,并合并两个不等式可得到以下约束不等式:
[0149] yi[ωTxi+b]≥1,i=1,2,…,N
[0150] 离分类超平面最近的正负样本到分类超平面的距离称作分类间隔,分别是+1和-1,计算可得分类间隔M为:
[0151]
[0152] SVM的目的是最大化分类间隔M,最大分类间隔对应的分类超平面称为最优分类超平面,求解最优分类超平面,可转化为不等式约束下的优化问题:
[0153]
[0154] s.t yi[ωTxi+b]-1≥0,i=1,2,…,N
[0155] 通过拉格朗日法可求得上述优化问题的对偶问题:
[0156]
[0157]
[0158] αi≥0,i=1,2,…,N
[0159] 其中αi≥0,i=1,2,…,N为拉格朗日乘子,α为拉格朗日乘子向量,该问题的最优解αi*,i=1,2,…,N可通过求二次优化问题求解,然而线性SVM只能解决线性问题,基于FHOG特征描述的手扶电梯乘客人脸检测问题属于非线性问题,需要引入特征变换来将原空间的非线性问题转化为新空间的线性问题,对样本特征x进行非线性变换,得到在新空间的样本特征 其中 为变换函数,通过拉格朗日求得的对偶问题变为:
[0160]
[0161]
[0162] αi≥0,i=1,2,…,N
[0163] 令函数K(xi,xj)为核函数,引入核函数的目的是为了避免直接计算变换后的在高维空间的新特征 和 而是一步到位地计算两个新特征的内积和,根据泛函空间的有关理论,任一核函数只要满足正定条件,肯定存在一个特征变换 使
其中x′为样本特征,特征变换后的空间也称作可再生核希尔伯
特空间,在手扶电梯乘客人脸检测问题中,采用的核函数为:
[0164]
[0165] 该核函数又被称作是径向基(RBF)核函数,相当于将原来d维特征向量映射为新空间的无限维向量,考虑到变换后的特征在新空间出现线性不可分的情况,即不可能被所有样本满足,此时可为每个样本引入一个松
弛变量ξi,i=1,2,…,N,使所有样本都满足以下不等式 松
弛变量之和 越小,代表样本错分程度越低,SVM效果越好,所以需要将松弛变量之和作为一个正则项引入到求解最优分类超平面的目标函数中,即将 变为:
[0166]
[0167] 其中C是一个常量超参数,C值越小,代表对错误分类样本的容忍度越大,对正确分类样本的分类间隔要求越高,C值越大,代表对错误分类样本的容忍度越小,对正确分类样本的分类间隔要求越低,手扶电梯的乘客人脸识别问题中,设置C值为1,引入松弛变量后的[0168]
[0169] 拉格朗日对偶问题变为:
[0170] 0≤αi≤C,i=1,2,…,N
[0171] 得到对偶问题的解后,即可得到原问题最终解: 支持向量机的决策函数可写成 其中b可通过以下式子来求解:
[0172]
[0173] 总而言之,SVM通过不断迭代求解二次优化问题求解αi*,i=1,2,…,N,进而得到当目标函数 小于预先设定的阈值时,训练停止,得到最终的决策函数 检测时,将该决策函数应用在滑
动扫描窗口里的待测样本,若决策函数大于0则判断该样本为正样本,即检测得到搭乘手扶电梯的乘客人脸,并以外接矩形框框出,如图4所示。
[0174] 3)利用核相关滤波器(KCF)对手扶电梯乘客人脸进行跟踪,基于乘客人脸信息新建乘客搭乘手扶电梯的轨迹列表;
[0175] 利用核相关滤波器(Kernelized Correlation Filter,KCF)对手扶电梯乘客人脸进行跟踪,并基于乘客人脸信息新建乘客搭乘手扶电梯的轨迹列表,包括以下步骤:
[0176] 3.1)令基于FHOG描述子和SVM分类器检测得到的手扶电梯乘客人脸外接矩形框为目标样本,方便起见记作向量x,由其循环移位可得到若干个训练样本,各训练样本表示成列向量xi,i=1,2,…n,将这n个向量依序排列可得到一个矩阵,形成了由x生成的循环矩阵,称作C(x),每个训练样本xi对应一个标签yi,以目标样本为正样本,其标签可设为1,由目标样本循环移位得到的目标周围样本看作负样本,标签根据与目标样本的距离分布到0到1之间,越靠近目标样本标签值越接近于1,所有训练样本的集合为矩阵X,所有样本标签的集合为列向量y;
[0177] 3.2)由训练样本xi及其标签训练yi得到人脸检测器,首先假设该样本集线性可分,T将其看作线性回归问题,则其决策函数为f(xi)=ωxi,其中ω为列向量,表示各个训练样本在决策函数中的权重系数,考虑到决策函数的结构复杂性问题,为了提高其泛化能力,在决策函数的基础上添加一个正则项λ||ω||2,其中λ为正则项系数,则该线性回归问题的目标函数即为:
[0178]
[0179] 通过最小二乘法求得最优解ω*为:
[0180] ω*=(XHX+λI)-1XHy
[0181] 其中I为单位矩阵,H为共轭转置。然而,线性回归只能解决线性问题,为了解决非线性问题,需要引入一个非线性映射函数φ(·)将原空间的xi映射到新空间的φ(xi),此时T决策函数变为f(xi)=ωφ(xi),目标函数变为:
[0182]
[0183] 通过拉格朗日法求得上述优化问题的对偶问题:
[0184]
[0185] 其中α为拉格朗日乘子,该问题为二次最优问题,对函数求导数,导数的零点即为拉格朗日最优解α*:
[0186] α*=(φ(X)φ(X)T+λI)-1y
[0187] 原问题的最优解ω*为:ω*=φ(X)Tα*;
[0188] 3.3)通过上一帧的训练样本训练得到决策函数f(xi)=ωTφ(xi)后,在新的一帧中,以上一帧的目标样本所在的区域作为初始预测区域,并通过循环移位得到初始预测区域的周围区域,得到测试样本zi,i=1,2,…n,构成测试样本矩阵Z,将测试样本zi代入决策函数求得该样本的响应为f(zi)=αTφ(X)φ(zi),则最大响应对应的测试样本即为在当前帧KCF跟踪得到的目标区域;
[0189] 3.4)KCF算法将训练样本和测试样本写成循环矩阵的形式,利用循环矩阵在傅里叶空间中可对角化的性质,将运算过程中涉及的大量矩阵运算转化为矩阵点乘运算,大大降低了运算量,提高了跟踪算法的运算速度,使利用KCF跟踪搭乘手扶电梯的乘客人脸满足实时性的要求,求解目标函数对偶问题时,可令K表示新空间的核矩阵,则K=φ(X)φ(X)T,* -1于是α=(K+λI) y,可证明K是一个循环矩阵,由循环矩阵的分解性质可知:
[0190]
[0191] 其中,F是离散傅里叶矩阵, 为Kxx的傅里叶变换,Kxx=φ(x)Tφ(X)T为行向量,是K中的第一行,则式子两边做傅里叶变换,再用傅里叶反变换得到:
[0192]
[0193] 同理,求解测试样本响应时,令Kz表示新空间的核矩阵,则Kz=φ(X)φ(Z)T,可证明Kz也是一个核矩阵,由循环矩阵的分解性质可知:
[0194]
[0195] 其中,Kxz为Kz的第一行,然后将式子两边做傅里叶变换,再用傅里叶反变换得到:
[0196]
[0197] 此外,上述采用的核函数为高斯核函数:
[0198]
[0199] 其中x′为样本特征;
[0200] 3.5)通过KCF跟踪上一帧的手提电梯乘客人脸,可在当前帧得到一系列跟踪框,令其中心点tj,j=1,2,…,n,其中n为跟踪框的个数,然后在当前帧通过步骤2)的FHOG描述子和SVM分类器检测得到手扶电梯乘客人脸pi,i=1,2,…,m,其中m为检测框的个数,计算pi和tj中心之间的欧氏距离dij,并以其为矩阵元素构成一个n行m列的矩阵,注意若m大于n,代表人脸检测器出现误检或者有新人脸出现,则矩阵添加m-n行构成一个方阵,且新增行里的元素全为0,若m小于n,则代表人脸检测器出现漏检或者人脸离开监控区域,此时维持矩阵不变,若m等于n,则代表人脸检测器正确检测或者上述错误情况发生重叠导致,此时维持矩阵不变,得到人脸矩阵后,判断dij是否大于预先设定的阈值,如果大于则代表跟踪到的人脸框和检测到的人脸框相距太远,不可能为同一目标,将dij改为无穷大,若一列中所有元素都为无穷大,则删除该列,经过以上步骤,即可构成人脸匹配矩阵,然后矩阵每一列取一个行号不重复的元素,共计有k种可能的组合,选择其中元素和最小的组合作为最优组合,则最优目标为: 其中每个dij中的j要互不相同,该最优组合中对应的每个元素dij的行列号分别代表第i个人脸检测框和第j个人脸跟踪框匹配成功,为每个人脸检测框新建一个乘客轨迹列表,其中乘客轨迹列表以时间为次序每帧对应列表中的一个元素,每个元素包含该乘客在对应帧的一系列信息,如人脸检测框的大小及宽高等信息,及累加检测强度ConfFace,计算公式为:
[0201] ConfFace=ConfFace+ConfFramek
[0202] ConfFarmek=a(FT)2-a(FT-1)2-b(NFT)2+b(NFT-1)2
[0203] 其中,ConfFramek为第k帧的检测强度,a为匹配系数,b为不匹配系数,FT为人脸检测框和人脸跟踪框连续匹配的帧数,NFT为人脸检测框和人脸跟踪框连续不匹配的帧数,显然可知FT*NFT=0,即有且仅有一个不为0,此外ConfFace若超出上限阈值ConfFaceup,则使ConfFace=ConfFaceup,计算乘客轨迹在当前帧图像的ConfFace后,添加进乘客轨迹列表中,将其和预先设置的起始阈值TFaceBeg和终止阈值TFaceEnd进行比较,若大于TFaceBeg,则认为人脸检测器准确检测到一个手扶电梯的乘客人脸,显示人脸检测结果,若小于等于TFaceBeg,则停止显示人脸检测结果,若小于TFaceEnd,则认为该轨迹中的乘客人脸已经消失在监控区域中,应删除该对应的乘客轨迹,以与当前帧乘客在下一帧的人脸跟踪框相匹配的人脸检测框,作为乘客在下一帧对应的人脸检测框,并将该人脸检测框信息添加到下一帧的乘客轨迹列表之中,若再找不到当前帧乘客在下一帧的人脸跟踪框相匹配的人脸检测框,则采用乘客在下一帧的人脸跟踪框作为下一帧对应的人脸检测框,并将该人脸检测框信息添加到下一帧的乘客轨迹列表之中,基于乘客轨迹中的人脸检测框信息记录乘客的历史轨迹,如图5所示,其中乘客在每一帧的位置用乘客人脸检测框的中心点表示,其中中心点在图中用不同颜色的空心圆点表示,统计乘客轨迹显示的第一帧到当前帧的各帧乘客位置,构成乘客的历史轨迹。
[0204] 4)利用yolo2深度学习算法,用迁移学习方法重新训练乘客检测模型,进行手扶电梯乘客人身检测;
[0205] 利用yolo2深度学习算法,用迁移学习方法重新训练乘客检测模型,进行手扶电梯乘客人身检测,包括以下步骤:
[0206] 4.1)训练时,将乘客搭乘手扶电梯的图像作为输入图像,将其分成S*S个网格,每个网格要预测B个外接框(bounding box),每个bounding box包含5个元素,分别是该框的中心横坐标x、中心纵坐标y、框宽w、框高h和框的预测置信度confidence共5个值,其中,x和y要分别减去所属网格的左上角顶点坐标值再除以网格的宽和高来归一化到0-1之间,w和h要分别除以图像的宽和高归一化到0-1之间,confidence的计算公式为:
[0207]
[0208] Object为待预测目标,Pr(Object)为检测到物体的概率,若有目标落入网格中,则Pr(Object)=1,否则为0, 为预测的bounding box和实际的待预测目标(groud truth box)之间的重叠度,用交并比(Intersection Over Union,IOU)来衡量,若遇到某个bounding box和多个groud truth box相交的情况,则取最大IOU值作为 得到的confidence即为最大IOU对应类别的预测置信度,即一个bounding box只预测一个类别,此外,每个网格还有预测C种待预测类别的条件概率Pr(Classi|Object),即当有Object落在网格时其为第i类类别的概率,算法中设S为7,B为2,根据训练数据设C为20,则每张图片需要回归7*7*(2*5+20)=1470个参数,即输出的是一个7*7*30的张量(tensor);
[0209] 4.2)预测时,将每个bounding box预测的confidence值和所属网格的Pr(Classi|Object)相乘得到bounding box预测的某一类的概率(class-specific confidence score),和预先设置的阈值进行比较,保留高于阈值的bounding box,并进行非极大值抑制(Non-maximum suppression,NMS)处理,该处理是为了从一堆互相重叠的检测框中筛选出最终有用的检测框,经此处理最终得到检测结果;
[0210] 4.3)深度学习需要大量的样本进行模型的训练,样本越多模型的训练效果越好,而实际场景中获取训练样本的成本较高,所以需要迁移学习对模型进行训练,迁移学习的核心思想是先用别的训练集对模型进行训练,该训练集通常采用网上公开的大容量训练集,且包含目标类别,由于要进行手扶电梯乘客人身检测,所以采用PASCAL VOC训练集进行预训练,该训练集中包含行人在内的20个类别的训练样本,且每种样本的数量均有成千上万个,满足深度学习模型训练的样本数量要求,训练得到预训练模型后,去除yolo2模型的最后一层全连接层,并用根据实际问题设计新的全连接层来替代,在此即为乘客有无两种类别,保留除了该全连接层外的所有参数作为模型再训练的初始参数,向该修改后的模型输入自己本地的训练样本作再训练,迭代参数训练得到最终的yolo2模型,用该模型预测待测试图片,并以bounding box的形式进行输出,即预测搭乘手扶电梯的乘客人身并以外接矩形框进行标记,如图6所示。
[0211] 5)将手扶电梯乘客人脸和手扶电梯乘客人身进行匹配,把乘客人身信息加入到乘客搭乘手扶电梯的轨迹列表之中;
[0212] 因为KCF跟踪算法只对乘客人脸进行跟踪,为了跟踪到乘客人身,需要将手扶电梯乘客人脸和手扶电梯乘客人身进行匹配,把乘客人身信息加入到乘客搭乘手扶电梯的轨迹列表之中,包括以下步骤:
[0213] 5.1)将步骤4)中得到的乘客人身检测框PPBodyj,j=1,2…,n和乘客轨迹列表中的人脸检测框PPFacei,i=1,2…,m进行匹配,其中n为人身检测框的个数,m为轨迹列表中的人脸检测框或乘客的个数,对PPFacei和PPBodyj进行匹配;
[0214] 5.2)对于每个PPFacei,统计其重复出现于人身检测框的的次数记为PPFaceNumi,若PPFaceNumi=1,则说明该人脸检测框有且仅出现在一个人身检测框PPBodyj中,则PPFacei和PPBodyj匹配成功,并从匹配序列中消除成功匹配的PPFacei和PPBodyj,然后重新进行匹配,直到找不到匹配的PPFacei和PPBodyj;
[0215] 5.3)匹配完有且仅出现在一个人身检测框的PPFacei后,此时出现两种情况,一是PPFaceNumi=0,说明人脸检测框找不到对应的人身检测框,可采用乘客轨迹中上一帧乘客人脸检测框对应的人身检测框来代替该帧人脸检测框对应的人身检测框,若PPFaceNumi>1,则根据先验规则选择与其匹配度最高的人身检测框PPBodyj,匹配成功后消除成功匹配的PPFacei和PPBodyj;
[0216] 5.4)重复执行5.2)和5.3),直到只剩下PPFaceNumi=0对应的人脸检测框,则乘客轨迹中的所有人脸检测框与人身检测框匹配过程结束,将与人脸检测框匹配对应的人身检测框信息添加到乘客轨迹列表中对应乘客的人身检测框元素之中。
[0217] 6)利用openpose深度学习算法提取乘客搭乘手扶电梯时的骨骼关节点信息;
[0218] 利用openpose深度学习算法提取乘客搭乘手扶电梯时的骨骼关节点信息,其中乘客的全身骨骼关节点用一串序列PPSkeleton表示,序列中包含18个元素,每个元素包含一个骨骼关节点信息(x,y,confidence),其中x和y分别是骨骼关节点在图像中的横坐标和纵坐标,confidence为该骨骼关节点的检测置信度,其值为0到1之间,18个关节点按顺序从前到后分别是鼻子(Nose)、颈(Neck)、右肩(RShoulder)、右肘(RElbow)、右手腕(RWrist)、左肩(LShoulder)、左肘(LElbow)、左手腕(LWrist)、右髋(RHip)、右膝盖(RKnee)、右脚踝(RAnkle)、左髋(LHip)、左膝盖(LKnee)、左脚踝(LAnkle)、右眼(REye)、左眼(LEye)、右耳(REar)、左耳(LEar),将乘客骨骼关节点序列中的18个关节点按照一定顺序用直线连接在一起,构成火柴人形状,如图7所示。
[0219] 7)将手扶电梯乘客人身与手扶电梯乘客骨骼关节点进行匹配,将乘客骨骼关节点信息加入到乘客搭乘手扶电梯的轨迹列表之中;
[0220] 因为跟踪算法只跟踪到乘客人脸及与其匹配的乘客人身,所以需要将手扶电梯乘客人身与手扶电梯乘客骨骼关节点进行匹配,将乘客骨骼关节点信息加入到乘客搭乘手扶电梯的轨迹列表之中,包括以下步骤:
[0221] 7.1)针对每个乘客的骨骼关节点序列,使其中18个骨骼关节点坐标(x,y)分别和每个乘客轨迹中的人身检测框计算重合度Cskeleton,若序列中的某个骨骼关节点坐标落在人身检测框中,则重合度加一,若骨骼关节点序列与一个以上的人身检测框重合度相同,则使Cskeleton乘以一个权重系数ωskeleton以作修正再进行进一步的大小比较,即骨骼关节点在分布人身检测框中分布越均匀,权重系数ωskeleton越大,ωskeleton计算公式如下:
[0222]
[0223] 其中,maxΔPPSkeletonx为骨骼关节点序列中关节点横坐标差值的最大值,maxΔPPSkeletony为骨骼关节点序列中关节点纵坐标差值的最大值,PPBodywidth为对应的乘客人身检测框宽度,PPBodyheight为对应的乘客人身检测框高度,计算骨骼关节点序列与每个人身检测框的重合度Cskeleton,选择最大重合度对应的人身检测框作为该骨骼关节点序列对应的人身检测框,并将该骨骼关节点序列添加到乘客轨迹列表中对应乘客的骨骼关节点序列元素之中;
[0224] 7.2)归一化乘客轨迹列表中的骨骼关节点序列元素中的18个骨骼关节点横纵坐标x和y,将x和y分别减去对应人身检测框的左上角顶点的横纵坐标,然后除以人身检测框的宽和高进行归一化,归一化后的的横纵坐标取值为0到1之间。
[0225] 8)通过分析乘客搭乘手扶电梯的轨迹列表中的乘客骨骼关节点信息,判别乘客搭乘手扶电梯过程中是否发生摔倒行为。
[0226] 因为乘客发生摔倒行为时人体关节点会有明显的变化,所以可通过乘客骨骼关节点序列信息推断乘客摔倒行为,利用模板匹配的思想,提取关键帧的乘客骨骼关节点序列作为模板,在检测摔倒行为时将提取得到的骨骼关节点与模板进行匹配,可判别乘客搭乘手扶电梯过程中是否发生摔倒行为,包括以下步骤:
[0227] 8.1)采集乘客搭乘手扶电梯过程中摔倒行为的视频帧,得到乘客摔倒时的骨骼关节点序列,分析乘客摔倒行为,从骨骼关节点信息方面找到摔倒行为的共性,提取一系列具有代表性的关键骨骼关节点序列,以此为模板进行待匹配;
[0228] 8.2)测试时,在当前帧图像从乘客轨迹列表中得到每个乘客对应的骨骼关节点序列,使其和预先制作好的摔倒行为骨骼关节点序列模板进行匹配,计算匹配相似度并选择其中最大值Mskeleton,和预先设定的阈值Tskeleton进行比较,其中采用乘客骨骼关节点序列和模板之间的欧氏距离的负对数作为匹配相似度,若大于该阈值则认为乘客在该帧图像发生摔倒行为,然后从乘客刚出现摔倒行为的帧FrameSkeletonbegin开始,直到乘客恢复正常行为的帧FrameSkeletonend为止,统计发生摔倒行为的帧数为FrameSkeletonsum,若FrameSkeletonsum大于预先设定的阈值TSkeletonsum,则检测到乘客在搭乘手扶电梯的过程中发生摔倒行为,并将摔倒行为异常情况反馈至手扶电梯控制台。
[0229] 以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈