首页 / 专利库 / 视听技术与设备 / 帧间位移误差 / 基于计算机视觉的电梯轿厢内异常行为的检测方法

基于计算机视觉电梯轿厢内异常行为的检测方法

阅读:503发布:2020-05-15

专利汇可以提供基于计算机视觉电梯轿厢内异常行为的检测方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于 计算机视觉 的 电梯 轿厢 内异常行为的检测方法,通过结合 帧 间差分法的ViBe 算法 获取运动目标的外部轮廓,在外部轮廓的 基础 上获得轿厢内乘客身体的高宽比信息;通过YOLOv3神经网络对轿厢内的人体头部数量和 位置 进行检测。根据YOLOv3神经网络检测到的人头数量,将轿厢内的异常行为检测分单人,两人及以上两种情景。在单人情景下,利用乘客人体轮廓的高宽比的变化和乘客人头的垂直移动距离,实现摔倒行为的检测。在两人及以上情景中,结合帧间差分法的ViBe算法获得的目标轮廓的基础上,利用金字塔LK光流算法计算乘客的平均 动能 ,实现暴 力 侵害行为的检测。本发明视频输入与检测同时进行,达到实时检测的效果。,下面是基于计算机视觉电梯轿厢内异常行为的检测方法专利的具体信息内容。

