APP下载

复杂场景下的行人跌倒检测算法

2023-07-03魏驰宇张心月

计算机应用 2023年6期
关键词:卷积特征模块

方 可,刘 蓉,魏驰宇,张心月,刘 杨

(华中师范大学 物理科学与技术学院,武汉 430079)

0 引言

人口老龄化是我国目前一个重要的趋势,第七次全国人口普查结果显示,2020 年我国60 岁及以上人口已超2.6 亿,占总人口比例的18.70%[1]。世界卫生组织(World Health Organization,WHO)指出,跌倒已经成为全球老年人共同面临的一个健康问题,在全世界范围内都是一个非常严峻的公共卫生问题,它会增加社会医疗负担,影响老年人生活质量。2014 年一项针对中国老年人跌倒发生率的Meta 分析[2]指出,我国老年人的跌倒率为18.3%,因跌倒所致的直接医疗费用每年高达50 亿元人民币[3]。因此,对跌倒进行检测并及时采取相应措施以减轻跌倒所带来的伤害,可以降低老年人的安全风险,节省社会医疗资源。

随着机器学习和人工智能的飞速发展,检测系统涌现出许多研究与算法。根据设备和检测方法的不同,目前常见的跌倒检测方法主要分为三大类:基于可穿戴式传感器的方法、基于场景传感器的方法和基于计算机视觉的方法[4]。基于可穿戴设备的方法主要是将加速度传感器、红外传感器等嵌入到手环、衣服等设备中自动检测跌倒行为,通过蓝牙、无线网络等通信设备发送求助信息,这种方式需要老年人常年佩戴传感器,用户体验受限;基于场景传感器的方法利用安装在监控区域内的场景传感器采集环境信息以判断是否发生跌倒行为,但此类方法抗噪性差,容易错报导致准确率较低;基于计算机视觉的跌倒检测不同于穿戴式和环境式的检测方式,通过从监控设备中获取人体运动信息,并对获取的视频和图像进行处理以检测跌倒目标,具有无需穿戴、不影响正常活动的特点,并且实时性好,检测准确率也更高。

利用计算机视觉进行跌倒检测的重点是如何有效提取视频图像中的运动目标并判断是否发生跌倒。随着计算机视觉和深度学习技术近年来的快速发展,基于深度学习的目标检测算法成为主流的跌倒检测方式。深度学习中目标检测算法主要分为两大类别:基于候选区域和基于回归。基于候选区域的目标检测算法也称为二阶段(two stage)方法,以Faster R-CNN(Region-based Conventional Neural Network)[5]为例,将目标检测问题分成两个阶段:一是使用区域候选网络(Region Proposal Network,RPN)经过卷积操作后生成一系列可能包含目标的候选区域;二是把候选区域放入分类器中进行分类并修正位置。基于回归的目标检测算法只有一阶段(one stage)方 法,以YOLO(You Only Look Once)[6]、SSD(Single Shot multibox Detector)[7]、CenterNet[8]、全卷积一阶段目标检 测(Fully Convolutional One-Stage object detection,FCOS)[9]等算法为代表,直接对预测的目标物体进行回归,虽然检测速度较快,但是检测精度较低。

基于深度学习的跌倒检测算法研究中,Feng 等[10]提出一种结合跌倒场景空间与时间的长短期记忆(Long Short-Term Memory,LSTM)模型,并在一阶段代表算法YOLOv3(You Only Look Once version 3)[11]的基础上加入跟踪模块,为每个跟踪的边界框提取卷积神经网络(Convolutional Neural Network,CNN)特征,取得了良好的性能与检测速度。朱艳等[12]提出一种新型跌倒检测模型,以深度视觉传感器获取的骨骼节点为样本数据源,输入所设计的CNN 模型中进行训练,得到优化的跌倒检测模型参数。Chen 等[13]首次将二阶段代表算法Mask R-CNN[14]用于准确提取噪声背景中的运动目标,并提出一种注意引导的双向LSTM 模型用于最终的跌倒事件。马露等[15]针对监控视频中的复杂场景及多种相似性人类行为干扰的情况,在典型单阶段目标检测算法SSD 的基础上,提出一种改进的特征融合单阶段多框检测器(Feature fusion Single Shot multibox Detector,FSSD)跌倒检测方法,可以有效检测每帧图像的跌倒目标。Cai 等[16]针对深度网络中的信息丢失问题,提出了一种使用多任务沙漏卷积自动编码器的基于视觉的跌倒检测方法,通过完成帧重建的辅助任务来增强网络特征,以实现精确的跌倒检测。曹建荣等[17]提出了一种融合人体运动信息的深度学习跌倒检测算法,着重改善了人为涉及特征造成的不完备性、前后景分离困难和目标混淆或丢失的问题。García 等[18]使用LSTM 神经网络对时间序列进行分类,并提出一种新的数据增强阶段,通过合并日常活动中的时间序列,在训练中引入了可变性,从而让模型变得更稳健、精确。Wang 等[19]提出一种双通道特征融合的跌倒检测方法,首先使用目标检测模型和人体姿态检测模型获取人体关键点和位置信息,然后利用双通道滑动窗口模型提取人体的动态及静态特征,输入多层感知机(Multi-Layer Perceptron,MLP)和随机森林进行最后的分类。上述算法均能取得不错的效果,但是模型参数量和计算量都较高,网络结构复杂,训练难度较大,导致实时性差;并且在复杂场景下的鲁棒性一般,适用范围有限,难以应用于实际环境中。

