admin 管理员组

文章数量: 887032

换脸

文章目录

      • 人脸组成与特征
      • 1. 人脸识别问题(图像预处理)
      • 2. 人脸转换效果问题
      • 3. 图片融合问题
      • 4.人脸比对
      • 5、应用(亲身体验)

人脸组成与特征

左眼、右眼、左眉毛、右眉毛、鼻子、嘴巴、耳朵、轮廓;肤色;大小(比例)、形状、颜色;头发;a.头部姿势 b.年龄、c.光照条件 d.面部表情(情绪)e.遮挡

人体生成

1. 人脸识别问题(图像预处理)

Python批量下载爬取图片
视频按帧分割成图片(帧率60fps(Hz))
68个特征点


由于第一个环节是对人脸做预处理,算法必须首先能识别出人脸,然后才能处理它,而dlib中的人脸检测算法,必须是“全脸”,如果脸的角度比较偏就无法识别,也就无法“换脸”。所以项目二就用了MTCNN作为识别引擎。

2. 人脸转换效果问题

原版的算法人脸转换的效果,笔者认为还不够好,比如由A->B的转换,B的质量和原图A是有一定关联的,这很容易理解,因为算法本身的原因,由XW->X,中不管X如何扭曲总会有一个限度。所以导致由美女A生成美女B的效果要远远优于由丑男A生成美女B。这个问题的解决笔者认为最容易想到的还是Gan,类似Cycle-Gan这样框架可以进行无监督的语义转换。另外原版的算法仅截取了人脸的中间部分,下巴还有额头都没有在训练图片之内,因此还有较大的提高空间。

3. 图片融合问题

由于生成出来的是一个正方形,如何与原图融合就是一个问题了,原始项目有很多种融合方法,包括直接覆盖遮罩覆盖,还有就是泊松克隆“Seamless cloning”,从效果上而言,遮罩覆盖的效果与泊松克隆最好,二者各有千秋,遮罩覆盖边缘比较生硬,泊松克隆很柔和,其的单图效果要优于遮罩覆盖,但是由于泊松克隆会使图片发生些许位移,因此在视频合成中会产生一定的抖动。图片融合问题的改进的思路,笔者认为还是要从生成图片本身着手,项目二引入了遮罩,是一个非常不错的思路,也是一个比较容易想到的思路,就是最终生成的是一个RAGB的带通明度的图片。笔者还尝试过很多方法,其中效果比较好的是,在引入Gan的同时加入非常小的自我还原的L1Loss,让图片“和而不同”。经测试,这种方法能够使图片的边缘和原图基本融合,但是这种方法也有弊端,那就是像脸型不一样这样的比较大的改动,网络就不愿意去尝试了,网络更趋向于小修小补,仅改变五官的特征。

4.人脸比对

5、应用(亲身体验)

门禁:人脸解锁(小区入口)
支付:刷脸支付(餐厅)
考勤:打卡(公司)

本文标签: 换脸