C3D论文笔记

article/2025/10/14 16:53:29

在这里插入图片描述
论文链接:http://vlg.cs.dartmouth.edu/c3d/c3d_video.pdf
代码链接:https://github.com/jfzhang95/pytorch-video-recognition

1. C3D是什么?

C3D,全称Convolutional 3D,即3D卷积。3D卷积方法是把视频划分成很多固定长度的片段(clip),相比2D卷积,3D卷积可以提取连续帧之间的运动信息,换句话说,3D卷积将视频多帧进行融合

2. 论文贡献

  • 3D ConvNets比2D ConvNets更适用于时空特征的学习
  • 对于3D ConvNet而言,在所有层使用3×3×3的小卷积核效果最好
  • 使用3D卷积学习到的特征,通过简单的线性分类器在4个不同的基准上均优于最新的方法

3. 本文方法

3.1 2D和3D卷积对比

在这里插入图片描述
由上图可知:

  • 对图像应用二维卷积可生成图像。
  • 在视频序列上应用二维卷积(多帧作为多个通道)也会产生图像。
  • 在一个视频序列上应用3D卷积会产生另一个序列,从而保留输入信号的时间信息。

与2D-ConvNet相比,3D-ConvNet具有更好的时间信息建模能力,这得益于3D卷积和3D池化操作。在3D ConvNets中,卷积和池化操作是在时空上执行的,而在2D ConvNets中,卷积和池化操作只是在空间上执行的(如上图)。而2D ConvNets在每次卷积运算后都会丢失输入信号的时间信息。只有3D卷积才能保留产生输出时间信息。同样的3D池化操作也是如此。同时,根据2D ConvNets的研究结果,3 × 3卷积核的小感受野和较深的结构产生了最好的结果。因此本文将空间感受野固定为3 × 3,并且仅改变3D卷积核的时间深度。

3.2 网络结构

在这里插入图片描述
C3D网络结构如上图:8个卷积层,5个池化层,2个全连接层,1个softmax输出层。所有卷积核均为3x3x3,第一个pooling层1x2x2,stride=1x2x2,之后都是2x2x2,两个全连接层都是4096。
注:

  • 假设视频序列大小为c × l × h × w,其中c是频道数,l是帧的长度,h和w分别是帧的高度和宽度。三维卷积和池化的核大小为d × k × k,其中d是核的时间深度,k是核的空间大小。
  • 所有这些卷积层都采用适当的填充(空间和时间)和步长为1,因此从这些卷积层的输入到输出的大小没有变化。

该网络以视频片段为输入,对101个不同动作的类标签进行预测。所有视频帧的大小都调整为128 × 171。视频被分成不重叠的16帧序列,然后作为网络的输入。输入尺寸为3 × 16 × 128 × 171。在训练中,还使用了大小为3 × 16 × 112 × 112的输入剪辑的随机裁剪来进行抖动。该网络有5个卷积层和5个池化层(每个卷积层后面紧跟着一个池化层)、2个全连接层和一个预测动作标签的softmax loss层。从1到5的5个卷积层的滤波器数目分别为64、128、256、256、256。所有卷积核都有d的大小,其中d是内核时间深度。

3.3 探索时间核长度(d)

本文主要关注如何通过深度网络聚合时间信息。为了寻找一个好的3D ConvNet架构,作者只改变卷积层的内核时间深度di,同时保持所有其他公共设置不变。
在这里插入图片描述
作者实验了两种类型的体系结构:

  • 同质时间深度:所有卷积层具有相同的核时间深度
  • 可变时间深度:核时间深度跨层变化。
    观察上图可知:第一张图中看到,深度为1的网络,相当于在单帧图片上进行2D卷积,2D ConvNets表现很差,原因在于缺乏动作建模 ;第二张图中看到,具有3x3x3内核的3D ConvNet表现最好

4 行为识别

使用的数据集是UCF101,采用简单的分类模型—简单线性SVM。同时试验了3个不同的网络和基准进行比较。
在这里插入图片描述
结果如表所示。中间部分是只使用RGB的,下面则是所有当前最好的行为识别方法。结果表明,C3D不仅有最高的精度,而且能很好地提取外部特征与时间特征。另一方面,C3D同IDT的结合是十分互补的。IDT是主要基于光流追踪与低梯度的直方图特征,而C3D则捕捉了高度抽象综合的信息。
在这里插入图片描述
使用t-SNE在UCF101数据集上嵌入Imagenet和C3D的可视化特征。与Imagenet相比,C3D特征在语义上是可分离的,这表明它可以产生一个更好的视频特征。每个剪辑都可视为一个点,属于同一动作的剪辑具有相同的颜色。

