论文精读 BlazePose结合LSTM 跌倒检测

news2024/12/29 10:12:20

Fall Detection for Shipboard Seafarers Based on Optimized BlazePose and LSTM

基于BlazePose-LSTM的海员跌倒检测

本博客通过全文翻译和总结的方式对论文进行精读。读完此论文颇受启发,比如:

  1. 视频中的时间序列问题;
  2. 文章简单明了的整体脉络;
  3. 数据集的制作方式和表格描述法;
  4. 实验证明模型的广泛性;
  5. 整篇文章一直在强调现如今存在的问题和相应的解决方案。

关于BlazePose的论文,有兴趣的朋友可以看本人的另一篇文章:MediaPipe之人体关键点检测>>>BlazePose论文精度_mediapipe论文_Flying Bulldog的博客-CSDN博客icon-default.png?t=N5K3https://blog.csdn.net/qq_54185421/article/details/128919105?spm=1001.2014.3001.5502

论文链接:https://www.mdpi.com/1424-8220/22/14/5449

论文期刊:Sensors | An Open Access Journal from MDPI SCI三区(开源较多)

LetPub地址:https://letpub.com.cn/index.php?journalid=7473&page=journalapp&view=detail 

目录

1 摘要

2 结论

3 介绍

4 相关工作

5 方法

5.1 基于BlazePose的人体关键点提取网络

5.2 基于偏移矢量的优化边界box检测器

5.3 长短期记忆神经网络(LSTM)

6 数据集和实验结果分析 

6.1 实验数据集

6.2 实验环境

6.3 实验结果

6.4 在航船舶海员跌倒检测的通用化实验


1 摘要

为了避免在船上工作的海员跌倒后未能及时获得医疗救助而造成人身伤害,研究海员跌倒的检测并及时向安全官员发出警告,可以减少跌倒给海员带来的损失和严重后果。为了提高海员跌倒检测算法的检测精度和实时性能,提出了一种基于BlazePose–LSTM的海员跌倒检测算法。该算法能够从视觉传感器获得的视频图像中自动提取人体关键点信息,并实现了从RGBcamera图像处理到海员跌倒检测的过程,该跌倒检测算法通过优化的BlazePose人体关键点信息提取网络提取人体关键点的信息。在本文中,提出了一种新的人体边界框(bbox)获取方法。在本研究中,使用了一种基于维特鲁威理论的头部检测器来代替BlazePose预热模块中预先训练的SSD人体检测器。同时,提出了一种偏移向量来更新所获得的边界框,该方法可以减少头部检测模块的重复使用频率。然后,该算法使用长短期记忆神经网络(LSTM)来检测海员跌倒。从URFall公共数据集和FDD公共数据集中提取跌倒及相关行为数据,丰富自制数据集,实验结果表明,该算法对海员跌倒行为的准确率为100%,特异性为98.5%,表明该算法具有合理的实用性和较强的泛化能力,在一个CPU上检测帧率可达29fps,能够满足实时检测的效果,可以应用于普通视觉传感器。

Keywords: BlazePose; long short-term memory neural network; fall detection; deep learning

2 结论

基于优化的BlazePose–LSTM海员跌倒检测模型,本研究首次使用基于优化BlazePoses网络的人体关键点信息提取来检测头部并获得人体特征信息。

  1. 首先,本研究根据维特鲁威理论,设计了一种头部检测器来取代预训练的SSD身体检测器。
  2. 然后,在获得人体边界框后,设计了一个偏移向量来更新人体边界框,这样网络中内置的头部检测器就不需要重复启用。
  3. 最后,通过方框图清除提取的信息,然后使用LSTM来确定海员是否跌倒。(此文章中的LSTM用于图像分类,更好的解决时间序列依赖问题,提高检测精度)

同时,本研究在URFall公共数据集和FDD公共数据集上验证了本文提出的方法,证明了该方法可以获得更高的精度和检测帧率。未来,我们将评估我们的方法在多次跌倒情况下的性能。此外,该算法还可以安排在移动设备上实现工业应用。

3 介绍