本文针对复杂场景下跌倒检测率较低的问题,提出一种改进的跌倒检测模型——PDD-FCOS(PVT DRFPN DIoU-Fully Convolutional One-Stage object detection),在特征提取和特征融合部分融合多种注意力机制,计算并调整不同通道的权重,促进网络识别目标的位置特征,以准确实现跌倒检测。

本文的主要工作包括如下内容。

1)为提取丰富的多尺度特征,特征提取过程中采用金字塔视觉转换器(Pyramid Vision Transformer,PVT)[20]替换ResNet50[21]作为骨干网络进行特征提取,引入特征金字塔结构,没有任何卷积操作,在减少计算量且不增加参数量的同时,能提取到丰富的语义信息。

2)在特征融合过程中引入双重细化特征金字塔网络(Dual Refinement Feature Pyramid Networks,DRFPN)[22]。它由空间细化块(Spatial Refinement Block,SRB)和信道细化块(Channel Refinement Block,CRB)两个模块组成,分别用于缓解空间采样不准确和信道融合不准确的问题。

3)采用距离交并比(Distance Intersection over Union,DIoU)[23]损失,加快模型训练收敛,解决交并比(Intersection over Union,IoU)[9]不能衡量框的距离以及相交方式的问题,为边界框提供移动方向和更准确的位置信息。

1 FCOS网络模型

FCOS 是一种基于全卷积的单阶段目标检测器,是像素级别的目标检测,主要思想类似于语义分割。FCOS 网络结构如图1 所示。FCOS 选取ResNet50 作为基础网络,首先骨干网络对图片进行多层次特征提取得到3 组特征结果后,在特征融合阶段将特征图{C3,C4,C5}作为特征融合层的输入;然后通过自顶向下和横向连接等方式融合形成特征金字塔{P3,P4,P5,P6,P7},每层特征图输入检测头模块后都有逐像素点的分类和回归两条支路。

图1 FCOS网络结构Fig.1 Network structure of FCOS

为了抑制低质量的正样本,FCOS 引入中心度(Centerness)[13]的概念,中心度的定义如式(1)所示:

中心度表示样本偏离中心的程度,取值范围为[0,1],若样本逐渐偏离中心,中心度会越来越小。FCOS 中检测头模块新加一个分支用于预测中心度,在非极大值抑制(Non-Maximum Suppression,NMS)[9]过程中,过于偏离中心的样本有可能被去除,从而提升整体算法的性能。

2 跌倒检测模型

为适应在复杂场景下对行人跌倒行为的检测,提升检测效果,本文提出的PDD-FCOS 是一种无锚框的跌倒检测算法。算法模型由特征提取、特征融合和检测头这3 个模块构成,结构如图2 所示。首先在特征提取模块,鉴于注意力机制获取多尺度特征的能力,输入图片经过无卷积操作的金字塔视觉转换器(Pyramid Vision Transformer,PVT)提取得到多层次特征{P2,P3,P4,P5},提取更加丰富的语义信息。其次在特征融合模块,构建DRFPN,采用SRB 优化通道间的融合方法,并通过CRB 赋予各通道不同的权重。最后通过横向连接的方式形成特征金字塔{N2,N3,N4,N5,N6,N7}传向检测头,检测头模块主要进行最终的分类和回归。为更好地衡量真实框与预测框的位置关系与相交方式,使收敛框收敛更快、精度更高,本文算法在回归框损失函数中采用DIoU。本章将联系基准FCOS 算法中的各种检测问题,从特征提取、特征融合和损失函数3 个模块对PDD-FCOS 模型所作改进进行详细的阐述。

图2 PDD-FCOS模型结构Fig.2 Structure of PDD-FCOS model

2.1 特征提取模块

