视频理解学习笔记(三)

news2025/7/12 15:51:57

视频理解学习笔记(三)

  • 时间梳理
  • 结果对比
  • 从hand-crafted到deep-learning
    • DeepVideo论文概览 (Slow Fusion)
  • Two-Stream and Its Variants
    • Two-Stream CNN (Late Fusion)
    • Beyond Short Snippets (Two-Stream + LSTM/ConvPooling)
    • 3DConv + 3DPool, Early Fusion (Conv Two-Stream)
    • TSN
  • 总结
  • Reference

时间梳理

Paradigm: TimePaper
传统到CNNDeepVideo
Two-Stream:2014-2017Two-Stream
3D-ConvNet:2017-2020I3D
ViT-based:2020-present

在这里插入图片描述

结果对比

ModelUCF101 (acc, %)
Improved Dense Trajactories (IDTF)S87.9
Deep Video (Slow Fusion)65.4
Two-Stream CNN (Optical Flow + Image Frames, SVM Fusion88.0
Beyond Short Snippets (LSTM Fusion)88.6
TDD + FV90.3
3DConv + 3DPool93.5
TSN94.0
TLE95.6

从hand-crafted到deep-learning

DeepVideo论文概览 (Slow Fusion)

论文链接:Large-scale Video Classification with Convolutional Neural Networks by Andrej Karpathy, Li Fei-Fei and etc. from Google Research and Computer Science Department, Stanford University.

Part 1:
在这里插入图片描述

  • Single Frame:从视频里面抽取一帧出来,喂进卷积网络中得到结果。相当于普通的2D图像分类。
  • Late Fusion:从视频里面抽取多帧出来,分别喂进权重共享的卷积网络中,在结果层面做信息融合。比如说Two-Stream在logits处做average或者SVM,因此算是有时序信息在其中。
  • Early Fusion:直接在输入层面做信息融合,如图所示,将consecutive 5 frames在channel维度concatenate起来,相当于输入总共拥有15个channel(每个frame有3个channel)。
  • Slow Fusion:在学习过程中,即特征层面做时序信息融合。

以上4种方法中,Slow Fusion效果最好,但其实4种方法的效果差别很小

Part 2: Multisolution CNN Architecture.
在这里插入图片描述
如上图所示,

  • 上面的分支:学习核心信息。从原始图中间crop出来(认为物体一般在图片中心),让fovea stream来学习这种核心信息。fovea意味视网膜中央凹,该部位对外界变换最为敏感。
  • 下面的分支:学习整体的全局信息。没有特殊处理。

上下两个分支权重共享

该网络在某种程度上也算是一种双流网络。这其实是早期的一种注意力机制,强制让模型去关注图片中心区域。

Two-Stream and Its Variants

Two-Stream CNN (Late Fusion)

双流卷积神经网络概览

由双流网络的启发(效果不一定好,探索):

  • Early fusion and late fusion
  • 换backbone,尝试更深的网络;如何在小数据集上训练大模型,控制过拟合。
  • 怎么更好地处理时序信息,比如说用RNN或者LSTM等。
  • 怎么做长视频

Beyond Short Snippets (Two-Stream + LSTM/ConvPooling)

探究时序信息Fusion的方法,怎么做pooling,主要提出了Conv Pooling和尝试了LSTM。这两者都可以处理非常多的帧,所以叫做beyond short snippets。
论文链接:Beyond Short Snippets: Deep Networks for Video Classification_CVPR’15 by Joe Yue-Hei Ng etc. from University of Maryland, College Park, University of Texas at Austin and Google, Inc.

方法
在这里插入图片描述

实验:
和其他方法做对比:基于双流网络做出的改进,带来的效果提升非常有限。
在这里插入图片描述

消融实验:
在这里插入图片描述
结论:LSTM这种看似能够很好融合时序信息的方法,其实和ConvPooling的效果差不了多少(因为LSTM学的是更high-level的语义信息,需要一个比较长的序列和比较明显的变化);上表中最好两排相比前面两排的增益,主要来自光流的利用。

3DConv + 3DPool, Early Fusion (Conv Two-Stream)

即在卷积中做fusion。

探究Early Fusion,非常细致地讲了如何去做信息融合。具体来讲,如何基于双流网络去做时间流和空间流的early fusion。

论文链接:Convolutional Two-Stream Network Fusion for Video Action Recognition_CVPR’16 by Christoph Feichtenhofer and Axel Pinz from Graz University of Technology, Andrew Zisserman from University of Oxford.

  • Spatial Fusion

    • 怎么合并
      • Max Fusion
      • Concatenation Fusion
      • Conv Fusion (表现最好)
      • Sum Fusion
      • Bilnear Fusion
    • 在哪里合并
      • 空间流和时间流先分别做,然后在中途合并
        在这里插入图片描述
      • 先两个网络分别做,然后把空间流的特征拿去和时间流的特征做合并。(表现更好)
        在这里插入图片描述
  • Temporal Fusion

    • 3D Pooling
    • 3D Conv + 3D Pooling

在这里插入图片描述
实验:

和其他方法做对比:
在这里插入图片描述
结论:Early Fusion可能算是一种对网络的变相的约束,在一定程度上弥补了数据集不足的问题。

贡献:

  • 大量消融实验,在哪里做fusion,怎么做fusion
  • 展现了3D CNN的可行性

TSN

如何处理更长的视频和一些好用的技巧

论文链接:Temporal Segment Networks: Towards Good Practices for Deep Action Recognition_ECCV’16 by Limin Wang etc. from ETH, CUHK, CAS

方法:
给长视频分段,从每个段抽取一帧rgb和对应的光流,喂进权重共享的双流网络。
在这里插入图片描述

  • 如何利用输入不同的预训练好的模型进行初始化(如何利用在ImageNet上预训练好的模型参数对TSN进行初始化):RGB是3个channel,而TSN的输入是N个channel。方法:在第一层对3个channel的参数取平均,得到一个channel的参数;将这个参数重复N次。
  • 正则化的技巧
    • 问题:BN虽然能加速训练,但加重过拟合。解决:partial BN,即把部分BN冻住。具体来讲,把第一层BN打开(因为输入变化了),其他BN全部冻住。
  • 数据增强:防止过拟合。
    • coner cropping:强制在边边角角做crop;
    • jittering:改变视频帧的长宽比。具体操作:resize到固定大小,然后去做裁剪。

实验:
和其他方法对比:
在这里插入图片描述

总结

在这里插入图片描述

  • 上半支:传统方法
    • STIP: Spatial Temporal Interest Point
    • DT/IDT: Dense Trajectory / Improved Dense Trajectory
    • IDT + FV: Fisher+ Vector
  • 下半支:深度学习
    • DeepVideo’14
    • Two-Stream
      • 利用光流轨迹做堆叠:TDD_CVPR’15
      • 利用时序模型LSTM和做Pooling(late fusion):Beyond Short Snippets_CVPR’15
      • Early Fusion: 3DConv + 3DPool, Conv Two-Stream_CVPR’15
      • 对长视频的理解:TSN_ECCV’16
        • 将全局编码加到TSN中,学习一个更全局的video-level特征
          • DVDF:非端到端
          • TLE_CVPR’17:端到端

Reference

Bilibili-视频理解论文串讲(上)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/575848.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java学习路线(14)——Map集合类

一、介绍 概念 Map集合是一种双列集合,每个元素包含两个数据。元素格式:【keyvalue】键值对元素Map又称为 “键值对集合” Map集合格式: {key1value1,key2value2,key3value3,…} 二、Map集合的特点 Map家族图 1、说明: 使用…

期末复习总结【MySQL】库和表的基本操作 + 增删改查CURD

文章目录 前言一、数据库的基本操作1, 查看库2, 创建库3, 使用库4, 删除库 二、表的基本操作1, 创建表2, 查看表3, 查看表结构4, 删除表 三、增加(Create)四、查询(Retrieve) (重点)1, 全列查询2, 指定列查询3, 查询字段为表达式4, 指定别名5, 去重6, 排序7, 条件查询7.1, 基本…

Hbase操作

(1) 启动 启动顺序:Hadoop--zookeeper—hbase 主进程:HMaster 从进程:HRegionServer 确认进程是否正常 (2) 进入终端 [rootmaster ~]# hbase shell (3) 查看状态 命令:status 表示有3台机器,0台down掉&…

软件测试3年以为的躺平了,没想到还得内卷,这题太难了...

前段时间我同事(做测试的一个妹子)跟我讲,感觉早上起来十分的疲惫,不想上班,问我们这是什么样的现象,其实有时候我也有这种感觉,虽然我卷,但我也是肉体凡胎啊!不是机器人…

Qt, Text Edit 和 Plain Text Edit关于调整字体样式的问题

问题: 在编写小案例的过程中需要使用一个文本容器用于显示文本效果, 因为涉及文本字体的 加粗, 倾斜, 下划线, 以及颜色效果, 这里使用了 Text Edit 组件, 但是使用后发现容器中的文本无法实现同时设置 加粗 倾斜 下划线的情况, 且单独设置时只有 下划线 有效果, 加粗 倾斜 均无…

C++模板(详解)

非类型模板参数 模板参数可分为类型形参和非类型形参。类型形参: 出现在模板参数列表中,跟在class或typename关键字之后的参数类型名称。非类型形参: 用一个常量作为类(函数)模板的一个参数,在类&#xff…

字节跳动测试岗面试挂在二面,我复盘总结了失败原因,决定再战一次

先说下我基本情况,本科不是计算机专业,现在是学通信,然后做图像处理,可能面试官看我不是科班出身没有问太多计算机相关的问题,因为第一次找工作,字节的游戏专场又是最早开始的,就投递了&#xf…

hystart++ 出炉

周三早上同事发我一个 rfc 9406 链接,microsoft hystart 标准化了,此前只是一个 draft。 说说我的看法。 信收敛不信测量,tcp 是端到端高熵体,对网络一无所知,过度信任测量则无法消除长尾,且可能劣化 p99…

Metasploit入门教程(非常详细)从零基础入门到精通,看完这一篇就够了!

通过本篇文章,我们将会学习以下内容: 1、在Windows上安装Metasploit 2、在Linux和MacOS上安装Metasploit 3、在Kali Linux中使用 Metasploit 4、升级Kali Linux 5、使用虚拟化软件构建渗透测试实验环境 6、配置SSH连接 7、使用SSH连接Kali 8、配…

【牛客刷题专栏】0x32:JZ45 把数组排成最小的数(C语言编程题)

前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer: 目录 前言问…

【算法】LFU及其优化

文章目录 什么是LFU?设计思路代码实现(基础版本)参考论文代码实现(优化版本)区别 什么是LFU? LRU及其实现 上文讲解了LRU,他是一个基于最近是否被访问来做缓存淘汰的策略。 那么今天介绍一个新…

Postman的简单使用:

1. Postman 1.1 背景 当前主流的开发模式为:前后端分离开发。 前端人员开发前端工程,后端人员开发后端工程,只需要依据这份接口文档即可。在后端开发过程中每开发完一个功能,就需要对这个功能接口进行测试,由于现在是…

图灵完备游戏:信号计数 解法记录

使用1个全加器 2个半加器完成。这关的思想主旨在于如何把输出4,输出2,输出1的情况统一在一根导线上。 首先用一个全加器来完成输入2-4这三个引脚的计数,因为全加器输出范围二进制是00 - 11,而输入正好有两个引脚数位是2和1&…

linux周六串讲

esc. //粘贴复制上一条命令的参数 cat /etc/resolv.conf //查看DNS地址 route -n //查看网关 hostname //临时修改主机名 hostnamectl set-hostname 名称 //永久修改主机名 ssh root192.168.10.233 //用windows远程的格式,在CMD窗口输入这个命令 …

MYSQL数据库测评及整改

1、查询数据库版本:select version(); 2、查询已安装的插件:show plugins; 3、查询插件安装的位置: show variables like "%plugin_dir%"; 4、查询用户:选择数据库: select host,user,plugin from user; 5、…

Read View 数据快照,在MVCC里是如何工作的?

Read View 数据快照,在MVCC里是如何工作的? Read View 有四个重要的字段: ● m_ids :指的是在创建 Read View 时,当前数据库中「活跃事务」的事务 id 列表,注意是一个列表,“活跃事务”指的就…

Seata术语

1.什么是Seata Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 官网 2.Seata能干嘛 一个典型的分布式事务过程 分布式事务处理过程的一ID三组件模型: Transaction ID XID 全局唯一的事务ID三组…

WSL2编译安卓8.1源码,直接运行模拟器

目录 WSL2编译安卓8.1源码,直接运行模拟器WSL2下载安装移动到非系统盘下载和编译Android8直接运行emulator修改模拟器配置源码导入Android Studio并进行调试断点调试总结 WSL2编译安卓8.1源码,直接运行模拟器 学习Android Framework开发,需要…

零基础CTF入门指南+工具

ctf入门指南 CTF工具包获取地址:http://www.ctftools.com/ 如何入门?如何组队? capture the flag 夺旗比赛 类型: Web 密码学 pwn 程序的逻辑分析,漏洞利用windows、linux、小型机等 misc 杂项,隐写&…

2023年电工杯选题人数发布

该选题人数,主要基于根据各个平台开赛后24小时各项数据统计,进行评估(方法见注释),最终得出2023年认证杯二阶段选题人数,大致为 题号选题人数A97B431 注释:选题人数来源:源自各个平台…