随着党的十九大报告中对海洋动力“蓝色信念”的普遍认识不断深化,海上交通中的人身安全问题日益受到广泛关注。根据欧洲海事局(EMSA)发布的《2021年度海上伤亡事件综述》[1],2014年至2020年,共有550人在事故中失踪,367人被确认死亡;89.1%的受害者是海员。除了9.8%的伤亡是由于落水,其余的伤亡是由人的滑倒、绊倒和跌倒造成的。跌倒是身体姿势的突然、非自愿、非故意变化,摔倒在地或下表面,但不包括因剧烈打击、意识丧失、中风或癫痫发作而造成的行为[2]。跌倒可对海员造成非致命性和致命性伤害。海员跌倒可导致轻微伤害,如扭伤和擦伤。如果在特殊操作条件下发生跌倒,也会导致严重伤害,如骨折和脑出血,这将影响船舶的航行状态,并增加相应家庭的经济负担。它也影响着海员的生活质量。为了减少海员跌倒造成的伤害和后果,准确检测船上海员的跌倒情况并及时治疗跌倒的海员变得越来越重要。因此,对海员跌倒检测的研究具有非常重要的社会意义。海员跌倒检测算法基于RGB摄像机等常见视觉传感器,是指通过RGB摄像机设备采集连续视频图像帧进行智能图像处理后,判断海员是否跌倒的过程。主要过程如下:首先对原始视频图像进行预处理,然后从预处理后的数据中提取特征,最后使用预先训练的分类算法(如长短期记忆神经网络[4,5])基于特征进行跌倒检测。

4. 《Deep Learning for Fall Detection:Three-Dimensional CNN Combined with LSTM on VideoKinematic Data》

5. 《Bi-LSTM Network for Multimodal Continuous Human ActivityRecognition and Fall Detection》

由于目前常用的人体关键点信息提取算法,如OpenPose[6]、AlphaPose[7]等网络,很容易受到海员操作造成的遮挡等因素的影响,许多能够代表海员当前状态的重要特征将丢失。因此,本研究使用BlazePose人体关键点信息提取网络[8]来提取特征信息。目前存在的问题:尽管BlazePoses可以很好地解决遮挡问题,但当网络重新启动预先训练的SSD身体检测模型以获得人体边界框时,会导致人体关键点信息的丢失。为了解决这个问题,我们提出了一种方法,使用偏移向量来更新优化的头部检测器获得的人体边界框,这大大保证了关键点信息网络提取的稳定性,并在一定程度上降低了网络的权重,使其更适合于移动设备和普通视觉传感器上的布局。

跌倒行为的判断不仅需要跌倒的数据,而且在很大程度上依赖于跌倒前的数据。基于此,本文提出了一种基于长短期记忆神经网络的跌倒检测算法,适用于处理长期依赖性问题。该网络可以避免普通递归神经网络引起的梯度消失和梯度爆炸问题。实验表明,本文提出的BlazePose–LSTM海员跌倒检测模型可以更好地应用于海员的工作环境,并可以部署在通用计算设备上。

本文的主要贡献如下:

  1. 提出了一种基于优化BlazePose–LSTM的海员跌倒检测模型;因此,LSTM被用于跌倒识别。由于其特殊的门控单元,长依赖性问题得到了很好的解决。
  2. 偏移向量用于更新由优化的头部检测器生成的人体边界框,这减少了重复启动头部检测模型的需要,加快了模型的跌倒检测效率,并使以较低的计算力布置板载RGB视觉传感器成为可能。
  3. 本文提出的方法可以解决由于遮挡和自遮挡而无法进行跌倒检测的问题,并且在复杂的工作环境中仍然具有良好的泛化能力。

4 相关工作

目前,实现海员跌倒检测的方法大致可分为三种:

  1. 基于环境传感器的海员跌倒检测方法,
  2. 基于可穿戴传感器的海员摔倒检测方法,
  3. 基于视觉传感器的海员坠落检测方法。

