zoukankan      html  css  js  c++  java
  • 【ML】Two-Stream Convolutional Networks for Action Recognition in Videos

    Two-Stream Convolutional Networks for Action Recognition in Videos

    &

    Towards Good Practices for Very Deep Two-Stream ConvNets

    Note here: it's a learning note on the topic of video representations. This note incorporates two papers about popular two-stream architecture.

    Link: http://arxiv.org/pdf/1406.2199v2.pdf

           http://arxiv.org/pdf/1507.02159v1.pdf

    Motivation: CNN has significantly boosted the performance of object recognition in still images. However, the use of it for video recognition with stacked frames doesn’t outperform the one with individual frame (work by Karpathy), which indicates traditional way of adapting CNN to video clips doesn’t capture the motion well.

    Proposed Model:

    In order to learn the spatio-temporal features well, this paper proposed a two-stream architecture for video recognition. It passes the spatial information (single static RGB frame) and another temporal information (optical flow of multiple frames) through the ConvNet. Then fuse the parallel outputs of two streams to form the final class score fusion.

    The overall pipeline is shown below:

     

    -      ConvNet input configurations:

    There are some options for the input of temporal stream. The author discussed about utilizing optical flow stacking and trajectory stacking as motional information. The former one considers displacements of each point between consecutive frames, while the latter one focuses on the displacements of every point in the initial frame throughout the entire sequences.

    They also mentioned bi-directional optical flow to enhance the capacity of video representations; and mean flow subtraction to avoid the influences of camera motion.

    Visualization:

    The visualization of filters in this architecture is shown below.

    Each column corresponds to a filter, each row – to an input channel.

    As we can draw from the image, one single filter composed with half black and half white means to compute spatial derivative; and the filters in a column with black turning into white gradually means to compute temporal derivative.

    With the intuition above, we can see how the two-stream architecture captures the spatio-temporal features well.

     

    Improvements:

           There is another paper named Towards Good Practices for Very Deep Two-Stream ConvNets, which improves the efficiency of two-stream model in practice.

           They argue that previous two-stream model didn’t significantly outperform other hand-crafted features for the mainly two reasons: first, the network is not deep enough as VGGNet&GoogLeNet; second, the lack of plenty training data limits its performance.

           Thus, they proposed some suggestions to learn a more powerful two-stream model:

    -      Pre-training for Two-stream ConvNets: pre-train both spatial and temporal nets on ImageNet.

    -      Smaller Learning Rate.

    -      More Data Augmentation Techniques

    -      High Dropout Ratio: make the training of deep network with small amount of data easier.

    -      Multi-GPU training.

  • 相关阅读:
    MySQL(十五)之数据备份中mysqldump详解
    MySQL(十四)之数据备份与还原
    MySQL(十三)之MySQL事务
    Flink MysqlSink 简单样例
    Flink FileSink 自定义输出路径——StreamingFileSink、BucketingSink 和 StreamingFileSink简单比较
    Flink FileSink 自定义输出路径——BucketingSink
    【翻译】Flink Joining
    Flink 异步IO访问外部数据(mysql篇)
    【翻译】Flink 异步I / O访问外部数据
    Flink 自定义source和sink,获取kafka的key,输出指定key
  • 原文地址:https://www.cnblogs.com/kanelim/p/5381759.html
Copyright © 2011-2022 走看看