5 动作相似性标注

数据集使用ASLAN,来自432个动作类的3631个视频组成。将视频分为16帧片段,为每个片段提取C3D特征名之后对每种类型的特征分别平均剪辑特征,然后L2归一化计算视频特征。
在这里插入图片描述
C3D仅仅进行简单平均和线性SVM,与最先进的方法进行对比,准确度高于其他方法11%,但与人类表现进行比较,还是有些差距。

6 场景与目标识别

数据集使用YUPENN和MaryLand,这些数据集都是以自我为中心的,是以第一人称视角记录。在所有视频上滑动一个16帧的窗口来提取C3D特征,使用SVM训练和测试C3D特征。
在这里插入图片描述
实验可得,C3D在MaryLand和YUPENN的表现分别比最先进的方法好10%和1.9%。


http://chatgpt.dhexx.cn/article/dchSqrtl.shtml

相关文章

C3D网络介绍

1. 模型简介 C3D模型广泛用于3D视觉任务。C3D网络的构造类似于常见的2D卷积网,主要区别在于C3D使用像卷积3D这样的3D操作,而2D卷积网则是通常的2D架构。要了解有关C3D网络的更多信息,您可以阅读原始论文学习3D卷积网络的时空特征。 3D卷积图…

视频分析模型(行为识别):C3D

C3D 文章目录 C3D1. 简介1.1 背景1.2 C3D特点1.3 视频描述符1.4 C3D的结果 2. 架构2.1 工作流程2.2 网络结构2.3 3D卷积和池化2.4 kernel 的时间深度 3. 可视化3.1 特征图3.2 特征嵌入 4. 应用场景4.1 动作识别4.2 动作相似度标注4.3 场景和目标识别4.4 运行时间分析 1. 简介 …

C3D论文精读

论文地址:https://vlg.cs.dartmouth.edu/c3d/c3d_video.pdf Abstract 作者的研究结果有三个方面: 1)与二维相比,三维卷积网更适合时空特征学习;2)所有层具有333的小卷积核的同构架构是3D卷积网的最佳架构之一;3)学习到的特征&am…

基于C3D网络的视频分析与动作识别

卷积神经网络(CNN)被广泛应用于计算机视觉中,包括分类、检测、分割等任务。这些任务一般都是针对图像进行的,使用的是二维卷积(即卷积核的维度为二维)。而对于基于视频分析的问题,2D convolutio…

《QDebug 2022年12月》

一、Qt Widgets 问题交流 二、Qt Quick 问题交流 1、在 C 中关联 QQuickWindow 的 closing 信号提示 "使用了未定义类型QQuickCloseEvent" 因为 closing 信号中的参数类型是 private 模块中定义的,但是通过第二句提示我们知道找到了完整定义才能使用 Q_…

4.4 案例8 用qDebug()输出信息

本案例对应的源代码目录:src/chapter04/ks04_04。 在开发C/S(Client/Server,客户端/服务端)模式的软件时,服务端程序(有时也称作服务)经常运行在两种模式下。 (1)终端模…

Qt扫盲-QDebug理论总结

QDebug理论使用总结 一、概述二、使用1. 基础使用2. 格式化选项3.将自定义类型写入流 一、概述 每当开发人员需要将调试或跟踪信息写入设备、文件、字符串或控制台时,都会使用QDebug。这个就可以方便我们调试,基本上Qt所有的内容都能通过调试打印出来&a…

Qt重定向QDebug,自定义一个简易的日志管理类