FCOS 骨干网络ResNet50 的感受野随着深度的增加而增大,只能逐步获取期望的局部结构。为了可以在密集的预测任务中提取更丰富的特征信息,本文在骨干网络处采用PVT,此结构基于纯Transformer 模块通过将图像视为块序列,并融入金字塔结构以提取多尺度特征图。PVT 能产生全局感受野,所以比ResNet50 的局部感受野更适合检测目标。同时,由于金字塔结构的推进,PVT 更容易插入许多有代表性的密集预测管道。

为了以更简单的方式处理高分辨率的特征图,PVT 对ViT(Vision Transformer)的多头注意力模块作了调整,提出一种线性空间减少注意力(Spatial Reduction Attention,SRA)机制[23],它接收一个查询Q、一个键K和一个值V作为输入,并输出一个改进后的特征。SRA 中的K和V空间均减少,降低了计算和内存的成本。可以将第一阶段的SRA 详细信息表述如式(2)~(4)所示:

本文采用的PVT 版本为PVTv2[24],突出特点为SRA 的应用。通过空间缩减,SRA 的计算和存储成本远小于多头注意力(Multi-Head Attention,MHA),MHA 与线性SRA 的操作对比如图3 所示,其中c指输出通道。

图3 多头注意力与线性SRA的对比Fig.3 Comparison between multi-head attention and linear SRA

与PVTv1 中使用卷积进行空间缩减的SRA 不同,线性SRA 使用平均池化将空间维度H×W在注意力操作之前缩减为固定大小的P×P,因此线性SRA 具有跟卷积层相似的线性计算和内存成本。

PVT 整个结构中一共分为4 个相似的阶段,堆叠多个独立的Transformer encoder,每个Transformer 模块都由一个多头自注意力(Multi-Head Self-Attention,MHSA)层[25]和一个前馈多层感知机(Feedforward MLP,FMLP)[25]组成。MHSA的计算公式如式(5)所示:

其中:Q为查询矩阵,K和V分别为矩阵表示的键和值,d表示词向量的长度。PVT 在每个阶段中通过贴片嵌入(Patch Embedding,Patch Emb)逐渐降低输入的分辨率。在第一阶段给定一个H×W×3 大小的输入图像,首先将它划分为(H/4)×(W/4)个切片,每个切片的尺寸为4×4×3;然后将展平的切片送到线性投影,并获得尺寸为(H/4)×(W/4)×C1的Patch Embedding、Patch Embedding 和Position Embedding 一起通过具有L1层的Transformer 编码器;最后输出重塑后尺寸为(H/4)×(W/4)×C1的特征图F1。以相同的方式,使用前一阶段的特征图作为输入,从而获得以下特征图F3、F4 和F5,其相较于输入图像的步幅分别为8、16、32和64。使用金字塔特征图{F2,F3,F4,F5},使PVT 可以适当作为目标检测任务的骨干提取网络。PVT的总体架构如图4所示。

图4 PVT的总体架构Fig.4 Overall architecture of PVT

2.2 双重细化金字塔特征融合模块

经过骨干网络PVT 提取得到多层次特征{F2,F3,F4,F5}后,为了让低层特征图尽可能地预测小物体,让高层特征图尽可能地预测大物体,FCOS 采用多尺度分级预测机制特征金字塔网络(Feature Pyramid Network,FPN)[9]。FPN 包括两个阶段:第一阶段,FPN 对每个通道的特征图进行上采样,由于存在许多不同维度的卷积算子和重复的池化操作,相邻特征会存在语义和分辨率上的差距,因此插值法在合并中引入了大量错误和冗余的信息;第二阶段,FPN 使用直接加法融合向上采样具有相同空间分辨率的通道;但是部分模式包含更抽象的信息,而其他模式包含更详细的信息,因此合并时这些模式的重要性是不同的。

为更好提升模型的性能,本文采用双重细化特征金字塔网络(DRFPN)解决以上问题,DRFPN 由空间细化块(SRB)和信道细化块(CRB)两个模块组成。SRB 基于相邻级别之间的上下文信息学习采样点的位置和内容。CRB 学习了一种基于注意力机制的自适应信道合并方法,在特征地图层面学习不同模式之间的关系,有利于准确区分物体和背景。SRB和CRB 的结构如图5 所示。

图5 SRB和CRB的结构Fig.5 Structure of SRB and CRB

