基于图像识别技术的不安全行为识别

2020-04-20 03:45赵江平
安全与环境工程 2020年1期
关键词:像素点矩形特征提取

赵江平,王 垚

(西安建筑科技大学资源工程学院,陕西 西安 710055)

有限空间是指在作业地点与外界相对分离的封闭或部分封闭的生产操作区域,且作业人员不能长期工作的场所[1]。结合有限空间的过往事故案例分析可以看出,当前工贸行业有限空间发生的安全事故主要是由人的不安全行为引发的,其原因主要包括作业前未检测、未通风、未设置警戒标识,作业中人快速移动导致跌倒摔伤等。面对如此严峻的形势,如何减少有限空间作业中因人的跌倒导致的事故,成为了国内外学者关注的重要问题。

图像识别技术是多领域技术的融合,包括人工智能、模式识别等,其作用是对实时的视频图像进行处理,可实现对运动目标的捕捉和识别[2]。人体跌倒行为检测是图像识别技术的研究热点,目前该检测技术分为两类:可穿戴式传感器检测[3]和基于图像识别的方法[4]。前者需要佩戴传感器以提取人体运动特征,通过传感器反馈的数据采用模式识别技术来进行人体跌倒行为分析与检测;后者通过分析图像中人的轮廓、形状等特征来进行人体跌倒行为分析与检测。如兰胜坤等[5]通过提取运动物体的高宽比、运动目标投影的面积和周长以及Zernike矩特征,利用支持向量机(SVM)对人体跌倒行为进行判断与识别;Dalal等[6]提出利用HOG特征提取人体运动特征,取得了很好的效果;孙晓雯等[7]通过对加速度阈值的判别,再利用PSO-SVM对人体跌倒行为进行检测;裴利然等[8]用基于径向基函数的SVM对人体跌倒行为进行检测,并采用PSO算法对SVM参数进行了优化。

影响图像识别技术的关键环节是对图像特征的提取,以上研究中都使用人体单一特征向量来描述与识别不安全行为具有局限性。本文通过改进方向梯度直方图(HOG)特征并融合人体重心移动特征对有限空间作业中不安全行为即跌倒行为进行识别,可避免单一特征向量对检测人体跌倒行为的误判,通过对人体特征向量的改进,对不安全行为的识别更为准确。

1 不安全行为识别

人的行为检测与识别是计算机视觉领域研究的热门课题,其核心是利用图像分析、模式识别等技术从图像中检测人的行为并进行分类与描述[9]。本文主要利用图像识别技术检测在有限空间作业过程中可能出现的不安全行为,为此提出了基于SVM的不安全行为即人体跌倒行为识别流程,见图1。该流程分为以下几部分:图像预处理模块、目标检测模块、特征提取模块、图像识别模块。

图1 基于支持向量机(SVM)的不安全行为跌倒 识别流程图Fig.1 Unsafe behavior identification flow chart based on SVM

1.1 图像预处理

一幅RGB彩色图像包含的信息内容较大,计算机真正可识别的图像信息需要进行预处理。图像预处理方法主要有以下4种方法:

(1) 灰度级变换:该方法能够使图像像素亮度范围变大,对比度增强,图像清晰易于识别。在一幅图像中边缘就是灰度值间断的结果,是图像分割、形状特征提取和分析的基础[10]。

(2) 直方图均衡化:该方法能够使图像对比度增强,并补偿图像在视觉上难以区分灰度级的差别。

(3) 高斯低通滤波平滑:是一种线性滤波器,该方法能够有效抑制噪声,平滑图像。

(4) 中值滤波去噪:该方法能够有效抑制噪点,保持图像的清晰度。

图2为图像预处理的效果图。

图2 图像预处理的效果图Fig.2 Image preprocessing effect

1.2 运动目标检测

帧间差分法是一种通过对视频图像序列中相邻两帧进行差分运算来获得对运动目标轮廓的方法,它适合于对运动目标的捕捉[11]。当图像中物体运动时,相邻两帧图像之间会有明显的位置变化,通过相邻两帧图像亮度相减运算可得到亮度差的绝对值,判断亮度差的绝对值是否大于阈值,分析视频或图像序列中物体的运动特性,确定图像中是否有物体运动[12]。

假设视频图像序列f1,f2,…,fk中,提取相邻两帧图像fk(x,y)和fk-1(x,y),则它们的差分图像Dk(x,y)为

Dk(x,y)=|fk(x,y)-fk-1(x,y)|

(1)

式中:(x,y)表示图像中像素点的空间坐标。

将差分图像Dk(x,y)和设置的阈值T进行比较,得到差分后的二值化图像Rk(x,y),并判定图像中各个像素点是运动目标像素点还是背景像素点,灰度值为0是背景像素点,灰度值为1是运动目标像素点,从而提取出视频目标运动轮廓。差分后的二值化图像Rk(x,y)可表示为

