zoukankan      html  css  js  c++  java
  • 视频分类算法

    一、传统视频分类方法

    深度学习兴起前,大多数视频分类都是基于手工设计的特征和典型的机器学习方法。

    比如:基于局部时空域的运动信息和表现信息,利用词袋模型等方式审核才能视频编码,然后利用视频编码来训练分类器(SVM)。这种基于人工设计特征的方法,如HOG、HOF、MBH 等特征,在经过词袋模型或Fisher向量生成视频编码。

    目前,基于轨迹的方法,DT 和 IDT 方法,是人工设计的特征中最好的方法之一。

    随着深度学习发展,基于人工设计特征的方法渐渐淡出人们的视野。

    二、基于深度学习的视频分类方法

    近年来,CNN在图像识别,分割、检测和检索方面都取得了最高水平的效果。视频中包含成百上千的图像,但并不是每一张都必须用到,这将会耗费大量的时间和计算资源,一般做法是用CNN识别每个图像帧,最终的结果通过所有的分类结果来确定。

    1、基于监督学习的方法:

    1)通过在Image-Net 中预训练的model,将所有帧的特征合起来作为视频特征,最后通过标准分类器进行分类。

    2)端到端CNN:利用CNN学习视频中隐含的时空信息,如3D CNN ,Two-stream CNN, TSN 等。

    3)Two-stream 方法只能获得短时间的行为特征,因此引入RNN来建模长期过程,常用的由LSTM、GRU-RNN等。

    4)视频中包含大量的图像帧,处理所有图像成本很大,因此,引入注意力机制来识别与最终语义最相关的特征就好。

    2、非监督学习习方法:

    采用非监督的方法,去将时间空间的上下文信息进行整合,也是一种常用的方法。

    三、数据

    数据量对图像分类的问题具有至关重要的影响,例如在ImageNet上的图像分类的问题,近年来,为了推动视频分类的发展,也出现了不少的视频类别标注的数据集。有代表性的如:YouTube-8M ,ActicityNet (2015),UCF-101等。

    目前视频分类的趋势,正在朝向通用的多标签视频分类方向发展。

    UCF101上,TLE方法准确率已经达到95.6% 

    四、总结:

    数据标注成本十分昂贵,而基于深度学习的方法往往需要大量的数,所以,如何利用未标注的数据去建立更好的模型,也是一个值得思考的问题。

    参考文章:《基于视觉的视频分类入门》

  • 相关阅读:
    Golang Struct 声明和使用
    docker 中ulimit设置理解
    微服务架构引入的问题及解决方案
    Jenkins 集成Sonar代码质量扫描
    Jenkins和gitlab集成自动构建
    初识微服务架构
    jenkins 集成钉钉机器人通知
    Go 新起点
    shell中的(),{}几种语法用法
    二进制日志配置和运维管理
  • 原文地址:https://www.cnblogs.com/Allen-rg/p/10180458.html
Copyright © 2011-2022 走看看