基于深度学习技术的视频内容检测

简介: 短视频APP在UGC场景下出现了大量重复视频内容,该重复视频被重复曝光、重复消费,造成了用户体验较差,甚至于用户流失。本次分享重点介绍基于深度学习CNN技术构建视频重复内容检测服务,并给出该方案的工程实现。该服务上线后,重复检测准确率80%,视频内容分发提效20%。

1、背景介绍
克拉克拉(KilaKila)是国内专注年轻用户的娱乐互动内容社区软件。KilaKila 推出互动语音直播、短视频、对话小说等功能,满足当下年轻用户个性化、碎片化的文娱需求。其中短视频每天都有海量的视频素材产生,这对用户造成了严重的信息过载,难以从中自主挑选感兴趣的内容。每一位视频内容的消费者同时也是生产者,期望自己的作品能够被更多的志同道合者所看到,获得最大的曝光度。但短视频在UGC场景下出现了大量重复视频内容,该重复视频被重复曝光、重复观看,造成了用户体验较差甚至于用户流失。本文重点介绍基于深度学习CNN技术构建视频重复内容检测服务并给出该方案的工程架构。该服务上线后,重复检测准确率80%,视频内容分发提效20%。

2、图像特征描述符方法
视频内容理解的第一步便是对视频进行片段化视频帧处理,也就是随机采样。视频抽帧指用视频的关键帧表征整个视频的完整含义,针对不同类型视频编码格式、帧速率、比特率、视频分辨率以及不同种类的视频,视频的抽帧大概分为按视频固定时间间隔抽帧和基于实际图像内容抽帧,具体可细分为聚类抽帧,基于运动抽帧,基于镜头抽帧本文采取深度学习CNN模型框架对图像进行提取特征,其中并对比了目前主流模型的特征提取能力并针对特征数据进行针对训练,以便得到更好的模型参数。
传统的特征描述符方法可以清晰看到特征点的移动,有利于特征点的跟踪而对于边 (edge) 、区域 (patch) 等特征则无能为力。深度学习方法可以保留图像邻域的联系和空间的局部特点(CNN)更容易处理高维图像。对使用者而言无需知道提取的特征有哪些。大量实践表明,深度学习在提取图像特征方面有明显优势。

_1


图一:早期判断图片相似的网络结构

3、深度学习CNN的模型选择
1)深度学习算法之图片提取特征模型(2D-CNN)
FFmpeg按照视频时间的固定间隔抽取关键帧,抽帧间隔灵活选取。利用AlexNe版本的CNN模型处理原始图片为1000维的特征向量。输入的原始数据图像需要经过深度学习模型提取图片特征,以高维数据展示并存取图片对应名称以方便后续操作。

_2


图二:高维数据


2)深度学习算法之视频提取特征模型(3D-CNN)
FFmpeg根据视频相关参数选取合理数量的clip作为单次输入数据。利用C3D版本CNN模型获取视频特征的高维向量表达。对基于视频分析的问题,2D卷积无法有效获取时序上的信息。采用可提取三维图像特征的3D卷积模型,对clip同时还可以提取时空特征,用高维向量表示。Clip固定帧数的视频片段。

_3


图三:2D卷积


_4


图四:3D卷积


_5


图五:C3D模型网络结构

3)深度学习算法之视频提取特征模型
FFmpeg根据视频相关参数选取合理数量的clip作为metadata。利用R2Plus1D版本的CNN模型获取视频特征的高维向量表达。将3D卷积分解为空间卷积和时间卷积,采用ResNet网络的基础block。相比C3D模型在不增加参数量的前提下增强了模型的表达能力。

_6


图六:a)R3D模型卷积核;b)R2Plus1D模型卷积核;R3D模型和R2Plus1D模型网络结构

4、检索方法
1)哈希检索算法
此部分将CNN模型抽取出的1000维特征向量存入Redis数据库完成持久化存储,Redis数据库动态更新保存增量数据。为了保证相关特征向量的查询比对,其中的方案之一便是使用LSH算法,该算法是查询视频的高维特征向量再做高维数据空间向量的位置敏感哈希算法( Locality-Sensitive Hashing ),即将每个视频对应的图片计算得到的特征向量实现归一化后得到每张查询视频在数据库中最相似的视频所对应的特征向量。
2)聚类算法
聚类方法避免对全空间进行搜索,而是对全空间进行分割,将其分割成若干小的子空间,在搜索的时候,锁定查询向量应该落入的子空间,在该子空间中做遍历查询。通过增加索引子类空间的个数提高搜索的精准度。

