ActionVLAD算法详解

news2024/10/6 10:42:10

文章地址:https://rohitgirdhar.github.io/ActionVLAD/
代码地址:https://github.com/rohitgirdhar/ActionVLAD/

该文章由CMU、Adobe、法国国立计算机及自动化研究院联合提出,被CVPR2017收录。

该文章的创新点在于将vlad使用到动作分类任务上,而该文章中使用的VLAD是由文章《NetVLAD: CNN architecture for weakly supervised place recognition》提出(该文章发表在CVPR2016上)的可训练VLAD层基础上的扩展。所以下面先来介绍一下VLAD。

一、传统的VLAD

假设现在有特征维度为 N ∗ D N*D ND,其中N表示特征的个数,D表示一个特征的维度。
VLAD的计算流程如下:

  1. 对全部的特征 N ∗ D N*D ND进行K-means聚类,获得K个聚类中心,记为 C k C_k Ck
  2. 通过以下公式,将 N ∗ D N*D ND的特征转为shape为 K ∗ D K*D KD的特征,公式如下:
    V ( j , k ) = ∑ i = 1 N a k ( x i ) ( x i ( j ) − c k ( j ) ) , k ∈ K , j ∈ D V(j, k)=\sum^N_{i=1}a_k(x_i)(x_i(j)-c_k(j)), k\in K, j\in D V(j,k)=i=1Nak(xi)(xi(j)ck(j)),kK,jD
    公式中 x i x_i xi表示第i个局部特征, c k c_k ck表示第k个聚类中心, x i x_i xi c k c_k ck都是D为向量。 a k ( x i ) a_k(x_i) ak(xi)表示符号函数,如果 x i x_i xi不属于聚类中心 c k c_k ck a k ( x i ) = 0 a_k(x_i)=0 ak(xi)=0;如果 x i x_i xi属于聚类中心 c k c_k ck a k ( x i ) = 1 a_k(x_i)=1 ak(xi)=1

从上式中,可以看出最终的 V ( j , k ) V(j, k) V(j,k)特征是所有原始特征与聚类中心的差值,可以理解为是去除了特征本身的特征分布差异,只保留了局部特征与聚类中心的分布差异。

二、NetVLAD层

由上面所说,VLAD里面存在符号函数所以为了能将VLAD融入网络的训练中,需要将公式中的符号函数 a k a_k ak从hard assignment改为soft assignment,公式如下:
a k ‾ ( x i ) = e − α ∣ ∣ x i − c k ∣ ∣ 2 ∑ k ′ e − α ∣ ∣ x i − c k ′ ∣ ∣ 2 \overline{a_k}(x_i)=\frac{e^{-\alpha||x_i -c_k||^2}}{\sum_{k'}e^{-\alpha||x_i -c_{k'}||^2}} ak(xi)=keαxick2eαxick2

