APP下载

基于骨架关键点的车内异常行为识别方法

2021-04-01潘晋孝

机械与电子 2021年3期
关键词:驾乘坐姿关键点

赵 雄,陈 平,潘晋孝

(中北大学信息探测与处理山西省重点实验室,山西 太原 030051)

0 引言

车内异常行为严重影响着驾乘人员的安全,故车内视频监控[1]平台中人员行为识别技术的研究,已经引起了国内外的广泛重视。由文献[2]可知,异常行为是指发生的低概率行为,车内异常行为主要研究驾驶员的异常驾驶行为和车内驾乘人员之间会带来安全威胁的异常接触行为。

目前,国内外学者对异常驾驶行为识别方法的研究主要有以下3种:基于生理信号的方法,利用驾驶员的生理信号如脑电信号[3]、肌电信号[4]等判断驾驶状态,这种方法需要驾驶员佩戴复杂昂贵的仪器,会影响驾驶员的正常操作,如李江天等[5]提出的多源生理信号的驾驶疲劳检测,驾驶员需要穿戴多类仪器监测各类生理信号;基于车辆运行参数[6]的方法,测量如方向盘旋转率、加速度等参数推断驾驶员驾驶状态,这类方法受驾驶员操作习惯的不同等因素会导致误识别率较高;基于人工特征的方法,提取图像中如纹理、颜色和HOG(histogram of oriented gradient)[7]等人工特征,并进行多特征融合进而判断驾驶行为[8],这种方法突破了依靠单一特征的限制,但是对情况复杂的多分类异常驾驶行为难以识别或识别准确率低,如对多维时间序列进行异常点检测[9],并没有对异常驾驶行为进行详细的分类,单单识别驾驶行为是否属于异常驾驶行为。

车内前排驾乘人员之间的异常行为识别方面,由于目前异常行为识别在车内的应用几乎没有,但是根据不同场景中不同的异常行为识别任务,可以有多种不同的检测方法[10],大致分为3个方面:基于行为关系的方法,使用统计模型检测各类行为动作的相关联程度,研究并且统计这些关联程度识别异常行为,这类方法中常用的统计模型有显著关联规则模型[11]、高斯模型[12]和混合高斯模型[13]等,必须对大量样本数据分析才能获得效果好的关系模型;基于运动轨迹的方法,利用现有的目标跟踪方法[14],检测人物运动历史图像中的轨迹是否出现异常轨迹点,使用跟踪轨迹的速度与方向等特征来检测[15-16],如Tran等[17]利用时空路径搜索方法对异常行为进行定位,再比如Nguyen等[18]提出共享结构的分层隐马尔科夫模型用以分辨正常与异常轨迹,这类方法主要局限于容易形成运动轨迹的场景;基于底层特征的方法,通过提取图像中如运动、视觉等特征建立相应模型进行识别,如依据光流特征构建模型如运动影响系数矩阵[19]或建立社会力力流图像[20],进而使用隐狄利克雷分布模型检测识别,研究人员还提出了结合使用多种底层特征的综合识别模型等,这类方法存在识别准确率低、误诊率高的问题。

由以上分析可知,目前的异常检测方法难以准确分析车内异常行为,而且现有的车内冲突等驾乘人员异常接触行为识别方法大部分都依赖于当事人员的事后报告,如滴滴打车软件提供的“一键报警”功能,允许驾驶员和乘客在各自的终端上一键报警,服务平台或警方可以进行警告和干预[21]。由于这些方法是由用户手动触发的,而且冲突双方都倾向推迟报告,因此这种方法也不可靠。本文结合人体骨架关键点和概率神经网络模型的优点,提出一种基于人体坐姿骨架关键点的车内异常行为识别方法,该方法可以精确识别人体姿势,可以削弱甚至消除前文所述异常行为识别方法在车内场景中的局限性,并且对车内异常行为识别的准确率能够达到90%以上。

1 网络模型

1.1 骨架关键点检测模型

上海交通大学MVIG(machine vision and intelligence group)实验室提出的自上而下的开源项目模型Alpha pose,解决了目前关键点检测方法存在的定位偏差、检测冗余2个问题,而且文献[22]中的实验结果说明Alpha pose为目前准确度最好的网络模型,故本文采用Alpha pose提取人体骨架关键点位置坐标。Alpha pose网络结构如图1所示。

图1 Alpha pose网络结构

Alpha pose的基本实现步骤如下:

a.采取YOLO(you only look once)作为人体目标检测网络,提取图像中的人体候选框。

b.利用SSTN(symmetric spatial transformer network) + Parallel SPPE(single-person pose estimator)将得到的人体检测候选框进行变换,预测关键点和姿态后再将预测的结果变换到原始图片位置,得到原始图片上人体骨架关键点的位置;另外PGPG(pose-guided proposals generator)增强了训练样本,作用于目标检测和SPPE的训练,提高了训练的精度。

c.利用Pose-NMS(parametric pose nonmaximum suppression)计算pose的相似度,消除接近基准姿态的姿态。

1.2 概率神经网络模型

