视频换脸原理(初步认识)——从数据获取到视频换脸整个流程

(一)获取人脸数据

需要准备图片数据:两个不同的人脸,各种表情,数量越多越好,约1万张以上会有比较好的替换效果。

一般采用的方法是从视频中截取,操作如下:

首先下载视频(本例用风行播放器下载)。

剪切视频片段(本例用爱剪辑)。

因为目的是为了截取人脸部,所以剪切的视频片段很讲究。

视频分辨率要高清(否则截取的人脸像素太低);片段中目的人脸比较大、突出、最好就是只有他自己一个人镜头特写的视频片段。


从视频中截取图片(本例用Ffmpeg软件)。

此时得到有目的人脸的一张张图片。

然后,需要删除不需要的图片(如有非目的人脸的,这就是数据清洗)。

然后写几行代码检测图片中的人脸并截取(利用OpenCV)。


检测并截取的人脸(用于输入到神经网络中训练提取特征)。

人脸替换的效果非常依赖于这些截取到的人脸图片的质量:

如果截取的人脸包含了过多的干扰部分,那么替换效果就很差。

一直重复前面的步骤,直到获取足够多的人脸(两个需要互换的人脸)。


然后再写几行代码修改人脸图片的宽高为统一大小,如256x256;

因为输入到神经网络中训练的图片宽高需要一致。


(二)进行模型训练

接下来,开始进行漫长的训练:

一般需要,一万张图片,训练100万次,才有比较好的替换效果;

我计算了一下时间,普通i7-PC,训练一次约44s,100万次需要运行约1.2万小时,约500天;玩不起(本例训练了1000次)。

深度学习漫长的训练过程;

本例代码是利用深度学习框架keras(backend is TensorFlow)构建CNN;

训练完成之后,得到换脸模型;


(三)进行视频人脸替换

•接下来进行视频人脸替换;

•通俗点说就是通过提取面部的特定结构,如眼睛、鼻子、嘴巴的位置,颧骨、下巴、脸颊的形状;

•然后按照这些特征点做替换;

•前面训练的模型,已经有了两个不同的人脸的特征;

•就目前了解的信息来说,通过深度学习替换人脸这一技术相对于工业使用的人脸表情提取技术,优势是大大降低了使用门槛,但是远远还做不到以假乱真的完美效果;


接下来,仍然使用爱剪辑工具,从一段视频,如电影中截取用于替换人脸的一个视频片段;

截取的视频片段也是需要精心挑选的:需要有利于检测到被替换的人脸。

例如,截取的视频中同时出现在镜头中人脸太多、人脸太小等都不利于检测。


再利用ffmpeg工具,把需要被替换人脸的视频按原帧速截取成每一张图片;

注意:一定要按原帧速截取,否则后面替换人脸后再合成视频会失帧。


接下来,利用神经网络进行人脸替换。

输入数据:上一步截取的每一帧图片;

输出数据:人脸被替换后的每一帧图片;


简单点说,替换原理如下:

1.从原图片中,检测到人脸(用OpenCV),截取人脸部分;

2.把截取的人脸部分(人脸图片)输入到神经网络进行替换,得到一个新的人脸(图片);

3.再把新人脸(图片)替换原图片中的人脸;

4.然后,进行图片“消边”、模糊等图片处理;因为原图人脸和新人脸,虽然尺寸一致,

但毕竟不是同一张图片,新图片(人脸)替换到原图片之后,会有明显的“边”,无法

完全融入到原图中,所以需要处理;这是数字图像处理技术了;

5.如此重复,知道每一张图片的人都替换完成;

从上面的人脸替换原理可以知道,换脸效果受到以下几个因素的影响:

•1、从原图片截取的人脸(图片)不能有过多的干扰像素。最理想的是截取的仅仅只有面部。

•2、训练的模型效果要非常好。这受到训练数据(图片)的质量、数量、尺寸大小(越大越好,但是会变慢)和训练次数(时间)的影响。

•3、要有很好的数字图像处理技术。替换人脸后,新脸(图片)不能很好与原图背景(人物)融合的处理,包括“消边”、模糊、融合等处理。

•4、要有很好的人脸检测技术。因为OpenCV的人脸检测功能准确率并不是100%的,所以存在有某些帧(图片)没有检测到人脸,那么就不会替换人脸。

(四)合成替换了人脸的视频

•最后一步:把替换了人脸的每一张图片(每一帧)按原来视频的帧速合成视频(用ffmpeg工具)。

•这就是整个视频人脸替换的操作和原理。



(五)分析-总结.

•从整个替换人脸过程、原理可以知道,最终的效果极大的受到人脸检测技术、图像处理技术的影响。

•在理想情况下,单从AI替换人脸这个功能来说,有足够多的、高质量的人脸数据,足够多次的训练,基于深度学习的方法替换人脸确实取得了很不错的效果,如下图:



上图:特朗普基于原表情换成凯奇;下图:反之;

•在整个视频替换人脸应用来说,除了通过AI替换人脸之外,还要受到训练数据收集、人脸检测、后期图像处理的极大影响,所以仍无法做到通用、实用。

•但是,也可以知道,如果基于某个非常必要的目的,因为单纯的AI基于原表情换脸的效果还不错,可以花时间、精力并掌握了图像处理技术的话,理论上也是可以特定为某一段视频换脸的。

(六)写在最后

•突然发现,通用的视频换脸项目没有做成,却做了一个“视频打码器”。。。。。。

•在即将写完本文章的时候,因为本人的不放弃精神,发现了“新大陆”,更新的替换技术,很有可能会有更好的替换效果。接下来马上进行研究,如果更好的效果,再写一篇新文章,先定个题目:视频换脸原理(进阶)。

•最后,虽然吐槽不是很好的事情,但是偶尔轻微的吐槽一下就当是记录心情了:

•随着研究这东西越久,越感觉像蚍蜉撼树,大量高质量的数据、强大的算力、枯燥的算法。。。。。。都不好弄啊。

•三年来,电脑不堪压力第一次蓝屏了,太惨了。


•完毕。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,941评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,397评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,345评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,851评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,868评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,688评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,414评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,319评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,775评论 1 315
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,945评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,096评论 1 350
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,789评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,437评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,993评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,107评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,308评论 3 372
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,037评论 2 355

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,105评论 4 62
  • 我们都有病?我们怎么可能都有病? 我们为什么都有病? 我们凭什么都有病?我们有什么病? 我们哪里有病?我们是谁? ...
    职优易阅读 475评论 0 2
  • 自己今天动手做了减肥餐,其实偶尔吃吃这样的餐也挺不错的!!!
    故去青薄衫阅读 124评论 0 0
  • 一、三种“公地的悲剧”模型 亚当.斯密认为: 每个人追求自己的利益时,有一只看不见的手,在无形中推动公共利益。他追...
    爷有蔓草阅读 501评论 0 1
  • 其实我们应该晚一周再去的,那时候花就开的差不多了。 但就是因为这早去的一周,看到了未曾见过的美,嫩嫩的,都在迫不及...
    Marcu阅读 349评论 0 2