(2)

式中的阈值T可以预先给定,也可以采用自适应的方法确定。帧间差分法的基本原理见图3。

图3 帧间差分法的原理Fig.3 Principle of inter-frame difference method

帧间差分法的优点是:算法易于实现,背景更新频率高,对变化的背景适应力强,对变换的光线不敏锐,提取出的目标图像能较为完整地显示出所检测目标的外轮廓形状信息[13]。帧间差分法的缺点是:运动目标的速度变化快慢对计算结果有影响,当运动目标的速度过快时,会导致检测目标不容易捕捉或很难检测出来;帧与帧之间不匹配会出现重影,目标对象静止不动在画面中时会出现空洞;选取不同的阈值T会出现不同的效果,当选取的阈值T数值过大时,会产生大量的背景区域空白,且图像受噪声的影响较大,难以描绘出运动目标完整的区域。但是通过结合基本运算包括腐蚀(Erosion)、膨胀(Dilation)、开(Opening)、闭(Closing)等运算可以改进帧间差分法,如对差分后的二值化图像进行腐蚀处理或膨胀处理,可以有效地去除图像内的空洞,并能够使得图像轮廓变得更光滑。图4为帧间差分法人体运动目标检测结果,人体目标用红色框体进行标识。

图4 帧间差分法人体运动目标检测结果Fig.4 Detection results of human movement target based on interframe difference method

1.3 运动目标特征提取——HOG特征和人体重心移动特征提取

方向梯度直方图(Histogram of Oriented Gradient,HOG)是一种实现人体运动目标检测的图像描述方法,HOG特征提取主要通过计算和统计图像局部区域内的直方图来实现[14]。

1.3.1 HOG特征提取

HOG特征提取过程如下:

(1) 为了减少光照等其他因素的影响,将输入图像进行图像预处理进而转化为灰度图。

(2) 计算图像梯度。采用一维模板[1,0,1],[1,0,-1]T对图像像素点横纵坐标计算梯度,即计算x轴方向和y轴方向的梯度Gx(x,y)、Gy(x,y),其计算公式如下:

Gx(x,y)=H(x+1,y)-H(x-1,y)

Gy(x,y)=H(x,y+1)-H(x,y-1)

(3)

式中:H(x,y)表示输入图像在像素点(x,y)处的像素值;Gx(x,y)、Gy(x,y)分别表示水平方向和竖直方向的梯度。

图像在像素点(x,y)处的梯度幅值和梯度方向分别为G(x,y)和α(x,y),计算公式如下:

(4)

(3) 将图像分为若干个均匀的“Block Cell”,每个Cell为8×8像素,采取8个bin的直方图来统计一个Cell的梯度内容;将Cell的梯度方向360°分为8个方向块,对每个Cell的梯度方向进行计数统计,可得到Cell的梯度方向直方图,即一个Cell对应8维特征向量。

(4) 将Cell单元组合成大的Block,一个块包括2×2个Cell,每个块内所有Cell的特征向量串联起来即可得到块的HOG特征。

(5) 在收集HOG特征前,需要对图像梯度进行高斯函数加权,收集各个Block的HOG特征。

HOG特征提取由于是对局部小区域内直方图进行统计,因此该方法可以有效地消除光照、阴影等影响图像特征提取的因素。图5为图像进行HOG特征提取后的结果,HOG特征提取经过灰度处理,在人体边缘附近产生了明显的灰度差。

图5 图像经HOG特征提取后的结果图Fig.5 Results chart of images extracted by HOG features

1.3.2 人体行为重心特征提取

人的不同行为特征,会有不同的人体重心轨迹变化与运动趋势,这一特征可以作为识别人的不同动作的重要依据。提取人体重心特征,需要对人体轮廓边缘进行计算,在前述采用帧间差分法检测出运动目标后,对运动目标利用边缘检测算法即Canny算子,得到人体轮廓边缘的二值化图像,使外接矩形尽可能地贴近运动目标的轮廓。

人体轮廓外接矩形的绘制步骤如下:

(1) 运动目标检测后,利用Canny算子得到人体轮廓边缘的二值化图像;再对第一步的图像遍历,检测运动目标的左下原点像素与右上对角点像素,记录坐标(xmin,ymin)和(xmax,ymax)。人体轮廓的外接矩形高度和宽度可表示如下:

H=ymax-ymin

L=xmax-xmin

(5)

(2) 人体轮廓外接矩形的框体形状定义如下:

左下O为原点像素点的坐标(xmin,ymin),右上T为最远点像素点的坐标(xmax,ymax),通过O与T构成外接矩形进而代替被检测的运动目标。人体轮廊外接矩形的框体形状见图6。