概率神经网络PNN(probabilistic neural network)于1989年由Specht博士首先提出,是一种常用于模式分类基于统计原理的神经网络模型,在分类功能上与最优Bayes分类器等价,但是它不需要BP(error back propagation)算法进行反向误差传播的计算,而是完全前向的计算过程,所以PNN训练效率高[23],并且该网络模型已被应用,如下肢运动趋势判断[24]、垃圾邮件分类[25]等。故本文采用PNN模型。

PNN的网络结构如图2所示,具体功能如下所述。

图2 PNN网络结构

第1层是输入层,主要将输入数据传递给模式层,神经元数量与输入向量长度相等。

第2层是模式层,神经元数量与训练样本总数相等。采用非线性运算exp[(Xi-1)/σ2]取代S型函数作为激活函数,该层中第i类的j个神经元输出的概率为

i=1,2,…,P;j=1,2,…,Li

(1)

P为训练样本总类数;Li为类别i的训练样本数;d为样本数据的维度;Xij为第i类的第j个隐中心矢量;σ为平滑因子,一般在0~1之间,决定了样本分类的准确度。

第3层是求和层,神经元数目与类别数一样,把前一层中属于同类的隐含神经元的输出做加权平均,利用Parzen窗方法计算获得i类类别的概率密度函数fi为

(2)

最后一层是输出层,对求和层输出归一化处理求取测试样本对应不同类别的概率,节点个数为1。

2 车内异常行为识别方法

2.1 驾乘人员坐姿参数模型

车内场景下,车内人员的行为动作基本由上半身的运动构成,下半身腿部的运动可以忽略不计,所以可以利用人体上半身骨架关键点的运动及坐标位置信息来分析识别车内异常行为。采用监控设备采集前排驾乘人员图像,使用Alpha pose模型获得人体上半身中左耳、左眼、鼻、右耳、右眼、左肩、右肩、左肘、右肘、左腕、右腕、左髋和右髋13个骨架关键点坐标位置,利用这些骨架关键点以及这些点之间连成的线段,构建了如图3所示的人体坐姿骨架关键点模型。

图3 人体坐姿骨架关键点模型

在对驾乘人员建立人体坐姿骨架关键点模型的基础上,定位并且利用各个关键点坐标位置信息将驾乘人员坐姿状态参数化,建立驾乘人员坐姿参数模型,如图4所示,进一步简化车内异常行为识别难度。

图4 驾乘人员坐姿参数模型

2.2 车内异常行为判定方法

正常的行车环境中,车内前排驾驶员和乘客通常不应有任何联系,如果他们彼此重叠或者足够接近,那么就可能存在异常行为。因此,可以基于驾驶员和乘客的骨架关键点位置信息来检测驾乘人员之间的异常行为。

当驾乘人员之间相互接近或者存在肢体接触时,分属不同人体的骨架关键点之间距离值也会变小,通过计算距离来对驾乘人员之间的异常行为进行识别。关键点之间的距离可以利用欧式距离公式来计算,即

(3)

ρ12为点(x1,y1)与点(x2,y2)之间的欧式距离。

如图5a和5b所示,可以看到当驾驶员右腕接近副驾驶位乘客左臂时,即驾驶员右腕关键点与乘客的左肘或左腕关键点的欧式距离值很小,就可以判定此时驾驶员与乘客之间存在肢体接触,可能为异常接触行为;如图5c和5d所示,可以看到当驾驶员右腕接近副驾驶位乘客的左臂或头部时,即驾驶员右腕关键点与乘客的左腕或左耳关键点的欧式距离值很小,也可以判定此时驾驶员与乘客之间存在肢体接触,可能为异常接触行为。同理,针对副驾驶位乘客,也是通过上述方式判定乘客是否与驾驶员存在异常接触行为。具体计算方法如下:以驾乘人员坐姿参数模型为基础,计算模型中不同人体的各个骨架关键点之间的欧式距离,每张图像中的1组距离会有13×13=169类距离,然后将这组距离作为输入,利用该概率学习模型式(4)输出异常概率值。

图5 驾乘人员肢体接触实例

p=f(P)

(4)

P为图片上的1组距离;p为异常概率;f为将一组距离转换为概率值的学习模型(f可以由下一节中的网络学习模型训练得到)。

2.3 概率学习模型训练

图2中,x1,x2,…,xd表示输入向量,本文中指的是1张图像中的1组距离值。

式(1)中,P=2即异常定义为1类与非异常定义为2类,P=3即异常定义为3,分别是使用手机、双手离开方向盘、视角未看前方;d=169表示输入的数据维度;σ为经验值,本文分别将σ设置为不同的值并训练后可知,σ=1.0时效果最佳,即分类的准确度更高。由于需要使用概率值判定异常行为,所以本文在PNN网络结构上做了部分修改,去除了最后一层,直接使用前一层计算后的概率作为输出。

引用上述的参数,利用标记好的训练集作为PNN输入进行训练,当损失趋于稳定时停止训练,即得到学习模型f。

3 实验

3.1 实验条件与数据准备

