论文笔记:Learning to Detect Violent Videos using Convolutional Long Short-Term Memory

来源:互联网 发布:京东商城seo解决方案 编辑:程序博客网 时间:2024/05/21 20:26

论文链接:Learning to Detect Violent Videos using Convolutional Long Short-Term
Memory

目标

给一段视频,判断是暴力视频(violent)还是非暴力视频(non-violent)

方法

使用convLSTM,对视频提取时空特征(spatial&temporal),进行二分类

  1. 以前的深度学习做法是,先用CNN提取视频帧的特征,然后将FC的输出送入LSTM进行序列学习。这里FC的输出显然是视频帧的全局信息,在LSTM的学习中显然损失了其空间信息。对于暴力视频分类来说,我们可能需要关注的主要是帧与帧之间某个区域的快速移动和变化,所以在LSTM中不应该只用全局信息。
  2. 这篇论文提出的做法是,使用convLSTM(卷积LSTM)进行一体化的处理,即将卷积操作嵌入到LSTM中,实现时空的结合

模型

convLSTM

结构

  1. 输入:视频帧之间的差,对于暴力视频主要关注的是,人物或者物体是否有快速的移动,所以将帧与帧之间做差输入效果会好(这是作者的实验结果),模拟光学流(optical flow)并且减少计算量
  2. 特征提取:先用ImageNet预训练好的AlexNet进行特征提取,包括卷积层(红色)、normalization层(灰色)、池化层(蓝色),提取出的feature map输入convLSTM
  3. 时空序列分析:convLSTM,顾名思义,这是结合了卷积的LSTM,它的计算公式见下
  4. 结果输出:3个FC层,输出二分类,用BCE损失

convLSTM公式

其中,*为卷积操作,⊙为逐点乘,ht为隐藏状态,ct为记忆单元,itftot均为3维的

参数设置

  1. 输入:对于每一个视频,均匀取N帧,缩放至256*256大小,减少相邻帧(相似性很高)的重复计算
  2. convLSTM:所有的卷积门单元,卷积核数目为256,大小为3*3,步长为1
  3. 第一个FC前面加了bn,使用ReLU作为激活函数
  4. 学习率:1e-4,batch:16,优化器:RMSprop
  5. Trick:训练时使用了数据增强,将图片剪切至224*224

结果分析

作者在三个公开数据集上进行了测试,以及与之前的方法比较

数据集

  1. Hockey Fight Dataset:冰球比赛中的打斗视频(500+,500-),背景和主体都比较单一,每个视频取20帧
  2. Movies Dataset:电影中截取的打斗视频以及其他行为识别数据库中的正常视频(100+,100-),背景和主体都有本质上的区别,每个视频取10帧
  3. Violent-Flows Dataset:人群暴力的数据集,人数非常多,大多数是从足球比赛中截取(246),每个视频取20帧

各数据集上的表现

实验结果

可见,在前两个数据集上都取得了最高的准确率,而在最后一个人群的打斗数据集上,效果不是最优的(但也是第二),这里作者的解释是:对于大规模的人群来说,打架的只有小部分人,而大部分人是在围观,所以视频分类倾向于把重点放在那些没有打架的人群上面,从而错判成正类

其他对比

对比1

这是在Hockey Fight Dataset上的准确率对比,主要是针对有无预训练的特征,有没有使用视频帧差的效果,当然是使用预训练的+视频帧差效果好了

对比2

这也是在Hockey上的对比,主要对比使用LSTM和convLSTM的差别,当然是发现convLSTM参数又小,效果又好了,同时还能防止过拟合

阅读全文
0 0