图6 人体轮廓外接矩形的框体形状图Fig.6 A frame diagram of the external rectangle of a human body contour

(3) 被检测的运动目标的重心可由人体轮廓外接矩形的灰度质心代替。设外接矩形f(x,y)是O与T构成的外接矩形内的一个像素点灰度值,通过计算外接矩形区域内所有像素点的灰度值之和∑xmin≤x≤xmax,ymin≤y≤ymaxf(x,y),计算外接矩形中每个像素点的灰度值与其横坐标的乘积并对所有结果求和∑xmin≤x≤xmax,∑ymin≤y≤ymaxf(x,y),计算外接矩形中每个像素点与其纵坐标的乘积并对所有结果求和∑ymin≤y≤ymax,∑xmin≤x≤xmaxyf(x,y),可得到运动目标的质心(重心)坐标的表达式为

(6)

(7)

由运动目标的重心坐标表达式可描述人体的运动规律与特性,即人体重心高度变化率和宽高比。通过对图像序列帧得到二值化图像的人体轮廓,将其用外接矩形来代替,并通过对图像序列帧的遍历,可以获取M个由外接矩形质心代替得到的运动目标重心坐标,将这些重心坐标组成一组特征矢量,通过记录每一帧的重心坐标可以得到重心高度变化率。当被检测对象在水平方向移动时,水平方向的重心高度变化率较小,而出现跌倒或下蹲时,竖直方向的重心高度变化率会急剧变化。因此,针对跌倒和下蹲动作的重心高度变化率幅值可以设定不同行为的阈值。

为了能够表征人体轮廓外接矩形运动目标重心坐标的高度差Mh(i),通过计算测量运动目标重心坐标与原点坐标的差值来表示人体重心坐标的高度差,其计算公式为

Mh(i)=yw(i)-ymin(i)

(8)

式中:yw(i)为重心纵向坐标。

假设图像当前帧为第i帧,计算之前的i-1帧图像运动目标重心坐标的高度差Mh(i)的均值为

(9)

则人体重心高度变化率为

(10)

分别选取人体5种不同行为动作的重心高度变化率曲线(见图7),可以明显对比出人在不同行为动作下重心高度变化率的差异。

图7 人体不同行为动作的重心高度变化率曲线Fig.7 Curves of change rate of height of gravity center under different human behaviors

由此可见,应用HOG特征和人体行为重心移动特征的融合对人体行为特征进行描述,可以降低单一特征在行为识别方面的误报概率。

1.4 SVM分类识别

支持向量机(Support Vector Machines,SVM)是一种具有监督学习的分类方法,广泛应用于统计分类和回归分析中[15]。SVM在解决小样本、非线性和高维度模式识别分类问题中有着独特的优势。SVM的核心思想是在核函数映射的高维特征空间上构造间隔分离超平面,通过建立超平面实现样本的二分类。SVM分类识别算法的实现流程见图8。

图8 SVM分类识别算法的实现流程Fig.8 Implementation process of SVM classification algorithm

SVM问题可简化为求公式(11)的二次规划问题,通过寻找分类的超平面可使训练集中的点距离分类面尽可能地远,也就是寻找一个分类面使它两侧空白区域(margin)最大[16]。设分类线方程为xw+b=0,对它进行归一化,使得线性可分样本集(xi,yi)(i=1,2,…,n;x∈Rd;y∈{+1,-1})满足:

yi[(w·xi)+b]-1≥0

(11)

若分类间隔为2/‖w‖,则分类间隔取最大值就等同于‖w‖取最小值。因此,使‖w‖最小的分类面就是所寻找的最优分类面,这样寻找最优分类面的问题则转化为约束条件下的优化问题。

(12)

该目标函数是二次的,约束条件参数w和b是线性的,解决该约束条件下的优化问题可通过标准的拉格朗日(lagrange)乘子,即将新的目标函数转化成最优化求解,加入拉格朗日乘子α,则有:

(13)

分别对公式(13)中参数w和b求导并令其为零,可得到下式:

(14)

将公式(12)代入公式(13)拉格朗日乘子中,则将分类问题转化为对偶问题,有:

(15)

(αi≥0;i=1,2,…,n)

其中,αi为与第i个样本相对应的拉格朗日乘子,且该方程存在唯一解。最后得到的最优分类函数如下:

f(x)=sgn{(w·x)+b}

(16)

