意料之外,一场疫情解锁了上班族的存封已久厨艺技能,“秒会陕西正宗凉皮”、“电饭煲实现蛋糕梦”……无数美食短视频帮助帅哥靓妹登上了厨房的舞台,舌尖上的中国再次风靡互联网。更惊喜的是,手机APP上的美食短视频就总能在合适的时间、推荐合适的菜谱,让小伙伴们不必为晚餐吃什么而发愁。我不仅暗自感叹,它为啥如此“懂”我?

说起短视频,网红用到它,炫技用到它……在手机的世界,它无处不在。至2020年3月,我国短视频用户规模为7.73亿,占网民整体的85.6%,每天有大量UGC短视频被生产、分发和消费。

之所以APP可以如此懂我,揭开其神秘面纱,得益于人工智能的视频分类技术。高效的视频分类技术让信息的分发更快地触及目标人群,让APP变得更有温度。

面对海量的视频数据,如何推荐用户感兴趣的视频?

互联网视频分类任务的目标是理解视频的语义,并给视频打上标签,标签包括不限于美食、旅游、影视/游戏等等。标签越精细、在视频分发和推荐时,准确率越高。

熟悉深度学习的同学们都知道,数据集对于算法的研究起着非常重要的作用。对于视频分类任务而言,网络上虽然有大量用户上传的视频数据,但它们大多缺少类别标签,无法直接用于模型训练。在学术界,Kinetics系列是最热门的视频分类数据集,但其数据量(以Kinetics-400为例,包含23万个视频)与当前国内主流APP的数据量(千万/亿/十亿量级)相比较,也是云泥之别,且视频内容与互联网短视频也存在较大差异。

此外,视频中包含成百上千帧图像,处理这些帧图像需要大量的计算。基于TSN、TSM、SlowFast视频分类模型,使用Kinetics-400数据,模型训练大概需要1周才能达到70%~80%的Top-1精度,面对上千万的数据量,显然学术界模型是无法实现产业应用的。

飞桨大规模视频分类模型VideoTag基于百度短视频业务千万级数据,在训练速度上进行了全面升级;支持3000个源于产业实践的实用标签;引入ActivityNet冠军模型Attention Cluster等,在测试集上达到90%的精度;具备良好的泛化能力,非常适用于国内大规模(千万/亿/十亿级别)短视频分类场景的应用。

当前飞桨VideoTag模型全面开源开放,欢迎感兴趣的企业和开发者试用,有如下两种方式:

如果您想使用PaddleHub快速实现模型预测(VideoTag预训练模型已经集成到PaddleHub中),GitHub地址:

https://github.com/PaddlePaddle/PaddleHub/tree/release/v1.7/hub_module/modules/video/classification/videotag_tsn_lstm

如果您想Fine-tune或了解更多的VideoTag模型实现细节,可以下载模型完整代码,GitHub地址:

https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/video/application/video_tag

飞桨大规模视频分类是如何实现的?

考虑到国内主流APP视频数据量巨大,为了提升模型训练速度,VideoTag采用两阶段建模方式,即图像建模和序列学习。第一阶段,使用少量视频样本(十万级别)训练大规模视频特征提取模型;第二阶段,使用千万级数据进行序列学习,最终实现在超大规模(千万/亿/十亿级别)短视频上产业应用,其原理示意如下图所示。

  • 数据处理:视频是按特定顺序排列的一组图像的集合,这些图像也称为帧。视频分类任务需要先对短视频进行解码,然后再将输出的图像帧序列灌入到VideoTag中进行训练和预测。

  • 图像建模:先从训练数据中,对每个类别均匀采样少量样本数据,构成十万量级的训练样本。然后使用TSN网络进行训练,提取所有视频帧的TSN模型分类层前一层的特征数据。在这个过程中,每一帧都被转化成相应的特征向量,一段视频被转化成一个特征序列。

  • 序列学习:采用Attclusters、LSTM和Nextvlad对特征序列进行建模,学习各个特征之间的组合方式,进一步提高模型准确率。由于序列学习相比于图像建模耗时更短,因此可以融合多个具有互补性的序列模型。

  • 预测结果:融合多个模型结果实现视频分类,进一步提高分类准确率。

