当前位置: 首页 > 编程日记 > 正文

AI又进阶!除了鉴别PS图片,还能一键卸妆

作者 | 马超

编辑 | 伍杏玲

封图 | 视觉中国

出品 | AI科技大本营(ID:rgznai100)

最近CVPR2020的论文集合在GitHub火了,CVPR2020-Paper- Code 的项目(https://github.com/extreme-assistant/CVPR2020-Paper-Code-Interpretation)已获得超5.2K Star(截至发稿),甚至一度排在趋势榜的前五名位置。

在通读了CVPR2020论文的概要之后,最令笔者印象深刻的当属由华为诺亚实验室与复旦大学联合发表的论文《FM2u-Net: Face Morphological Multi-Branch Network for Makeup-Invariant Face Verification》,读过了这篇论文后笔者脑洞大开:是某位作者经历了换脸风化妆的约会套路后,才会提出了FM2u-Net“AI卸妆药水”,来帮助恋爱中的男女看清妆容下真实的脸。当然目前FM2u-Net的计算规模还非常大,计算量上应该还有优化空间。笔者不排除后续优化模型推出后,会有App直接嵌入一键卸妆的功能。

在去年CVPR2019大会上,Photoshop的母公司Adobe与伯克利共同推出的论文《Learning Rich Features for Image Manipulation Detection》技惊四座,他们提出的模型可以用于侦测图像是否有被PS过。

这款反PS工具准确率极高,根据论文数据显示,一般人眼分辨PS痕迹大约有53%的准确率,但是反PS工具识别准确率高达99%以上。

到了CVPR 2020,妆容迁移的问题明显在人脸识别的领域中得到了更多的重视,比如我们马上要解读的这篇FM2u-Net的论文,就将视角完全聚焦在了妆容不变性上。

可以说“照骗”一族和“化妆”一族在AI的侦测下,通通都只有立现原形的份,按照目前的趋势发展,只要整合了整容不变性技术,AI就基本集齐龙珠,实现火眼金睛了,所以明年整容迁移问题能否成为CVPR2021的焦点话题,值得我们拭目以待。

AI人脸技术简史

如今人脸技术也形成了识别侦测与合成伪造的两大流派,这两大流派形成了典型的相互促进,相互攻防的趋势。

人脸识别技术最开始被人们所熟知在2017年前后,当时歌神张学友的演唱会上,AI人脸识别技术屡屡立下大功,甚至创造了一次演唱会,就帮助公安机关抓捕到5名逃犯的纪录。这赋予了《她来听我的演唱会》这首老歌新的含义,扯远了。

当时大众对AI还缺乏了解,据说不少人在被逮捕时,还一脸茫然,完全没想到人脸识别技术能在多年后准确找到自己。这让人们惊呼原来人脸识别这么牛啊,因为人脸识别技术在人员身份认证上所体现出来的便捷性及带来的效率提升,相关人脸识别产品、解决方案层出不穷。人脸识别被广泛应用于机场、火车站、社区、园区等诸多场景的身份识别、考勤打卡甚至金融支付应用当中。

这开启了一个方便快捷的时代,用户不需要输入密码,甚至连手指都不需要动一下就能完成相关的身份认证,短短几年时间,人脸识别的安全认证手段就已经完全取代了密码的方式成为了主流的技术方案,潮流的趋势并不可逆。自2017年iPhone X启用人脸识别以来,Face ID一直是苹果公司引以为傲的一大黑科技,可以瞬间通过3万个特征点来感知用户面部特征。

人脸识别技术被广泛应用了一年多以后的2018年末,人脸伪造技术即AI换脸技术迎来爆发。

先是SIGGRAPH(暨国际计算机图形学会)的2018年年会上,当时一个由斯坦福大学、慕尼黑技术大学、巴斯大学等科研究机构联合研发的Deep Video portrait模型横空出世。

该技术不但能让被替换的人脸完全模仿原视频中人物的表情,甚至在放大对比时,两个视频在发丝和睫毛的表现上都能做到极度的精确,后来其论文被发表在了《ACM图形交易》上。

目前在GitHub上,由Deep Video portrait技术衍生而来的开源项目数量不下十几个,其中以FaceSwap、OpenFaceswap等开源项目为代码的换脸技术在GitHub上的更新与讨论十分热烈,后来一名叫做换脸哥的网友在微博上传了一段由杨幂换脸朱茵而主演的《射雕英雄传》,让我们对于人脸识别安全风险给予了足够的重视,从而开始考虑使用人脸、声纹、瞳距等多模态方法来提高准确性。

初识FM2u-Net

化妆导致的容貌的显著变化,是妆容迁移不变性模型所要面临的首要问题,而且目前绝大部分数据集当中,也没有给出化妆/未化妆的分类集,这从客观上也增加了妆容迁移问题的实现难度。

面部妆容迁移目的是在任意给定的化妆图像中呈现非化妆的面部图像,同时保留面部特征。当前最佳方法是将化妆风格信息从人脸图像中分离出来,实现化妆效果的传递。

华为和复旦的研究人员提出了一种FM 2 u-net也就是形态多分支网络,来完成妆容迁移不变性的工作,从宏观上看FM 2 u-net由两个FM-Net和一个AttM-Net共同组成。整体架构图如下:

其中FM-Net由两个堆叠的自动编码器组成,可以通过循环一致的方式来对于化妆区域进行不变性转移,合成具有不同化妆信息的真实面容,进而合成逼真的化妆人脸图像。生成网络AttM-Net由一个全球分支和三个本地分支组成,将人脸图像进一步分解为四个独立分量,包括整体风格、左眼风格、右眼风格、嘴部风格,可以有效地捕捉互补的整体和细节信息。AttM-Net的架构图如下:

AttM-Net不仅可以控制全局化妆风格的程度,还可灵活地调节局部化妆风格的程度。FM 2 u-net不但能瞬间将素颜化上烟熏妆,能从自然风瞬间切换至典型风,可以产生更真实和准确的化妆迁移结果。

目前图片篡改识别与妆容迁移方面的应用,还没有非常完善、高效的技术方案。不过根据CV技术的发展趋势,未来AI“火眼金睛”的练成只是时间问题。甚至笔者畅想,视频网站会推出一键还原场景的功能,让用户突破视频特效,看到演员在绿幕前的表演。

推荐阅读
  • 图灵奖得主Judea Pearl:从“大数据革命”到“因果革命”

  • Python 玩出花儿了!一文教你用 Python 制作吃豆人游戏 | 附代码

  • 陆奇:疫情下的创业者,最不能缺两大能力

  • 时隔 15 年,苹果的自研 ARM 芯片为何能取代 Intel 处理器?

  • 程序员端午炫富指南~

  • 科普 | 哈希函数的过去、现在与未来

你点的每个“在看”,我都认真当成了AI

相关文章:

[转]Git忽略规则及.gitignore规则不生效的解决办法

在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如无,则需自己手工建立此文件)。这个文件每一行保存了一个匹配的规则例如: # 此为注释 – 将被 Git…

