Re: [新闻] 证实“蔡英文被换脸”!国安局认恐成国安

楼主: murai111 (明镜止水)   2021-10-23 01:48:58
干,请吴伯毅买鸡排结果算错时间,要等一小时。干脆用这个时间跟大家讲解一下换脸软件的背后原理。
准备材料:
1. 一台电脑
2. 一部谜片
3. 一套新主角的图片(或影片),脸要清楚的
4. 一些卫生纸
文章小长,但很白话。不想看但有兴趣知道可以用听的:
ep53 想成为AV星探吗?十五分钟白话解锁换脸软件背后的DeepFake算法
https://reurl.cc/95DZxV
算法步骤一 脸部置换
怎么做呢,首先要先找到影片中和图片中主角的脸部位置,之后取出脸部特征。脸部特征是由好几个点组成的定位系统,例如定位眉头,眉心,眼角,鼻头等68个点。有了这些点,我们就可以知道新主角的眼角要对应到影片中旧主角的眼角位置在哪。
之后用刚刚的68个点把脸部分割成多个区块,两点连成一条线,三点连成一个面。例如眉毛中间的T字部位可以由左右眉头的两个点和鼻子上部的点定义出范围。接着我们就可以把新主角的T字部位移花接木到旧主角的T字部位上。脸部所有的区块都用一样的方式套用之后换脸就成功一半。
这些算法OpenCV都内建好了,复制贴上小改一下搞定。比架五倍券官网还简单。
然而以上的做法会让影片看起来假假的。毕竟是硬肛上去的。比较偏激一点的角度,就会看起来怪怪的,斜鼻歪嘴都有可能。
这时候就要靠AI来修图了。现在PS也有相同的技术,你把不要的地方涂掉,PS会字动生成合乎附近场景的图像来填补被涂掉的地方。
算法步骤二 自动生成模型
2014年 Ian Goodefellow这个神哥提出了Generative Adversarial Model,中文译作生成对抗模型。
简单来说,就是让两个AI模型互相对抗。A模型(生成器)的任务是无中生有出一张图片,B模型(分类器)的任务是辨识一张图片是不是‘有意义的图片’。例如A模型的任务是要做出一张几可乱真的猫猫图,那B模型的任务就是要辨识一张图是不是猫猫图。拿这张猫猫图给人类看,人类会觉得这是一张真的猫猫。
一开始的时候生成器等级很低,产出的图片都是狗屎,完全看不出个毛。所以分类器很简单就能辨识出哪些是生成器胡干出来的假图。生成器可以透过JS Divergence(比较真图和假图的差别)来优化参数,目标是让真图和假图的差异变小。
一开始先训练分类器。分类器拿了垃圾生成器制作出的假猫猫图跟收集到的真猫猫图作比较,生成器的参数调整目标是要让真图和假图的差异变大。也就是说生成器可以更轻易的辨识出不是猫猫的假图。
分类器训练好之后,再回头训练生成器,升级完生成器之后让他制作一些假的猫猫图去训练分类器,以次类推。让他们修干好几轮之后,生成器逐渐可以做出很像真的猫猫的图。这就是生成对抗模型。
放到DeepFake上怎么应用呢?
DeepFake的生成器的目标是做出一张看起来跟真的一样的人脸。而分类器的目标自然就是去辨别一张人脸图有没有破绽,有没有那些斜眼歪嘴的不专业移花接木痕迹。
但怎么训练呢?一般深度模型需要很大量的标示数据。但AV训练大师要去哪里生一堆新主角(一堆是好几十万以上)的图片?
事实上我们只需要很多“有破绽的移花接木图片”和 “这些图片在完美情况下该有的样子”。DeepFake的作者从唐伯虎点秋香中悟出了一个道理,那这还不简单,从新主角的图片中取出他自己的脸,然后对他随机使用“面目全非脚”之后,再贴回原本那张图或者其他新主角图片的脸上。这样就可以刷出一堆
1. 被面目全非脚打过的新主角脸(有P图破绽的假图)
2. 新主角原本的脸应该要有的样子(有破绽的假图看起来应该是怎样的真图)
使用刚刚对抗生成模型,生成器就学会了
中国古拳法中的还我漂漂拳
使用这个生成器去把已经替换好脸蛋的迷片主角打一顿。我们就可以得到几可乱真的新AV(男)女优。
通常新主角跟旧主角脸型五官越接近效果会越好。所以拿暗黑版的XXX作为制作XXX的谜片会有比较好的效果。另外脸部动作不要太大也会有比较好的效果。
不过,主角要慎选,才不会被党追杀。
最后今天是我的狗狗的三岁生日,放上真的狗狗照。
https://imgur.com/uMAXysK
https://imgur.com/Q24fVSm
https://imgur.com/OpXhazW
但是鸡排是给我吃的。

Links booklink

Contact Us: admin [ a t ] ucptt.com