【论文复现】ECO_Efficient Convolutional Network for Online Video Understandin

2023-05-16

论文链接:https://arxiv.org/abs/1804.09066

代码链接:https://github.com/mzolfaghari/ECO-pytorch

该篇论文是百度paddlepaddle线上训练营推荐的论文,适合有一定基础的初学者阅读,有感兴趣的可以去训练营查看所有推荐的9篇顶会论文~

内容梗概: 作者提出了一种新的视频分类模型ECO,创新在于将 2D卷积(提取图像特征)和3D卷积(提取时间上的特征)相结合。

具体的网络结构:作者提出了两种模型ECO Lite和ECO Full。ECO Lite是结构上较为简单的一种模型,它比ECO Full少了一个2D的卷积处理。二者的区别是:ECO Lite运行速度快,精确度较低;ECO Full运行速度较慢,但是精确度较高(因为它设计的2DNets能更好地得到图片特征,同时又可以和时序特征相融合得到最终的判断结果)

两个模型的结构见下图:

1)首先是数据处理。将一个视频分成N段,从每段中随机地取一帧图片,这样一个video对应N帧图片,将其作为输入放入2D卷积层中。

2)2DNet结构。使用了BN-Inception结构中前面的一部分(inception-3a, inception-3b, inception-3c)

具体结构图可以参考下图(原图链接:https://blog.csdn.net/stesha_chen/article/details/81662405)

 我们再对照论文中给出的表格看结构图会更加清晰:

 我们可以看到2DNet在表格中的结构完全对应上面给出的BN-inception结构图。只是最后的inception-3c选择了中间输出96个通道分支的第一个卷积作为整个2DNet的输出。(针对一些这样的细节想研究更明白的话可以看官方github中给出的网络结构文件:https://github.com/mzolfaghari/ECO-pytorch/blob/master/tf_model_zoo/ECOfull/ECOfull.yaml)

3)3DNet结构。在将2DNet输出作为3DNet的输入前,要对2DNet的输出做处理。具体处理见下图。

简单解释一下上面这个图:

左边的S1, S2, ..., SN指的是将一个video划分成N段,每段随机地取一帧图像送入2DNet中(weight shared指的是共用一个2DNet网络)。从2DNet得到的输出是每一帧都对应K个通道、size=28*28的特征图。在这里重组这些特征图,将对应通道的图片放在一组中。比如我将每帧第一个通道的图片放在一组,将每帧第二个通道的图片放在第二组,依此类推,每一组中有N张28*28大小的图片。这样我们得到的数据shape就变成了[K, N, 28, 28](如上图中的蓝色小字所示),这里对应代码的处理就是transpose将维度变换一下即可。我们这样处理主要是为了通过3DNet得到时序关系(因为是由同一个通道不同时间帧组成的)。接下来只要处理成3DNet模型可以接受的输入shape即可,比如我用paddlepaddle的话3DNet模型需要5个维度的输入,那么我需要对数据做np.newaxis添加一个数值为1的维度即可。

4)如果是ECO Lite的话,接下来对3DNet的输出做一个Pool3D+reshape就可以得到一维的张量,输入fc层,得到的fc结果做一个softmax就可以得到视频分类了。

如果是ECO Full的话,需要将之前2DNet没做的BN-Inception余下部分接着做完,最后也像上面提到的transpose改变维度的顺序,做Pool3D+reshape后得到一个一维的输出。将2DNets的输出和3DNet的输出结合(Concatenate),作为一个整体输入fc,再做sofmax进行分类。

 

注意事项:

①场景:在用paddlepaddle进行论文复现的时候,有时会在命令行打印出张量结构,因为篇幅过大有时不知道问题出在哪里

原因:其实是因为在复现过程中有时候会将张量转变为numpy,作为input输入模型就会出现这样的问题。

解决方法:把numpy再转为张量即可(fluid.dygraph.to_variable(...))

②场景:在将2DNet输出数据输入到3DNet之前,需要做一些处理,例如transpose。发现transpose后数据维度并没有变化

原因:调用该函数不会改变张量本身的维度,必须重新赋给新的对象