将上面公式展开,可以将分子分母的 e − α ∣ ∣ x i ∣ ∣ 2 e^{-\alpha||x_i||^2} eαxi2抵消,得到下面公式:
a k ‾ ( x i ) = e w k T x i + b k ∑ k ′ e w k ′ T x i + b k ′ \overline{a_k}(x_i)=\frac{e^{w_k^Tx_i+b_k}}{\sum_{k'}e^{w_{k'}^Tx_i+b_{k'}}} ak(xi)=kewkTxi+bkewkTxi+bk
其中, w k = 2 α c k w_k=2\alpha c_k wk=2αck, b k = − α ∣ ∣ c k ∣ ∣ 2 b_k=-\alpha ||c_k||^2 bk=αck2

所以NetVLAD用公式表示如下:
V ( j , k ) = ∑ i = 1 N e w k T x i + b k ∑ k ′ e w k ′ T x i + b k ′ ( x i ( j ) − c k ( j ) ) V(j, k)=\sum^N_{i=1}\frac{e^{w_k^Tx_i+b_k}}{\sum_{k'}e^{w_{k'}^Tx_i+b_{k'}}}(x_i(j)-c_k(j)) V(j,k)=i=1NkewkTxi+bkewkTxi+bk(xi(j)ck(j))

说明:NetVLAD中的符号同传统的VLAD

三、ActionVLAD

ActionVLAD用公式可以表示如下:
V [ j , k ] = ∑ t = 1 T ∑ i = 1 N e − α ∣ ∣ x i t − c k ∣ ∣ 2 ∑ k ′ e − α ∣ ∣ x i t − c k ′ ∣ ∣ 2 ( x i t [ j ] − c k [ j ] ) V[j, k]=\sum^T_{t=1}\sum^N_{i=1}\frac{e^{-\alpha||x_{it} -c_k||^2}}{\sum_{k'}e^{-\alpha||x_{it} -c_{k'}||^2}}(x_{it}[j]-c_k[j]) V[j,k]=t=1Ti=1Nkeαxitck2eαxitck2(xit[j]ck[j])

上式中T表示总帧数, t ∈ 1 , . . . , T t\in{1, ..., T} t1,...,T。N表示每帧图片提取出的特征数量空间维度(例如,一张图片经过网络后空间大小为 25 × 25 25\times 25 25×25,那么N=625), i ∈ 1 , . . . , N i\in{1, ..., N} i1,...,N

从ActionVLAD的公式可以很明显的看出是NetVLAD在时序上的扩展。

四、ActionVLAD网络

ActionVLAD网络如下图所示:
在这里插入图片描述

从上图可以看出:

  1. action vlad网络采用1了rgb和光流两种流
  2. actionvlad层可以很自然的作为一层融入到网络中去

到这里ActionVLAD网络原理基本介绍完毕,对于ActionVLAD层应该放在哪个位置,具体效果如何,可以看文章的一些消融实验。

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

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

相关文章

化工原理 --- 热量传递(补充)

一.管外作强制对流的对流传热系数 1.管外作强制流动一般分为两种形式 ---- 分别是直列流动和错列流动 上图是两种流动方式下的传热系数计算公式 二.管外作强制对流 --- 换热器管间流动 在管内的强制对流传热分为两种形式,分别是圆缺形挡板和圆盘形挡板 1.圆缺形挡板…

计算机毕业设计之java+ssm社会保险养老系统

项目介绍 自“金保工程”在全国实施以来,促进了劳动和社会保障工作处理方法全面完善,可以把社会保险注册、登记、申请、审核、收取、给付、核查、资金账户、社保管理以及劳动力市场相结合,实现劳动就业、择业、创业和社会保险管理品台的共享…

[附源码]Python计算机毕业设计白果园网上水果超市

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

免费查题系统

免费查题系统 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台(点击跳转&a…

二分法:一看就会,一写就废

目录二分法原理使用条件使用情况二分查找位置二分查找答案两者区别二分查找经典题目二分答案经典模板经典例题二分法原理 我们假设一下,你的女朋友买了件衣服,告诉你衣服的价格在200~2000之间,让你猜这件衣服的价格,怎么猜才能猜的…

JS使用Vue自定义组件实现动态多层数据渲染+递归+踩坑

Hi I’m Shendi 在没有使用打包软件(WebPack,VueCli)的原生环境下使用vue自定义组件 文章目录组件名称规则全局组件和局部组件简单的递归Demo组件名称规则 首先说一下组件名称规则,注册的组件名称用了大写的话在使用时则将大写改为 -大写的小…

网络系统管理 - SDCserver虚拟机配置

SDCserver- 配置 1.SDCserver 系统基础环境配置 (1)请根据附件说明或提供的基础信息,配置服务器的主机名,IP 地址,创建要求的用户名及密码; 配置Windows 防火墙,仅

HackMyVm,Chapter 1: Venu 复现 01 - 24

本文为复现篇: Refer to bugninja’s Write Up. Host: venus.hackmyvm.eu Port: 5000 User: hacker Pass: havefun!Flags 01 readme.txt # EN Hello hax0r, Welcome to the HMVLab Chapter 1: Venus! This is a CTF for beginners where you can practice your …

第七章:单链表与双链表(数组模拟)

第七章:单链表与双链表(数组模拟)数组模拟与结构体模拟的区别一、数组模拟单链表:1、链表的逻辑结构:2、数组模拟链表的物理结构:3、接口函数实现:(1)实现前的准备&#…

[附源码]java毕业设计同城搬家平台

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【云原生】设备云之云服务器的配置与使用

文章目录一、配置云服务1、创建连接设备2、配置云服务参数3、调试云服务二、云服务的使用1、发布主题2、实时数据3、发布状态或信息4、发布的信息列表5、发布的主题列表6、订阅主题7、Topiclist8、Pause9、MDataPubCycle一、配置云服务 1、创建连接设备 在 FlexManager 的“远…

正则表达式(在API文档中搜索类Pattern,可以看到正则表达式的规则)

正则表达式(在API文档中搜索类Pattern,可以看到正则表达式的规则) String.matches(”正则表达式”) 该方法会判断String是否满足括号内的正则表达式,如果满足,则返回true 正则表达式的作用: 校验字符串是…

PHP韩语学习网站用wamp、phpstudy运行定制开发mysql数据库BS模式

一、源码特点 PHP韩语学习网站是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库系统主要采用B/S模式开发,开发环境为PHP APACHE,数据库为mysql5.0,使用php语言开发 php网页源码韩语学习网站…

[Spring Cloud] Open Feign---扩展

✨✨个人主页:沫洺的主页 📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏 📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专…

[附源码]java毕业设计汽车租赁管理系统-

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Prometheus系列(二)Grafana可视化部署

概念 Grafana 是一个监控仪表系统,它是由 Grafana Labs 公司开源的的一个系统监测工具,它可以大大帮助我们简化监控的复杂度,我们只需要提供需要监控的数据,它就可以帮助生成各种可视化仪表,同时它还有报警功能&#…

【数据结构】线性表 _顺序表 链表的增删查改 _[细节分析+代码实现]

快速导航 1.线性表 2.顺序表 2.1 概念及结构 2.2 静态结构和动态结构的比较 2.3 接口实现(重点) 2.3.1 SeqList(初始化) &SeqListPrint(依次打印表中数据) 2.3.2 SeqListPushBack(尾插) 2.3.3 SeqListPushFront(头插) 2.3.4 SeqListPopBack(尾删) & SeqListPopFront(头…

C语言小游戏之扫雷(万字详解)

hello,大家好,今天我们继续为大家带来一个小游戏,扫雷。相信这个游戏又是很多人的童年,那么我们今天就来实现一下这个扫雷游戏。 目录 一、游戏简介 二、游戏的基本设计 1.游戏基本思路 2.游戏基本框架 3.如何设计布置雷与排查…

蓝牙耳机什么牌子好?口碑最好的蓝牙耳机品牌排行

在现代除了手机或智能手机,人们生活中离不开的另一件事就是“耳机”,尤其是对于心中有音乐的人。那么市面上的蓝牙耳机五花八门,尤其是陆续上新的新品,哪个牌子更好呢?以下是笔者整理的几款口碑好的蓝牙耳机&#xff0…

欧拉角与旋转矩阵

目录1. 欧拉角1.1欧拉角的表示1.2内旋和外旋1.3 欧拉角的缺点2 欧拉角到旋转矩阵的表示3 值得注意的点4. 非常感谢您的阅读!1. 欧拉角 1.1欧拉角的表示 我们想描述刚体在现实世界的旋转时&…