1.一种基于计算机视觉电梯轿厢内异常行为的检测方法,其特征在于步骤如下:
步骤1:外部轮廓检测,通过结合间差分法的ViBe算法获取运动目标的外部轮廓,并在外部轮廓的基础上获得进入轿厢的乘客身体的高宽比信息;
步骤2:人数头像检测,通过YOLOv3神经网络对电梯轿厢内的人体头部进行检测,并且获得人头目标的位置信息;根据YOLOv3神经网络检测到的人头数量,将电梯内的异常行为检测分为单人,两人及以上两种情景;
步骤3:基于人体轮廓和头部的摔倒检测,在单人情景下,利用乘客人体轮廓的高宽比的变化和乘客人头的垂直移动距离,实现对摔倒行为的检测;
步骤4:多人动能检测,在两人及以上情景中,在结合帧间差分法的ViBe算法获得的目标轮廓的基础上,利用金字塔光流算法,计算乘客的平均动能,实现对暴侵害行为的检测。
2.根据权利要求1所述的基于计算机视觉的电梯轿厢内异常行为的检测方法,其特征在于外部轮廓检测,结合帧间差分法的ViBe算法检测运动目标的过程如下:
步骤1.1:对第k帧图像使用原始ViBe算法进行运动前景检测,将第k帧图像中的像素点分类为背景点和前景点;同时利用帧差法获取第k-1帧和第k帧的差值二值图像Id;利用得到的差值图像对ViBe算法的检测结果进行更新;
步骤1.2:利用帧间差分法获取第k-1帧和第k帧的差值二值图像Id进行更新;对差值二值图像Id进行均值滤波,去除噪声;进行膨胀处理,用以填充差值二值图像Id中ROI的小空洞;进行腐蚀处理,用以消除差值二值图像Id中的剩余噪声;最后得到经过形态学处理的只包含完整ROI的二值图像Id';
步骤1.3:接步骤1.1,将包含完整ROI的二值图像Id'引入到ViBe算法的背景更新过程中;第k帧中所有的像素点都通过再分类后,可以获得结合了帧间差分法的分类二值图像Iv;
步骤1.4:对步骤1.3的输出分类二值图像Iv进行形态学处理;进行膨胀处理,用以填充分类二值图像Iv中ROI的小空洞;进行腐蚀处理,用以消除分类二值图像Iv中的剩余噪声,得到最后的二值图结果Iv';
步骤1.1-1.4,可以获得第k帧图像中的运动前景,即运动目标轮廓。
3.根据权利要求2所述的基于计算机视觉的电梯轿厢内异常行为的检测方法,其特征在于结合帧间差分法的ViBe算法具体为:
在背景建模的过程中,基于某一个像素点x的灰度值和它的邻域像素的灰度值是近似这一假设,通过随机选取N(N是正整数)个邻域灰度值为像素点x建立样本集M(x)={p1,p2,p3,…,pN},样本集中的p1,p2,p3,…,pN指的是邻域像素点的灰度值;用pt(x)表示在t时刻像素点x的灰度值,用SR(pt(x))表示与pt(x)的差值小于阈值R的点构成的一个以pt(x)为中心,R为半径的圆形集合,其中R是正实数;圆形集合SR(pt(x))和样本集M(x)的交集元素的数量n,n是非负整数,即是在样本集M(x)中有n个像素点与像素点x相似:
#{SR(pt(x))∩{p1,p2,p3,…,pN}}
设阈值为nth,nth是正整数,若n>nth,则将像素点x归类为背景,否则就将像素点x归类为前景,即运动的目标;利用帧间差分法可以获取第k-1帧和第k帧的差值二值图像Id,然后通过形态学处理获得二值图像Id′;若第k帧图像中的像素点x被归类为前景点,则在二值图像Id′中,以与像素点x相同坐标的像素点x'为中心的8个邻域中,用 和 分别指代像素点x'和8个邻域中灰度值为0的像素点的个数;
考虑到中心点和邻域点所拥有的权重不同,为中心点x'赋予权值k,k是正整数,构建概率函数 将像素点的分类转化为概率问题;当中心点及其8个邻域中的灰度值为0的个数超过一定阈值,即P的大小超过阈值T,T是正整数,可以证明在以x′点为中心的像素九宫格中,背景所占的面积更大,就认为点x'为背景,即像素点x应该属于背景;否则就证明,以点x'为中心的像素九宫格,前景所占的面积更大,应该将像素点x属于运动前景点;即为了应对可能的背景变化,当像素点被判断为背景时,就以一定的概率β对背景模型进行随机更新,β是实数
Random{p1,p2,p3,…,pN}←pt(x)
即将{p1,p2,p3,…,pN}中的随机一个值,用pt(x)代替。
4.根据权利要求1所述的基于计算机视觉的电梯轿厢内异常行为的检测方法,其特征在于人数头像检测按照如下步骤进行:
步骤2.1:考虑到在电梯视频监控中,乘客很少变换位置和姿态,因此获取的训练样本重复率很高;所以,将获取的电梯监控视频做减帧处理,从而降低一个视频序列中,重复的样本数;将视频按帧保存为图像序列,将图像序列中包含清晰人头目标的图像作为原始的人头图像序列;
步骤2.2:使用labelimg工具对人头图像序列进行标记处理,考虑到轿厢内乘客通常都是面对轿厢站立,因此在标记时,应选择正对后脑、斜对后脑或者侧对头部的样本进行标记,尽可能的保留头部背面的样本特征,而不是包含脸部的头部前面;通过标记工具,获取标记框的信息,以txt文档的形式保存,并且txt文档的命名要和图像一一对应;最后,将标注好的图像分为训练数据集和测试数据集,完成对人头图像序列的标记工作;
步骤2.3:在训练网络中载入训练数据集,进行特征训练;根据人头图像序列的数量,选择适当的训练步数和学习率,每隔一定的步数保存模型,以备在训练过拟合后使用;在损失率不再下降的时候停止训练,避免训练次数过多造成过拟合;训练结束后,对保存的YOLOv3模型进行测试,选择检测效果最好的YOLOv3神经网络模型使用;
步骤2.4:部署训练好的YOLOv3神经网络模型,将电梯轿厢内的监控视频输入到模型中进行检测;YOLOv3网络模型将视频按一帧一帧进行检测,当检测到图像中有人头时,标记人头,并且返回人头标记框位置;最后通过数标记框的方法,得到当前图像中的人头数;将视频从第一帧处理到最后一帧,就可以得到某一时间在电梯轿厢内的乘客数量。
5.根据权利要求4所述的基于计算机视觉的电梯轿厢内异常行为的检测方法,其特征在于YOLOv3网络实现头部人数检测具体为:
通过训练YOLOv3神经网络,实现对电梯轿厢内人头部的检测,以此来获取电梯轿厢内的准确人数;首先将输入的图片划分为S×S个栅格,每个栅格预测B个边界框,对应B个先验框;定义检测的置信度
bx=σ(tx)+cx
by=σ(ty)+cy
每个预测的边界框都包含五个预测值:边界框的中心坐标(x,y)、边界框的高和宽(h,w)、目标的置信度;其中,bx、by、bh、bw分别是边界框的中心坐标、高和宽,ph和pw是先验框的高和宽;tx、ty、th和tw分别是网络预测的中心坐标、高和宽;t0是直接预测得到的边界框的置信度,在YOLOv3中将t0经过σ(·)变换后的σ(t0)作为边界框置信度的值;cx和cy是相对偏移量;σ(·)函数为logistic函数,将坐标归一化到0-1之间; 和 则代表边界框的缩放因子; 代表栅格预测的边界框与目标的重合面积,而Pr(Object)则表示栅格中是否包含目标物体;如果栅格中包含目标物体,则Pr(Object)=1,如果栅格中不包含目标物体,则Pr(Object)=0;
若待检测的目标种类超过1,则设当预测的栅格内包含物体时,该物体属于类别c的概率的条件概率为Pr(Classc|Object),则该预测框的置信度为目标属于类概率及重合面积相乘获得
在训练时,模型的损失函数定义为
其中coordError代表边界框的中心坐标(x,y)和边界框的高和宽(h,w)的损失,iouError代表栅格置信度Ci的损失,classError则代表分类概率pi(c)的损失;YOLO使用λcoord和λnoobj来修正包含目标的边界框和不包含目标的边界框的权重;设 表示物体obj在第i个栅格内,并且与第j个预测边界框的重合面积最大; 表示物体obj在第i个栅格内,不在第j个预测边界框内;
其中,Ci是第i个栅格的置信度,pi(c)是第i个栅格内目标属于c类的分类概率,classes代表需要检测的目标集合; 为网络预测值,xi,yi,wi,hi,Ci,pi(c)为标注的值;
在检测时,通过非极大值抑制方法,保留最准确的边界框,减少边界框的数量;非极大值抑制方法的实施方法如下:设检测结束后,得到的边界框为B1,B2,B3,…,Bn,边界框的置信度分别为P1,P2,P3,…,Pn;选择最大的置信度作为参考值,依次计算剩余边界框的重叠度U
U=max(P1,P2,P3,…,Pn)-Px
Px∈{P1,P2,P3,…,Pn-1}
当U小于阈值时,证明该类边界框已存在最优边界框,则将该类边界框去掉,保留Bn;在剩余的B1,B2,B3,…,Bm(m<n)中,再选择最大的边界框的置信度Pm作为参考值,重复上述过程;最终获得准确的标记框。
6.根据权利要求1所述的基于计算机视觉的电梯轿厢内异常行为的检测方法,其特征在于基于人体轮廓和头部的摔倒检测具体步骤如下:
步骤3.1:对第k帧图像的检测,有视频输入时,通过训练好的YOLOv3神经网络模型进行检测,对第k帧图像中的人头进行标记,返回标记框的位置信息,同时通过计数标记框,获得第k帧图像中准确的人数;
步骤3.2:当第k帧图像中的人数为1时,通过结合帧间差分法的ViBe算法,对第k帧图像进行处理,获得包含有ROI的二值图结果Iv';通过对二值图结果Iv'进行最大连通区域检测,可以将二值图结果Iv'中ROI的轮廓用矩形RROI框出;获得矩形RROI的高,记为H,将矩形RROI的宽,记为W;可得矩形RROI,也就是人体轮廓的高宽比δ
δ=H/W
与阈值T1相比,T1是实数,当δ<T1时,此时的矩形RROI呈现平状态,则判断乘客发生了跌倒;当δ≥T1时,此时的矩形RROI呈现竖直状态,就判断乘客可能是正常站立的,没有发生摔倒;
步骤3.3:当判断乘客可能是站立时,作为对轮廓检测的补充,对第k帧图像中乘客的头部位置ck(x,y)和第k-1帧图像中乘客的头部位置ck-1(x,y)进行比较,ck(x,y)包含第k帧图像头部标记框质心的x和y的坐标,即
D=|ck(x,y).y-ck-1(x,y).y|
D代表相邻两个图像中,头部标记框的质心在y方向上的位移的绝对值;与阈值T2相比,T2是实数,当D<T2时,则前后两帧中乘客的头部并没有发生明显的下落趋势,结合步骤3.2检测的结果,可以判断乘客是站立的;当D≥T2时,则前后两帧中乘客的头部发生明显的下落趋势,可以判断乘客摔倒;
重复步骤3.1-3.3,直到视频结束或者检测到的人数不为1为止;如果检测到有乘客摔倒,就发出报警信息,进行提示。
7.根据权利要求6所述的基于计算机视觉的电梯轿厢内异常行为的检测方法,其特征在于基于人体轮廓和头部的摔倒检测具体为:
当人体站立时,人体的轮廓通常呈现竖直状态;当人体躺下时,人体的轮廓则通常呈现水平状态,即
其中,H代表人体轮廓的像素高度,W代表人体轮廓的像素宽度;在简单判断人体姿势之后,由于摄像机拍摄视局限,如果人体顺着摄像机的拍摄角度倒下,在视频中人体仍旧保持竖直状态;考虑到在倒地的过程中,伴随有人体重心的下移,而人头的位移则更加明显;
因此,引入对头部移动距离的检测,作为摔倒检测的补充。
8.根据权利要求1所述的基于计算机视觉的电梯轿厢内异常行为的检测方法,其特征在于多人动能检测的具体的方法如下:
步骤4.1:当有视频输入时,通过训练好的YOLOv3神经网络模型进行检测,对第k帧图像中的人头进行标记,返回标记框的位置信息,同时通过计数标记框,获得第k帧图像中准确的人数;
步骤4.2:当检测得到的人数为2人及其以上时,通过结合帧间差分法的ViBe算法,对第k帧图像进行处理,获得二值图结果Iv';对二值图结果Iv'中的ROI进行边缘检测,获取只包含运动目标轮廓边缘的边缘二值图像Ive;检测边缘二值图像Ive中的角点,作为光流跟踪的特征点;
步骤4.3:通过金字塔LK光流法对第k-1帧图像和第k帧图像进行检测,在第k帧图像中估计出第k-1帧图像中的角点的位置,即对相邻两帧图像中的角点进行跟踪;设第k-1帧中某角点的位置为i=(x,y)T,则光流的计算过程,就是在第k帧图像中得到与该角点i相匹配的角点的位置i'=i+d=(x+dx,y+dy)T。其中d=[dx,dy]T是前后两帧图像中角点移动的位T
移,也可视为速度矢量,角点光流的计算就是求解d=[dx,dy];
步骤4.4:判断在第k-1帧图像和第k帧图像中,已匹配成功的角点i的位移d是否大于零;如果相邻两帧图像中,角点i的位移d=0,则证明该角点是静止的,与动作无关,可以将其过滤;如果相邻两帧图像中,角点i的位移d>0,则证明该角点是运动的,将角点i的位置保存;
步骤4.5:将每一个角点假设为一个质点,那么质点i在运动时就具有动能:
Ei(x,y)=ωi(x,y)·Vi2(x,y)
其中Ei(x,y)是点i的动能,ωi(x,y)是点i的权重,Vi2(x,y)=ui2(x,y)+vi2(x,y),ui(x,y)和vi(x,y)分别是角点i(x,y)在x和y方向的速度分量;
步骤4.6:在第k-1帧中,角点i的运动的角度为 在第k帧中,
与角点i相匹配的角点i'的运动角度为 设第k帧中角点的权重为:
其中, 是第k帧中角点i'的权重,它体现了角点在前后两帧中运动方向变化的程度;当角点的运动方向变化越大时,角点的权重越大,在现实中也符合打斗时运动杂乱无章的特性; 是第k-1帧图像中角点运动角度的均值,α是 的权重,体现了运动在前后两帧中的连续性;
步骤4.7:在已知各个角点的速度和权重的基础上,将一个视频帧中所有Ntol个角点的动能相加,Ntol是正整数,就可以得到第k帧的总动能:
9.根据权利要求8所述的基于计算机视觉的电梯轿厢内异常行为的检测方法,其特征在于基于金字塔LK光流的动能模型具体为:
通过使用光流法建立光流场,来获取视频图像中运动目标的速度大小和运动方向等运动信息;在满足以下三个条件:
(1)亮度恒定不变,就是同一点在不同的视频图像中,其亮度不会发生改变;
(2)小运动,即目标的位置不会随着时间的变化而发生剧烈的变化;
(3)空间一致,即在目标像素周围的区域Ω内,每个像素都拥有相同的光流矢量;
则相邻两帧图像的约束方程
I(x,y,t)=I(x+dx,y+dy,t+dt)
I(x,y,t)是t时刻(x,y)位置的像素点的亮度,而I(x+dx,y+dy,t+dt)则是t+dt时刻,像素点运动后的亮度,是保持不变的;假设移动的距离足够小,对约束方程进行泰勒公式展开,得到
ε代表无穷小项,可以忽略;图像的约束方程就可以定义为
其中, 可用x方向上的速度u表示, 可用y方向上的速度v表示,图像的约束方程可写为
在一个在大小为n×n邻域Ω内,通过加权平方和最小化来计算每个像素点的光流:
其中W2(X)是权重函数,用以区分邻域Ω中心和周围的加权;令
同时对于邻域Ω内所有的点X1,X2,X3,…,Xn, 约束方程可写为
其中,Ixi、Iyi和Wi分别是像素点i在x和y方向的梯度信息和权重函数;令
W=diag(W(X1),…,W(Xn)), 利用最小二
乘法得
最后,可得速度信息
电梯轿厢内的暴力侵害行为大部分都具备动作速度快,动作幅度大等特点;为了满足LK光流法的假设前提,使用图像金字塔进行修正;图像金字塔的最底层为原始图像,最顶层为最低分辨率的图像;设第k-1帧图像I中某角点的位置是i=(x,y)T,在第k帧图像J中与该角点相匹配的角点的位置为i'=i+d=(x+dx,y+dy)T,其中d=[dx,dy]T是前后两帧图像中角点移动的位移,也可视为速度矢量;在从顶层开始,计算每个点的光流值,在图像I和图像J上分别建立(2wx+1,2wy+1)的检测窗口,假设窗口内的像素点都具有相同的速度,即像素点都拥有相同的光流向量d。在检测窗口内,作为前后两帧相匹配的角点,因为在图像I中的角点(x0,y0)的灰度值I(x0,y0)和图像J中的角点(x0+dx,y0+dy)的灰度值J(x0+dx,y0+dy)最接近,所以I(x0,y0)-J(x0+dx,y0+dy)应是最小值,将光流向量d定义为使残差函数ε最小的矢量其中wx和wy是检测窗口的参数,是指检测窗口的大小;设顶层L图像中的光流误差为dLm,通过使残差函数ε(dLm)的一阶导数为0求得。光流的估计值为g,通常将顶层的光流值设为gLm=[0 0]T。若每层缩放为前一层的一半,则L-1层原始图像的光流
gL-1=2(gL+dL)
L是正整数,通常L≤4。沿着金字塔向下反馈,重复计算光流的估计值,可以得到金字塔底部,即原始图像中的光流信息
0 0
其中,g 是金字塔最底层图像的光流初始值,d 则是金字塔最底层图像中的光流误差,Lm代表最顶层;
对前景图像中的每个像素点的梯度和曲率进行计算,设每个前景点邻域内的二阶导数的自相关矩阵
其中K代表邻域窗口的大小,w(x,y)代表归一化操作的权值,Ix代表x方向上的梯度,Iy则代表y方向上的梯度,i和j代表邻域窗口在x和y方向上的偏移;Harris角点是二阶导数存在两个最大特征值的位置,定义判断角点的公式
其中 是相对权值常数,det[M(x,y)]为矩阵M(x,y)的行列式值,trace(M(x,y))是矩阵M(x,y)的迹;若二阶导数自相关矩阵的特征值为λ1和λ2,则det[M(x,y)]=λ1λ2,trace(M(x,y))=λ1+λ2;当Rth的值大于设定的阈值,就可以判断该点是角点;
使用金字塔LK光流算法,并结合角点构建动能模型,并将动能模型定义为:
E(x,y)=ω(x,y)·V(x,y)2
其中,E(x,y)是角点的动能,ω(x,y)是指该角点的权重,与角点的运动方向变化有关,用来代替角点的质量这一物理概念,V(x,y)就是指该角点的速度大小。