解决方法:inception_3c_c3d = fluid.layers.transpose(inception_3c_c3d, [1, 0, 2, 3])

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【论文复现】ECO_Efficient Convolutional Network for Online Video Understandin 的相关文章

  • for input string:原因及其解决方案

    javascript view plain copy 首先我这里遇到的错误 for input String if 类型 money Double parseDouble 数据库中获取的内容 else if 类型 number Intege
  • Ubuntu9.04双网卡配置

    新手没怎么用过Ubuntu 所以走了不少弯路 网上找了很多方法 大都没对我起到帮助作用 所以把自己的配置方法写一写 环境 VPC2007SP1 Ubuntu9 04 Ubuntu上连了两块网卡 eth0为外网的eth1为内网的 VPC的特点
  • AIX命令集锦九(TCP/IP网络管理命令)

    9 1 主机名修改命令hostname uname n 显示主机名uname x uname a uname u 显示操作系统的详细信息 显示系统IDhostname 主机名 这样改的主机名只能保持到下次重起smit hostname 或c
  • [libuv]uv_loop_close和uv_stop的区别

    作者 玄冬Wong uv loop close 是释放掉uv loop t 指针相关的资源 uv stop 是退出当初由uv run 运行的正在阻塞中的逻辑 当程序完全退出需要清理全部uv相关的资源时 具体清理方式如下 1 这里假设你在函数
  • Network Error .Tap to load again.:-1202

    分析原因 1 可能是网络问题 确认网络是否正常 2 如果电脑上尝试没有问题 但是微信端有问题 可能是手机域名过期的问题 3 可能是域名证书未配置成功 导致微信认证被拦截了 配置即可
  • OpenBSD cvsup更新

    安装了 OpenBSD 后你会发现它很小个 只有500多M 当然里面只有ssh sendmail功能 dev wd0a 130M 38 8M 84 7M 31 dev wd0h 95 5G 16 0K 90 8G 0 home dev wd
  • Python语法:... for ... in ... if ...

    Python中 for in if 语句是一种简洁的构建List的方法 从for给定的List中选择出满足if条件的元素组成新的List 其中if是可以省略的 下面举几个简单的例子进行说明 for in for in 语句 实例如下 1 a
  • SOCKS 5协议详解  

    SOCKS 5协议详解 笔者在实际学习中 由于在有些软件用到了socks5 如oicq icq等 对其原理不 甚了解 相信很多朋友对其也不是很了解 于是仔细研读了一下rfc1928 觉得有必要 译出来供大家参考 1 介绍 防火墙的使用 有效
  • Linux System Network Management Manual

    最近读得一本好书 名字叫做 Linux系统管理与网络管理 为了加深理解与学习 现将书名与目录摘录如下 后续会根据书中的内容做一些整理 I 基础篇 1 Linux系统简介 2 Linux系统安装 3 图形桌面系统管理 4 命令行界面 II 系
  • NetWork——关于TCP协议的三次握手和四次挥手

    0 准备知识 1 ACK TCP协议规定只有ACK 1时有效 也规定连接建立后所有发送的报文的ACK必须为1 2 SYN 在连接建立时用来同步序号 当SYN 1而ACK 0时 表明这是一个连接请求报文 对方若同意建立连接 则应在响应报文中使
  • Android 网络地址之实现检查主机名的功能

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 效果演示 实现步骤 一 布局页面activity inet address xml
  • zerotier搭建moon模式

    最近发现zerotier内网穿透在和家里nas存储交互网速好像不怎么样 于是想搞个moon看看是不是会有所改善 先决条件建议 有一台云服务器 很多童鞋说要钱 刚刚白piao了一百度云的服务器 一年只要38RMB 配置CentOS7 9 1C
  • TCP协议如何保证可靠传输

    TCP的功能是交付数据 所以TCP的可靠就是保证每次数据按序 按时 不丢数据 顺利的交付给对端 可靠不等于安全 TCP尽最大可能的保证数据可靠性 但是没有任何措施保证数据的安全性 所谓安全就是你的数据不会被别人看到或者窃取到 TCP上的数据
  • 关于端口协议Up down的一点理解

    在处理网络障碍的时候 经常需要查看端口的状态 端口所配协议的状态 使用一些常用的工具里投入ping等命令进行测试 然后大家有没有发现 路由器或者三层交换机针对于广域网的端口的查看和以太网的端口查看包括ping等有很大区别 在此将自己的理解概
  • 第二节 分支和循环语句

    第二节 分支和循环语句 目录 一 什么是语句 二 分支语句 选择结构 三 循环语句 本章重点 分支语句 if switch 循环语句 while for do while goto语句 一 什么是语句 C语句可分为以下五类 表达式语句 函数
  • TCP-IP详解:超时重传机制

    参考教材 TCP IP Guide 超时重传是TCP保证数据传输可靠性的又一大措施 本文主要介绍重传TCP报文的两大举措 超时重传和快速重传 超时重传机制 超时重传指的是 发送数据包在一定的时间周期内没有收到相应的ACK 等待一定的时间 超
  • matlab for循环坑

    matlab 用 for 嵌套循环遍历数组时 可能有 bug matlab octave 环境 linux Matlab R2018a 1 windows GNU Octave version 5 2 0 以 for x vector 的形
  • VLAN划分及配置注意事项

    VLAN Virtual Local Area Network 即虚拟局域网 是将一个物理的LAN在逻辑上划分成多个广播域的通信技术 VLAN内的主机间可以直接通信 而VLAN间不能直接通信 从而将广播报文限制在一个VLAN内 VLAN之间
  • linux下libpcap抓包分析

    linux下libpcap抓包分析 一 首先下载libpcap包http www tcpdump org latest release 然后安装 安装完成后进入安装根目录的tests文件夹 编译运行findalldevstest c 编译时
  • linux下TUN或TAP虚拟网卡的使用

    tun tap 驱动程序实现了虚拟网卡的功能 tun表示虚拟的是点对点设备 tap表示虚拟的是以太网设备 这两种设备针对网络包实施不同的封装 利用tun tap 驱动 可以将tcp ip协议栈处理好的网络分包传给任何一个使用tun tap驱

