彭秋萍,万莉莉,孙梦圆,田 勇
(南京航空航天大学 民航学院,南京 211106)
随着城市建设的迅速发展,机场、地铁站、商场等公共场所的客流量不断增多,自动扶梯被广泛应用,但也存在一定的安全隐患.其中,摔倒事故尤为频发.传统的扶梯通过设置急停按钮,在紧急情况下制停扶梯,但该方法需要人工制停、操作熟练才可避免事故的发生,具有局限性.因此,研究扶梯自动急停系统具有重要的意义.
关于自动制停扶梯的研究,邝庚廉等根据采集的图像判断是否有人单独进入扶梯,根据判断缓慢停梯[1];王紫旖研究了一套通过事故当事人或其他人发出被控制系统识别的求救声来制停自动扶梯的急停系统[2];Ghadamossoltani HA 提出一种扶梯智能急停系统,该系统根据扶梯上乘客的平衡条件,在发生事故时立即使扶梯停止运行[3];詹元设计了一种通过触动装置上的柔索,在扶梯上任意位置都可制停扶梯并报警的急停装置[4];周俊等通过计算人体对象角点光流判断异常行为,以便及时采取扶梯急停等措施[5];Lee HY 等的研究是通过自动感测扶梯的异常速度制停扶梯,以防止乘客跌落[6].这些研究方法具有检测准确、时效性好等优势,同时也存在针对人群单一、未完全解放人力等局限性.
本文在已有研究成果的基础上,针对扶梯上乘客摔倒问题,设计了一套扶梯自动急停系统.首先,采用OpenPose 关节点检测算法和Inception V3 网络模型搭建的分类器实现对人体摔倒行为的识别并输出检测结果.其次,利用STM32 微控制器及多种传感器构成扶梯自动急停装置对扶梯实施控制.最后,通过无线通讯方式连接摔倒行为识别端与扶梯控制端,并在模拟的扶梯环境下进行实验测试,以验证该系统的可行性.
随着神经网络在机器学习领域的发展,基于各种网络模型的姿态估计算法被广泛应用于机器视觉、行为检测以及动作跟踪定标等人工智能领域.一个成熟的多人姿态估计算法应包含目标检测、特征分割、特征点提取和特征描边等部分[7].本文采用OpenPose 关节点检测算法识别扶梯上乘客摔倒行为,得到人体骨骼模型图,利用基于卷积神经网络的图片识别模型Inception V3 搭建分类器进行图像分类训练,得到正常(站立)与异常(摔倒)两种图片训练集,从而实现对扶梯上乘客姿势的检测与判断.
OpenPose 关节点检测算法是由卡内基梅隆大学认知计算研究室提出的一种用于多人环境下对目标人体的身体结构、四肢形态进行实时估计的框架.该框架采用部分亲和域(PAFs)实现从关节点特征到人体骨架重建的算法结构[8].传统的检测算法大多采用自上而下的识别原理,其搭建的检测网络的识别速度会由于检测人数增加而降低,但采用OpenPose 框架的识别速度基本不受检测目标数量的影响.
OpenPose 框架采用VGG 预训练网络结构作为主体骨架,利用PAFs 来描述像素点在骨架中的走向L(p),通过两条分支分别回归L(p)和S(p),并在每个阶段进行一次Loss 运算,然后将原始输入与L(p)和S(p)联系,进行下个阶段的训练处理.阶段之间的迭代关系如图1 所示.
图1 OpenPose 双分支迭代关系图
图1 中,S(p)表示对应的关节点位置响应,p表示图像中的像素点.
对于响应S(p)的处理方法:首先,按照每一类的关节点特征频率生成相应的真值域,然后,通过多个高斯分布取极大值的处理方法保留每个像素点的响应峰值.最后,根据目标个体肢体类的PAFs 处理L(p),即检测出关节点后通过PAFs 推断来构建骨架.为了准确获得整个人形姿态骨架,采用匈牙利算法对相邻节点进行最优匹配,比如利用小臂的PAFs 计算边权来完成一堆左手腕节点和一堆左手肘节点的最优匹配[9].
根据OpenPose 关节点检测算法的开发环境安装其配置,安装完成后,通过编写图片测试程序提取骨骼特征,输入含有多人体的jpg 格式的图片,调用处理程序找出特征点;然后,将特征点连线构成人体骨骼模型图;最后,将处理后的结果显示出来.以单人图片为例,其特征提取流程如图2 所示.
图2 图片特征提取流程图
对输入图片处理后,修改测试程序.主要分为视频和摄像头测试,对视频和摄像头的测试程序与图片测试类似.首先,输入多人体的MP4 格式视频或打开摄像头进行实时采集,然后,将读取到的视频文件按帧处理并输出,构造出骨骼模型图并实时显示.
人体行为样本集主要围绕3 人以内的正常站立以及异常摔倒等状态特征进行扩充,扩充方法包括模拟环境、网络抓取以及通过开源数据库的挑选等.
为了采集扶梯环境相关数据,提高识别度,需要模拟多种场景的扶梯环境.以3 人为总样本,分别以1 人、2 人以及3 人进行批次录像.首先,通过不同站位和站姿来模拟正常行为状态,然后,依次在不同位置演示下蹲到摔倒的过程来模拟异常行为状态,将这个演示过程进行录像并按帧转换成图片集,该图片集分成正常、异常行为两个集合.最后,单独拍摄一段视频,截取相应图片作为测试集样本(包含正常、异常状况).
通过对比分析可知,直接利用未经特征提取的图片进行训练分类无法满足普适性要求,且容易受环境干扰,分类效果差,所以本次设计将以提取后的骨骼模型图为基准来完成相关样本集的制作.对样本集进行特征提取处理的步骤为:
Step 1.修改图片测试程序,依次输入所有样本图片;
Step 2.转化为人体骨骼模型图;
Step 3.去除背景后输出,制作出正常和异常状态的样本集.
制作完成正常与异常状态的特征图片样本集,进行分类训练.为了提高效率,满足识别精度,本文采用基于卷积神经网络的图片识别模型Inception V3.Inception V3 是Tensorflow 中的预训练模型之一,可完成对数千个种类的识别分类[10].利用Tensorflow 对Inception V3 的调用效率较高,只需将分类样本集中的图像依次输入网络,不需改变网络模型的中间层参数,就可生成相应的特征向量,将这些向量保存为文本信息,利用该信息训练Softmax 分类器[11].模型下载完成后,在计算机中执行以下指令:
Step 1.全路径运行重训练脚本文件;
Step 2.创建训练节点文件;
Step 3.输入训练次数;
Step 4.加载Inception V3 模型;
Step 5.输出训练模型文件;
Step 6.输出标签文件;
Step 7.加载特征图片训练集的地址.
由于条件有限,本设计中用于分类模型制作的特征图片样本数量并不充分,为了进一步扩充样本数量,采用镜像、反转以及特征变换等图像处理方式对样本集图像批量处理,最终得到3000 张标准特征图像.其中,单人站姿1000 张,单人异常姿态1000 张,多人(3 人以内)正常和异常状态图像1000 张.
将样本集图片按其类别放在不同子文件夹中,通过计算机运行自动完成训练.训练结果包括训练精度、验证精度、交叉熵等3 个参数值.单人样本通过200 次训练测试,得出的训练精度为99.0%,验证精度为95.0%,交叉熵损失值降到0.078 513,最终测试精度为98.9%.多人样本通过200 次训练后得到的测试精度为80.0%,单人样本部分训练次序的各参数值如表1所示.
基于模拟扶梯环境下的数据集分类模型制作完成后,需进行训练结果测试.人体摔倒行为检测总框图如图3 所示.首先,编写测试程序,依次加载模型和标签文件;然后,从特征提取后的测试图片集中取出几张图片用于分类器的测试,输入测试图片,经过测试程序分类处理后将输出正常和异常类的置信度,通过比较置信度的大小,可以判断该图像的种类.最后,摔倒行为识别端输出最终分类结果.
表1 单人样本训练参数值
图3 人体摔倒行为检测总框图
搭建自动扶梯的简易模型作为被控对象,选用直流电机作为驱动装置,实现扶梯启停控制、正反转控制、自动调速等基础功能的设计.完成扶梯基本功能的设计之后,需采用蓝牙串口通讯模块实现摔倒行为识别端与自动扶梯控制端之间的通讯.
相比于STC89C51,STM32 性能强大、外围接口丰富、工作速度快.因此,选择STM32 作为急停装置中的主控制器[12].
在实现正反转功能时,选用直流电机驱动模块.本设计采用两路直流电机驱动模块,该模块的输入端可连接单片机IO 端口或其他信号源,两路输出可分别连至两个电机,以控制其中一个电机为例,其逻辑真值表如 表2 所示.
表2 直流电机MOTOR-A 驱动逻辑真值表
通过改变电机驱动模块输入端口IN1、IN2 的逻辑值,实现扶梯的正反转,并在实物中设计了正反转切换按钮,使扶梯具有向上和向下两种运行状态.
为实现扶梯处于自动化操作模式的控制要求,根据现有扶梯具备的基本功能,通过改变PWM 脉冲的占空比调节扶梯的运行速度,以实现扶梯自动调速的功能.
硬件模块选用红外传感器和压力传感器对扶梯上有无乘客进行检测,从而根据检测情况自动调整扶梯的运行速度.红外传感器向外界发射红外线并根据接收反射回来的红外线的情况,检测扶梯入口处是否有乘客通过[13];压力传感器安装于扶梯每级台阶下面,检测乘客是否踏上扶梯.当检测到入口处有乘客通过并采集到具体的压力数据时,扶梯高速运行,否则,低速运行,这样可节省一定的电能[14].
本次实物设计使用一个压力传感器,但在实际应用中,压力传感器应遍布扶梯每级台阶,以保证检测到每个梯级上乘客的压力值.在扶梯高速运行程序设计中,每个压力传感器之间为“或”的关系,任意一个传感器检测到有压力数值,扶梯都将提高速度运行;在扶梯低速运行程序设计中,每个压力传感器之间为“与”的关系,只有所有梯级上的压力都消失,扶梯才能低速运行.
完成人体摔倒行为的识别和扶梯自动急停装置设计后,需建立两者之间的连接以构成一个完整的系统.人体摔倒行为识别端即上位机检测系统,扶梯自动急停装置即下位机控制系统.本设计采用无线通讯方式传输信息,选用蓝牙串口通讯模块作为硬件,该模块的通讯距离约为10 米,可直接当作串口使用,使用者可根据实际需要更改主、从模式.
在通讯设计中,将蓝牙串口通讯模块设置为从模式,并作为信息接收者与上位机检测系统配对.配对成功后,上位机检测系统实时采集扶梯中乘客的图像信息,并根据识别结果发送0/1 数字信号至下位机控制系统.当控制端接收到高电平信号时表明有乘客摔倒,则立即控制扶梯停止运行;否则,扶梯保持其原有状态运行.
实现人体摔倒行为识别端和扶梯控制端的通讯后,基于机器视觉的扶梯自动急停系统搭建完成,系统的组织结构如图4 所示.
图4 扶梯急停系统组织结构图
由于Python 版本的环境支持Tensorflow 平台,且Python 语言简单、复现较容易,因此本次实验以基于Python语言Tensorflow环境的开源版本作为OpenPose 框架的实现平台,以验证系统的有效性.由于实际的扶梯环境存在人员较多、突发情况复杂,不便进行实际操作.因此,本实验利用楼梯模拟扶梯环境,选取光照条件较好且有扶手的楼梯,以保证图像的采集.由于实际操作中设备条件限制,为确保摄像时可以捕捉到整个楼梯的图像,实验选取具有较少台阶数(11 级台阶)的楼梯作为实验环境,实验背景信息见表3.
表3 实验背景信息表
在人体摔倒行为识别端与扶梯控制端连接成功后进行测试.打开摄像头,实时采集楼梯间的图像信息.此次实验分为单人检测和多人检测两种情况,共五组实验.其中,以3 人模拟多人检测的情况.
(1)单人检测情况
1)第一组实验:当实验者踏上楼梯且正常站立时,如图5(a)所示,红外传感器检测到有人通过;同时压力传感器感应到压力值,扶梯自动变速至高速运行,如图5(b)所示.
图5 单人站立测试图
2)第二组实验:当实验者摔倒时,如图6(a)所示,识别端发送异常行为信号至控制端,控制端接收到后立即控制扶梯停止运行,如图6(b)所示.
图6 单人摔倒测试图
(2)多人检测情况
1)第三组实验:当多人踏上楼梯且都正常站立时,如图7(a)所示,红外传感器检测到有人通过,乘客站立在不同阶梯下的压力传感器感应到压力值,扶梯将自动变为高速运行,如图7(b)所示.
图7 多人站立测试图
2)第四、五组实验:当楼梯上的3 人中有一人摔倒或两人摔倒时,如图8(a)、图8(b)所示,识别端都可以准确检测出人的摔倒行为,并发送异常行为信号至控制端,控制端接收后立即控制扶梯急停,如图8(c)所示.
图8 多人摔倒测试图
本次实验测试中,5 组实验都达到了预期的识别与控制效果,系统响应时间约为1.5 s 且能发送准确信号至扶梯控制端.扶梯自动急停装置在接收到识别端信号后立即实施对扶梯的控制,实时性良好,验证了系统的有效性.根据测试结果可知,系统在单人情况下的实际检测精度可高达95.0%,在多人情况下检测精度可达80.0%,实际检测精度与训练测试精度存在一定误差.与单人环境相比,多人环境下干扰因素多,不同类状态下的数据信息量庞大,所以进行分类训练时,在条件有限的情况下无法采集到较全面的类状态信息,导致训练出的分类集完整度不够,从而对测试准确率有一定影响.未来可增加更多样本集或优化网络结构来进一步提高分类模型的精度.
本文基于OpenPose 关节点检测算法和Inception V3 图片识别模型建立了人体摔倒行为检测系统,完成了扶梯简易模型的搭建以及扶梯自动急停装置的设计.实现了上位机检测系统与下位机控制系统的通讯,通过实验测试证明了该系统的行为识别速度和控制实时性良好,达到了当检测到有乘客摔倒后扶梯可自动急停的目的.未来可考虑采用更加高效的方法在真实扶梯环境中进行多人识别检测与扶梯急停系统的应用,进一步提高系统的高效性与实用性.