作家
登录

如何用Python检测伪造的视频

作者: 来源: 2017-06-29 14:15:23 阅读 我要评论

译者注:本文以一段自打24小时耳光的视频为例子,介绍了若何应用均值哈希算法来检查反复视频帧。以下是译文。

有人在网上上传了一段视频,他打了本身24个小时的耳光。他真的┞封么做了吗?看都不消看,肯定没有!

我要测验测验应用的哈希算法称为均值哈希(aHash)。在网上能找到很多的信息,它的处理过程一般是如许的:降低图像分辨率,转换为灰度图,然后取哈希值。经由过程降低分辨率,我们可以清除噪声的影响。然而,我们冒着相邻帧可能会被标记为反复帧的风险,因为它们是类似的。经由过程调剂分辨率可以稍稍解决这个问题。

前几天,我浏览YouTube的时刻,看到了一段异常风行的视频。在视频里,一小我声称本身要持续打脸24小时。视频的长度就是整整的24小时。我跳着看完了这个视频,确切,他就是在打本身的脸。很多评论都嗣魅这个视频是捏造的,我也是这么想的,但我想肯定则个结论。

筹划

写一个法度榜样来检测视频中是否有轮回。我之前大年夜来没有效Python处理过视频,所以这对我来说有点难度。

初次测验测验

看一个视频就像是在快速地翻看图片,这也是应用python攫取视频数据的方法。我们看到的每个“图片”都是视频的一个帧。在视频播放时,它是以每秒30帧的速度进行播放。

在视频数据中,每一帧都是一个巨大年夜的数组。该数组经由过程指定命量的红、绿、蓝进行混淆来告诉我们每个地位膳绫强个像素的色彩。我们想看看视频中是否有多个帧出现了多次,有一个办法,就是计算我们看到的每一帧的次数。

我用两个字典类型的变量来进行计数。一个跟踪我已经看到的帧,另一个跟踪所有完全雷同的帧。当我逐个浏览每一帧时,起首检查以前是否看过这一帧。如不雅没有,则把这一帧添加到我已看过的帧字典中(见下面的seen_frames)。如不雅以前看过这一帧,则将它添加到另一个字典(dup_frames)的列表中,这个字典包含了其他一模一样的帧。

代码如下:

  1. def find_duplicates():   
  2.  
  3.     # 载入视频文件   
  4.  
  5.     filename = 'video.mp4'   
  6.  
  7.     vid = imageio.get_reader(filename,  'ffmpeg')   
  8.  
  9.     all_frames = vid.get_length()   
  10.  
  11.    
  12.  
  13.     # 反复的帧保存在这里   
  14.  
  15.     seen_frames = {}   
  16.  
  17.     dup_frames = {}   
  18.  
  19.    
  20.  
  21.     for x in range(all_frames):   
  22.  
  23.         # 获取单个帧   
  24.  
  25.         frame = vid.get_data(x)   
  26.  
  27.    
  28.  
  29.         # 取帧的哈希值   
  30.  
  31.         hashed = hash(frame.tostring())   
  32.  
  33.    
  34.  
  35.         if seen_frames.get( hashed, None):   
  36.  
  37.             # 如不雅之前看到过这一帧,则添加到dup_frames中具有雷同的哈希值的帧列表中   
  38.  
  39.             dup_frames[hashed].append(x)   

  40.   推荐阅读

      从零开始使用TensorFlow建立简单的逻辑回归模型

    TensorFlow 是一个基于 python 的机械进修框架。在 Coursera 上进修了逻辑回归的课程内容后,想把在 MATLAB 中实现了的内容用 TensorFlow 从新实现一遍,当做进修 Python 和框架的敲门砖。>>>详细阅读


    本文标题:如何用Python检测伪造的视频

    地址:http://www.17bianji.com/lsqh/35965.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)