说明书全文

基于计算机视觉电梯轿厢内异常行为的检测方法

技术领域

[0001] 本发明涉及人工智能领域,尤其涉及一种基于计算机视觉的电梯轿厢内异常行为的检测方法。

背景技术

[0002] 基于视频的自动化异常行为检测系统,能够自动判断轿厢内乘客的异常行为,并根据检测结果发出信号。异常行为:在电梯轿厢内发生的有害行为,在本发明中指摔倒和暴侵害两种行为。由于一定区域内的视频监控数量极多,人工监控不仅耗时,效率极低,而且无法及时的发现乘客安全受到威胁,所以基于计算机视觉的行为识别技术是异常行为检测近年来的主要研究方向。
[0003] 目前,异常行为检测方法大致可分为三类,即:模板匹配法,轨迹分析法,统计学习法。模板匹配的方法可以分为三大类:有监督,半监督和无监督。基于监督的方法需要预定义正常行为和异常行为的模型,这些模型可以应用在事先已知异常行为的特定环境中。在仅使用正样本进行训练时,三类方法是相似的,很难在无法指定例外类型的实际复杂环境中有效工作。基于轨迹的方法,它分析了通过跟踪连续视频中特征点获得的轨迹,然后构建正常运动的模型,并最终检测出具有明显偏差的异常轨迹。在人群稀疏的情况下,基于轨迹的方法可以生成精确的轨迹。但是,在人群密集的情况下,基于轨迹的方法很难追踪物体。检测算法的最后一类是基于统计学习的方法,此类方法最明显的特点是依赖于从图像时空视频量中提取的低级特征,这些特征包括光流,直方图和纹理等。因为处理的数据较多,计算量大,运行速度等方面都有待提高。
[0004] 在视频场景内,与异常行为检测紧密相关的是运动目标的检测。目前运动目标检测的方法主要有:帧间差分法,光流法,背景建模法。帧间差分法通过相邻视频帧的差值运算可以很快的获得运动目标而且不受光照条件的影响,但是帧间差分法无法获取完整的运动目标轮廓,且对小范围的运动检测效果差。光流法通过构建光流场可以在未知的场景中实现对运动物体的检测,但是光流法的计算量大,通常并不会被直接用于运动目标的检测。背景建模法是常用的运动目标检测方法,通过构建背景模型将背景去掉,保留运动目标。背景建模法的精度依赖于背景模型建立的过程,且容易受到光线的影响。另外,机器学习的方法,如卷积神经网络也可以用于目标检测。
[0005] 本发明提出了一种基于计算机视觉的电梯轿厢内异常行为的检测方法。首先采用结合帧间差分法的ViBe算法和卷积神经网络YOLOv3对视频监控场景中的运动目标进行检测。通过结合帧间差分法的ViBe算法获取运动目标的外部轮廓,并在外部轮廓的基础上获得进入轿厢的乘客身体的高宽比信息;通过YOLOv3神经网络对电梯轿厢内的人体头部进行检测,并且获得人头目标的位置信息。根据YOLOv3神经网络检测到的人头数量,将电梯内的异常行为检测分为单人,两人及以上两种情景。在单人情景下,本发明利用乘客人体轮廓的高宽比的变化和乘客人头的垂直移动距离,实现对摔倒行为的检测。在两人及以上情景中,在结合帧间差分法的ViBe算法获得的目标轮廓的基础上,利用金字塔光流算法,计算乘客的平均动能,以实现对暴力侵害行为的检测。实验结果证明,本发明所提出的方法对摔倒行为检测,正确率为92.2%,对暴力侵害行为的检测,正确率为91.7%。

发明内容

