Deep Spatio-Temporal Representation for Detection of Road Accidents Using Stacked Autoencoder

文章目录

    • 基于栈式自编码器的道路交通事故深度时空表征-一种时空无监督的事故检测方法
    • 1 论文方法概述
    • 2 STVVs和SDAE
      • 2.1 STVVs(Spatio-Temporal Video Volumn:时空视频体)
      • 2.2 SDAE(Stacked Denoising Autoencoder:堆叠去噪自编码器)
    • 3 无监督事故检测思路
    • 4 论文主体模型框架
    • 5 实验结果分析
    • 6 创新点与不足

基于栈式自编码器的道路交通事故深度时空表征-一种时空无监督的事故检测方法

论文:Deep Spatio-Temporal Representation for Detection of Road Accidents Using Stacked Autoencoder
2018年发在IEEE Transactions on Intelligent Transportation Systems上的一篇文章,被引109次

1 论文方法概述

论文提出了一种新的道路交通事故自动检测框架。该框架从原始像素强度的时空视频体积中自动学习特征表示,也就是说,从监控视频中学习到事故的时空特征,而不是传统的手工制作特征(比如速度变化,轨迹异常等)。我们认为车辆事故是异常的事件,考虑的是在事故视频较少而正常视频数量非常多的情况。因此论文提出的框架使用大量的正常的交通视频训练得到的去噪自编码器提取深度表示。事故发生的可能性是根据重建误差深度表示的可能性来判定的。

  • 对于重建误差来说:训练完毕的自编码器对正常视频的重建误差较小,对未见过的视频(多半指的是事故视频)重建误差较大,因此可以根据此性质进行事故事件的判别。
  • 对于深度表示的可能性,使用单分类SVM(one class support vector machine)训练无监督模型,可以获得视频段在浅层空间的向量异常得分,从而实现事故/异常检测。

2 STVVs和SDAE

2.1 STVVs(Spatio-Temporal Video Volumn:时空视频体)

首先必须说明的是,论文中一直提到的STVVs(时空视频体:Spatio-Temporal Video Volume )指的到底是什么?
Deep Spatio-Temporal Representation for Detection of Road Accidents Using Stacked Autoencoder_第1张图片
如上图所示:3D视频块中的像素点p(x,y,z)处的STVV就是一个以点p为中心的wht的3D领域。点p(x,y,z)是该堆叠视频帧中的任意一点。
作者在后面提到关于STVVs的设置如下(在该设置上我觉得与一般使用锚框法的目标检测有异曲同工之妙,只不过锚框法设置的9个尺度分别是默认框的3个ratio尺度与3个size尺度;STVVs是一个3D的,在时间和空间两个尺度上设置,高了一维,但这样应该会带来极大的复杂度与计算量,因为二维的锚框法就存在大量的负样本。):

The STVVs are generated at various scales in both space
and time. For experiment we generate STVVs of spatial scale
of 11 ×11, 13 ×13, and 15 ×15 pixels. For each spatial scale,
we generate three temporal scales of 3, 5, and 7 frames. Thus
finally we generate 9 STVVs at each spatiotemporal point.

最终作者会将这些提取的3维STVVs压缩为向量作为去噪自编码器(DAE)的输入。

2.2 SDAE(Stacked Denoising Autoencoder:堆叠去噪自编码器)

Deep Spatio-Temporal Representation for Detection of Road Accidents Using Stacked Autoencoder_第2张图片
堆叠去噪自编码器(SDAE)是几个去噪自编码器(DAE)的级联,如上图所示。
对于该自编码器进行详解:去噪自编码器(DAE)是一种基于反向传播算法的无监督学习的单隐层神经网络。DAE的目标是将给定的部分损坏样本转换为压缩表示,通过最小化重构样本中的失真量来学习潜在模式。通俗来说,我觉得就是训练一个神经网络使得输入异常样本时自编码器的输出接近正常样本,从而根据重建误差进行异常事故判定,因为DAE本质上是一个我们仅使用正常样本训练的神经网络。

  • 编码器:目的是降维,将输入的高维度视频数据STVVs压缩转化为向量x,然后被映射到的浅层向量为h,当编码器权重为(W,b)时,有:

在这里插入图片描述

  • 解码器:目的是将编码器获得的浅层向量h重新映射回输入空间,并尽可能的与输入类似,此时权重假设为(W’,b’),有:

在这里插入图片描述

  • 重建损失:就是根据网络的输入与网络的输出之间进行重建损失的求解:

在这里插入图片描述

3 无监督事故检测思路

作者将事故的过程分为3个阶段:碰撞前、碰撞中、碰撞后。

  • Pre-Collision:预碰撞信息包括任何一辆车或者两辆车明显违反交通规则的情况,比如违反交通车道,不看红绿灯,违反限速,在道路突然的移动等。作者认为预碰撞阶段是异常活动,因此可以很简单的应用异常检测检测到。有两篇文献是基于速度、轨迹、位置等的异常检测的。
  • Collision:检测碰撞利用的是在时空维度上识别两辆车之间轨迹是否存在交点。而碰撞与遮挡都存在轨迹在时空维度上的相交,如何区分并避免因为遮挡导致的误警?
  • Post-collision:两种情况,1)轨迹相交之后发生突然的运动或中断轨迹,那么碰撞的可能性就很大,反之,轨迹继续并且无特殊运动产生,就只是遮挡。2)观察碰撞点的人群:事故后会导致道路拥挤或者行人的奔赴。

