【论文阅读笔记】Vision-Based Fallen Person Detection for the Elderly

Vision-Based Fallen Person Detection for the Elderly

作者:Markus D. Solbach , John K. Tsotsos
单位: Department of Electrical Engineering and Computer Science
York University, Canada
发表信息:IN ACVR 2017
论文链接:https://arxiv.org/pdf/1707.07608

背景动机:

  跌倒对于老年人来说是严重的且代价高昂的。美国疾病预防控制中心报告说,每年有数百万的65岁以上的老年人至少摔倒一次并严重伤害。例如,20%的跌倒会导致髋部骨折或头部受伤。
  应对和治疗跌倒者所花费的时间至关重要。作者提出了一种新的,非侵入性的,用于跌倒人员检测的系统。作者的方法仅使用立体相机数据来被动感应环境。本文的新颖之处是人体跌倒检测器,它结合基于CNN的人体姿势估计器和立体数据,以3D方式重建人体姿势并估计3D地面。此外,我们的系统还包括一个推理模块,该模块制定了一些措施来推理一个人是否跌倒。

同行工作情况介绍

  C. Rougier等人提出了使用头部跟踪的方法。来解决自我遮挡或通过其他物体(如毯子)遮挡人的身体的问题。单眼相机通过粒子过滤器跟踪器跟踪对象。 跟踪输出是头部的3D轨迹,并使用简单的初始分类器进行分类以判断是否跌倒。本文虽然也使用了头部信息,但是只使用位置作为提示。
  G. Mastorakis等人提出了使用Microsoft Kinect传感器的方法。 利用背景减法和深度数据计算人的3D边界框,并基于3D边界框的速度特征检测跌倒和非跌倒。此外,这项工作还涉及一个人摔倒的过程而不是一个人摔倒的事件。
  Z. A. Mundher的工作最接近作者提出的方法。人体骨骼用于检测跌倒的人。骨骼的联合信息是从Microsoft Kinect传感器获得的。 为了确定一个人是否跌倒,作者使用了相对于所检测地面的关节高度。
  Z. Cao等人的研究将最先进的深度学习方法应用于基于从RGB序列提取的2D骨架的人体跌倒事件检测。采用卷积神经网络(CNN)为每个输入帧提取人类的2D骨架,然后采用带有长短期记忆(LSTM)状态单元的递归神经网络(RNN)处理时间骨架序列。最终将每个短期动作分为五类,即站立,行走,跌倒,躺下和站起。经过简单的规则处理后,连续的RNN输出可用于检测人的长期动作(跌倒事件)并确定是否发出警报。分为5个子动作的准确度可以达到90%。

算法思路

  本文使用通用的2D人体姿势估计器结合深度信息进行估计3D人类关键点,以3D信息计算地面并通过多种方式来判断一个人是否跌倒。
【论文阅读笔记】Vision-Based Fallen Person Detection for the Elderly_第1张图片

图1 检测系统概述

  使用深度相机采集数据,校正左右彩色图像并计算深度图像。其中2D人体姿势估计是使用Z. Cao的深度学习方法。此步骤提供了每个检测到的关键点的像素坐标和置信度。对于此步骤,只使用左侧彩色图像。3D姿势计算使用上一步的深度图像和关键点信息,将关键点投影到3D世界坐标中。3D地平面检测也使用深度图像来计算。在“推理”步骤中,通过比较检测到的每个关键点与地平面的位置、3D姿态和置信度来确定一个人是否跌倒。如果检测到跌倒,系统将执行跌倒通知,否则重新开始计算。整个系统可在机器人操作系统(ROS)中实现。
  地平面检测系统通过使用Stereolab的ZED立体摄像头产生的密集环境点云。作者引入一个过滤步骤来检测地平面的数据。为了实现对于速度的要求,我们对点云进行二次采样,这样可以最大程度地减少计算量。地平面检测对地面对象使用绿色,对非地面对象使用红色。该算法可以正确检测地面物体,左边的购物袋由于其倾斜角度大而被部分检测为非地面物体,旁边的人由于其比较平整且坡度小,被检测为地面
【论文阅读笔记】Vision-Based Fallen Person Detection for the Elderly_第2张图片

图2 3D地平面检测