[0006] 1、本发明的目的
[0007] 本发明为了解决电梯轿厢内乘客异常行为的自动检测问题,提出了一种基于计算机视觉的电梯轿厢内异常行为的检测方法。
[0008] 2、本发明所采用的技术方案
[0009] 本发明公开了一种基于计算机视觉的电梯轿厢内异常行为的检测方法,步骤如下:
[0010] 步骤1:外部轮廓检测,通过结合帧间差分法的ViBe算法获取运动目标的外部轮廓,并在外部轮廓的基础上获得进入轿厢的乘客身体的高宽比信息;
[0011] 步骤2:人数头像检测,通过YOLOv3神经网络对电梯轿厢内的人体头部进行检测,并且获得人头目标的位置信息;根据YOLOv3神经网络检测到的人头数量,将电梯内的异常行为检测分为单人,两人及以上两种情景;
[0012] 步骤3:基于人体轮廓和头部的摔倒检测,在单人情景下,利用乘客人体轮廓的高宽比的变化和乘客人头的垂直移动距离,实现对摔倒行为的检测;
[0013] 步骤4:多人动能检测,在两人及以上情景中,在结合帧间差分法的ViBe算法获得的目标轮廓的基础上,利用金字塔光流算法,计算乘客的平均动能,实现对暴力侵害行为的检测。
[0014] 更进一步,结合帧间差分法的ViBe算法检测运动目标的过程如下:
[0015] 步骤1.1:对第k帧图像使用原始ViBe算法进行运动前景检测,将第k帧图像中的像素点分类为背景点和前景点;同时利用帧差法获取第k-1帧和第k帧的差值二值图像Id;利用得到的差值图像对ViBe算法的检测结果进行更新;
[0016] 步骤1.2:利用帧间差分法获取第k-1帧和第k帧的差值二值图像Id进行更新;对差值二值图像Id进行均值滤波,去除噪声;进行膨胀处理,用以填充差值二值图像Id中ROI的小空洞;进行腐蚀处理,用以消除差值二值图像Id中的剩余噪声;最后得到经过形态学处理的只包含完整ROI的二值图像Id';
[0017] 步骤1.3:接步骤1.1,将包含完整ROI的二值图像Id'引入到ViBe算法的背景更新过程中;第k帧中所有的像素点都通过再分类后,可以获得结合了帧间差分法的分类二值图像Iv;
[0018] 步骤1.4:对步骤1.3的输出分类二值图像Iv进行形态学处理;进行膨胀处理,用以填充分类二值图像Iv中ROI的小空洞;进行腐蚀处理,用以消除分类二值图像Iv中的剩余噪声,得到最后的二值图结果Iv';
[0019] 步骤1.1-1.4,可以获得第k帧图像中的运动前景,即运动目标轮廓。
[0020] 更进一步,结合帧间差分法的ViBe算法具体为:
[0021] 通过结合帧间差分法可以降低光线变化对ViBe算法的影响,ViBe算法是一种基于像素的背景建模方法,在背景建模的过程中,基于某一个像素点x的灰度值和它的邻域像素的灰度值是近似这一假设,通过随机选取N(N是正整数)个邻域灰度值为像素点x建立样本集M(x)={p1,p2,p3,…,pN},样本集中的p1,p2,p3,…,pN指的是邻域像素点的灰度值;用pt(x)表示在t时刻像素点x的灰度值,用SR(pt(x))表示与pt(x)的差值小于阈值R的点构成的一个以pt(x)为中心,R为半径的圆形集合,其中R是正实数;圆形集合SR(pt(x))和样本集M(x)的交集元素的数量n,n是非负整数,即是在样本集M(x)中有n个像素点与像素点x相似:
[0022] #{SR(pt(x))∩{p1,p2,p3,…,pN}}
[0023] 设阈值为nth,nth是正整数,若n>nth,则将像素点x归类为背景,否则就将像素点x归类为前景,即运动的目标;利用帧间差分法可以获取第k-1帧和第k帧的差值二值图像Id,然后通过形态学处理获得二值图像Id';若第k帧图像中的像素点x被归类为前景点,则在二值图像Id'中,以与像素点x相同坐标的像素点x'为中心的8个邻域中,用 和 分别指代像素点x'和8个邻域中灰度值为0的像素点的个数;
[0024] 考虑到中心点和邻域点所拥有的权重不同,为中心点x'赋予权值k,k是正整数,构建概率函数 将像素点的分类转化为概率问题;当中心点及其8个邻域中的灰度值为0的个数超过一定阈值,即P的大小超过阈值T,T是正整数,可以证明在以x'点为中心的像素九宫格中,背景所占的面积更大,就认为点x'为背景,即像素点x应该属于背景;否则就证明,以点x'为中心的像素九宫格,前景所占的面积更大,应该将像素点x属于运动前景点;即[0025]
[0026] 为了应对可能的背景变化,当像素点被判断为背景时,就以一定的概率β对背景模型进行随机更新,β是实数
[0027] Random{p1,p2,p3,…,pN}←pt(x)
[0028] 即将{p1,p2,p3,…,pN}中的随机一个值,用pt(x)代替。
[0029] 更进一步,人数头像检测按照如下步骤进行:
[0030] 步骤2.1:考虑到在电梯视频监控中,乘客很少变换位置和姿态,因此获取的训练样本重复率很高;所以,将获取的电梯监控视频做减帧处理,从而降低一个视频序列中,重复的样本数;将视频按帧保存为图像序列,将图像序列中包含清晰人头目标的图像作为原始的人头图像序列;
[0031] 步骤2.2:使用labelimg工具对人头图像序列进行标记处理,考虑到轿厢内乘客通常都是面对轿厢站立,因此在标记时,应选择正对后脑、斜对后脑或者侧对头部的样本进行标记,尽可能的保留头部背面的样本特征,而不是包含脸部的头部前面;通过标记工具,获取标记框的信息,以txt文档的形式保存,并且txt文档的命名要和图像一一对应;最后,将标注好的图像分为训练数据集和测试数据集,完成对人头图像序列的标记工作;
[0032] 步骤2.3:在训练网络中载入训练数据集,进行特征训练;根据人头图像序列的数量,选择适当的训练步数和学习率,每隔一定的步数保存模型,以备在训练过拟合后使用;在损失率不再下降的时候停止训练,避免训练次数过多造成过拟合;训练结束后,对保存的YOLOv3模型进行测试,选择检测效果最好的YOLOv3神经网络模型使用;
[0033] 步骤2.4:部署训练好的YOLOv3神经网络模型,将电梯轿厢内的监控视频输入到模型中进行检测;YOLOv3网络模型将视频按一帧一帧进行检测,当检测到图像中有人头时,标记人头,并且返回人头标记框位置;最后通过数标记框的方法,得到当前图像中的人头数;将视频从第一帧处理到最后一帧,就可以得到某一时间在电梯轿厢内的乘客数量。
[0034] 更进一步,YOLOv3网络实现头部人数检测具体为:
[0035] 通过训练YOLOv3神经网络,实现对电梯轿厢内人头部的检测,以此来获取电梯轿厢内的准确人数;首先将输入的图片划分为S×S个栅格,每个栅格预测B个边界框,对应B个先验框;定义检测的置信度
[0036] bx=σ(tx)+cx
[0037] by=σ(ty)+cy
[0038]
[0039]
[0040]
[0041] 每个预测的边界框都包含五个预测值:边界框的中心坐标(x,y)、边界框的高和宽(h,w)、目标的置信度;其中,bx、by、bh、bw分别是边界框的中心坐标、高和宽,ph和pw是先验框的高和宽;tx、ty、th和tw则是网络预测的中心坐标、高和宽;t0是直接预测得到的边界框的置信度,在YOLOv3中将t0经过σ(·)变换后的σ(t0)作为边界框置信度的值;cx和cy是相对偏移量;σ()函数为logistic函数,将坐标归一化到0-1之间; 和 则代表边界框的缩放因子;代表栅格预测的边界框与目标的重合面积,而Pr(Object)则表示栅格中是否包含目标物体;如果栅格中包含目标物体,则Pr(Object)=1,如果栅格中不包含目标物体,则Pr(Object)=0;
[0042] 若待检测的目标种类超过1,则设当预测的栅格内包含物体时,该物体属于类别c的概率的条件概率为Pr(Classc|Object),则该预测框的置信度为目标属于类概率及重合面积 相乘获得
[0043]
[0044] 在训练时,模型的损失函数定义为
[0045]
[0046] 其中coordError代表边界框的中心坐标(x,y)和边界框的高和宽(h,w)的损失,iouError代表栅格置信度Ci的损失,classError则代表分类概率pi(c)的损失;YOLO使用λcoord和λnoobj来修正包含目标的边界框和不包含目标的边界框的权重;设 表示物体obj在第i个栅格内,并且与第j个预测边界框的重合面积最大; 表示物体obj在第i个栅格内,不在第j个预测边界框内;
[0047]
[0048]
[0049]
[0050] 其中,Ci是第i个栅格的置信度,pi(c)是第i个栅格内目标属于c类的分类概率,classes代表需要检测的目标集合; 为网络预测值,xi,yi,wi,hi,Ci,pi(c)为标注的值;
[0051] 在检测时,通过非极大值抑制方法,保留最准确的边界框,减少边界框的数量;非极大值抑制方法的实施方法如下:设检测结束后,得到的边界框为B1,B2,B3,…,Bn,边界框的置信度分别为P1,P2,P3,…,Pn;选择最大的置信度作为参考值,依次计算剩余边界框的重叠度U
[0052] U=max(P1,P2,P3,…,Pn)-Px
[0053] Px∈{P1,P2,P3,…,Pn-1}
[0054] 当U小于阈值时,证明该类边界框已存在最优边界框,则将该类边界框去掉,保留Bn;在剩余的B1,B2,B3,…,Bm(m<n)中,再选择最大的边界框的置信度Pm作为参考值,重复上述过程;最终获得准确的标记框。
[0055] 更进一步,基于人体轮廓和头部的摔倒检测具体步骤如下:
[0056] 步骤3.1:对第k帧图像的检测,有视频输入时,通过训练好的YOLOv3神经网络模型进行检测,对第k帧图像中的人头进行标记,返回标记框的位置信息,同时通过计数标记框,获得第k帧图像中准确的人数;
[0057] 步骤3.2:当第k帧图像中的人数为1时,通过结合帧间差分法的ViBe算法,对第k帧图像进行处理,获得包含有ROI的二值图结果Iv';通过对二值图结果Iv'进行最大连通区域检测,可以将二值图结果Iv'中ROI的轮廓用矩形RROI框出;获得矩形RROI的高,记为H,将矩形RROI的宽,记为W;可得矩形RROI,也就是人体轮廓的高宽比δ
[0058] δ=H/W
[0059] 与阈值T1相比,T1是实数,当δ<T1时,此时的矩形RROI呈现平状态,则判断乘客发生了跌倒;当δ≥T1时,此时的矩形RROI呈现竖直状态,就判断乘客可能是正常站立的,没有发生摔倒;
[0060] 步骤3.3:当判断乘客可能是站立时,作为对轮廓检测的补充,对第k帧图像中乘客的头部位置ck(x,y)和第k-1帧图像中乘客的头部位置ck-1(x,y)进行比较,ck(x,y)包含第k帧图像头部标记框质心的x和y的坐标,即
[0061] D=|ck(x,y).y-ck-1(x,y).y|
[0062] D代表相邻两个图像中,头部标记框的质心在y方向上的位移的绝对值;与阈值T2相比,T2是实数,当D<T2时,则前后两帧中乘客的头部并没有发生明显的下落趋势,结合步骤3.2检测的结果,可以判断乘客是站立的;当D≥T2时,则前后两帧中乘客的头部发生明显的下落趋势,可以判断乘客摔倒;
[0063] 重复步骤3.1-3.3,直到视频结束或者检测到的人数不为1为止;如果检测到有乘客摔倒,就发出报警信息,进行提示。
[0064] 更进一步,基于人体轮廓和头部的摔倒检测具体为:
[0065] 当人体站立时,人体的轮廓通常呈现竖直状态;当人体躺下时,人体的轮廓则通常呈现水平状态,即
[0066]
[0067] 其中,H代表人体轮廓的像素高度,W代表人体轮廓的像素宽度;在简单判断人体姿势之后,由于摄像机拍摄视局限,如果人体顺着摄像机的拍摄角度倒下,在视频中人体仍旧保持竖直状态;考虑到在倒地的过程中,伴随有人体重心的下移,而人头的位移则更加明显;因此,在中引入对头部移动距离的检测,作为摔倒检测的补充。
[0068] 更进一步,多人动能检测的具体的方法如下:
[0069] 步骤4.1:当有视频输入时,通过训练好的YOLOv3神经网络模型进行检测,对第k帧图像中的人头进行标记,返回标记框的位置信息,同时通过计数标记框,获得第k帧图像中准确的人数;
[0070] 步骤4.2:当检测得到的人数为2人及其以上时,通过结合帧间差分法的ViBe算法,对第k帧图像进行处理,获得二值图结果Iv';对二值图结果Iv'中的ROI进行边缘检测,获取只包含运动目标轮廓边缘的边缘二值图像Ive;检测边缘二值图像Ive中的角点,作为光流跟踪的特征点;
[0071] 步骤4.3:通过金字塔LK光流法对第k-1帧图像和第k帧图像进行检测,在第k帧图像中估计出第k-1帧图像中的角点的位置,即对相邻两帧图像中的角点进行跟踪;设第k-1帧中某角点的位置为i=(x,y)T,则光流的计算过程,就是在第k帧图像中得到该角点i相匹配的角点的位置i′=i+d=(x+dx,y+dy)T。其中d=[dx,dy]T是前后两帧图像中角点移动的位移,也可视为速度矢量,角点光流的计算就是求解d=[dx,dy]T;
[0072] 步骤4.4:判断在第k-1帧图像和第k帧图像中,已匹配成功的角点i的位移d是否大于零;如果相邻两帧图像中,角点i的位移d=0,则证明该角点是静止的,与动作无关,可以将其过滤;如果相邻两帧图像中,角点i的位移d>0,则证明该角点是运动的,将角点i的位置保存;
[0073] 步骤4.5:将每一个角点假设为一个质点,那么质点i在运动时就具有动能:
[0074] Ei(x,y)=ωi(x,y)·Vi2(x,y)
[0075] 其中Ei(x,y)是点i的动能,ωi(x,y)是点i的权重,Vi2(x,y)=ui2(x,y)+vi2(x,y),ui(x,y)和vi(x,y)分别是角点i(x,y)在x和y方向的速度分量;
[0076] 步骤4.6:在第k-1帧中,角点i的运动的角度为 在第k帧中,与角点i相匹配的角点i'的运动角度为 设第k帧中角点的权
重为:
[0077]
[0078] 其中, 是第k帧中角点i'的权重,它体现了角点在前后两帧中运动方向变化的程度;当角点的运动方向变化越大时,角点的权重越大,在现实中也符合打斗时运动杂乱无章的特性; 是第k-1帧图像中角点运动角度的均值,α是 的权重,体现了运动在前后两帧中的连续性;
[0079] 步骤4.7:在已知各个角点的速度和权重的基础上,将一个视频帧中所有Ntol个角点的动能相加,Ntol是正整数,就可以得到第k帧的总动能:
[0080]
[0081] 更进一步,基于金字塔LK光流的动能模型具体为:
[0082] 通过使用光流法建立光流场,来获取视频图像中运动目标的速度大小和运动方向等运动信息;在满足以下三个条件:
[0083] (1)亮度恒定不变,就是同一点在不同的视频图像中,其亮度不会发生改变;
[0084] (2)小运动,即目标的位置不会随着时间的变化而发生剧烈的变化;
[0085] (3)空间一致,即在目标像素周围的区域Ω内,每个像素都拥有相同的光流矢量;
[0086] 则相邻两帧图像的约束方程
[0087] I(x,y,t)=I(x+dx,y+dy,t+dt)
[0088] I(x,y,t)是t时刻(x,y)位置的像素点的亮度,而I(x+dx,y+dy,t+dt)则是t+dt时刻,像素点运动后的亮度,是保持不变的;假设移动的距离足够小,对约束方程进行泰勒公式展开,得到
[0089]
[0090] ε代表无穷小项,可以忽略;图像的约束方程就可以定义为
[0091]
[0092] 其中, 可用x方向上的速度u表示, 可用y方向上的速度v表示,图像的约束方程可写为
[0093]
[0094] 在一个在大小为n×n邻域Ω内,通过加权平方和最小化来计算每个像素点的光流:
[0095]
[0096] 其中W2(X)是权重函数,用以区分邻域Ω中心和周围的加权;令同时对于邻域Ω内所有的点X1,X2,X3,…,Xn, 约束方程可写

