百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

你的美颜,由无数程序猿亲手敲出的代码默默守护

myzbx 2025-02-08 12:03 52 浏览

出品:科普中国

制作:JOJO (神户大学系统信息学院)

监制:中国科学院计算机网络信息中心

前段时间某直播平台出现了大型"翻车"现场,一名为"乔碧萝殿下"的女主播在与另一名网红女主播互动的时候,由于连麦bug导致之前一直用来遮挡脸部的gif动画形象的图片消失不见,露出了大妈本尊面容。强烈的反差完全颠覆了网友的认知,大家看完对比照片纷纷吐槽:如今的美颜软件功能实在太强大了,直接能把58岁大妈p成18岁萝莉!

现在的美颜技术已不仅局限在磨皮、美白、袪痘等水平,手机应用商店里随随便便找到一款修图软件,都能一键开启秒变明星颜值的功能。除了修脸型、开眼角让你拥有改头换面的网红明星脸,还能让你的小短腿小肚腩瞬间变成超模长腿、小蛮腰。除此以外还有改眉形、涂眼影、抹口红、打高光等自动化妆功能,而且傻瓜式操作,完全不需要百万修图师的PS技能。

近几年随着人工智能算法逐渐实用化,结合人脸检测和人脸定位的AI技术,针对人脸不同部位进行定向优化,从而对唇彩、粉底、腮红、眼线,眼影、酒窝、卧蚕等实现自动美妆,静态图像甚至动态视频的美颜处理效果已经达到了以假乱真的程度。

美颜APP如何知道这是你的脸?

要实现逼真的高颜值美颜效果,首先软件要知道你的脸在哪,其中涉及的关键技术是人脸检测。人脸检测技术的任务在于识别出图片中的所有人脸,提取特征后输出人脸的大小和位置坐标。

人脸检测算法需要输入很多张图片,通过深度学习神经网络模型计算后可得到人脸框的坐标序列。即使图中出现的多张人脸、角度改变、部分遮挡等复杂情况,也可以处理,快速、准确地定位人脸。

△来源:
https://becominghuman.ai/face-detection-models-and-softwares-42b562a8e151

美颜APP是如何将口红精确的抹你唇上的?

美颜特效处理的实现主要还是依赖于人脸关键点定位的准确性。 通过人脸检测技术得到人脸框以后,将原图和人脸框输入人脸配准(Face Alignment)算法模型,输出人脸五官和轮廓关键点的坐标。最常见的特征,包括眼睛、瞳孔、眉毛、鼻子、嘴等位置。

△来源:
https://pytorch.org/tutorials/beginner/data_loading_tutorial.html

人脸关键点之间存在一定的位置关系,比如人有左右两只眼睛,眉毛在眼睛上面,鼻子在眼睛下方的中间位置,鼻子下面是嘴。即使图像发生旋转,从相对位置来说,眼睛鼻子嘴巴还是会保持这种固定的结构关系。否则,"人脸"可能就会随意变成下面这样子。

△毕加索抽象人脸画,来源:
http://www.apartexchange.com/Guide_paris3-picasso.htm

要描述这种位置结构上的关系,我们可以在计算机上用一串固定长度的数值来表征,这个数值串被称为"人脸特征(Face Features)"。人脸特征提取的过程需要输入原图以及五官轮廓关键点坐标,深度学习算法会根据人脸五官关键点坐标将人脸对齐预定模式后计算,输出人脸相应的一个特征数值串。

对于视频,虽然可以看成逐帧的静态图像处理问题,还是要考虑关键点的跟踪问题,以保证图片帧之间关键点的连续性。要在真实环境拍摄下的视频里针对任意光照、各种夸张的表情以及各种角度的侧脸,准确定位和跟踪人脸关键点的位置,仍然是一个具有挑战性的问题。

美颜是怎样做到让皮肤变好的?

准确定位这些关键点之后,以这些关键点组成一个网格,对这个网格按照固定的参数进行局部形变,就可以形成瘦脸、大眼等特效算法。

在所有特效处理中,美白磨皮算是唯一不能缺少的环节,毕竟"一白遮百丑、长痘毁所有"。美白算法的目标是把肤色区域变得更加的透亮。这部分的算法可谓层出不穷,基本思路都是如何调整图片的亮度问题。磨皮的算法就更多了,包括使用高斯模糊,双边滤波等。具体选择哪种算法,并且需要结合哪些细节增强的后处理技术,以达到更好的磨皮效果,也是非常复杂并且需要大量投入的。