在训练过程中,可以使用少量GPU和CPU Hadoop集群完成如上操作,实现较少耗时(1周左右),就可以完成VideoTag模型训练。

实验表明,在模型训练速度上:基于Kinetics- 400数据集完成TSN模型训练,8卡P40机器仅需要26小时,相比较升级前,需要8卡机器训练5天,效率提升75%

代码示例

飞桨Video-tag预训练模型已经集成到PaddleHub中,用户仅需一行命令或数行代码即可完成模型预测。

1. 安装飞桨(1.7.2以上版本即可)

$ pip install paddlepaddle==1.8.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

2. 安装paddlehub(1.6.0以上版本即可)

$ pip install paddlehub==1.7.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

3. 下载预训练模型videotag_tsn_lstm

$ hub install videotag_tsn_lstm==1.0.0

4. 有两种模型预测方式:

  • 命令行预测

$ hub run videotag_tsn_lstm --input_path 1.mp4 --use_gpu False

示例的1.mp4的内容截图如下所示:

让我们看看模型预测的结果:

模型取出了排名较前的几个分类结果,分别是“训练”、“蹲”、“杠铃”、“健身房”。其中分类的置信度均超过了0.8,网络预测出来的标签也和事实相一致。

  • API预测

PaddleHub提供了更加灵活的API预测方式,可以同时处理多个文件。

import paddlehub as hub
videotag = hub.Module(name="videotag_tsn_lstm")
# 一行代码完成模型预测,paths可接收多个自定义文件路径
results = videotag.classify(paths=["1.mp4","2.mp4"], use_gpu=False)
print(results)

示例的2.mp4的内容截图如下所示:

模型取出了分类结果“舞蹈”,分类的置信度均超过了0.85,网络预测出来的标签也和事实相一致。

事实上,该模型对场景的预测标签有多达3396种,包括了如超市、实验、机场等地点,或者是医生、教师等人物。可以说,这些标签足够达到我们日常小视频分类的要求,能够很好的处理我们需要的场景。

无论您是从业者、学生或者深度学习爱好者,在大规模短视频分类任务上,有飞桨VideoTag预训练模型加持,都会有助于产品用户体验的提升,增加用户粘性。飞桨期待您的使用,并将您的实践经验随时反馈给我们。

如在使用过程中有问题,可加入飞桨官方QQ群进行交流:703252161。

如果您想详细了解更多飞桨的相关内容,请参阅以下文档。

VideoTag预训练模型地址:

https://github.com/PaddlePaddle/PaddleHub/tree/release/v1.7/hub_module/modules/video/classification/videotag_tsn_lstm

VideoTag模型地址:

https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/video/application/video_tag

官网地址:

https://www.paddlepaddle.org.cn

飞桨开源框架项目地址:

GitHub:

https://github.com/PaddlePaddle/Paddle

Gitee:

https://gitee.com/paddlepaddle/Paddle