基于环境传感器的海员跌倒检测方法主要将相关设备布置在海员活动环境中,记录当前环境中的海员活动,然后融合压力传感器和声学传感器等环境传感器收集的信息[9],检测海员跌倒。然而,这种方法很容易受到环境的影响,需要更多的信息监测设备,并且只能在固定区域(如室内)检测海员跌倒[10]。基于可穿戴传感器的海员跌倒检测方法主要使用特定的可穿戴MEMS设备[11-13],如皮带和智能手表,来监测海员的各种身体迹象。如果身体的各项指标出现异常,并且异常与跌倒的特征一致,则判断为跌倒。例如,Desai等人[14]使用简单的32位微控制器设计了一条皮带。该安全带不仅可以首次检测跌倒情况,还可以通过GSM模块向跌倒者的家人发送遇险信息。此外,它还可以配备实时安全机构,以最大限度地减少跌倒时的伤害。然而,大多数海员在船上工作时都戴着安全帽、安全绳和救生衣。如果继续佩戴其他可穿戴设备,不仅会因为工作设备的影响而获得准确的数据,还会影响海员的工作。

(基于视觉传感器的海员坠落检测方法)随着视觉算法的发展,越来越多的新型轻量级分类网络被部署在视觉传感器上,视觉任务可以在不依赖计算能力的情况下实现。通过RGB相机等常见视觉传感器获取的视频图像数据,然后使用训练分类模型用于海员跌倒检测。例如,H.Abdo等人[15]使用RetinaNet检测视频中的人,并获得运动特征和人体形状特征(包括人体边界框和运动历史图像的方面),然后输入改进的移动网以确定它们是否掉落;Y.Chen等人[16]使用OpenPose–SVM组合算法来检测跌倒的人,该算法可以准确地确定人们是否倾向于跌倒。实验证明,它们在MCFD和URFD两个公共数据集上的识别率分别为92.5%和95.8%;Ramirez等人[17]使用AlphaPose–kNN组合算法来检测跌倒的人。首先,使用AlphaPose来获取人体的骨骼信息;然后将信息输入到KNN网络中进行分类。在公共UP-Fall数据集上获得了99.51%的准确率。

在基于视觉传感器的海员跌倒检测方法中,常用的跌倒检测算法有基于阈值法[18]和机器学习[19]。阈值法大多提取能够表征人体运动信息的人体特征,用统计方法进行预处理,然后与预设阈值进行比较,其中阈值更依赖于提取的运动信息。跌倒检测算法以机器学习算法为核心,将海员的跌倒行为转化为一个多分类问题,对跌倒行为和其他类似行为进行分类。阈值方法从预处理的数据中提取特征,并使用机器学习算法建立海员检测模型。常见的机器学习算法包括随机森林[20]、人工神经网络[21]和决策树[22]。例如,Younis等人[23]以支持向量机为核心,提出了跌倒和非跌倒事件的一种新的特征判别特征。然后利用这些特征训练支持向量机进行分类。实验表明,该方法对跌倒检测非常有效。然而,这两种方法高度依赖于实验者提取的特征,具有主观性和随意性,因此特征选择会有偏差,无法很好地代表海员的运动状态。深度学习方法可以用来提取跌倒特征,以减少实验者造成的实验偏差。许多研究都集中在深度学习算法上,以实现海员的跌倒检测。常用的深度学习方法包括卷积神经网络[24]、递归神经网络[25]和长短期记忆神经网络[26]。例如,(启发)Maitre等人[27] 《Fall Detection with UWB Radars and CNN-LSTM Architecture》提出了一种基于CNN和LSTM混合模型的跌倒行为识别算法。该模型采用两层结构。雷达数据以15组为一组输入网络,每组数据之间有95%的重叠。CNN提取视频序列的空间特征,LSTM提取数据的时间维度特征,最后使用SoftMax分类器进行识别。实验表明,该方法可以有效提高跌倒识别的准确率,识别准确率达到98.5%。

5 方法

5.1 基于BlazePose的人体关键点提取网络

现有的人体关键点提取网络,如OpenPose、AlphaPose和OpenPifPaf[28],极易受到密集人群遮挡或人类自我遮挡的影响,导致人类关键点检测性能低下。

