2021-基于卷积和LSTM神经网络的视频分类时间融合方法在暴力检测中的应用

本文主要是介绍2021-基于卷积和LSTM神经网络的视频分类时间融合方法在暴力检测中的应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

A Temporal Fusion Approach for Video Classification with Convolutional and LSTM Neural Networks Applied to Violence Detection

通过读该文章,想起之前复现的一个代码,与本文不同的是,代码采用帧率从视频片段中截取图片,视频的帧率都是25,也就是1s提取25张图片,这样会有很多重复帧,本文采用的是1s提取2帧,代码采用的是文章中提到的早期融合(Early Fusion),把40帧串联起来送入模型中提取空间特征,这样会影响之后LSTM层提取时间特征,本文采用的是慢融合,也就是10帧分别放入CNN模型中提取空间特征后,再放入LSTM层中提取时间特征。本文对提取空间特征的模型也进行了测试,结果表明MobileN模型性能更好一些,代码采用的是ResNet152模型。接下来想尝试改一下之前复现的代码。

作者采用的数据集为RealLife violence detection,由2000个平均时长为5s的片段组成,分为暴力和非暴力。作者认为单独分析这些帧从静态图像检测暴力行为是困难的,但是当按顺序分析这些帧时,区分每一类的特征就容易一些,因此作者使用了深度学习分析帧。
作者使用了交叉验证技术,K=10,意味着数据被分为10个相等的部分,其中一部分当做验证集,其他部分用作训练集,重复10次,也就是说每个部分都要用来当做验证集一次。

时间融合方法

Late Fusion:使用每个例子的第一帧和最后一帧,由模型单独处理,该技术通过对帧间时间距离最长的帧特征进行处理,即划分场景的序列和结尾,称为延迟融合。
在这里插入图片描述
Early Fusion:使用每个例子的连续帧进行处理,数据的合并发生在被处理之前。
在这里插入图片描述
Slow Fusion:通过模型分别处理每个帧,然后以相关方式处理模型,由于经过一定的处理后,多个帧之间有了时间关联而被称为慢融合。
在这里插入图片描述
这些方法只适用于帧数不多的情况,作者使用每秒2帧,每个视频也就是10帧。如果帧的持续时间与平均持续时间不同,则将它们从与时间相关的的等距帧中移除。

将输入属性传递到卷积层,进行帧的空间特征提取,接着传到LSTM层提取时间特征,最后利用感知器神经元的前馈层分类。如下图
在这里插入图片描述

神经网络结构

在这里插入图片描述
在这里插入图片描述

实验

late fusion:VGG16模型性能最好
在这里插入图片描述
Early Fusion:10帧串联起来给模型,因为串联是在CNN提取空间特征之前进行的,所以在LSTM层提取时间特征会有一定的损失。MobileNet为最佳模型
在这里插入图片描述
slow fusion:慢融合呈现最大数量的单个空间特征提取,有助于LSTM层从卷积块的输入数据中提取时间特征。MobileNet性能最好。
在这里插入图片描述

这篇关于2021-基于卷积和LSTM神经网络的视频分类时间融合方法在暴力检测中的应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/439026

相关文章

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

使用Python实现大文件切片上传及断点续传的方法

《使用Python实现大文件切片上传及断点续传的方法》本文介绍了使用Python实现大文件切片上传及断点续传的方法,包括功能模块划分(获取上传文件接口状态、临时文件夹状态信息、切片上传、切片合并)、整... 目录概要整体架构流程技术细节获取上传文件状态接口获取临时文件夹状态信息接口切片上传功能文件合并功能小

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