改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions)

系列博客 1. 改善代码设计 —— 优化函数的构成(Composing Methods) 2. 改善代码设计 —— 优化物件之间的特性(Moving Features Between Objects) 3. 改善代码设计 —— 组织好你的数据(Composing Data) 4. 改善代码设计 —— 简化条件表达式(Simplifying Conditional Express…

必要时调整应用程序每个辅助进程的线程数

ASP.NET 的请求结构试图在执行请求的线程数和可用资源之间达到一种平衡。已知一个使用足够 CPU 功率的应用程序,该结构将根据可用于请求的 CPU 功率,来决定允许同时执行的请求数。这项技术称作线程门控。但是在某些条件下,线程门控算法不是很…

嵌入式开发「坑」太多?MathWorks 高级工程师教你 debug

文/ 朱雪妍据博思数据发布的《2018-2023年中国嵌入式软件行业市场发展现状调研与投资趋势前景分析报告》表明:2018年上半年我国嵌入式系统软件收入达4240.2亿元,累计增长6.6%,并将持续保持高速增长。嵌入式系统是当前最热门、最具发展前途的I…

[转]cocos2d-js 3.0 屏幕适配方案 分辨率适应

首先介绍一个api和相应的参数: cc.view.setDesignResolutionSize(1024, 768, cc.ResolutionPolicy.FIXED_WIDTH); 这里设置游戏制作的目标尺寸和显示的模式。 模式包括: cc.ResolutionPolicy {// The entire application is visible in the specified a…

两个程序员的泰国普吉岛之行

十一长假后,我和女朋友一起去了普吉岛游玩(作为两个程序员,不能每天敲代码,也应该放松下自己),玩的很Happy,也是我们第一次出国,所以更带有许多兴奋。也许是由于玩的太High&#xff…

使用 HttpServerUtility.Transfer 方法在同一应用程序的页面间重定向

采用 Server.Transfer 语法,在页面中使用该方法可避免不必要的客户端重定向。

90行Python代码,让张小龙的微信地球转起来

作者 | xiaorang来源 | 数据分析与统计学之美1.微信地球手机重启后打开微信的一瞬间,会看到一幅有名的图片,上面站着一个张小龙。你可曾想过这样一个问题,如果上面那个地球转起来会是怎样?2.效果图效果简直不要太酷炫,…

70.打印所有Spring boot载入的bean【从零开始学Spring Boot】

【从零开始学习Spirng Boot—常见异常汇总】 问题的提出: 我们在开发过程当中,我们可能会碰到这样的问题:No qualifying bean 就是我们定义的bean无法进行注入,那到底是什么原因呢,有时候挺难定位的,当然这…

了解 C# “.NET研究”4 中的 Dynamic 关键字

dynamic 关键字和动态语言运行时 (DLR) 是 C# 4 和 Microsoft .NET Framework 4 中的重大新增功能。 这些功能在宣布时就引起了人们的极大兴趣,并伴随着许多疑问。 同时人们也给出了很多答案,但这些答案现在已散布于各种文档以及各种技术博客和文章之中。…

“我,懂数据,不怕被裁”:这项核心能力到底有多香?

我见过市面上很多的 Python 讲解教程和书籍,他们大都这样讲 Python 的:先从 Python 的发展历史开始,介绍 Python 的基本语法规则,Python 的 list, dict, tuple 等数据结构,然后再介绍字符串处理和正则表达式&#xff0…

使请求管线内的所有模块尽可能高效

请求管线内的所有模块在每次请求中都有机会被运行。因此,当请求进入和离开模块时快速地触发代码至关重要,特别是在不使用模块功能的代码路径里。分别在使用及不使用模块和配置文件时执行吞吐量测试,对确定这些方法的执行速度非常有用。

PHP smarty缓存

缓存一个页面 test.php <?php//定义该页面缓存文件存放的路径 $filename "../cache/cachetest.html";//定义缓存有效期 $cachetime 5;//判断缓存文件是否存在 if(!file_exists($filename) || filemtime($filename)$cachetime<time()) {//开启内存缓存ob_sta…

在 Visual Basic .NET 或 JScript 代码中使用早期绑定

以往&#xff0c;开发人员喜欢使用 Visual Basic、VBScript 和 JScript 的原因之一就是它们所谓“无类型”的性质。变量不需要显式类型声明&#xff0c;并能够简单地通过使用来创建它们。当从一个类型到另一个类型进行分配时&#xff0c;转换将自动执行。不过&#xff0c;这种便…

Use MVS Dsbame convensions. windows下ftp.exe客户端上传错误

环境:主机 220-FTPD1 IBM FTP CS V1R11 at BT11 windows下的ftp.exe客户端 现象:windows下ftp.exe命令上传文件,报"Use MVS Dsbame convensions." 错误 原因: 主要是IBM FTP Server 文件系统的命名规范造成的: 8个基本字符 解决: 通过 cd 根目录.目录1.目录2----…

算法对建筑业的影响,不仅仅是画图

拿什么来拯救&#xff0c;这些奇葩的设计&#xff1f;奇葩造型位于英国伦敦芬乔奇街 20 号的一座摩天大楼&#xff0c;由于造型像「对讲机」&#xff0c;被取外号「对讲机大楼」。其实造型奇葩倒没什么&#xff0c;也有一些人觉得还挺好看。但问题是&#xff0c;建成之后&#…

如何参与团队合作?

现在&#xff0c;团队合作就是竞争力。随着市场竞争的日益激烈&#xff0c;企业更加强调团队精神&#xff0c;建立群体共识&#xff0c;以达到更高的工作效率。特别是有遇到大型项目时&#xff0c;想凭借一己之力去取得卓越的成果&#xff0c;可能非常困难。想必你也意识到&…

200 个工具分析机器学习十年:开源是大势,工程师是核心

【编者按】人工智能和机器学习经过十年多的发展&#xff0c;在过去的几年间&#xff0c;各类工具数量迎来了持续的爆发式的增长&#xff0c;机器学习也正式由科研走进工业生产阶段。本文作者 —— 来自硅谷一家初创公司的计算机科学家 Chip Huyen 梳理挖掘出 202 个机器学习工具…

将调用密集型的 COM 组件迁移到托管代码

.NET Framework 提供了一个简单的方法与传统的 COM 组件进行交互。其优点是可以在保留现有投资的同时利用新的平台。但是在某些情况下&#xff0c;保留旧组件的性能开销使得将组件迁移到托管代码是值得的。每一情况都是不一样的&#xff0c;决定是否需要迁移组件的最好方法是对…

性能优化工具 MVC Mini Profiler

MVC MiniProfiler是Stack Overflow团队设计的一款对ASP.NET MVC、WebForm 以及WCF 的性能分析的小程序。可以对一个页面本身&#xff0c;及该页面通过直接引用、Ajax、Iframe形式访问的其它页面进行监控,监控内容包括数据库内容&#xff0c;并可以显示数据库访问的SQL&#xff…

刷新UITableView

【from】http://www.superqq.com/blog/2015/08/18/ios-development-refresh-uitableview/ UITableView对于iOS开发者来说一定不会陌生&#xff0c;很有可能你的APP很多界面都用到它。关于UITableView的文章&#xff0c;想必已经不计其数&#xff0c;没事可以多看看。特别是UITa…

算术运算中隐式类型转换

转载于:https://www.cnblogs.com/strider/articles/2220313.html

高文、张钹、杨强隔空论道:AI精度与隐私的博弈

出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;AI时代&#xff0c;如何保护大众的隐私&#xff1f;以联邦学习为代表的AI技术能否实现AI协作&#xff0c;提升模型精度的同时&#xff0c;实现数据隐私的保护&#xff1f;中国如何抢占人工智能安全发展的制高点&#x…

避免单线程单元 (STA) COM 组件

默认情况下&#xff0c;ASP.NET 不允许任何 STA COM 组件在页面内运行。若要运行它们&#xff0c;必须在 .aspx 文件内将 ASPCompattrue 属性包含在 Page 指令中。这样就将执行用的线程池切换到 STA 线程池&#xff0c;而且使 HttpContext 和其他内置对象可用于 COM 对象。前者…

将 SQL Server 存储过程用于数据访问

在 .NET Framework 提供的所有数据访问方法中&#xff0c;基于 SQL Server 的数据访问是生成高性能、可缩放 Web 应用程序的推荐选择。使用托管 SQL Server 提供程序时&#xff0c;可通过使用编译的存储过程而不是特殊查询获得额外的性能提高。

centos下安装apache + subversion(转)

目录&#xff1a; 一.安装apr跟apr-util 二.安装apache服务器 三. 安装subversion 四. 配置subversion 五. 配置apache的httpd.conf 六. 验证安装 七.导入数据到资料库八.版本库服务器的同步&#xff08;新加入的&#xff09; 附&#xff1a;安装过程中遇到的问题 一.安装apr、…

真香!3个月0基础转型大厂数据分析师,他做对了什么?

年初的黑天鹅打乱了我的求职阵脚&#xff0c;专业不对口&#xff0c;无实习经验&#xff0c;在求职路上的竞争优势几乎为0&#xff0c;然而&#xff0c;开启自救模式后&#xff0c;我顺利成为了头条数据分析师&#xff0c;下面我就讲讲人生是怎么开挂的。随着人工智能普及&…

OpenStack快速入门

OpenStack云计算快速入门&#xff08;1&#xff09;该教程基于Ubuntu12.04版&#xff0c;它将帮助读者建立起一份OpenStack最小化安装。我是五岳之巅&#xff0c;翻译中多采用意译法&#xff0c;所以个别词与原版有出入&#xff0c;请大家谅解。我不是英语专业&#xff0c;我觉…

将 SqlDataReader 类用于快速只进数据游标

SqlDataReader 类提供了一种读取从 SQL Server 数据库检索的只进数据流的方法。如果当创建 ASP.NET 应用程序时出现允许您使用它的情况&#xff0c;则 SqlDataReader 类提供比 DataSet 类更高的性能。情况之所以这样&#xff0c;是因为 SqlDataReader 使用 SQL Server 的本机网…

微软小冰从上海音乐学院音工系毕业,师从于阳、陈世哲

6月29日&#xff0c;经上海音乐学院音乐工程系评定&#xff0c;人工智能微软小冰和她的人类同学——上音音乐工程系音乐科技专业毕业生一起毕业&#xff0c;并授予微软小冰上海音乐学院音乐工程系2020届“荣誉毕业生”称号。微软小冰和上海音乐学院的毕业生们一起参加了于6月29…