为了解决这一问题,本研究选择BlazePose人体关键点提取网络来提取人体关键点信息。BlazePose是一个轻量级的卷积神经网络。与大多数卷积神经网络不同,NMS不能用于后处理,因为人类行为,如挥手和行走,具有很大的自由度。(以前的做法)受维特鲁威理论[29]的启发,BlazePose在获取整个人体关键点的过程中,其热身模块首先通过预先训练的SSD身体检测模型获取人体的肩部中心和臀部中心,并以此来预测人体拓扑关键点的剩余部分。根据对维特鲁威理论的进一步研究,发现图1中人的头部与整个人体的比例接近1:7.5。(现在的想法)为了应对不同人群的特殊性,这项研究使用1:8的比例来代表整个人体,包括人的头部,这样头部检测器就可以用来代替预先训练的SSD。 

 在优化后的BlazePose人体关键点网络的关键点信息回归过程中,我们将获得头部边界框信息(fx,fy,fw,fh)和臀部中点坐标(hx,hy)。根据维特鲁威身体理论,我们可以获得人体的边界框信息(bx,by,bw,bh)及其旋转角度。推导公式如下:

BlazePose网络的训练过程主要分为两个部分:关键点检测和关键点回归。在网络训练过程中,整个网络采用了热图、偏移和回归的组合,对应于图2(左)中的热图、图2(中)中的偏移和图2(右)中的回归。 

首先,网络使用热图和偏移量进行训练。然而,在渐进训练过程中,网络截取了图2(左)所示的输出分支。这不仅有效地使用热图来监督训练过程,而且在不损失准确性的情况下提高了整个网络的推理速度。

与COCO姿势的17个人体关键点相比,BlazePose人体关键点提取网络为每个人体预测了33个人体关键(包括置信度)。人体关键点的拓扑结构如图3所示。由于获得了更丰富的语义特征,本研究中跌倒检测的准确性也得到了保证。

为了将本研究设计的人体跌倒检测算法安排在普通视觉传感器上,本研究优化了BlazePose的预热模块,并使用偏移向量更新运动人体的边界框,从而降低了人体的检测频率,以及提高人体关键点信息检测的速度。图4显示了使用传统BlazePose人体关键点提取网络进行图像处理。首先,视频流输入网络后,网络中预设的预训练的SSD人体检测器会在第一帧中获得第一帧图像中的人体边界框,如图4(上)所示。此时,我们可以用肉眼清楚地观察到BlazePose网络在当前帧图像中提取的人体关键点信息,在这种情况下,我们观察了接下来的50帧图像,并每10帧导出一次图像渲染结果。在这个过程中,我们观察到视频流连续输入到网络后,当前片段的第一帧总是用于人体检测和后续的人体关键点信息。(发现问题)我们发现,超过20帧后,bbox内的人体开始变得残缺。BlazePose为了有效地获得人体的关键点,主要需要确定肩部中心点和臀部中心点,但是bbox中的人体已经开始不再满足这些条件。尽管BlazePose具有优越的预测能力,但该网络仍然可以预测人体不完整部分的关键点信息,但关键点信息的质量并不令人满意。图4(底部)中边界框的裁剪渲染清楚地显示,当该视频剪辑输入网络超过20帧时,发生了跌倒。然而,根据获得的信息,在当前状态下很难完成跌倒评估。在网络发生这种情况后,网络重新启动预先训练的SSD人体检测模块,以获得新的人体边界框。然而,由于先前边界框中的语义信息丢失,很容易导致误判。

 图4 优化前的检测结果

图5 优化后的检测结果 

5.2 基于偏移矢量的优化边界box检测器

对于上述提出的问题,设计解决方案。

为了解决BlazePose网络的上述缺陷,降低网络对计算能力的依赖,本研究采用了用偏移向量更新边界框的方法。这种方法确保了通过第一帧处理获得的人体始终保持在整个边界框的中心。这一过程如图5所示。

在本研究中,仍然每隔10帧采集图像进行比较。我们观察到边界框的位置是使用偏移向量更新的。在这50帧中,头部检测模块没有重新启动以获取人体边界框,图像中的人始终保持在图像的中间。网络优化后,减少了刚性特征检测器的使用,极大地减少了基于BlazePose网络的人体对关键点信息提取对计算能力的依赖。同时,由于头部检测器的激活减少,图像每帧关键点信息的提取速度提高了0.04s。

