• Exploiting Images for Video Recognition with Hierarchical Generative Adversarial Networks学习笔记


    Exploiting Images for Video Recognition with Hierarchical Generative Adversarial Networks学习笔记

    Abstract

    现有的深度学习方法在进行视频识别的时候需要大量的已标注视频,但是对于一个新任务来说标注视频费时费力。于是,通过已标注的图片来帮助进行视频的识别成为一种新的思路。可是由于域偏移以及域间不同的特征表示,分类器在图片上的表现在迁移到视频的识别后急剧下降。于是本文提出 Hierarchical Generative Adversarial Networks(HiGAN)模型来增强视频的识别,将源域的知识转移到目标域。

    HiGAN模型中包括一个高级别的条件GAN与一个低级别的条件GAN。通过充分进行两个GAN的对抗学习,作者的方法能够学习到源域与目标域拥有域不变性的特征表示

    1.Introduction

    视频识别由于其事件识别、动作检索、人物行为分析等方面的广泛应用而兴起,而且由于深度神经网络的兴起,视频识别的方法性能有了质的提高。但是深度视频分类器的训练需要大量的已标注视频,而视频的标注又是一项费时费力的工作。相比之下,图片的收集与标注对于视频而言更方便快捷,而且还有许多现成的已标注图片数据集可以使用。此外,图片的深度分类器的学习成本比视频的低得多,因此将知识从源域的图片数据集转移到目标的视频数据集是一个高效正确的可行方法

    直接将在源域图片数据集训练完的分类器应用到视频的识别会产生域偏移问题,而为了更好地表示视频,通常会提取具有不同特征维数和物理意义的图像来表示完全不同的时空特征。为了解决这个问题,大量现有工作通过一个对称变换最小化域差异的距离度量来学习浅层特征。

    本文作者基于HiGAN模型提出了一种新方法来学习源域图片数据到目标与视频数据的变换,从而完成知识的迁移。该方法的模型架构包括两部分:一个两级条件GAN一个域适应模型。其中域适应模型用来学习一个源域与目标域之间公共的特征空间表示图像帧特征(Image-Frame Feature);两级条件GAN模型包括一个低级条件GAN与一个高级条件GAN,低级条件GAN通过学习一个从视频帧特征目标域视频样本特征的变换函数来连接视频与视频的对应帧高级条件GAN则通过学习一个视频帧图像帧的变换函数来连接源域的图像与目标域的视频。之后任何在源域图片数据集训练后的分类器都可以被高效地迁移到目标域视频的识别任务中。⭐⭐⭐

    在HiGAN模型中,作者使用了Correlation Alignment (CORAL) 损失来最小化生成的特征和真实特征之间的二阶统计差异

    值得强调的是,通过利用视频与其相关帧之间的对应关系,可以在无监督场景中在没有任何成对的图像-视频训练样本的情况下 保持视频时间移动的同时 学习视频的特征,而无需从视频中提取关键帧。

    image-20201109195539564

    作者首先训练一个域适应模型来学习特征(H_f),之后使用特征(V)与特征(F)来学习低级条件GAN并获得特征(V_f)。之后,作者使用特征(V_f)(H_f)训练高级条件GAN并获得特征(H_v)

    Hierarchical Generative Adversarial Networks

    model

    在给定共享类别的源域已标注图片样本与未标注目标域的视频样本,该方法的目标是学习一个源域与目标域的共享特征空间的表示。由于一个视频是由一系列视频帧组成的,则一个短视频与它其中的任何帧都有关系,这提供了帧特征和视频特征之间的自然相关性。另外,视频帧又是由一系列图片组成的,所以视频帧可以轻易适应到源域。于是作者利用源域的图片样本目标域的视频样本及其对应帧之间的关系来探索图片到视频的适应。

    图像帧特征Image-Frame Feature

    使用(D_s={x^i_s,y^i_s}^{n_s}_{i=1})表示具有图片样本数量为(n_s)源域,使用(D_t={x^j_t})表示具有视频样本数量为(n_t)目标域。作者将每个视频分成长度相等的片段,生成一个未标注的视频片段域(D_v={x^k_v}^{n_v}_{k=1}),其中(n_v)表示未标注视频片段的数量。对于每一个视频片段,一个视频帧是随机选择的,而且所有的视频帧组成一个视频帧域(D_f={x^k_f}^{n_v}_{k=1})。由于(D_s)(D_f)都是图片的集合,作者使用JAN模型来学习源域图片样本与目标域视频帧样本之间的共同特征:图像帧特征Image-Frame Feature。在图像帧特征空间中,源域的图片与目标域的视频帧分别表示为(H_s=[h^1_s,h^2_s...,h^{n_s}_s]in mathbb{R}^{n_s imes d_h})(H_f=[h^1_f,h^2_f...,h^{n_s}_f]in mathbb{R}^{n_v imes d_h})。其中的(d_h)表示特征的维度。

    视频帧到视频的变换Frame-to-Video Mapping

    对于(D_v),作者提取C3D特征来表述目标域视频片段:(V=[v^1,v^2,...v^{n_v}]in mathbb{R}^{n_v imes d_v})(d_v)表示特征的维度。对于$ D_f(而言,作者使用ResNet来提取目标域**视频帧的特征**:)F=[f1,f2,...,f^{n_v}]in mathbb{R}^{n_v imes d_f}(,)d_f(表示特征的维度。视频帧的特征与视频片段的特征是两个不同的特征空间,即)d_v eq d_f(。考虑到视频帧与视频片段的关联性,作者收集了数量为)n_v(的**视频帧—视频片段的样本对**,表示为)P={p_k}{n_v}_{k=1}$,其中$p_k=(vk,f^k)$.

    作者学习从视频帧到相应视频片段的变换函数,即视频帧的特征(F)将变换到视频片段特征(V):(V_f=G_L(F, heta_{G_l})),其中的(G_L(·; heta_{G_L}))表示变换函数,而(V_f=[v^1_f,v^2_f,...,v^{n_v}_f]in mathbb{R}^{n_v imes d_v})表示由F生成的特征。

    视频到图像的变换 Video-to-Image Mapping

    对于每一个视频帧(x^k_f),它可以被两个不同的特征(v^k_fin V_f)(h^k_f in H_f)来表示,于是便拥有一个数量为(n_v)相异特征对(Q={q_k}^{n_v}_{k=1}),其中(q_k=(h^k_f,v^k_f))。给定一个Q,可以学习到一个(V_f)(H_f)的变换(H'_f=G_h(V_f; heta_{G_h})),这里(G_h(·; heta_{G_h}))表示变换函数,(H'_f)是由(V_f)生成的图像帧特征Image-Frame Feature

    之前的(H_s)(H_f)由JAN模型共享一个特征空间,(V_f)(V)也来自同一个视频特征空间,所以(G_h(·; heta_{G_h}))可以被认为是从视频到图片的变换函数,而(H_v=G_h(V; heta_{G_h}))(H_v=[h^1_v,h^2_v,...,h^k_v]in mathbb{R}^{n_v imes d_h}))可以被认为是视频帧特征V变换到图像帧空间的变换函数。通过计算每个视频帧特征的平均值,获得视频的最终特征,表示为(H_t=[h^1_t,h^2_t,...h^{n_t}_t]in mathbb{R}^{n_t imes d_h}),而且可以直接与源域的图片特征(H_s)进行比较。

    在模型中,使用低级条件GAN 学习变换(G_l)使用高级条件GAN学习变换(G_h).模型一方面通过减小对抗损失来完成生成特征的分布与原始域中的数据分布的匹配;另一方面通过减小CORAL损失来最小化合成特征和原始特征之间的二阶统计差异

    loss

    对抗损失adversarial loss

    对于变换函数(G_l)以及分类器(D_l),数据的分布表示为(Vsim P_{data}(V))(Fsim P_{data}(F)),则对抗损失为:

    [L_{GAN}(D_l,G_l,F,V)=E_{Vsim P_{data}(V)}[logD_l(V|F)]+E_{F sim P_{data}(F)}[log(1-D(G_l(F)|F))] ]

    其中(G_l)来生成类似于V中的视频特征(G_l(F)),而(D_l)则尝试区分特征(G_l(F))与V中的ground-truth特征。或者说(G_l)来最小化(L_{GAN})(D_l)来最大化(L_{GAN})

    [minlimits_{G_l}maxlimits_{D_l}L_{GAN}(D_l,G_l,F,V) ]

    而对于(G_h)(D_h)来说也是同理,即

    [minlimits_{G_h}maxlimits_{D_h}L_{GAN}(D_h,G_h,V_f,H_f) ]

    CORAL loss

    该方法使用CORAL损失来最小化生成的特征与真实样本特征之间的二阶统计差异

    对于(G_l)(D_l)来说,V为真实的特征,而(V_f)为生成的特征。使用(E_v)(E_{v_f})表示特征的协方差矩阵,则作为二阶统计量(协方差)之间距离的CORAL损失表示如下:

    [L_{CORAL}(V,V_f)=frac{1}{4d^2_v}||E_V-E_{V_f}||^2_F$$. $$E_V=frac{1}{n_v-1}(V^TV-frac{1}{n_v}(1^TV)^T(1^TV))]

    [E_{V_f}=frac{1}{n_v-1}(V^T_fV-frac{1}{n_v}(1^TV_f)^T(1^TV_f)) ]

    对于(G_h)(D_h)来说,CORAL损失为:

    [L_{CORAL}(H_f,H'_f)=frac{1}{4d^2_h}||E_{H_f}-E_{H'_F}||^2_F ]

    objective

    为了防止训练的参数出现过拟合,引入正则化项:

    [L_{reg}(D_l,G_l)=sumlimits^{L_D}limits_{l_D=1}||W^{l_D}_{D_l}||_F+sumlimits^{L_G}limits_{l_G=1}||W^{l_G}_{G_l}||_F ]

    [L_{reg}(D_h,G_h)=sumlimits^{L_D}limits_{l_D=1}||W^{l_D}_{D_h}||_F+sumlimits^{L_G}limits_{l_G=1}||W^{l_G}_{G_h}||_F ]

    (L_D)(L_G)表示分类器与特征生成器的网络层的个数。

    总的loss即为:

    [L(D_l,G_l)=lambda_1L_{GAN}(D_l,G_l,F,V)+lambda_2L_{CORAL}(V,V_f)+L_{reg}(D_l,G_l) ]

    [L(D_h,G_h)=lambda_3L_{GAN}(D_h,G_h,V_f,H_f)+lambda_4L_{CORAL}(H_f,H'_f)+L_{reg}(D_h,G_h) ]

    其中(lambda_1)(lambda_2)(lambda_3)(lambda_4)表示控制对抗损失与CORAL损失相对比重的权重参数。

    Algorithm

    image-20201110160404639
  • 相关阅读:
    Linux Virtual Server技术
    log4j+slf4j迁移到log4j2+slf4j (Servlet3.0)
    Android控件ToggleButton的使用方法
    Redis学习手冊(事务)
    游戏server之server优化思路
    Codeforces 474D Flowers (线性dp 找规律)
    【C语言】编写函数实现库函数atof
    unity3D游戏开发实战原创视频讲座系列7之消消乐游戏开发
    [WebGL入门]二十一,从平行光源发出的光
    TwoSum leetcode
  • 原文地址:https://www.cnblogs.com/Jason66661010/p/13954582.html
Copyright © 2020-2023  润新知