[0097]
[0098] 其中,Ixi、Iyi和Wi分别是像素点i在x和y方向的梯度信息和权重函数;令W=diag(W(X1),…,W(Xn)), 利用最小二乘法得
[0099]
[0100] 最后,可得速度信息
[0101] 电梯轿厢内的暴力侵害行为大部分都具备动作速度快,动作幅度大等特点;为了满足LK光流法的假设前提,使用图像金字塔进行修正;图像金字塔的最底层为原始图像,最T顶层为最低分辨率的图像;设第k-1帧图像I中某角点的位置是i=(x,y) ,在第k帧图像J中与该角点相匹配的角点的位置为i'=i+d=(x+dx,y+dy)T,其中d=[dx,dy]T是前后两帧图像中角点移动的位移,也可视为速度矢量;在从顶层开始,计算每个点的光流值,在图像I和图像J上分别建立(2wx+1,2wy+1)的检测窗口,假设窗口内的像素点都具有相同的速度,即像素点拥有相同的光流向量d。在检测窗口内,做为前后两帧相匹配的角点,因为在图像I中的角点(x0,y0)的灰度值I(x0,y0)与图像J中的角点(x0+dx,y0+dy)的灰度值J(x0+dx,y0+dy)最接近,所以I(x0,y0)-J(x0+dx,y0+dy)应是最小值,将光流定义为使残差函数ε最小的矢量[0102]
[0103] 其中wx和wy是检测窗口的参数,是指检测窗口的大小;设顶层L图像中的光流误差为dLm,通过使残差函数ε(dLm)的一阶导数为0求得。光流计算结果为g,通常将顶层的光流值设为gLm=[0 0]T。若每层缩放为前一层的一半,则L-1层原始图像的光流
[0104] gL-1=2(gL+dL)
[0105] L是正整数,通常L≤4。沿着金字塔向下反馈,重复计算光流的估计值,可以得到金字塔底部,即原始图像中的光流信息
[0106]
[0107] 其中,g0是金字塔最底层图像的光流初始值,d0则是金字塔底层图像中的光流误差,Lm代表最顶层;
[0108] 对前景图像中的每个像素点的梯度和曲率进行计算,设每个前景点邻域内的二阶导数的自相关矩阵
[0109]
[0110] 其中K代表邻域窗口的大小,w(x,y)代表归一化操作的权值,Ix代表x方向上的梯度,Iy则代表y方向上的梯度,i和j代表邻域窗口在x和y方向上的偏移;Harris角点是二阶导数存在两个最大特征值的位置,定义判断角点的公式
[0111]
[0112] 其中 是相对权值常数,det[M(x,y)]为矩阵M(x,y)的行列式值,trace(M(x,y))是矩阵M(x,y)的迹;若二阶导数自相关矩阵的特征值为λ1和λ2,则det[M(x,y)]=λ1λ2,trace(M(x,y))=λ1+λ2;当Rth的值大于设定的阈值,就可以判断该点是角点;
[0113] 使用金字塔LK光流算法,并结合角点构建动能模型,并将动能模型定义为:
[0114] E(x,y)=ω(x,y)·V(x,y)2
[0115] 其中,E(x,y)是角点的动能,ω(x,y)是指该角点的权重,与角点的运动方向变化有关,用来代替角点的质量这一物理概念,V(x,y)就是指该角点的速度大小。
[0116] 3、本发明所采用的有益效果
[0117] 1)本发明提出了一种基于计算机视觉的电梯轿厢内异常行为检测系统,视频输入与检测同时进行,达到实时检测的效果。
[0118] 2)本发明通过结合帧间差分法的ViBe算法实现了对电梯轿厢内运动物体前景的检测,并通过形态学处理过程,获得运动目标的轮廓。
[0119] 3)本发明利用YOLOv3神经网络模型进行了人头的检测,实现了基于图像的电梯轿厢内人数的检测。
[0120] 4)本发明利用检测到的电梯轿厢内人体轮廓的高宽比值判断是否有摔倒现象的发生,并通过检测人头在竖直方向上的移动距离,作为轮廓检测的补充。
[0121] 5)本发明通过在获取的人体轮廓的基础上,利用金字塔LK光流法构建光流场,获得视频图像中物体的运动速度,并根据其运动角度变化的大小,模仿动能方程构建基于角点的动能检测模型,实现了对暴力侵害行为的检测。附图说明
[0122] 图1电梯轿厢内异常行为检测系统主流程图
[0123] 图2为YOLO神经网络结构图;
[0124] 图3为模块①人头检测过程;
[0125] 图4为模块②摔倒检测流程图;
[0126] 图5为模块③暴力侵害检测流程图;
[0127] 图6为轿厢内摔倒检测结果;
[0128] 图7为其他场景中摔倒检测结果;
[0129] 图8为不同人数的人头检测结果;
[0130] 图9为多人打斗行为检测结果。