SRB 主要解决两个问题:第一,仅基于位置信息对分辨率较高的特征图进行上采样是不准确的;第二,不同的采样点包含不同的语义信息,不应具有相同的权重。SRB 首先合并相邻层的上下文信息学习采样点的偏移量,然后使用全局信息细化每个采样点的值。SRB 总体过程分为两个子任务:采样点偏移和全局信息细化。如图5(a)所示,SRB 学习整个特征映射的每个像素的偏移量,使偏移矩阵的参数数量大幅减少,而且SRB 结合不同尺度的信息,准确得出采样位置。SRB 还利用全局信息细化采样权重,使采样结果更加准确。SRB 的计算输出公式如式(6)所示:

其中conv3是指3×3 的卷积层;up 是上采样操作;ω是重新排列的权重指在所有像素被映射后,形成的与低级别特征图大小相同的特征图;⊙是Hadamard 乘积。SRB 首先使用两个1×1 的卷积层压缩两个特征图Flow和Fhigh的通道,并通过逆卷积层将Fhigh采样到与Flow相同的大小,然后将它们连接在一起,并使用连接后的特征映射作为SRB 全局细化工作的输入,P是SRB 的最终输出结果。

CRB 旨在根据上下文优化通道间的融合方法。如图5(b)所示,该模块以自下而上的方式工作,使用通道注意机制引导网络在相邻层合并时学习通道的权重。CRB 侧重于在合并时相邻层如何通过上下文相互引导,并在特征融合过程中使用低级特征映射的语义信息学习高级特征映射的权重。在不显著增加计算量的情况下,CRB 捕获通道之间更准确的语义关系,并提高最终检测性能。CRB 的计算输出公式如式(7)(8)所示:

其中:GAP 表示全局平均池化,conv3表示3×3 卷积,conv1是一个内核大小为1×1的卷积核,convdown是3×3步幅的卷积。CRB首先通过全局平均池化在特征图Flow上获取权重引导信息,并与1×1 卷积层细化后的Fhigh进行Hadamard 乘积,然后加上步长为2、大小为3×3的卷积层处理Fhigh后的特征图得到Pl,并由另一个3×3的卷积层处理后得到CRB的最终特征Nl。

2.3 损失函数

对目标进行位置预测时,算法生成不止一个预测框,需要使用非极大值抑制(NMS)方法[9]删除多余的预测框,从而选择最接近真实框的预测框。在FCOS 中,交并比(IoU)[9]作为衡量边界框置信度的评价指标,对正负样本的选择起着至关重要的作用。研究证明,IoU 损失函数在回归框损失的计算拥有不错的效果,但是IoU 无法衡量两个边界框的距离,不能反映两者的相交方式,而且IoU 损失函数仅与两框的IoU 和相交面积相关。如果直接使用IoU 作为损失函数,当两框相交面积相同时IoU 损失函数也相等,无法给出预测框和真实框的重合度;当两框不相交时损失函数为零,无法优化边界框,无法准确衡量位置信息。针对上述问题,本文采用距离交并比(DIoU)代替IoU 作为评价边界框位置的参数,同时使用DIoU Loss 作为边界框位置预测的损失函数。DIoU在IoU 的基础上加入一个包含边界框和真实框的最小凸包,DIoU 定义如式(9)所示:

其中:ρ代表两个框中心点之间的欧氏距离,B和Bgt分别表示预测框和真实框,C表示能够同时覆盖预测框和真实框最小矩形的对角线距离。当两框的DIoU 值越大时,损失函数就越小。当边界框与目标框全部重合时损失函数为0;当两框相距很远时损失函数等于2,所以能够更好地反映两框之间的重合度。目标检测算法中已引入多种回归框损失函数,在本文算法中DIoU 的精度提升效果与参数复杂度最优,所以本文采用DIoU 作为损失函数。当边界框与目标框不相交时,DIoU 仍然可以为边界框提供更准确的移动方向,并且它损失限制的是两个框的距离,因此会提高模型收敛速度,即使两框包含也能达到上述效果。同时,利用DIoU 代替IoU 作为评价参数,当边界框与真实框上下或左右相邻时,DIoU 能够优化不相交的边界框,保留位置更准确的边界框,从而提高模型对目标位置预测的准确率,使它通过NMS 筛选得到的结果更加合理。

3 实验与结果分析

3.1 实验数据集