在上述图像预处理与运动目标检测的基础上,提取HOG特征和人体重心移动特征,采用本文提出的人体跌倒行为检测算法并应用SVM分类器进行分类识别。该分类器计算过程分4个步骤:第一步生成训练特征集,利用SVM分类器计算样本的置信度与判决权值;第二步计算训练样本特征到分类面的距离(置信值),结合置信值的正负和大小判断出训练样本所属分类;第三步输入测试样本进行分类识别;第四步判别出测试样本特征所属的类别,正数代表测试样本属于类别1,负数则代表测试样本属于类别2,且样本的置信值越大,越可能代表所属的类别。训练样本和测试样本所属类别的运算模块,见图9和图10。

图9 训练样本分类运算模块Fig.9 Classification operation module of training samples

图10 测试样本分类运算模块Fig.10 Classification operation module of test samples

2 实验环境和数据

2.1 实验环境

本文的实验环境如下:

(1) 软件开发环境:Windows 10操作系统,软件仿真平台MATLAB R2016b。

(2) 硬件开发环境:PC机一台,Intel(R) Core(TM)i5-6300HQ CPU 2.30 GHz,8G的DDR3内存、英伟达NVIDIA Geforce GTX 960M显卡,算法在检测过程中能够以每秒30帧的图像采集速度进行实时处理。

2.2 实验数据与分析

本文采用Sony XC-HR70摄像机进行拍摄,帧速率为60 fps,图像大小为1024(H)×768(V),摄像头布置的高度设为1.5 m,自然光照明且照明情况良好,采集人体正面和侧面两个方向的不同行为。

本实验数据集分为训练集和测试集两部分,由于人的行为比较复杂,在收集人体行为数据时,拍摄了行走、奔跑、弯腰、下蹲、跌倒行为图像,实验人数为5人,其中每人每种动作重复15次。作业人员的行为有安全行为和不安全行为两种,本文中将行走、弯腰、下蹲行为当作安全行为,将奔跑、跌倒行为当作不安全行为。实验数据集中训练集共244张图像,测试集为131张图像,图像均来自本实验所拍摄的图像(见图11),测试集和训练集的人体行为动作分布见表2。

图11 实验拍摄的图像Fig.11 Experimental image

表2 实验数据集中测试集和训练集的人体行为动作分布(单位:张)

3 实验结果与分析

依据第1.4节中SVM分类识别算法的流程及步骤,对测试样本进行实验,得到人体行为识别结果见表3。

表3 混淆矩阵人体行为识别结果

Table 3 Confusion matrix behavior recognition results

由表3可知,本实验对人体的行为动作识别有较高的识别率,平均正确识别率达到了97.84%,说明本文将提取的HDG特征和人体重心移动特征融合能够较好地完成对人的行为动作识别。其中,对弯腰这一行为动作有最高的正确识别率达100%,这主要是因为这一行为动作的人体重心移动特征不明显,且人体轮廓较为完整,没有自遮挡现象,并且当人在做这一动作时,身体不会出现明显的抖动,相对位置比较固定;而出现识别偏差的剩下4组行为动作,错分类主要集中在奔跑与行走、跌倒与下蹲。造成奔跑与行走行为动作错分类现象的原因可能是,在目标检测过程中由于水平运动速度快慢不一致,差分出的人体目标剪影有残缺,说明人体目标剪影完整度对特征识别有影响;而下蹲与跌倒行为动作的错分类现象的原因可能是,测试图像中下蹲动作的幅度与跌倒动作的幅度差异变化不明显,因此在设置人体重心移动特征相对位置坐标x轴运动方向的阈值还需进一步研究。

4 结论与建议

本文设计并实现了一种在有限空间作业中不安全行为的跌倒行为检测算法,可以实现对有限空间作业视频监控范围内出现的人体跌倒行为进行监控。该算法通过灰度级变换和高斯低通滤波平滑等图像预处理后,采用帧间差分提取人体目标,并融合HOG特征与人体重心移动特征训练SVM,对最终结果进行判断与识别。实验证明了该算法在人体跌倒行为检测中的有效性,但是算法整体运算时效性较差,因此SVM分类器的设计还需要进一步优化。另外,针对有限空间作业中更多的不安全行为识别还需要研究其形态特征提取方法,并将多特征融合算法进一步优化。因此,下一阶段的工作需针对有限空间特殊的结构及复杂的作业环境,设计更为接近真实场景的实验环境,并针对有限空间内作业人员所佩戴的安全用具以及仪器设备进行特征提取与识别,进而加强作业流程的规范化,以避免危险事故的发生。

猜你喜欢
像素点矩形特征提取
图像二值化处理硬件加速引擎的设计
基于局部相似性的特征匹配筛选算法
矩形面积的特殊求法
空间目标的ISAR成像及轮廓特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案
基于像素点筛选的舰船湍流尾迹检测算法
基于Daubechies(dbN)的飞行器音频特征提取
基于canvas的前端数据加密
从矩形内一点说起