人脸检测技术除了美颜,还大有用处

人脸检测/识别技术除了在前述美颜应用软件上造福广大爱美人士以外,还被广泛应用在日常生活中的许多方面,给人们带来更多高质量生活的科技解决途径。

这里我们需要了解一下"相似度"的概念。前面提取出来的人脸特征数值串可以用来表征人脸特征,输入两组不同人脸图片的特征值,通过某些规则定义的算法公式可以得到两个特征之间的相似度。

比如下面两张图计算后得出相似度97.82%的结论,嗯,相似度蛮高的嘛,非常满意!(因为就是我老婆本人呀~呵呵。)

△"老婆"照片,来源:
https://www.hmv.co.jp/goods/genre_グッズ_2019年カレンダー_女性タレント?アイドル_4_920_930_930001/

在人脸对比的基础上再设定一个阈值,就可以实现人脸验证功能了。举个例子,预先设定好阈值为80%,那么当相似度大于80%就会输出"同一个人"的判断。

既然人工智能已经会判断出是不是同一个人了,那么基于这个原理,它就能帮助人类实现更多复杂应用了。

比如,现在许多手机已经具备的人脸解锁功能。这项实用的功能用到的技术被称为"人脸验证",手机等终端设备只需将用户事先注册登记的照片与现场临时采集的照片做对比,判断是否为同一人,就能完成身份验证。

人脸验证做的是1:1比对,其身份验证模式本质上是计算机对当前人脸与人像数据库进行快速人脸比对,并得出是否匹配的过程。比如在高速公路、机场安检时,受检人员手持身份证等证件,通过检查通道,同时对受检人员的外貌及身份证信息进行识别,这个过程就是典型的1:1模式。

与1:1比对的人脸验证不同,1:N(一对多)查找比对的人脸识别(Face Recognition)技术则被广泛应用在小区门禁、会场签到以及新零售概念里的客户识别等现实场景中。它的基本思路是输入一个人脸特征后,通过与人像数据库中的海量数据做比对匹配,找到与当前人脸数据相符合的图像(即特征相似度最大的图像),返回该图像对应的身份。

此外,人脸识别的1:N模式能实现通过对动态视频流的截取来获得人脸数据并进一步比对的动态对比过程,而且在识别的过程中识别对象无需到特定的位置便能完成人脸识别的工作,非常高效。

人脸检索(Face Retrieval)采用的也是1:N模式,基本原理与人脸识别类似,也是将一个人脸特征与人像数据库中的N个数据进行比对匹配,只不过返回的不是相似度最高的那个,而是根据相似度从高到低排序的人脸序列的结果。在现实生活中,警察叔叔使用先进的人脸检索技术可以更快速地锁定嫌疑犯,加快案件侦破进度。

P美有什么难的,凭空生成一张脸都能实现

下面的两张图片,一个是真人照片,另一个是AI合成,你能选出哪张是合成图像吗?

答案揭晓,左边的是生成的,右边的是真实的。是不是感觉非常不可思议,左边这位看上去很漂亮的美女,居然根本就不存在!A"凭空捏造"出一个完全不存在的"人"。

这里用到的是被称为生成对抗网络GAN的人工智能算法,经过训练以后它能无中生有。它的基本原理可以通俗地用一个故事来解释:有一个假货制造商和一个鉴赏专家。故事的一开始,假货商和鉴赏专家都是菜鸟级别,一个生产出来的假货非常垃圾一眼就能被看穿,另一个鉴赏能力为零全靠瞎猜。但是这两个人通过不断地训练,假货商每次造一个假货就拿去给鉴赏专家鉴赏,鉴赏专家做出评价以后再偷看一眼标准答案。就这样经过足够多次数的"不懈努力",假货商造出来的假货已经非常逼真了,而鉴赏专家的鉴赏能力也不断提升,一直到最后鉴赏专家达到真正专家水平。此时假货商就能造出以假乱真的假货了。

这个故事中的两个"主人公",假货商和鉴赏专家,分别是GAN算法的生成器和判别器。它们一个负责生成图像,一个负责判断该图像是否符合标准,就像故事里提到的那样经过不断训练,直到最后生成器可以生成以假乱真的图像为止。

除了最基本的GAN模型,目前为止,已经有许多不同的变形算法被开发了出来,比如下面这个例子,输入人类表情以后,可以生成同表情的喵星人,是不是很酷的感觉。以后让喵主人跟自己做同款表情包也是指日可待了。