0.前言 相对于第三方的日志库,在 Qt 中使用 QDebug 打印更便捷,有时候也需要对 QDebug 输出进行重定向,如写入文件等。 在 Qt4 中使用 qInstallMsgHandler 函数设置重定向的函数指针: typedef void (*QtMsgHandler)(QtMsgType,…

qDebug 控制台输出

做个小笔记:qDebug 控制台输出 Ⅰ&#xff1a;*.pro文件中添加 win32:CONFIG console Ⅱ&#xff1a;配置项目运行设置&#xff0c;将Run in terminal 复选框打勾 Ⅲ&#xff1a;添加头文件 #include <QDebug> Ⅳ&#xff1a;用qDebug()<<"xxxx";输…

Qt ——debug调试

程序调试&#xff1a; 方法一&#xff1a;断点调试法方法二&#xff1a;使用qDebug()函数 方法一&#xff1a;断点调试法 我们可以在程序加断点&#xff0c;然后再利用单步调试查看变量的值是否异常。 1. 设置断点。 可以左击相应的代码行前的区域&#xff08;下图用红色框标…

jadx反编译—下载和使用(傻瓜教程,非常详细)

原文地址 一、在GitHub上直接下载 下载地址 可以下这个版本&#xff1a; 二、运行图形化界面 1、将zip文件解压后定位到在lib文件夹中&#xff0c;在此处打开命令行 2、运行jadx-gui-0.7.1.jar&#xff08;前提是已经装好了JDK1.8&#xff09; 命令如下&#xff1a; <sp…

Android APK 反编译工具 JADX

文章目录 JADX 介绍JADX 安装JADX 使用补充APK 目录结构含义APK 打包流程 JADX 介绍 GitHub 地址&#xff1a;https://github.com/skylot/jadx JADX 支持将 APK, dex, aar, zip 中的 dalvik 字节码反编译为 Java 代码&#xff0c;也支持反编译 AndroidManifest.xml 和 resource…

jadx-gui 重命名功能

jad-gui 是大家常用的一款反编译工具&#xff0c;其中有些小使用技巧可以帮助大家更快的“学习”知识。 安装 方法参考项目GitHub主页 重命名 最新的 1.2.0 版本支持了方法、类、字段的重命名&#xff0c;这是一个非常有用的功能&#xff0c;之前反编译出来的都是混淆后的名…

Android 反编译神器jadx的使用

一、前言 今天介绍一个非常好用的反编译的工具 jadx 。jadx 的功能非常的强大&#xff0c;对我而言&#xff0c;基本上满足日常反编译需求。 jadx 优点&#xff1a; 图形化的界面。拖拽式的操作。反编译输出 Java 代码。导出 Gradle 工程。 这些优点都让 jadx 成为我反编译…

jadx工具windows下载

Release v1.2.0 skylot/jadx GitHubDex to Java decompiler. Contribute to skylot/jadx development by creating an account on GitHub.https://github.com/skylot/jadx/releases/tag/v1.2.0选择第三个jadx-gui-1.2.0-with-jre-win.zip解压exe可正常使用

jadx反编译—下载和使用

一、在GitHub上直接下载 https://github.com/skylot/jadx 可以下这个版本&#xff1a; 二、运行图形化界面 1、将zip文件解压后定位到在lib文件夹中&#xff0c;在此处打开命令行 2、运行jadx-gui-0.7.1.jar&#xff08;前提是已经装好了JDK1.8&#xff09; 命令如下&#xf…

jadx初识

一.jadx介绍 一款相对流行的反编译工具 下载&#xff1a;https://github.com/skylot/jadx/releases/tag/v1.0.0 解压后得到这么几个文件&#xff1a; 启动&#xff1a;&#xff08;以下来两个文件都可以&#xff09; 启动后的界面&#xff1a; 二.使用 打开之后&#xff0c;你可…

反编译工具之jadx

反编译神器之 - jadx git网址&#xff1a; https://github.com/skylot/jadx简介 首先推荐功能强大的jadx&#xff0c;官方网站为&#xff1a;https://github.com/skylot/jadx&#xff0c;可以直接在releases页面下载其最新版&#xff0c;解压即可使用。 安装 Windows下安装 …

Android 反编译工具 jadx-gui

jadx-gui 是一种基于 jadx 项目的图形界面工具&#xff0c;用于反编译 Android 应用程序的工具。通过使用jadx-gui&#xff0c;开发人员可以打开 APK&#xff08;Android应用程序包&#xff09;文件&#xff0c;并查看其反编译的源代码。这对于分析、理解和调试 Android 应用程…

jadx工具介绍及使用

往期推荐 签名校验之“xx银行” Jeb调试ctf(破解密码 Crack the key) ”川报观察“协议分析(抓不到包) 实战分析43XX的HTTPS协议 需要相关资料的朋友&#xff0c;可以【加入此处即可打包获取】 jadx工具是一款反编译利器&#xff0c;同时支持命令行和图形界面&#xff0c…