本次实验使用百度AIStudio 上的开源跌倒检测数据集Fall detection Database(https://aistudio.baidu.com/aistudio/datasetdetail/94809),该数据集为VOC 格式,总共有1 442 张图片,包含多种场景下的跌倒情形。数据集中多场景跌倒的示例见图6。本文实验将数据集转化为COCO 格式,并按照8∶2 随机分为训练集和测试集,即训练集1 154 张,测试集288 张。为提高模型泛化能力,本文在实验中对数据采取了水平翻转、随机剪裁、角度旋转等扩充方式。

图6 多场景跌倒示例Fig.6 Fall examples in multiple scenes

3.2 评估标准及实验环境

本文利用准确率P(Precision)和召回率R(Recall)计算的平均精确度均值(mean Average Precision,mAP)作为网络模型性能评估标准。mAP 是所有类别平均检测准确率(Average Precision,AP)的均值,用来评价检测模型的整体性能。P、R和mAP的计算如式(10)~(13)所示:

其中:TP(True Positive)为被正确预测的正例数,FP(False Positive)为被错误预测为正例的负例数,FN(False Negative)为被错误预测为负例的正例数,n为检测类别数,VAP(i)为各类检测精度。本文搭建的实验环境具体设置如表1 所示。

表1 实验环境Tab.1 Experimental environment

训练时采用AdamW 的优化算法,初始学习率为0.001,共训练60 轮,并使用MultiStepLR 衰减策略,在48 轮和54 轮时将学习率调整为当前的1/10。

3.3 实验场景测试

本文在多场景下将原始FCOS 和本文算法进行可视化对比,跌倒检测效果按前倒、后倒、侧倒和复杂场景这4 种方式进行对比展示,可视化结果如图7 所示。通过对比可以看出,在4 种方式下,本文算法的检测精度均有不同程度的提升,该可视化效果图也验证了本文算法能提升行人跌倒检测的有效性。

图7 可视化结果对比Fig.7 Comparison of visualization results

3.4 对比实验

本实验将本文检测算法与其他4 种主流目标检测算法(文献[5,11,14]算法和基准算法FCOS[9])进行比较,从而进一步验证本文算法的有效性。实验将IoU 值为0.5 时的mAP作为评价标准,并列出各算法的参数量与计算量,如表2所示。

表2 实验结果对比Tab.2 Comparison of experimental results

本文算法与两阶段目标检测算法代表Faster R-CNN 相比,参数量与计算量均有所减小,但是mAP 有0.9 个百分点的提升;与以Faster R-CNN 为基准改进的Mask-RCNN 相比,mAP 也有0.4 个百分点的提升;与一阶段目标检测算法代表YOLOv3 相比,在计算量有所减小、参数量减半的情况下,mAP 仍提高了1.9 个百分点;与基准算法FCOS(Baseline)相比,虽然参数量略有增加,但是计算量有所减小,mAP 也在原基础上提升了6.4 个百分点。通过与多种主流目标检测算法的比较,验证了本文算法的有效性。

3.5 消融实验

为验证本文算法各个模块对AP 的影响,本文设置了4组对比实验,IoU 值设置为0.5,除去表3 中对比的模块以外,其余设置全部相同。消融实验结果如表3 所示。

在第1 组使用基准(Baseline)算法FCOS,即没有任何改进的情况下mAP 为75.8%;第2 组实验用金字塔视觉转换器(PVT)替换了骨干网络ResNet50 之后,mAP 提升了4.0 个百分点;第3 组实验在回归框损失计算中用DIoU 代替了IoU 之后,mAP 又提升了1.7 个百分点;第4 组实验将双重细化特征金字塔(DRFPN)插入原有FPN 之后,mAP 进一步提升了0.7个百分点。消融实验结果表明改进后的算法mAP 比原Baseline 算法整体提升了6.4 个百分点,证明了该算法在各模块改进后均能有效提升对多场景行人跌倒的检测精度。

4 结语

本文针对行人跌倒检测在复杂场景下检测精度较低的问题,提出一种行人跌倒检测模型——PDD-FCOS。在特征提取阶段,针对FCOS 骨干网络ResNet50 网络过深导致参数量过大的问题,引入一种金字塔结构的特征转换器PVT 作为新的骨干网络,从而提取到更为丰富的特征语义;在特征融合阶段,加入SRB 和CRB 两个模块,弥补了FPN 中相邻层特征融合的设计缺陷。在边界回归损失问题上,考虑中心点距离的归一化问题,采用距离交并比的策略,使收敛更快,性能更好。实验结果表明,在减少计算量的情况下,比原算法的mAP 提高了6.4 个百分点,可见改进后算法的有效性。实验结果也表明,对于行人跌倒数据集中小目标的检测效果仍有待提高,这也是未来要进一步研究的内容。

猜你喜欢

卷积特征模块
28通道收发处理模块设计
“选修3—3”模块的复习备考
基于3D-Winograd的快速卷积算法设计及FPGA实现
如何表达“特征”
从滤波器理解卷积
不忠诚的四个特征
基于傅里叶域卷积表示的目标跟踪算法
抓住特征巧观察
一种基于卷积神经网络的性别识别方法
线性代数的应用特征