实验环境为:系统为Windows 10;处理器采用Intel Corei7-6700 CPU,主频为3.4 GHz;内存大小为32 GB;显卡为GTX1080;软件采用PyCharm 2018;编程环境为Python 3.7。

采用的数据采集设备是海康威视C2C无线Wi-Fi监控摄像头,具备720P/1080P高清广角画面,且易于安装。在对多个摆放角度及位置进行数据采集之后发现,摄像头安装在副驾驶位置前方时效果最优,可以获取到车内前排驾乘人员整体坐姿图像数据,具体安装位置如图6所示。

图6 车内摄像头安装位置

实验数据集是在SUV车内采集的4组视频数据所分解后的图像,一共包括4 287张驾驶员驾驶行为图像和1 383张车内人员之间异常行为图像。每张图像中都包含1个驾驶员和副驾驶位1个乘客,而且能捕捉到整个坐姿轮廓。

另外一组测试数据集为包含着26位驾驶员的不同驾驶行为的Kaggle数据集,经整理,该数据集提供1 011张图像,其中包含3类异常驾驶行为,分别是:使用手机、双手离开方向盘和视角未看前方。

3.2 数据预处理与模型训练样本选取

利用Alpha pose检测数据集中每张图像的骨架关键点,然后对检测出骨架关键点的图像集合进行剔除冗余操作,具体操作:图像上若检测到骨架的数量大于图像中的人员数量,则对这张图像进行剔除。在剔除冗余后的4 255张驾驶行为自建数据集中,随机选取80%作为训练集训练PNN模型,而剩余的20%和Kaggle数据集作为测试样本进行仿真测试,对训练集中3 404张图像进行手工标记后即可开始训练。其中,使用手机、双手离开方向盘、视角未看前方的样本数分别为973、1 167、1 264。同理,针对车内人员之间异常行为自建数据集剔除冗余与整理后剩余1 300张图像,随机选取80%作为训练集,即1 040张图像,其中异常行为的图像数量为434张,非异常行为的图像数量为606张。

3.3 异常驾驶行为检测结果

针对测试集中的851张图像进行异常驾驶行为检测,其中使用手机、双手离开方向盘、视角未看前方的样本数分别为125、361、414,由于自建测试集集中同一张图像上可能存在多种异常驾驶行为,所以检测总样本数加起来与851不相等。自建测试集检测实验结果如表1所示。

表1 基于骨架关键点方法的自建测试集检测结果

对Kaggle数据集所提供的1 011张驾驶行为图像数据集剔除冗余后,使用手机、双手离开方向盘、视角未看前方的样本数分别为550、150、300。因为每张图像中只存在一种异常驾驶行为,所以准确率会略有提高。对比表1、表2可以看到,基于骨架关键点的车内异常行为识别方法对异常驾驶行为的识别准确率可以达到90%以上;再对比表2、表3可以看出,对相同数据集本文方法的准确率要高于基于协方差流形和LogitBoost的方法。

表2 基于骨架关键点方法的Kaggle数据集检测结果

表3 基于协方差流形和LogitBoost方法的Kaggle数据集检测结果

3.4 驾乘人员之间的异常行为检测结果

由引言所述,由于多种因素的局限,目前异常行为识别的论文或方法在车内驾乘人员之间的应用很少,所以本文是通过设置不同的阈值来比较驾乘人员之间异常行为检测的结果,主要是在本文的260张测试集上做测试,如表4所示。

表4 驾乘人员之间异常行为不同阈值检测结果

由表4可知,当阈值较小时,车内人员间的异常行为识别准确率比阈值较大时要小,原因在于阈值较小,有异常接触趋势但不是明显的异常接触图像被判断为异常,致使TP(true positives,正样本)数量下降,所以准确率会稍有降低;当取合适的阈值时(表4中为大于等于0.85),驾乘人员间的异常行为识别准确率可以达到90%以上,完全可以应用到实际项目中。

4 结束语

针对车内前排人员的异常行为,提出基于人体坐姿骨架关键点的识别方法。首先利用Alpha pose提取人体骨架关键点并建立驾乘人员坐姿骨架模型,进而对关键点位置信息进行分析计算,将位置信息作为输入对修改后的PNN模型进行训练,最后利用PNN模型把位置信息转换成概率,依靠概率值直观地识别车内人员异常行为。相比之前的研究方法,本文方法对异常驾驶行为的识别准确率有所提高。另外,本文的实验对象是车内前排驾乘人员,所以进一步的研究是将文中所提方法进行扩展完善,以便也能够对车内后排乘客人员的异常行为进行识别,实现对车内整体异常行为的识别监控,并作为相关项目技术支撑。

猜你喜欢

驾乘坐姿关键点
聚焦金属关键点
肉兔育肥抓好七个关键点
东风悦达起亚凯酷
瑞萨电子推出升级版R-Car V3H,提升深度学习性能满足包括驾乘人员监控系统的最新NCAP要求
日产Ariya
坐姿好习惯
日产Ariya
学生作业坐姿及台灯控制器
基于坐姿感应的智能视力保护台灯设计
“长跪”与谢罪无关