具体实施方式

[0131] 下面结合本发明实例中的附图,对本发明实例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域技术人员在没有做创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0132] 下面将结合附图对本发明实例作进一步地详细描述。
[0133] 实施例
[0134] 如图1所示,本发明提出了一种基于计算机视觉的电梯轿厢内异常行为的检测方法。首先采用结合帧间差分法的ViBe算法和卷积神经网络YOLOv3对视频监控场景中的运动目标进行检测。通过结合帧间差分法的ViBe算法获取运动目标的外部轮廓,并在外部轮廓的基础上获得进入轿厢的乘客身体的高宽比信息;通过YOLOv3神经网络对电梯轿厢内的人体头部进行检测,并且获得人头目标的位置信息。根据YOLOv3神经网络检测到的人头数量,将电梯内的异常行为检测分为单人,两人及以上两种情景。在单人情景下,本发明利用乘客人体轮廓的高宽比的变化和乘客人头的垂直移动距离,实现对摔倒行为的检测。在两人及以上情景中,在结合帧间差分法的ViBe算法获得的目标轮廓的基础上,利用金字塔LK光流算法,计算乘客的平均动能,以实现对暴力侵害行为的检测。
[0135] 1.结合帧间差分法的ViBe算法
[0136] 通过结合帧间差分法可以降低光线变化对ViBe算法的影响,ViBe算法是一种基于像素的背景建模方法,在背景建模的过程中,基于某一个像素点x的灰度值和它的邻域像素的灰度值是近似这一假设,通过随机选取N(N是正整数)个邻域灰度值为像素点x建立样本集M(x)={p1,p2,p3,…,pN},样本集中的p1,p2,p3,…,pN指的是邻域像素点的灰度值。用pt(x)表示在t时刻像素点x的灰度值,用SR(pt(x))表示与pt(x)的差值小于阈值R的点构成的一个以pt(x)为中心,R为半径的圆形集合,其中R是正实数;圆形集合SR(pt(x))和样本集M(x)的交集元素的数量n,n是非负整数,即是在样本集M(x)中有n个像素点与像素点x相似:
[0137] #{SR(pt(x))∩{p1,p2,p3,…,pN}}
[0138] 设阈值为nth(nth是正整数),若n>nth,则将像素点x归类为背景,否则就将像素点x归类为前景,即运动的目标。利用帧间差分法可以获取第k-1帧和第k帧的差值二值图像Id,然后通过形态学处理获得二值图像Id'。若第k帧图像中的像素点x被归类为前景点,则在二值图像Id'中,以与像素点x相同坐标的像素点x'为中心的8个邻域中,用 和 分别指代像素点x'和8个邻域中灰度值为0的像素点的个数。
[0139] 例:若像素点x'的灰度值为0,则 若像素点x'的灰度值不为0,则 8个邻域中有三个像素的灰度值为0,则
[0140] 考虑到中心像素点和邻域点所拥有的权重不同,为中心像素点x'赋予权值k(k是正整数),构建概率函数 将像素点的分类转化为概率问题。当中心像素点及其8个邻域中的灰度值为0的个数超过一定阈值,即P的大小超过阈值T(T是正整数),可以证明在以x'点为中心的像素九宫格中,背景所占的面积更大,就认为点x'为背景,即像素点x应该属于背景。否则就证明,以点x'为中心的像素九宫格,前景所占的面积更大,应该将像素点x属于运动前景点。即
[0141]
[0142] 为了应对可能的背景变化,当像素点被判断为背景时,就以一定的概率β(β是实数)对背景模型进行随机更新
[0143] Random{p1,p2,p3,…,pN}←pt(x)
[0144] 即将{p1,p2,p3,…,pN}中的随机一个值,用pt(x)代替。
[0145] 对于第k帧图像,结合帧间差分法的ViBe算法检测运动目标的过程如下:
[0146] 步骤1.1:对第k帧图像使用原始ViBe算法进行运动前景检测,将第k帧图像中的像素点分类为背景点和前景点。同时利用帧差法获取第k-1帧和第k帧的差值二值图像Id。利用得到的差值图像对ViBe算法的检测结果进行更新。
[0147] 步骤1.2:利用帧间差分法获取第k-1帧和第k帧的差值二值图像Id进行更新。对差值二值图像Id进行均值滤波,去除噪声;进行膨胀处理,用以填充差值二值图像Id中ROI的小空洞;进行腐蚀处理,用以消除差值二值图像Id中的剩余噪声;最后得到经过形态学处理的只包含完整ROI的二值图像Id′。
[0148] 步骤1.3:接步骤1.1,将包含完整ROI的二值图像Id'引入到ViBe算法的背景更新过程中。第k帧中所有的像素点都通过再分类后,可以获得结合了帧间差分法的分类二值图像Iv。
[0149] 步骤1.4:对步骤1.3的输出分类二值图像Iv进行形态学处理。进行膨胀处理,用以填充分类二值图像Iv中ROI的小空洞;进行腐蚀处理,用以消除分类二值图像Iv中的剩余噪声,得到最后的二值图结果Iv'。
[0150] 步骤1.1-1.4,可以获得第k帧图像中的运动前景,即运动目标轮廓。
[0151] 2.YOLOv3网络实现人数检测
[0152] 如图2所示,本发明通过训练YOLOv3神经网络,实现对电梯轿厢内人头部的检测,以此来获取电梯轿厢内的准确人数。首先将输入的图片划分为S×S个栅格,每个栅格预测B个边界框,对应B个先验框。定义检测的置信度
[0153] bx=σ(tx)+cx
[0154] by=σ(ty)+cy
[0155]
[0156]
[0157]
[0158] 每个预测的边界框都包含五个预测值:边界框的中心坐标(x,y)、边界框的高和宽(h,w)、目标的置信度。其中,bx、by、bh、bw分别是边界框的中心坐标、高和宽,ph和pw是先验框的高和宽。tx、ty、th和tw则是网络预测的中心坐标、高和宽;t0是直接预测得到的边界框的置信度,在YOLOv3中将t0经过σ(·)变换后的σ(t0)作为边界框置信度的值。cx和cy是相对偏移量。σ()函数为logistic函数,将坐标归一化到0-1之间。 和 则代表边界框的缩放因子。代表栅格预测的边界框与目标的重合面积,而Pr(Object)则表示栅格中是否包含目标物体。如果栅格中包含目标物体,则Pr(Object)=1,如果栅格中不包含目标物体,则Pr(Object)=0。
[0159] 若待检测的目标种类超过1,则设当预测的栅格内包含物体时,该物体属于类别c的概率的条件概率为Pr(Classc|Object),则该预测框的置信度为目标属于类概率及重合面积 相乘获得
[0160]
[0161] 在训练时,模型的损失函数定义为
[0162]
[0163] 其中coordError代表边界框的中心坐标(x,y)和边界框的高和宽(h,w)的损失,iouError代表栅格置信度Ci的损失,classError则代表分类概率pi(c)的损失。YOLO使用λcoord和λnoobj来修正包含目标的边界框和不包含目标的边界框的权重。设 表示物体obj在第i个栅格内,并且与第j个预测边界框的重合面积最大。 表示物体obj在第i个栅格内,不在第j个预测边界框内。
[0164]
[0165]
[0166]
[0167] 其中,Ci是第i个栅格的置信度,pi(c)是第i个栅格内目标属于c类的分类概率,classes代表需要检测的目标集合。 为网络预测值,xi,yi,wi,hi,Ci,pi(c)为标注的值。
[0168] 在检测时,通过非极大值抑制方法,保留最准确的边界框,减少边界框的数量。非极大值抑制方法的实施方法如下:设检测结束后,得到的边界框为B1,B2,B3,…,Bn,边界框的置信度分别为P1,P2,P3,…,Pn。选择最大的置信度作为参考值,依次计算剩余边界框的重叠度U
[0169] U=max(P1,P2,P3,…,Pn)-Px
[0170] Px∈{P1,P2,P3,…,Pn-1}
[0171] 当U小于阈值时,证明该类边界框已存在最优边界框,则将该类边界框去掉,保留Bn。在剩余的B1,B2,B3,…,Bm(m<n)中,再选择最大的边界框的置信度Pm作为参考值,重复上述过程。最终获得准确的标记框。
[0172] 如图3所示,使用YOLOv3实现人数检测的方法如下:
[0173] 步骤2.1:考虑到在电梯视频监控中,乘客很少变换位置和姿态,因此获取的训练样本重复率很高。所以,将获取的电梯监控视频做减帧处理(降低视频的帧率),从而降低一个视频序列中,重复的样本数。将视频按帧保存为图像序列,将图像序列中包含清晰人头目标的图像作为原始的人头图像序列。
[0174] 步骤2.2:使用labelimg工具对人头图像序列进行标记处理,考虑到轿厢内乘客通常都是面对轿厢门站立,因此在标记时,应选择正对后脑、斜对后脑或者侧对头部的样本进行标记,尽可能的保留头部背面的样本特征,而不是包含脸部的头部前面。通过标记工具,获取标记框的信息,以txt文档的形式保存,并且txt文档的命名要和图像一一对应。最后,将标注好的图像分为训练数据集和测试数据集,完成对人头图像序列的标记工作。
[0175] 步骤2.3:在训练网络中载入训练数据集,进行特征训练。根据人头图像序列的数量,选择适当的训练步数和学习率,每隔一定的步数保存模型,以备在训练过拟合后使用。在损失率不再下降的时候停止训练,避免训练次数过多造成过拟合。训练结束后,对保存的YOLOv3模型进行测试,选择检测效果最好的YOLOv3神经网络模型使用。
[0176] 步骤2.4:部署训练好的YOLOv3神经网络模型,将电梯轿厢内的监控视频输入到模型中进行检测。YOLOv3网络模型将视频按一帧一帧进行检测,当检测到图像中有人头时,标记人头,并且返回人头标记框位置。最后通过数标记框的方法,得到当前图像中的人头数。将视频从第一帧处理到最后一帧,就可以得到某一时间在电梯轿厢内的乘客数量,实例如图8所示。
[0177] 3.基于人体轮廓和头部的摔倒检测
[0178] 在现实中,人体的站立姿势和倒地姿势有着很大的区别。当人体站立时,人体的轮廓通常呈现竖直状态;当人体躺下时,人体的轮廓则通常呈现水平状态,即
[0179]
[0180] 其中,H代表人体轮廓的像素高度,W代表人体轮廓的像素宽度。在简单判断人体姿势之后,由于摄像机拍摄视角局限,如果人体顺着摄像机的拍摄角度倒下,在视频中人体仍旧保持竖直状态。考虑到在倒地的过程中,伴随有人体重心的下移,而人头的位移则更加明显。因此,在本发明中引入对头部移动距离的检测,作为摔倒检测的补充。如图4所示,对第k帧图像的检测具体步骤如下:
[0181] 步骤3.1:当有视频输入时,通过训练好的YOLOv3神经网络模型进行检测,对第k帧图像中的人头进行标记,返回标记框的位置信息,同时通过计数标记框,获得第k帧图像中准确的人数。
[0182] 步骤3.2:当第k帧图像中的人数为1时,通过结合帧间差分法的ViBe算法,对第k帧图像进行处理,获得包含有ROI的二值图结果Iv'。通过对二值图结果Iv'进行最大连通区域检测,可以将二值图结果Iv'中ROI的轮廓用矩形RROI框出。获得矩形RROI的高,记为H,将矩形RROI的宽,记为W。可得矩形RROI,也就是人体轮廓的高宽比δ
[0183] δ=H/W
[0184] 与阈值T1(T1是实数)相比,当δ<T1时,此时的矩形RROI呈现水平状态,则判断乘客发生了跌倒。当δ≥T1时,此时的矩形RROI呈现竖直状态,就判断乘客可能是正常站立的,没有发生摔倒。
[0185] 步骤3.3:当判断乘客可能是站立时,作为对轮廓检测的补充,对第k帧图像中乘客的头部位置ck(x,y)(ck(x,y)包含第k帧图像头部标记框质心的x和y的坐标)和第k-1帧图像中乘客的头部位置ck-1(x,y)进行比较,即
[0186] D=|ck(x,y).y-ck-1(x,y).y|
[0187] D代表相邻两个图像中,头部标记框的质心在y方向上的位移的绝对值。与阈值T2(T2是实数)相比,当D<T2时,则前后两帧中乘客的头部并没有发生明显的下落趋势,结合步骤3.2检测的结果,可以判断乘客是站立的。当D≥T2时,则前后两帧中乘客的头部发生明显的下落趋势,可以判断乘客摔倒。
[0188] 重复步骤3.1-3.3,直到视频结束或者检测到的人数不为1为止。如果检测到有乘客摔倒,就发出报警信息,进行提示,实例如图6、7所示。
[0189] 4.基于金字塔LK光流的动能模型
[0190] 本发明通过使用光流法建立光流场,来获取视频图像中运动目标的速度大小和运动方向等运动信息。在满足以下三个条件:
[0191] (1)亮度恒定不变,就是同一点在不同的视频图像中,其亮度不会发生改变;
[0192] (2)小运动,即目标的位置不会随着时间的变化而发生剧烈的变化;
[0193] (3)空间一致,即在目标像素周围的区域Ω内,每个像素都拥有相同的光流矢量。
[0194] 则相邻两帧图像的约束方程
[0195] I(x,y,t)=I(x+dx,y+dy,t+dt)
[0196] I(x,y,t)是t时刻(x,y)位置的像素点的亮度,而I(x+dx,y+dy,t+dt)则是t+dt时刻,像素点运动后的亮度,是保持不变的。假设移动的距离足够小,对约束方程进行泰勒公式展开,得到
[0197]
[0198] ε代表无穷小项,可以忽略。图像的约束方程就可以定义为
[0199]
[0200] 其中, 可用x方向上的速度u表示, 可用y方向上的速度v表示,图像的约束方程可写为
[0201]
[0202] 在一个在大小为n×n邻域Ω内,通过加权平方和最小化来计算每个像素点的光流:
[0203]
[0204] 其中W2(X)是权重函数,用以区分邻域Ω中心和周围的加权。令同时对于邻域Ω内所有的点X1,X2,X3,…,Xn, 约束方程可写

