《Deepfake Video Detection through Optical Flow based CNN》光流法检测假视频论文解析

本文主要是介绍《Deepfake Video Detection through Optical Flow based CNN》光流法检测假视频论文解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如题,本篇论文是通过光流法,以CNN网络,对deepfake的视频进行检测真伪,deepfake相关介绍点击这里
这篇文章使用如下结构

在这里插入图片描述
文章提出,要fake视频和origin视频的差异在于,一个是计算机合成,一个是摄像机拍摄而成,而光流可以利用这种差异,在光流场中进行体现

方法如下:

  1. 对于t时间的帧 f(t),提取forward flow光流OF(f(t),f(t+1))用的CNN模型是PWC-Net,这种技术基于pyramidal processing and warping和cost volume来预测光流
  2. 然后将算出的forward flow光流OF(f(t),f(t+1))作为输入,进入一个semi-trainable CNN,称为Flow-CNN,这个CNN内部是一些已经训练好的网络,使用VGG16和ResNet50,正如Figure1
  3. 由于deepfake数据集不足以从头训练网络,在网络的一部分采用transfer learning,其余部分进行fine-tuned,fine-tuned时,网络的第一层是固定,最后一层卷积层和dense ones是已经被训练好的
  4. 最后的全连接层在使用sigmoid激活后,会输出一个unit,放置于网络的末尾,对于每一帧,作为fake or real的的依据。
  5. 为了利用现有的pre-trained 网络对原始RGB图像进行训练,使用固定的颜色编码方法将光流转换为3通道的图像,像素的颜色是由flow vector和horizontal axis之间的夹角决定。颜色的饱和度由运动的强度决定
    就是这个

初步实验结果

可视化例子效果如下
在这里插入图片描述
可以发现,在视频中的人说话的时候,左边original的光流场出现变化,而右边fake的光流场依然很平滑
尝试使用网络去学习这些线索,这个网络的数据集处理为
300X300的包含脸部的图片,从中随机选取224X224的方形patches,并将其随机左右翻转
learing rate :Adam optimizer 10^-4
默认momentum values
batch size : 356
dataset: FaceForensics++ ,包含1000 original video ,使用三种fake方法,Deepfakes,Face2Face,FaceSwap。
训练,验证,测试集的比例为6:1:1
结果如下
在这里插入图片描述
只测试了Face2Face,发现使用不同的网络做Flow-CNN效果不同
Flow-CNN就是

结论

本文介绍并研究了利用光流场差异作为识别deepfakes视频和original视频的线索的思想。这是一个非常新奇的尝试,考虑了序列时间维度中可能的异常。在最初的实验中,为了解决使用pre-trained的网络的问题,运动矢量已经被复制作为3通道图像发送,然后被认为是神经网络的输入.在具有不同类型网络的Face Forensics数据集上获得的初步结果非常有希望。这种特征似乎能够指出两个分析案例之间存在的一些无序性。这一证据为许多可能的未来工作铺平了道路:首先,它可以评估通过对更多数据集和其他神经网络的测试,研究用于deepfakes的光流场的可靠性;其次,研究这种方法将是有趣的。它利用时间轴上的不一致可以与众所周知的最先进的基于框架的方法相结合,以提高它们的性能。

这篇关于《Deepfake Video Detection through Optical Flow based CNN》光流法检测假视频论文解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/369193

相关文章

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图

利用Python和C++解析gltf文件的示例详解

《利用Python和C++解析gltf文件的示例详解》gltf,全称是GLTransmissionFormat,是一种开放的3D文件格式,Python和C++是两个非常强大的工具,下面我们就来看看如何... 目录什么是gltf文件选择语言的原因安装必要的库解析gltf文件的步骤1. 读取gltf文件2. 提