【视频算法解析三】ECO

2024-01-08 12:38
文章标签 算法 视频 解析 eco

本文主要是介绍【视频算法解析三】ECO,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

[视频算法解析一] C3D算法

[视频算法解析二] I3D算法

[视频算法解析三] ECO算法

介绍

有两个较为重要的原则:

1.单帧做action recognition效果已经很棒了,附近的帧同时抽取就会带来一定的冗余。所以这里只用2D卷积来抽取单帧的特征。

2.要捕获遥远的帧之间的语境关系,简单得对于分数聚合是不足够的。所以,喂了间隔较远的帧到3D网络中去提取上下文的时间方面的信息。

由于聚合的部分,只取了一部分帧,所以这里处理速度较快。除此之外,ECO提供了一种在线视频理解的可能,先快速对于动作识别,在这之后用长期的feature来进行修正。ECO在action recognition和video captioning的task上进行评估。

长期的时空架构

将视频间隔的分为N片段,等长,随机从这些片段抽一帧,过2D抽取特征的网络,这些网络是共享权重的。随机选取的好处是在训练中带来了多样性以及使网络更加适应动作不同的初始化。作者也考虑过不同的分割视频的方式,通过衡量帧的内容来分割,但是这种方式,需要计算出帧的特征,比较耗时,同时这种方式带来的收益是有限的。后面就将这些随机选取帧的feature叠加在一起送入3D网络,做最后的action分类。这种结构也被作者成为ECO lite。

ECO Lite and ECO Full

作者指出如果只能从其静态内容中识别动作,会浪费送到3D卷积这一部分的容量,这一部分是为了识别帧之间的关系。

ECO full的版本把所有帧的特征pooling和过了3D的拼接在一起。

网络细节 

2D-Net:使用得是Inceptionv2 (BN-Inception)(layer3之前)来提取特征,每一个单帧的图片提取了之后有96channel的28*28size的feature。

3D-Net:这里3Dnet使用的是3D-Resnet18,输出是one-hot vector用于分类的。

2D-NetS:用的2D-Net inceptionv2 layer4后面的,然后做平均池化输出1024维的特征。

测试过程

在测试得时候,ECO只前向传播一次计算结果,不同于TSN/ARTNet需要对于测试数据源做数据增强,在求平均的计算过程,节省了很多的计算资源。

可以看到ECO的inference speed是其他经典方法的几十到几百倍,在保证acc差不多的情况下。 

这篇关于【视频算法解析三】ECO的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Spring IOC控制反转的实现解析

《SpringIOC控制反转的实现解析》:本文主要介绍SpringIOC控制反转的实现,IOC是Spring的核心思想之一,它通过将对象的创建、依赖注入和生命周期管理交给容器来实现解耦,使开发者... 目录1. IOC的基本概念1.1 什么是IOC1.2 IOC与DI的关系2. IOC的设计目标3. IOC

java中的HashSet与 == 和 equals的区别示例解析

《java中的HashSet与==和equals的区别示例解析》HashSet是Java中基于哈希表实现的集合类,特点包括:元素唯一、无序和可包含null,本文给大家介绍java中的HashSe... 目录什么是HashSetHashSet 的主要特点是HashSet 的常用方法hasSet存储为啥是无序的

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

Python视频处理库VidGear使用小结

《Python视频处理库VidGear使用小结》VidGear是一个高性能的Python视频处理库,本文主要介绍了Python视频处理库VidGear使用小结,文中通过示例代码介绍的非常详细,对大家的... 目录一、VidGear的安装二、VidGear的主要功能三、VidGear的使用示例四、VidGea

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

在C#中合并和解析相对路径方式

《在C#中合并和解析相对路径方式》Path类提供了几个用于操作文件路径的静态方法,其中包括Combine方法和GetFullPath方法,Combine方法将两个路径合并在一起,但不会解析包含相对元素... 目录C#合并和解析相对路径System.IO.Path类幸运的是总结C#合并和解析相对路径对于 C