[0205]
[0206] 其中,Ixi、Iyi和Wi分别是像素点i在x和y方向的梯度信息和权重函数。令W=diag(W(X1),…,W(Xn)), 利用最小二乘法得
[0207]
[0208] 最后,可得速度信息
[0209] 电梯轿厢内的暴力侵害行为大部分都具备动作速度快,动作幅度大等特点;为了满足LK光流法的假设前提,使用图像金字塔进行修正;图像金字塔的最底层为原始图像,最顶层为最低分辨率的图像;设第k-1帧图像I中某角点的位置是i=(x,y)T,在第k帧图像J中与该角点相匹配的角点的位置为i'=i+d=(x+dx,y+dy)T,其中d=[dx,dy]T是前后两帧图像中角点移动的位移,也可视为速度矢量;在从顶层开始,计算每个点的光流值,在图像I和图像J上分别建立(2wx+1,2wy+1)的检测窗口,假设窗口内的像素点都具有相同的速度,即像素点都拥有相同的光流向量d。在检测窗口内,作为前后两帧相匹配的角点,因为在图像I中的角点(x0,y0)的灰度值I(x0,y0)和图像J中的角点(x0+dx,y0+dy)的灰度值J(x0+dx,y0+dy)最接近,所以I(x0,y0)-J(x0+dx,y0+dy)应是最小值,将光流向量d定义为使残差函数ε最小的矢量[0210]
[0211] 其中wx和wy是检测窗口的参数,是指检测窗口的大小;设顶层L图像中的光流误差为dLm,通过使残差函数ε(dLm)的一阶导数为0求得。光流的估计值为g,通常将顶层的光流值设为gLm=[0 0]T。若每层缩放为前一层的一半,则L-1层原始图像的光流
[0212] gL-1=2(gL+dL)
[0213] L是正整数,通常L≤4。沿着金字塔向下反馈,重复计算光流的估计值,可以得到金字塔底部,即原始图像中的光流信息
[0214]
[0215] 其中,g0是金字塔最底层图像的光流初始值,d0则是金字塔底层图像中的光流误差,Lm代表最顶层。
[0216] 对前景图像中的每个像素点的梯度和曲率进行计算,设每个前景点邻域内的二阶导数的自相关矩阵
[0217]
[0218] 其中K代表邻域窗口的大小,w(x,y)代表归一化操作的权值,Ix代表x方向上的梯度,Iy则代表y方向上的梯度,i和j代表邻域窗口在x和y方向上的偏移。Harris角点是二阶导数存在两个最大特征值的位置,定义判断角点的公式
[0219]
[0220] 其中 是相对权值常数,det[M(x,y)]为矩阵M(x,y)的行列式值,trace(M(x,y))是矩阵M(x,y)的迹。若二阶导数自相关矩阵的特征值为λ1和λ2,则det[M(x,y)]=λ1λ2,trace(M(x,y))=λ1+λ2。当Rth的值大于设定的阈值,就可以判断该点是角点。
[0221] 本发明使用金字塔LK光流算法,并结合角点构建动能模型,并将动能模型定义为:
[0222] E(x,y)=ω(x,y)·V(x,y)2
[0223] 其中,E(x,y)是角点的动能,ω(x,y)是指该角点的权重,与角点的运动方向变化有关,用来代替角点的质量这一物理概念,V(x,y)就是指该角点的速度大小。
[0224] 基于上述的定义,如图5所示,动能检测的具体的方法如下:
[0225] 步骤4.1:当有视频输入时,通过训练好的YOLOv3神经网络模型进行检测,对第k帧图像中的人头进行标记,返回标记框的位置信息,同时通过计数标记框,获得第k帧图像中准确的人数。
[0226] 步骤4.2:当检测得到的人数为2人及其以上时,通过结合帧间差分法的ViBe算法,对第k帧图像进行处理,获得二值图结果Iv'。对二值图结果Iv'中的ROI进行边缘检测,获取只包含运动目标轮廓边缘的边缘二值图像Ive。检测边缘二值图像Ive中的角点,作为光流跟踪的特征点。
[0227] 步骤4.3:通过金字塔LK光流法对第k-1帧图像和第k帧图像进行检测,在第k帧图像中估计出第k-1帧图像中的角点的位置,即对相邻两帧图像中的角点进行跟踪;设第k-1帧中某角点的位置为i=(x,y)T,则光流的计算过程,就是在第k帧图像中得到该角点i相匹配的角点的位置i'=i+d=(x+dx,y+dy)T。其中d=[dx,dy]T是前后两帧图像中角点移动的位移,也可视为速度矢量,角点光流的计算就是求解d=[dx,dy]T;
[0228] 步骤4.4:判断在第k-1帧图像和第k帧图像中,已匹配成功的角点i的位移d是否大于零。如果相邻两帧图像中,角点i的位移d=0,则证明该角点是静止的,与动作无关,可以将其过滤。如果相邻两帧图像中,角点i的位移d>0,则证明该角点是运动的,将角点i的位置保存。
[0229] 步骤4.5:将每一个角点假设为一个质点,那么质点i在运动时就具有动能:
[0230] Ei(x,y)=ωi(x,y)·Vi2(x,y)
[0231] 其中Ei(x,y)是点i的动能,ωi(x,y)是点i的权值,Vi2(x,y)=ui2(x,y)+vi2(x,y),ui(x,y)和vi(x,y)分别是角点i(x,y)在x和y方向的速度分量。
[0232] 步骤4.6:在第k-1帧中,角点i的运动的角度为 在第k帧中,与角点i相匹配的角点i'的运动角度为 设第k帧中角点的权
重为:
[0233]
[0234] 其中, 是第k帧中角点i'的权重,它体现了角点在前后两帧中运动方向变化的程度;当角点的运动方向变化越大时,角点的权重越大,在现实中也符合打斗时运动杂乱无章的特性; 是第k-1帧图像中角点运动角度的均值,α是 的权重,体现了运动在前后两帧中的连续性;
[0235] 步骤4.7:在已知各个角点的速度和权重的基础上,将一个视频帧中所有Ntol(Ntol是正整数)个角点的动能相加,就可以得到第k帧的总动能:
[0236]
[0237] 为了避免角点数量带来的干扰,可以选取每一帧的平均角点动能作为动能模型,实例如图9所示。
[0238] 表1摔倒检测的性能(基于四个视频序列)
[0239]
[0240]
[0241] 表2打斗检测的性能
[0242]
[0243] 评价指标:
[0244]
[0245]
[0246]
[0247] 其中,TP表示检测到正确的异常事件的数目,TN表示检测到正确的未摔倒事件的数目,FP表示误检测到摔倒事件的数目(虚警),FN表示未检测到摔倒事件的数目。
[0248] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