随机推荐

  • docker命令详解及参数作用

    下载镜像 docker pull 镜像名 标签 查看本地镜像 docker images 删除镜像 xff1a docker rmi 镜像名 标签 启动容器 docker run d name 61 mynginx resrart 61 a
  • Mac sourcetree连接gitee码云仓库

    一 复制自己的ssh key 添加到gitee的ssh 共钥中 二 添加后 xff0c 在终端输入 ssh T git 64 gitee com gt gt 出现下面的successfully就代表关联成功了 三 sourcetree中选择
  • 路径规划与避障算法(一)---DWA算法概述

    版权声明 xff1a 本文为博主原创文章 xff0c 转载请联系博主 https mp csdn net mdeditor 82764989 DWA 动态窗口算法 算法概述 算法原理可见 https blog csdn net heyiji
  • 路径规划与避障算法(七)---DWA算法流程之三---碰撞检测评价函数

    版权声明 xff1a 本文为博主原创文章 xff0c 原创不易 转载请联系博主 本篇博客主要介绍DWA算法所采用的评价函数中障碍物相关的评价函数 评价函数 轨迹主要依据以下三条准则进行评分 综合评分后选取分数最小的路径作为下一时刻选择路径
  • 彻头彻尾理解JVM系列之九:不会JVM调优怎么进互联网大厂

    大家好 我是慕枫 前阿里巴巴高级工程师 InfoQ签约作者 阿里云专家博主 一直致力于用大白话讲解技术知识 在这里和大家分享一线互联网大厂面试经验 技术人成长路线以及Java技术 分布式 高并发 架构设计方面的经验总结 感恩遇见 希望我们都
  • CVPR代码和论文链接目录大全

    最新 xff01 CVPR 2021 语义分割论文大盘点 xff08 39篇论文 xff09 xff1a https blog csdn net amusi1994 article details 118426626 CVPR代码和论文链接
  • Ubuntu 桌面被删除,恢复

    step1 在桌面上打开终端 xff0c cd 到自己的home文件夹 step2 ls la 出现隐藏的文件及文件夹 step3 找到 config文件夹中的user dirs dirs 如图 图是找的图片 将最后vim user dir
  • 在Linux中编译带有自己编写的头文件的C程序

    有三个文件callback c xff0c callback h xff0c demo c 其中callback h是自己编写的头文件 在Linux中编译运行demo c的时候注意也要编译callback c文件 xff0c 否则会报错 引
  • Anaconda和TensorFlow开发环境搭建

    参考链接 xff08 MOOC大学 深度学习应用开发 TensorFlow实践 第二讲 xff09 xff1a https www icourse163 org course ZUCC 1206146808 一 Anaconda下载 官网下
  • 【wxPython导入失败】Failed building wheel for wxPython

    导入包wxPython失败 xff1a Failed building wheel for wxPython 错误原因 xff1a 根据错误提示发现我的电脑上有两个版本的Python xff0c 一个是最开始学Pyhton的时候装的3 7版
  • 【PEP 484】什么是.pyi文件?

    在PyCharm中查看源代码的时候 xff0c 发现有些代码行有星号 标识 xff0c 鼠标移上去会提示在某个 pyi文件中有其存根程序 xff0c 点击星号会跳转到对应的存根程序处 那什么是存根程序呢 xff1f 我第一次看到这个概念是在
  • 【timeout error】导入手写体识别数据(MNIST)超时

    问题起因 xff1a 想要用TensorFlow做手写体识别 xff0c 在导入数据的时候出现了超时的问题 解决方法 xff1a C Users Desny Anaconda3 pkgs tensorflow 1 2 1 py35 0 Li
  • 【深度学习】如何计算AP(平均精度)和mAP(平均精度均值)?

    起因 xff1a 最近导师给买了本书 xff0c 叫做 智能计算系统 xff08 陈云霁等人编著 xff09 xff0c 让我上b站看看教材对应的视频 不得不说这书写的确实不错 xff0c b站上的视频讲的也还可以 书和视频的内容可以相互补
  • 【TensorBoard】进入TensorBoard方法

    1 打开Anaconda Prompt xff0c 切换目录 必须切换到 log 文件夹所在的盘 xff0c 也可以进一步切换到 log 文件夹的位置 xff08 注 xff1a 如果没有切换到 log所在的盘 xff0c 比如 log放在
  • C/C++ strtok()是线程不安全

    最近发生一题 xff0c 通过使用hwasan发现了一个问题 xff0c 指示代码使用了非法内存 通过代码和dump一直查不到原因 xff0c 问题指示的是使用的内存被释放了 函数传入参数后 xff0c 马上使用按asprinf copy了
  • 解决TensorFlow指定版本升级的一系列问题

    起因 xff1a 跟着MOOC学习的时候 xff0c 为了和课件配套下载1 2 1版本的tensorflow xff0c 现在讲到tensorflow中的keras包 xff0c 需要将tensorflow升级到1 10版本 最终解决方法
  • 【UnicodeEncodeError】导入pb模型文件失败

    起因 xff1a 昨天想要导入pb模型文件 xff0c 结果发生了两次这样的错误 一开始看错误提示以为真的是编码有问题 xff0c 后来发现都是文件路径 文件名有错误才会出现此类问题 解决方法 xff1a 注意文件名或路径是否有误 错误举例
  • 【浏览器】解决火狐和Chrome上不了网,只有IE能上网的问题

    问题描述 xff1a 一早上打开电脑登陆浏览器的时候发现Chrome提示我 您被禁止访问互联网 然后我下载了火狐发现也是无法访问 在网上找了一些方法 xff0c 发现根本不是什么局域网设置的问题 xff0c 也不是防火墙的问题 xff0c
  • 【OptionParser】处理命令行参数

    OptionParser的意义 用来接收用户在命令行敲入的参数 xff0c 并解析这些参数 下面用一段简单的代码举个例子 xff1a from optparse import OptionParser import sys op 61 Op
  • 【论文复现】ECO_Efficient Convolutional Network for Online Video Understandin

    论文链接 xff1a https arxiv org abs 1804 09066 代码链接 xff1a https github com mzolfaghari ECO pytorch 该篇论文是百度paddlepaddle线上训练营推荐