推理:
  推理组件需要输入3D地平面,每个3D位置检测到的关键点和每个关键点的置信度。输出是一个人是否跌倒的判断。
  此外作者还通过估计表面积信息来确定是否有错误的检测。使用3D关键点信息,并根据边界框,我们可以估算检测到的人类的宽度和高度,于是得到估计表面积。以此来判断是否跌倒。根据年龄和性别,平均表面积值可能在1.4m²到1.9m²之间,但当检测区域是否小于1m²,可能出现错误检测。
  因此作者引入UbC和CoG来解决这一问题,UbC代表上半身关键,该子集由相关的关键点组成到鼻子,眼睛,耳朵,脖子和肩膀。选择这个子集来强调一个人的身体部位接近地面处于严重程度。CoG为计算的重心。将每个关键点获取坐标后然后求和,除以检测到的关键点从而得到CoG。
在这里插入图片描述

  该模块将3D接地平面与CoG和UbC合并。使用欧几里得距离,作者比较了具有CoG和UbC的接地平面。如果其中之一低于地面高度超过0.7m时,将人归类为跌倒。对于跌倒在床上或沙发上但腿仍然留在床上或沙发上的情况,CoG将无法判断,但UbC可以。
【论文阅读笔记】Vision-Based Fallen Person Detection for the Elderly_第3张图片

图3 主要步骤的图示

  左边该图显示了颜色编码的深度图(暖色-远,冷色-接近)并检测到人体姿势。圆圈显示关键点,而四肢和关键的颜色编码这些点只是为了可视化。中心图像显示绿色的3D关键点和黄色的CoG。接地平面显示为红色立方体。右图显示了最终结果,并带有一个红色边框,指示系统检测到跌倒的人。

实验

  该系统已在Mobile Robots的Pioneer 3平台上进行了测试,使用的相机为Stereolabs立体相机。
  推理模块中的高度阈值会影响算法性能,根据结果,如果阈值设置得太高,检测到太多误报,例如跪着人员并没有摔倒。另一方面,如果阈值设置得太低,系统也无法检测到摔倒的人。因此作者在7个不同的位置中总共有50次跌倒和50次非跌倒的测试数据场景中,发现0.7m左右的阈值能达到最佳的效果。

结果

  1. 家庭环境
      记录了6个不同区域的不同类型的跌倒,例如作为客厅,浴室,走廊,卧室,厨房和后院。图中的中间一栏显示一个跌倒的人,右边一栏显示可视化相应的接地平面检测(红色)和3D关键点(绿色)和CoG(黄色)。在第一行,我们看到一个人跪着的场景,可以认为非常接近跌倒,但系统认为正确地认为没有跌倒。在第二行的人只有一半可见,在第三行中。甚至尽管相机只能观察到人的很小一部分,但系统也能够正确判断该人是否跌倒。特别的在第五点行。该系统能够检测到正在床上睡觉的人没有跌倒,倒在地上的毯子上的人跌倒了。在这种环境下,记录了30次跌倒和30次非跌倒。该的系统的真阳率为0.933。
    【论文阅读笔记】Vision-Based Fallen Person Detection for the Elderly_第4张图片
图4 家庭环境中的实验结果
  1. 办公环境
      第二种测试场景涵盖20次跌倒和20次非跌倒。在这种环境下,系统达到0.912的真阳率。
      其中第四行带有倾斜的地平面,该人躺在坡道上一半。系统将坡道检测为地面,因此该人为跌倒状态。

【论文阅读笔记】Vision-Based Fallen Person Detection for the Elderly_第5张图片

图5 在办公室的实验结果

在这里插入图片描述

图6 一些误报检测的图示

  大多数误报情况是由于缺乏地面信息所致,将机器人移动到其它位置,从不同角度记录人员后,系统才能正确检测到人员跌倒。

算法优点:

  作者提出了一个新颖的基于立体视觉的跌倒探测方法。利用了最新的2D人体检测算法,将其扩展为实现3D关键点信息,利用了地平面信息,制定了一些措施来推断某人是否跌倒。在两个大型测试方案中,显示出出色的结果,并能够达到91%以上的精度。

算法缺点:

  对地面信息丰富度有一定要求,在缺乏地面信息的情况下会有一定的误报率。

你可能感兴趣的:(行为分析)