通过基于BlazePose的优化人体关键点信息提取,我们可以获得更稳定的关键点信息。从这些信息中,我们选择了四个自由度相对较低的关键点,即左肩、右肩、左髋和右髋。随着时间序列的变化,四个关键点的信息变化曲线如图6所示。(关于图6的描述)每个子图的横坐标是时间序列中的图像,其单位是帧。与图片的标题相结合,纵坐标是人体关键点信息的x或y像素位置(坐标点)。

观察图6可知,(a)表示跌倒时的坐标点(x,y)变化,(b)表示正常走道时的坐标点(x,y)变化。经过偏移向量优化后的关键点检测,对于Falling和Walking的判断更加精确。

通过使用箱型图法清理数据,优化了异常数据,如由于重新启动头部检测器而导致的关键点信息丢失。根据深度学习的三七准则,将其输入长短期记忆神经网络进行海员行为分类训练,可以保证得到具有较好泛化能力的分类模型。

5.3 长短期记忆神经网络(LSTM)

(解释为什么使用LSTM用于跌倒检测)跌倒和其他人类行为通常被视为连续序列,其空间和时间特征非常重要。递归神经网络(RNN)[30,31]由于其出色的记忆力,在处理时间序列数据方面特别强大。解决RNN处理长序列的梯度爆炸和消失问题。为了解决RNN在处理长序列数据时的梯度爆炸和消失问题,本研究使用长短期记忆神经网络(LSTM)[32]来判断一个人是否产生跌倒行为。LSTM是一种能够有效解决长期依赖问题的特定RNN。本研究使用了自制的手势数据集(4K,60帧),并输入LSTM和RNN网络进行训练。结果如表1所示。

如表所示,两种网络对120帧以上图像的序列数据的验证精度相差很大,而RNN网络的验证精度低至36%,显然不能满足本研究的要求。相比之下,LSTM在两个设计的实验中都能获得良好的结果。

LSTM的基本单元是一个存储块,主要由一个存储单元和三个门控制单元(包括一个输入门(it)、一个输出门(ot)和一个遗忘门(ft))形成(参考文献:《Long-term gear life prediction based on ordered neurons LSTM neural networks》)。每个单元的内部结构如图7所示。存储单元由图7顶部的水平直线表示,用于接收前一时刻的信息,并将处理后的信息传输到下一时刻。

对于每个LSTM单元,大致可以分为三部分:

(1)遗忘门:

第一步是决定需要忘记前一个LSTM单元中的哪些信息。这个决定是由遗忘门做出的。门控单元读取ht−1和xt,然后输出0和1之间的值ft,以更新当前LSTM单元的状态Ct−1。在跌倒检测过程中,遗忘门选择性地存储和遗忘前一个LSTM单元传输的信息,以及输入门传输的信息。然后,遗忘门存储行为识别中确定跌倒的一系列帧图像。计算公式如下:

其中,xt是输入门通过的人体关键点信息组,ht−1是前一个LSTM单元的输出,σ是S形层,Ut是遗忘门的输入系数矩阵,Wfi是遗忘门网络系数矩阵,ct−1是上一个LSTM单元的单元状态,kt是遗忘门输出,用于更新当前单元状态。

(2)输入门:

在忘记LSTM单元的当前状态信息后,输入门对输入到当前单元的信息进行处理。首先,需要使用ht−1和xt与sigmoid层相结合,以确定当前单元中需要更新的信息。其次,激活函数tanh用于处理ht−1和xt,以获得新的候选单元信息作为补充信息。计算公式如下:

其中它是并行化后的输出信息;gt是候选输入信息;Ui是输入门的输入系数矩阵;Wi是输入门的网络系数权重矩阵;Ug是候选输入信息权重系数矩阵;Wg是输入门的权重系数矩阵;jt是输入门的输出,用于更新当前单元状态;而ct是更新的单元状态。

(3)输出门:

最后,当前LSTM单元确定输出值。首先,使用S形层来获得输出判断条件,然后使用层tanh来获得[--1.1]中的一个决策间向量。该向量与从输入门获得的结果相乘,以获得最终的LSTM单元输出值。在跌倒检测过程中,输出门对最终信息进行归一化,以对跌倒和其他动作进行分类。具体公式如下:

其中ot是并行化后的输出信息,Uo是输出门的输入系数矩阵,Wo是输出门网络系数权重矩阵,ht是当前LSTM单元的输出信息。

因此,与RNN相比,LSTM在处理长序列数据方面具有独特的优势。本研究中进行的实验取得了足够好的结果。 (通过比较RNN和LSTM之间的差距,最终选取LSTM作为分类器)

6 数据集和实验结果分析 

6.1 实验数据集

海员在船上工作时,他们的行为不像在陆地上那样复杂,蹲下和躺着等活动也很少。因此,本研究拍摄的视频中的主要人类活动是走路、站着、坐着和摔倒(walking, standing, sitting, and falling)。本研究基于这四种活动构建了自研的数据集。本研究选取了两名男性样本和一名女性样本。三名样本中,两名年龄较小,数据取自野外,另一名来自一名数据取自客舱的海员。具体信息如表2所示。三人的体型不同,具有代表性。

为了丰富数据集,我们从URFall公共数据集和FDD公共数据集中提取了关于这四种活动的所有视频。然后,我们对所有视频进行了处理。我们提取并标记了每个帧图像的人体关键点信息。最后,获得了11292组,其中3370组来自我们自己的视频,2995组来自URFall公开数据集,4527组来自FDD公共数据集。数据集的详细分布如表3所示:

最后,我们将所有获得的数据按 7:2:1 的比例分为训练数据集、验证数据集和测试数据集。训练集占总数据集的70%,约7904组关键点信息。验证集占总信息集的20%,约2258组关键点信息,其余10%包含约1129组关键点信息作为测试集。

6.2 实验环境

表4列出了本研究中完成的数据训练的实验条件。

6.3 实验结果

为了使本研究中设计的海员跌倒检测算法能够有效地应用于真实的船上作业环境中,本研究中使用的数据集包含了与跌倒相关的日常行走、跌倒、坐着和站着活动。Adam优化方法用于优化网络,并在网络层之间使用ReLU方法来提高模型的泛化能力。最后,使用全连通层和SoftMax分类器计算最终分类结果。图8和图9显示了训练过程中训练集和验证集的损失和准确性随迭代过程的变化曲线。

 根据曲线的变化,用左肩、右肩、左髋和右髋来描述人员的运动状态是合适的。

由于意外跌倒在各种工作场景中对人身安全构成重大威胁,本研究允许将其他行为错误地检测为跌倒。这意味着特异性小于1,但准确性和敏感性指标必须尽可能优化。本研究使用混淆矩阵来分析最终结果。结果如图10所示:

 如上图所示,本研究提出的人体跌倒检测算法可以有效区分跌倒情况和日常情况。坐姿行为与跌倒行为相似,会出现误判,但本研究设计的算法效果良好。此外,优化的人体关键点信息提取,基于BlazePose网络,在本研究中,谷歌实验室在本研究所述的实验设备上提供的帧速率可以达到25 FPS,而无需使用GPU。 这可以有效地放置在移动设备上,以及常见的RGB相机上,以实现实时检测和节省成本。我们使用视频数据集呈现了一些运行结果,检测结果如图11所示。

基于BlazePose–LSTM海员跌倒检测模型,本研究中对水手跌倒的准确率达到100%,对非跌倒的识别率达到97.95%,平均检测帧率达到29帧/s。可以证明,本研究提出的BlazePose-LSTM网络模型对实验数据集具有较高的识别精度和较快的帧率。表5显示了本研究中的模型与其他研究中使用的方法之间的性能比较,进一步表明该方法在准确性、特异性和敏感性方面有一定程度的提高[35]。三个指标的计算公式如下:

根据上表中的统计和比较信息,本研究提出的BlazePose–LSTM海员跌倒检测网络结构与OpenPose YOLO[36]《Behavior detection method of OpenPose combined with Yolo network》跌倒检测网络相比,准确率、特异性和灵敏度分别提高了4.57%、1.7%和9%。海员跌倒识别率提高了近5个百分点,并且误报率要低得多。与CNN[37]《A Study on the Application of Convolutional Neural Networks to Fall DetectionEvaluated with Multiple Public Datasets》相比,性能也有一定的提高。与Stacked LSTM[38]《Online Fall Detection Using Recurrent Neural Networks on SmartWearable Devices》相比,准确度、特异性和灵敏度分别提高了3.06%、2.06%和3.66%。总之,本研究提出的基于BlazePose–LSTM的海员跌倒检测模型可以获得更好的检测精度和帧率。此外,对于船上船员的跌倒检测,使用该算法的目的是检测所有跌倒行为,以便及时进行医疗救援,防止对船员造成不可逆的身体损伤。因此,有可能出现类似跌倒的行为并被误判为跌倒,但不可能错过跌倒行为的检测;因此,准确度和灵敏度指标也非常重要。

6.4 在航船舶海员跌倒检测的通用化实验

(证明网络的泛化性)请注意,我们的实验是在船舶航行状态相对稳定的情况下进行的。为了验证本研究中算法在实际船舶环境中的泛化能力,我们收集了几名志愿者在武松货船上模拟船舶操作的视频。所有视频都是使用车载RGB摄像机拍摄的。其中一个视频序列的检测结果如图12所示: 

在这个视频序列中,可以检测到海员成员的当前图像是“SD”,这是前30帧中的站立状态标签。当海员开始行走时,算法可以快速响应并输出“WK”,这就是行走标签。当检测到大约第90帧时,该算法检测到当前海员成员已经表现出跌倒的特征,并快速输出“FL”标签,表明当前图像中的海员成员已经跌倒。上述分析表明,本研究提出的BlazePose–LSTM海员跌倒检测算法在实际船舶海员跌倒检测中具有良好的泛化能力。

>>>如有疑问,欢迎评论区一起探讨!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/674262.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

29基于贝叶斯(Bayes)判别的机场航班延误因素分析(附matlab程序)

1.简述 学习目标: 基于贝叶斯判别的机场航班延误因素分析 利用所创建的朴素贝叶斯分类器对象ObjBayes,对训练样本进行判别 并利用贝叶斯预测误差统计 中国民航业近年来快速发展,航班量增多,航班密度逐步加大,许多资源配置的矛盾也日益凸显出来.机场大面…

Godot 4 源码分析 - 代码自动补全流程

使用Godot 4过程中,有一点比较吸引我:代码自动补全 用RAD开发时,代码自动补全功能一直被吐槽,主要是速度慢 但我看Godot 4中的Script编写过程中,代码补全很快,这个可以研究一下。 研究代码可找到&#x…

Linux国产操作系统,UCA-系统工程师学习必备技能,使用dpkg管理软件包、apt命令、内网获取依赖包及源码安装

目录 ​编辑 1.使用dpkg管理软件包 2.apt命令 3.内网获取依赖包 4.源码安装 1.使用dpkg管理软件包 第一种方法当然可以上网搜索软件安装包,下载然后解压成软件。 第二种也就是我接下来要介绍的,dpkg 命令,dpkg 全称叫做debian package…

Linux系统编程:进程的管理和创建

目录 一. 什么是进程 二. Linux对进程的管理方法 2.1 PCB描述进程 2.2 进程的组织 2.3 进程的查看 三. 子进程的创建 3.1 子进程创建函数fork的使用 3.2 子进程创建的原理 四. 总结 一. 什么是进程 进程(process)是指计算机中已经存在并运行的…

动态规划 DP (一)

1.动态规划(Dynamic Programming,简称DP) 维基百科的定义说的很清楚: 动态规划不能解决所有的问题, 只能应用于有最优子结构的问题。例如背包问题、最长公共子序列问题、最短路径问题等。 最优子结构:局部…

Vue3通信方式之defineProps、defineEmits、useAttrs、插件mitt和v-model

目录 1、使用defineProps2、使用defineEmits接受自定义事件2.1原生DOM事件2.2自定义事件 3、全局事件总线(插件mitt)4、v-model5、useAttrs 1、使用defineProps props可以实现父子组件通信,在vue3中我们可以通过defineProps获取父组件传递的数据。且在组…

Opencv医学图片分割-以血管、胼胝体MR等分割为例