相关推荐

如何设计一个优秀的电子商务产品详情页

加入人人都是产品经理【起点学院】产品经理实战训练营,BAT产品总监手把手带你学产品电子商务网站的产品详情页面无疑是设计师和开发人员关注的最重要的网页之一。产品详情页面是客户作出“加入购物车”决定的页面...

怎么在JS中使用Ajax进行异步请求?

大家好,今天我来分享一项JavaScript的实战技巧,即如何在JS中使用Ajax进行异步请求,让你的网页速度瞬间提升。Ajax是一种在不刷新整个网页的情况下与服务器进行数据交互的技术,可以实现异步加...

中小企业如何组建,管理团队_中小企业应当如何开展组织结构设计变革

前言写了太多关于产品的东西觉得应该换换口味.从码农到架构师,从前端到平面再到UI、UE,最后走向了产品这条不归路,其实以前一直再给你们讲.产品经理跟项目经理区别没有特别大,两个岗位之间有很...

前端监控 SDK 开发分享_前端监控系统 开源

一、前言随着前端的发展和被重视,慢慢的行业内对于前端监控系统的重视程度也在增加。这里不对为什么需要监控再做解释。那我们先直接说说需求。对于中小型公司来说,可以直接使用三方的监控,比如自己搭建一套免费的...

Ajax 会被 fetch 取代吗?Axios 怎么办?

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!今天给大家带来的主题是ajax、fetch...

前端面试题《AJAX》_前端面试ajax考点汇总

1.什么是ajax?ajax作用是什么?AJAX=异步JavaScript和XML。AJAX是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX可以使网页实...

Ajax 详细介绍_ajax

1、ajax是什么?asynchronousjavascriptandxml:异步的javascript和xml。ajax是用来改善用户体验的一种技术,其本质是利用浏览器内置的一个特殊的...

6款可替代dreamweaver的工具_替代powerdesigner的工具

dreamweaver对一个web前端工作者来说,再熟悉不过了,像我07年接触web前端开发就是用的dreamweaver,一直用到现在,身边的朋友有跟我推荐过各种更好用的可替代dreamweaver...

我敢保证,全网没有再比这更详细的Java知识点总结了,送你啊

接下来你看到的将是全网最详细的Java知识点总结,全文分为三大部分:Java基础、Java框架、Java+云数据小编将为大家仔细讲解每大部分里面的详细知识点,别眨眼,从小白到大佬、零基础到精通,你绝...

福斯《死侍》发布新剧照 "小贱贱"韦德被改造前造型曝光

时光网讯福斯出品的科幻片《死侍》今天发布新剧照,其中一张是较为罕见的死侍在被改造之前的剧照,其余两张剧照都是死侍在执行任务中的状态。据外媒推测,片方此时发布剧照,预计是为了给不久之后影片发布首款正式预...

2021年超详细的java学习路线总结—纯干货分享

本文整理了java开发的学习路线和相关的学习资源,非常适合零基础入门java的同学,希望大家在学习的时候,能够节省时间。纯干货,良心推荐!第一阶段:Java基础重点知识点:数据类型、核心语法、面向对象...

不用海淘,真黑五来到你身边:亚马逊15件热卖爆款推荐!

Fujifilm富士instaxMini8小黄人拍立得相机(黄色/蓝色)扫二维码进入购物页面黑五是入手一个轻巧可爱的拍立得相机的好时机,此款是mini8的小黄人特别版,除了颜色涂装成小黄人...

2025 年 Python 爬虫四大前沿技术:从异步到 AI

作为互联网大厂的后端Python爬虫开发,你是否也曾遇到过这些痛点:面对海量目标URL,单线程爬虫爬取一周还没完成任务;动态渲染的SPA页面,requests库返回的全是空白代码;好不容易...

最贱超级英雄《死侍》来了!_死侍超燃

死侍Deadpool(2016)导演:蒂姆·米勒编剧:略特·里斯/保罗·沃尼克主演:瑞恩·雷诺兹/莫蕾娜·巴卡林/吉娜·卡拉诺/艾德·斯克林/T·J·米勒类型:动作/...

停止javascript的ajax请求,取消axios请求,取消reactfetch请求

一、Ajax原生里可以通过XMLHttpRequest对象上的abort方法来中断ajax。注意abort方法不能阻止向服务器发送请求,只能停止当前ajax请求。停止javascript的ajax请求...