飞桨视频理解黑科技开源,支持3000个实用标签相关推荐

  1. 抖音康辉机器人_抖音讯飞智声AI黑科技是什么 与明星互动就是这么简单

    抖音最近新出了一个黑科技,可以模拟明星的声音来与你互动,不明真相的小伙伴突然被自家喜爱的明星叫出了名字,简直惊呆了有没有,下面小编就来为大家介绍下这款讯飞智声AI黑科技吧~ 抖音讯飞智声AI黑科技是什 ...

  2. android 收藏功能,5款不可思议的安卓黑科技APP,各个超级实用,希望大家低调收藏...

    原标题:5款不可思议的安卓黑科技APP,各个超级实用,希望大家低调收藏 手机软件是每个手机必不可少的,并且很多朋友手机中不知一个应用,今天就给大家分享5款强大的黑科技APP,功能超级出色,请大家低调收 ...

  3. 飞桨Tracking目标跟踪库开源!涵盖业界主流的VOT算法,精准检测动态目标轨迹...

    点击左上方蓝字关注我们 如何精准理解运动目标的行为呢?一起看看下面的视频,感受VOT技术的神奇吧! 从短视频中可以发现,视频中的目标是运动的,且不断变化.对于物体遮挡.形变.背景杂斑.尺度变换.快速运 ...

  4. 飞桨十大中文NLP开源工具详解

    PaddleNLP是基于飞桨(PaddlePaddle)开发的工业级中文NLP开源工具与预训练模型集,将自然语言处理领域的多种模型用一套共享骨架代码实现,可大大减少开发者在开发过程中的重复工作.Pad ...

  5. 强烈推荐| 飞桨十大中文NLP开源工具详解

    PaddleNLP是基于飞桨(PaddlePaddle)开发的工业级中文NLP开源工具与预训练模型集,将自然语言处理领域的多种模型用一套共享骨架代码实现,可大大减少开发者在开发过程中的重复工作.Pad ...

  6. 快来看看!飞机上的Wi-Fi黑科技

    全文共4712字,预计学习时长14分钟 图源:it.sohu 飞机"与世隔绝" 与"快速舒适"的体验,让它迅速成为人们出行的重要交通方式之一. 但美中不足是,现 ...

  7. retinanet 部署_目标检测RetinaNet_飞桨-源于产业实践的开源深度学习平台

    目标检测-RetinaNet 类别 计算机视觉(PaddleCV) 应用 图像搜索 安防监控 自动驾驶 智慧城市 机器人视觉 模型概述 经典的一阶段框架,由ResNet主干网络.FPN结构.和两个分别 ...

  8. 图像语义分割python_图像语义分割ICNET_飞桨-源于产业实践的开源深度学习平台...

    图像语义分割-ICNET 类别 智能视觉(PaddleCV) 应用 自动驾驶 室内导航 医学图像诊断 穿戴设备 虚拟现实与增强现实 无人机 模型概述 ICNet 主要用于图像实时语义分割,能够兼顾速度 ...

  9. 不占内存的浏览器_4款黑科技办公网站,高效实用,不占内存,高手的必备神器...

    阅读本文前,请您先点击上面的"蓝色字体",再点击"关注",这样您就可以继续免费收到文章了.每天都有分享,完全是免费订阅,请放心关注. 注:本文转载自网络,不代表 ...

最新文章

  1. c语言指针编程易错点,C语言中指针的一些易错点!
  2. linux 内核 vfs_readdir函数的filldir_t参数简介
  3. Python3.8 新特性:赋值表达式
  4. C++编译-链接错误集合
  5. C语言求在算术级数中找到缺少的数字(附完整源码)
  6. socket服务器显示未响应,“程序未响应”的思考总结
  7. 开发者基础知识游戏,共10关,欢迎挑战
  8. Qt与FFmpeg联合开发指南(二)——解码(2):封装和界面设计
  9. 移动app测试的多样性_快速搞定APP移动端自动化测试
  10. 雷军 1994 年写的代码,你见过吗?厉害了!
  11. 【前端小小白】—每日5道面试题打卡(十五)
  12. python关机_Python 神操作: 远程开机和关机
  13. Vue将汉字转为拼音,取出首字母
  14. xd文件用Creative Cloud下载与安装打开
  15. 09-TensorFlow 基于WDCNN的轴承故障诊断
  16. summernote 富文本编辑器上传七牛云服务器
  17. python将ppt文件转换为jpg图片
  18. python3从零学习-6.0、第三方库
  19. Android 设置APP启动图标
  20. Activiti的基本使用

热门文章

  1. 攻防世界 web篇(二)
  2. 笔记本电脑排名前十 电脑排行榜笔记本前十名2023
  3. 淡淡的思念,淡淡的情怀
  4. Unity 游戏黑暗之光笔记第四章 任务系统的实现
  5. 转:从明天起,做一个会听的人,移情、理解、再沟通
  6. 烤披萨、酿酒、监测食物,高大上的AI也干这些事?
  7. 北大青鸟重庆大学城校区:初中生学it容易吗?
  8. 血腥的交易所战场:谁在打破「三国时代」?
  9. APISpace 中秋节祝福语
  10. API接口《陇西行-唐诗三百首》数据源程序