用到环境 1、pycharm community edition 2022.3.2 2、Python 3.10 后面应该会传代码到资源,比较需要的可以私信我。 总体设计 图1 扩展实验二“医学图像分割”流程图 ## 具体步骤 1. 导入OpenCV和NumPy库 2. 定义阈值分割方法threshold_segmentation,接…

spring框架-概述(spring特性、生命周期)(一)

文章目录 什么是springspring重要特性spring生命周期知识扩展 什么是spring Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器 ,是为了解决企业级编程开发中的复杂性,实现敏捷开发…

[进阶]网络通信:TCP通信-支持与多个客户端同时通信

目前我们开发的服务端程序,是否可以支持与多个客户端同时通信? 不可以的。因为服务端现在只有一个主线程,只能处理一个客户端的消息。 代码演示如下: 客户端: public class Client {public…

SpringBoot 异常处理的最佳实践

SpringBoot 异常处理的最佳实践 在 Web 开发中,异常处理是非常重要的一环。在 SpringBoot 框架中,异常处理方式有很多种,但是如何选择最佳实践呢?本文将介绍 SpringBoot 异常处理的最佳实践,并附带代码示例。 异常处理…

flutter - 编写 阿里云-金融级实名认证插件

项目中有实名认证的需求,用户上传身份证反正面,进行人脸核验,后台集成的是阿里云的金融级实名认证SDK,巧合的是阿里云没有packages 需要自己造轮子。 废话不多少,直接上代码: 新建项目 ProjectType Plugin…

网站图片优化技巧及最佳实践

💂 个人网站:【海拥】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言使用适当的图片格式…

0017-TIPS-pawnyable : eBPF

原文 BPFの導入 検証器とJITコンパイラ eBPFのバグの悪用 题目下载 BPF介绍 BPF 在介绍eBPF之前,先介绍其前身BPF。 随着时代的发展,BPF的用途越来越广泛,扩展也越来越多。在重大更改后的BPF有时被称为eBPF(扩展BPF&#xff09…

路漫漫其修远兮,吾将上下而求索

路漫漫其修远兮,吾将上下而求索 一、坚定信念二、持之以恒地努力三、谦虚和学习的态度四、上下而求索也要遵循道德底线和原则五、建立合适的人际关系和互助机制六、坚定自己的信仰和信念七、个人经验与体会 路漫漫其修远兮,吾将上下而求索——这句话不仅…

python期末上机题:

1、编写Python程序,创建类Temperature,其包含成员变量degree(表示温度)以及实例方法ToHuaShiDu()和ToSheShiDu,并编写测试代码。 程序运行示例: 请输入摄氏温度:30 摄氏温度 30.0&#xff0…

栈和队列(一)

文章目录 顺序表,链表的有点和缺点链表顺序表 栈和队列栈的实现栈的应用(括号匹配问题) 顺序表,链表的有点和缺点 链表 优点: 1、任意位置插入删除,时间复杂度位O(1) 2、按需申请释放空间 缺点&#xff1a…

Prompt Engineering 面面观

作者:紫气东来 项目地址:https://zhuanlan.zhihu.com/p/632369186 一、概述 提示工程(Prompt Engineering),也称为 In-Context Prompting,是指在不更新模型权重的情况下如何与 LLM 交互以引导其行为以获得…

Latex长表格

示例一: 输出一个长表格的示例。 代码: \documentclass[jou,apacite]{apa6} \usepackage{multirow} \usepackage{array} \newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}} \usepackage{longtable}%\usepackage{showframe} % to visualize…

极致呈现系列之:Echarts漏斗图的流光溢彩

目录 什么是漏斗图漏斗图的特点及应用场景漏斗图的特点漏斗图常见的的应用场景: Echarts中漏斗的常用属性Vue3中创建漏斗图美化漏斗图样式 在数据分析和可视化中,我们经常需要比较不同阶段的数据比例或流程的渐进筛选过程。漏斗图作为一种专门用于展示这…

Qt使用技巧--定义Private类

如果查看Qt的源码,会发现很多类都会有一个***Private类。这是Qt用于封装私有操作的一种设计模式。 给出一个继承自QObject的Private类具体的实现: MyClass.h #include "QObject"class MyClassPrivate; class MyClass: public QObject{ Q_OB…