_7


图七:特征向量聚类算法

3)矢量量化方法 (vector quantiation) 是将一个向量空间中的点用一个有限子集来进行编码表示的过程。典型的有PQ乘积量化 (Product Quantization) 和倒排乘积量化 (IVFPQ) 。PQ乘积量化:本质是一种聚类的方法。

5、视频重复内容检测服务的工程架构选择
1)视频重复性检测系统架构(2D-CNN+LSH算法)

_8


图八:2D-CNN+LSH算法流程图

2)视频重复性检测系统架构(3D-CNN+聚类算法)

_9


图九:3D-CNN+聚类算法流程图

目录
相关文章
|
4月前
|
人工智能 Java Nacos
开启报名|Nacos3.0 开源开发者沙龙 Agent&MCP 专场
Nacos3.0 开源开发者沙龙 Agent&MCP 专场,本次活动是 Nacos 社区成员今年首次线下分享最新的能力和实践,并邀请了 Spring AI Alibaba 和 Higress 一起分享一站式的开源解决方案。欢迎大家来现场交流。
173 16
|
安全 大数据 测试技术
Mongodb亿级数据量的性能测试比较完整收藏一下
原文地址:http://www.cnblogs.com/lovecindywang/archive/2011/03/02/1969324.html 进行了一下Mongodb亿级数据量的性能测试,分别测试如下几个项目: (所有插入都是单线程进行,所有读取都是多线程进行) 1) 普通插入性能 (插...
4381 0
|
流计算 Java SQL
Flink落HDFS数据按事件时间分区解决方案
0x1 摘要 Hive离线数仓中为了查询分析方便,几乎所有表都会划分分区,最为常见的是按天分区,Flink通过以下配置把数据写入HDFS, BucketingSink<Object> sink = new BucketingSink<>(path); //通过这样的方式来实现数据跨天分区 sink.
4548 0
|
11月前
|
缓存 Java 程序员
Java|SpringBoot 项目开发时,让 FreeMarker 文件编辑后自动更新
在开发过程中,FreeMarker 文件编辑后,每次都需要重启应用才能看到效果,效率非常低下。通过一些配置后,可以让它们免重启自动更新。
215 0
|
Python
Python 中 help() 和 dir() 函数的用法
【8月更文挑战第29天】
252 5
|
开发工具 git
git怎么设置http代理服务器
git怎么设置http代理服务器
395 12
|
机器学习/深度学习 监控 固态存储
探索深度学习在视频分析中的应用
【6月更文挑战第7天】本文探讨了深度学习在视频分析的应用,涉及目标检测、行为识别、场景理解和视频生成。深度学习借助CNN、3D卷积、RNN/LSTM捕捉时空信息。目标检测有R-CNN和YOLO等方法,行为识别包括时空特征和骨骼数据方法。场景理解涵盖语义分割、目标跟踪和场景分类,视频生成则利用GAN和RNN生成连续帧。尽管面临数据标注、计算资源和泛化能力挑战,深度学习在视频分析领域前景广阔。
|
存储 关系型数据库 MySQL
实时计算 Flink版产品使用问题之如何在一个任务中使用多个source
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
关系型数据库 MySQL 数据安全/隐私保护
mysql无法启动服务connect to server at ‘localhost‘ failed
mysql无法启动服务connect to server at ‘localhost‘ failed
|
缓存 监控 网络协议
如何利用CDN优化
【4月更文挑战第21天】CDN(内容分发网络)通过在全球部署节点缓存内容,加快用户访问速度和效率。选择适合的CDN服务商,如阿里云、腾讯云,然后配置域名、DNS,并在服务商处上传文件创建节点。优化CDN使用包括设置缓存时间、启用HTTPS、压缩资源及监控性能。注意内容同步与安全问题,确保高效且安全的网站运行。
515 2

热门文章

最新文章