如下图论文利用车辆轨迹的交点来降低虚警率,增加整个系统的可靠性。事故中摩托车和汽车的轨迹相交(有交点),同时摩托车和汽车的轨迹没有进一步的进展,因此被认为是碰撞。
Deep Spatio-Temporal Representation for Detection of Road Accidents Using Stacked Autoencoder_第3张图片

4 论文主体模型框架

Deep Spatio-Temporal Representation for Detection of Road Accidents Using Stacked Autoencoder_第4张图片
上图是论文中所提出的事故检测架构,该模型有两种不同类型的输入:1)在堆叠视频块中采样得到的STVVs,2)在堆叠的光流中采样得到的STVVs。然后根据重建损失来训练模型。在最终对检测视频进行判别是否是事故时,会综合考虑:

  • 视频中所有STVVs的重建损失
  • 视频中所有StVVs的浅层特征属于正常样本的置信度

2.2节中已经讲了重建损失的计算,重建损失只是事故判定的一个依据。下面讲一下如何去计算视频中STVVs浅层特征属于正常样本的置信度,即异常得分。
其实就是我们使用大量的正常样本去训练自编码器,那么自编码器学习到了大量正常视频的浅层表征。然后我们利用单分类SVM对这些浅层特征进行一个简单的one-class。假如输入是一个异常(事故)视频,那么我们使用one-class的SVM对该输入视频的STVV生成中间表示h的3个离群值评分。(单分类SVM只需要一个类数据,并在该数据周围拟合一个外部边界)此时,对于给定的离群值h的评分计算如下:

在这里插入图片描述
至此,作者利用上述框架获得了3个重建损失(因为有3个DAE),3个异常分值,将它们联合起来考虑进行交通事故的检测,联合计算公式如下:
在这里插入图片描述
A:外观特征appearence;M:运动特征Motion;J:联合特征joint

5 实验结果分析

Deep Spatio-Temporal Representation for Detection of Road Accidents Using Stacked Autoencoder_第5张图片
上图是作者做的事故检测的ROC曲线,主要分为外观特征(绿色)和运动特征(蓝色)以及外观特征和运动特征的组合特征(红色),可以看到每种颜色(绿色和蓝色)有3条曲线,分别是在该特征下单纯依靠重构误差进行判定、单独依靠单分类向量机得到的异常评分进行判定、以及重构误差和异常值评分的组合进行判定。
下面给出了具体的表格,表示的是上图中ROC曲线下的面积:
Deep Spatio-Temporal Representation for Detection of Road Accidents Using Stacked Autoencoder_第6张图片
由表格可以看出:无论是使用外观特征还是运动特征,都是使用基于重构误差和异常值评分的组合进行联合判定得分效果更好;第3列给出了基于组合表示(基于重构误差和异常值评分的联合判定)的事故检测最终性能,在外观、运动、外观和运动的联合表示方面分别为77.60%、62.91%、81.06%

下图是作者在https://sites.google.com/site/dineshsinghindian/iith_accident-dataset
收集的数据集上进行的一些测试结果,数据集现在已公开。
Deep Spatio-Temporal Representation for Detection of Road Accidents Using Stacked Autoencoder_第7张图片
在检测结果中可以看到:红色框是使用基于重建误差与异常值评分的组合,并使用的轨迹交叉信息得到的一个评分异常的区域,绿色框是在使用了辅助信息(在第3小节提到的碰撞后的信息,轨迹是否在交叉后异常)进行最终评分的异常区域。
此外,在收集到的真实事故视频数据集上,包括在白天、高太阳和夜晚等不同照明条件下的事故,它给出了平均0.775的检出率,同等错误率(EER)为0.225。

6 创新点与不足

创新点:

  • 自动学习特征:使用自编码器进行特征的自动学习,不是传统的人工设置特征;
  • 无监督。且不需要收集大量的事故视频,训练使用的是正常样本。
  • 由于是综合利用了时空信息,以及轨迹信息,也就是联合考虑到了事故的外观特征与运动特征,在进行事故判定的时候,又联合考虑了重建误差与异常值评分,为了降低碰撞与遮挡之间造成的误警率,又添加了辅助信息(轨迹相交后的状况)辅助判定。
  • 模型的输入是整个视频或者光流的STVVs,极大地降低了模型的复杂度与计算量。

不足:

  • 对于交通事故检测来说,碰撞只是其中之一,其实采用的还是异常检测的思路,后续要检测各种交通事故,还需要多加判定,且异常检测范围很广,可能会产生很多误警。
  • 虽然使用的是局部的视频块STVVs,在一定程度上比使用整个视频块计算量小,但复杂度也不算很低,能不能用于实时检测是一个问题。

你可能感兴趣的:(计算机视觉,人工智能,深度学习)