腾讯优图杰出科学家贾佳亚:视觉AI的新认识,揭秘“卸妆”算法

2018-03-21 11:07:39 浏览数 (1)

【新智元导读】新智元AI WORLD2017 世界人工智能大会上,腾讯优图实验室杰出科学家、计算机视觉专家贾佳亚教授从前端、后端的视觉AI说起,分享了腾讯优图在计算机视觉方面做的一些有趣的工作,包括图像编辑、图像分割、图像处理等方面的一些最优的算法,以及卸妆、高清图像恢复、几何重建等引人注目的工作。一起来看。

新智元AI World 2017世界人工智能大会开场视频

贾佳亚:大家好,非常高兴来到这里,前面几位嘉宾给大家介绍的内容,真的精彩纷呈,我们听到了外骨骼的发展,也听到最新的一些底层构架的建立。我的内容可能跟之前的嘉宾有点不一样,我将从一个计算机视觉研发人员的角度去探讨,到底我们现在整个的计算机视觉领域的发展达到什么程度。因为这是AI VISION论坛,所以我想从一个计算机视觉研究者的角度,谈谈什么东西能做什么东西不能做,反而更契合对这领域的理解。

这一张是我自己的照片,边上是我的女儿,她现在三岁。三岁的时候我认为她是一个完整的神经网络的参与者和学习者。她现在在大脑里面构建自己的神经网络,希望以后把社会知识和课堂、课外学到的知识融合起来。我自己是中国香港中文大学的教授,从事计算机视觉研究很多年,今年加入腾讯成为腾讯优图的一分子。优图是腾讯最核心的AI研究实验室之一,其中视觉部分尤为重要。

大家有没有发现看过这么多的科幻小说、科幻电影,很多电影里都会出现一个像助手一样的人,或者是一个像智能上帝一样的人,能够去用旁人的眼光去看待人类社会。大部分科幻电影所幻想的人物构造,通常都有一个人物的外形,要么本身就是一个机器人。所以在人工智能的基本元素里面也继承了这样的观点,我们认为人工智能的发展有四个大的方向,分别是:看、听、说、行动。今天我讲的就是“看”,因为我从事的研究是“看”的领域。

从人类生物学角度来看,有超过30%的视觉神经元参与了视觉有关的活动,当然参与触觉和听觉也有神经元,但是数量远远少于视觉神经元。原因很简单,因为我们的世界太复杂了,当我们作为一个高等的智慧生物去了解世界,我们必须有大量的资源和计算花在“看”这部分。所以这就导致了我们在“看”的这个领域能扩展的内容和想做的事情会非常多。

给大家看一个例子,这实际上是一张非常普通的照片,就是一个有树、有草地、有一头牛的照片。其实问题不在问这个图像里面有什么东西,我想问在座的各位这是在什么地方拍的照片。

第一印象大家可能觉得这不是在中国拍的,应该是在欧洲或者是在澳洲或者是在美国。就是说大家会有一个猜测,通过这么一个简单的图像,我们已经有一个非常好的对图像的理解,是延伸在图像之外的内容的。

再给大家看一张照片。这两张照片是在同一个地方拍,我相信绝大部分人应该都猜到了,这是在瑞士拍的。这是一个简单的内容,可以通过简单的分析,用我们直觉,甚至不需要上网去搜索,我们就能发现其中蕴含的信息,说明我们人类对视觉感觉系统的运用已经到了一个炉火纯青的地步。

那么计算机视觉是不是有了跟人类的视觉类似的感受能力呢?为了回答这问题,我给大家看两个例子。第一个例子是这样一张图,大家可以盯着其中一个部分看。大家看其中一个部分的时候,会发现这个图在动,觉得它在旋转。这张中间是一个柱状物体,可能是个比较复杂的几何形状,但是这张图片有没有在动呢?其实是没有动的,而你盯着一个地方会觉得它在动。这说明人的视觉有一个运动的估量系统,当一个模式正好符合你的运动估计的视觉准则的时候,即使没有动的物体,你也会认为它是在运动的。

再给大家看另外一个有趣的例子。请看这个图,不管从哪个角度看,这只恐龙都在看着你,这是为什么呢?这里面装了头可以摆动的装置吗?其实没有。这就是一个纸做的恐龙,不可以移动,但是你会觉得不管走到哪个方向它都看着你,原因是什么?我们慢慢把镜头拉远一点,拉到一个超过了我们刚才的视角范围的地方,你会发现原来是这只恐龙的头凹进去了。当我们看到这样的系统的时候,你会觉得这个头肯定凸出来,就是整个的外轮廓是往外凸出而不是凹进去,所以这样的反差会让你的大脑直觉地认为之前的恐龙的头是凸出来的。因为有了这样的直觉,你就会感觉这恐龙不管你走到哪都在看着你,原因就是真实的情况和我们人类大脑处理的情况不一样。

这两个例子说明什么呢?说明实际上人类对于视觉的感知是非常难的一件事情,所以想要让计算机去完整的模拟人的视觉感知也是不太可能的事情。但是至少我们可以达到一个比例了,比如说我们可以在10%的程度上实现计算机对于人类视觉能力的模拟。

那么从产业链来看,对于我们国内、国外这么多产业,有这么多新创公司和大公司,到底视觉有多重要。毋庸置疑,比如说现在的新体感游戏,我们可以通过在电脑前面做一些动作,电脑就能知道我们在做什么动作,从而完成游戏过程,这是体感游戏的发展。所以游戏、娱乐是其中一个重要的部分。

当然还有监控。在安防这一块,以前需要雇上百个人、上千个人去看无数的视频,才能分析出哪些视频是有问题的,哪些是没问题的。现在一个公司可能只需要两三个负责人员,其他的就交给电脑来分析视频里有什么异常现象发生。这是一个非常大的可以运用计算机视觉技术的行业。

腾讯拥有国内最大的社交网络平台,我们在设计新产品时会希望有新的玩法,让大家参与互动的时候,比如说能够判断年龄,可以改变外貌,可以在APP里面轻易地变得更年轻一点,甚至可以体会一下变成另外一个性别。这是全新的电子化的时代,我们这样的新的产业可以做得更好一些。

除此之外,还有就是医疗这一领域。智能医疗实际上能推动、替换一部分医生的工作,计算机能够在自动化的层面上去分析医疗领域的一些图像。最后就是自动驾驶,这是计算机视觉应用中很大的一块。

计算机视觉有很多的分类,我们可以存在不同的理解。计算机视觉分为上层视觉、中层视觉和底层视觉,这是传统意义上的分类。但是今天我想讲,我们可以把计算机视觉分得更加有趣一些。我自己认为可以分成两种计算机的视觉AI,一个叫前端AI,一个叫后端AI,前端后端这两个名词来自软件工程。这两个分类的原因是,在软件工程中有很多的方式、很多的函数负责了不同的功能,为了区别这些功能我们把它们分成前和后。AI发展到一定阶段以后,我们发现它的细分种类越来越多,所以也可以用这样的分类来定义视觉AI。接下来我会讲一讲我怎么定义前端和后端的视觉AI。

前端和后端的视觉AI

所谓的前端AI,我认为这种AI产生的效果让大家能看得到,感觉得到,能够知道发生了什么事情,这样的AI叫前端的AI。看起来很抽象,但是实际上我们有很多例子可以去说明。我觉得前端AI一个重要的部分就是编辑

这是在2003年的时候我自己做的第一个研究工作。我们刚才有嘉宾已经介绍过,很多年前手机还是奢侈品,大家的手机唯一的功能是打电话。2003年的时候我们手机已经有一些简单的功能,但是那时候大部分的手机还是黑白屏幕,没有摄像头,只能做一些非常简单的事情。但是2003年我们已经开始做一些非常有趣的、可能在整个业内其实并没有太多人知道的工作。比如说当时我自己有一个想法,就是我们出去拍了很多照片,回来以后发现里面有很多场景是我不想要的,比如有一些不想要的人或者景物出现。这时候我想把这些景物除掉,比如说把柱子去掉只留下一个背景。但是呢,当我把柱子抹掉的时候,我发现留下的是一个黑洞,很不好看。

我们当时想把这个事情做好,所以就出现了第一个算法,希望把大的错误,或者图像里不对的地方去掉。所以这个结果现在看起来还是比较惊艳的,这个工作距现在已经有14年的历史了,这是一个很古老的工作。

后来我在2004年的时候,在微软跟孙剑博士一起做了一些更加有趣的工作,其中一个很重要的部分,就是做分割

这样的应用其实现在很多手机里面还没有用到,我想给大家看看。比如说有一张很漂亮的图,我想换一个背景怎么办?很痛苦,你必须靠人把前景抠出来,就是一个抠图的过程。抠图在视觉的历史里大概有20年了,怎么样把一张图抠得最好,这看起来很容易,其实是一件很难的事情。所以我们在2004年的时候,开始跟微软的一些同事一起做这一件事情,希望能够提出一个方法。当然我们用了很多的交互,并不是那么智能,但是我们最后实现的效果是能完整把前景分割出来,换成不同的背景。

回到2017年,我们开始做完全不同的一些智能化的操作。我们可以直接利用从网上搜索得到的许许多多各种各样的人像照片,拿到人像照片后,直接放到我们的系统里面自动做训练,训练完了之后我们就直接拿一张新的图来,这张图我们从来没见过,但是我可以实现这张图背景的自动分割。这样的系统已经在我们腾讯内部和外部的很多公司上线。也就是说它能够完成全自动的、对人物景物的理解和分割。

这是另外一个场景。这张图片在我们数据库从来没有出现过,它的前景和背景的颜色很相似,它的毛发给跟我们以前看到的图像的头发颜色不一样,但是我们还是能够把它分割出来,用我们现在的自动学习的技术。

这个系统完成之后,我们在腾讯内部做了大量的优化。为了让它能够在手机端直接用上,我们把它的复杂度从500万个参数降低到10万个参数。当只有10万个参数的时候,就可以实现每秒30帧的在手机端的操作,同时能够快速对景物的进行智能化理解。这样一个系统很有用,大家可能觉得这东西不就是一个AR嘛,在脸上贴一些东西、后面换一些背景,但是这对社交网络而言是一件非常有趣的事情。

前端AI还有另一个很重要的部分就是处理。什么叫处理?这是我们在2008年的时候做的一个工作,这在当年有很大的需求。当时电视机从普通的VGA分辨率上升到高清分辨率,有大量的电影、影视剧的内容之前是并非用高清设备采集的,也就是说它们本来的片源分辨率就很低。所以当时有一个很大的需求,就是能不能用一种上采样的方式,实现对低分辨率的视频或者图像进行放大,使得它在HD的摄像机中能够顺利低播放。这是我们在2008年时做的事情。当时也做了一些成果出来,通过小图可以把大图恢复出来。

今年我们提出了一个全新的框架,用深度学习,我们希望能够用更加有效的AI的方式重建视频和图像。当然这个图大家不需要理解,这是一个非常漂亮的模型。

给大家举一个例子。这是一个输入,就是非常小的图像,我们把它变高清。这是以前方法做出来的结果,其实很多字还是看不清楚,有很多锯齿,问题也很大。后面是我们今年通过智能化的处理得到的结果,能够自动实现智能化的上采样,实现了用一张小图就可以把大图恢复的非常好。

今年这个技术在腾讯整个网络构架全面上线。做这件事有什么意义呢?对于腾讯这样一家公司而言,我们可能每个月视频和图像的上传量都达到亿级,甚至在微信里的上传量是几亿级,这样的话带宽就是一个很大的问题。所以我们用上采样的方式解决这个问题,就是用户上传的时候可以传小图,看的时候看大图,立刻就可以减少带宽使用量。我们的带宽使用率超过75%,也就是75%的带宽可以省下来,可以用这75%的带宽做其他的事情,上传图片更加方便和容易。这是一个全面性的,而且非常有用的算法,已经在大的平台上产生巨大的影响力。这是我们的结果,你可以看到跟之前的方法相比,在细节上、在内容上都有了巨大的变化。

当然我们也做了其他一些事情,这是跟摄像头相关的,也是我们原创的新技术。在2008年、2007年的时候我们就想,我们这么多摄像头,不管是手机还是单反拍的,为什么拍出来都是糊的?很简单,因为你的运动太快,或者光线曝光不足。所以我们有个想法,能不能通过模糊的图像把真实的图像给恢复出来。当时我们做了研究,发现确实可以做,而且可以得到预想不到的结果。我相信如果大家手机里有任何一张这样的图像,第一反应是把它删掉,节省空间。但是我们把这样的图像拿出来,发现可以得到更多的信息。后来我们发现甚至可以做更加严重的模糊的恢复。我们可以恢复图像里所有的鳞片细节,它的噪声细节,和边缘的部分都可以灵活地恢复出来。

当然我们后来又做了一件事情,我们不但把它的准确率提高了,而且提高了速度,实现了快速去模糊。当时这个算法处理一张图像大概需要30分钟。我们在算法层面做了一个巨大的改变,使得我们处理一张图像需要的时间从30分钟降低到4秒钟,就可以将一张模糊图像恢复成清晰图像。

后来我们进入了全面的深度网络时代,我们就用深度网络做这件事情。这是一个例子,对于这样的叫做失焦模糊的图像,我们也可以恢复出非常多的细节原件,这些原件在原有图像上是基本上看不到的,或者已经丢失掉的,我们都可以恢复出来。这是图像方面的一个巨大的进步。

图像前端AI的最后一个是创造。创造这方面也有很多故事可以讲。很多人问我,现在AI这么厉害,是不是替代了很多人的工作,以后帮小朋友、帮自己孩子择业时你选择什么样的方向最好?既然很多工作都被计算机替代了,是不是做艺术家最好。我觉得做艺术家是一个不错的选择,但是其实计算机也会创造,它也有非常强的能力能够创造新的东西。所以从这一点来看,我不是很确定当一个艺术家是非常好的想法。

举一个例子,这两幅图像,大家觉得这哪一幅是人画的?这个问题我在不同的场合问过很多人,之前有很多回答都认为右边这一幅图像是人画的,但是呢实际上左边这一幅才是人画的,右边这一幅是电脑模拟铅笔画的方式生成出来的,也就是电脑画出来的。

到2017年,大家知道得比较多的是我们腾讯优图做出来的一些黑科技。我有一个学生经常喜欢上网去跟各种各样的女生聊天。结果他发现每一次聊完天以后,去见面发现女生跟图片上长得不一样,这个事情令他很苦恼。我们就想,优图已经提供了非常强大的、非常好的上妆的算法,但是我们能不能提供卸妆的算法?所以我们为了这样一个目标,开始做这个项目。这个项目确实经过了一个非常长的过程去分析到底其中有什么问题。

今天给大家看的内容就是这样一个例子,这是一位老人家的例子。其实看这张图非常正常,因为现在所有的社交网络上传播的图像都是这样子的,你觉得这一张图像还不算是P过的。我给大家看看原来是什么样的,我们通过AI恢复出来,这个老人家应该是这样的。

我们做这事情除了既定目标之外,其实也是不断探索我们在AI技能方面有什么强项可以做,然后通过我们的一个主成分回归网络去做这事情。我们通过授权和第三方收集标注的图像数据,去分析、理解,发现这些图像都可以通过基本的AI算法把大概的内容恢复出来,这样就完成了一个卸妆的过程。我相信这项技术或许对于很多的婚庆公司或者婚恋公司是有用处的。

后端的AI更重要:图像分类、语义分割、实例分割

刚才讲完前端的AI,其实后端的AI更重要。后端AI是你不知道它在那里,你也不知道这技术怎么产生的,但是你觉得一定有东西在操作,它不直接创造效果。其中我们知道比较多的是图像分类。我们现在可以实现上千万、百万张图片的分类过程,比如说这张图像是一个西红柿和一个兔子结合的图像。你看到这一张图像,可以分析出这是一个老鼠和酒瓶,或者这是一只狗和一朵花。这样的分类和理解已经达到非常准确的程度,远远超过人的理解水平。

除了这之外,我们还有一些科学家不太满足于做简单的图像的理解,我们做物体检测,我们希望可以实现到上千个种类10亿个位置的不同的检测方式。对一个图像我们不但可以判断出这个图像是什么东西,还能知道每一个图像的每一个部分是什么,这就是物体检测。

除此之外还有更难的问题就是语义分割,我们希望不仅仅知道哪个部分是哪一个物体,我们还希望知道每一个像素是什么物体。这是去年在 ImageNet 上的Scene Parsing竞赛,我们拿到第一名,这是这个领域内道路级最准确的算法,它可以准确的分析道路里哪个地方是车,哪个地方是道路、哪个地方是树,精准到每一个像素。把这些信息反馈出来,最后得到一个理解,这种分割的效率和准确度已经非常之高了。

这是其中的一个网络结构,我们后来把这问题更进一步,我们不但希望知道哪辆是车,我还希望知道哪辆是第一辆车,哪辆是第二辆,哪辆是第三辆。这问题就叫做实例分割,在计算机视觉中这是最难的问题之一。我们去年创造了一个新的算法,去解决实例分割的问题。

2017年我在学校带领的团队在 MS COCO 这个计算机视觉最难的比赛里,拿到 Instance Segmentation 第一名。我们可以看一些结果,比如这张图中这么多车,我们可以完整地分割出车的各个部分,知道哪里是车、哪里是道路,哪个是第一辆车,哪个是第二辆车,甚至哪个是司机,第一个司机、第二个司机的各个不同的位置我们都可以完整地找到。

这是第二张图,这张图非常复杂,有很多的香蕉,你可以想象,要知道香蕉种类不难,但是你要知道哪个是第一个香蕉、哪个是第二个香蕉,这是非常困难的问题。

我们的实验结果是这样子的,我们看到这一张图的时候,第一反应是这是小黄人非常喜欢的东西,所以这是为什么之前我们腾讯QQ里面有一个“扫香蕉”的线上活动,受到了众多用户的参与,这个场景就非常适合。

还有另外一些例子,比如说这张图片可以看到,我们可以把雨伞、人都分割的非常准确,实现精准的像素级的理解。我们当时在整个数据集上、在Benchmark上都跑得效果非常好,准确度非常高。

最后一个是推理。在后台里面其实我们还可以做很多其他的事情。今年我们的一个非常重要的研究方向是希望通过一张完全没有深度通道的图像,我们能够分析它的深度是什么样的,它的表面的法向量是什么样的。也就是通过一张RGB的颜色图,能够得到它的深度估计,和它的表面的几何重建的内容

这项工作确实做到了一个非常不错的效果,而且它有很多的应用。比如在增强现实中,如果我们有了深度信息,即使相机没有感应装置,但是仍然能够把深度估计出来,这样我实现更加准确的增加现实的效果。当然我们也可以做机器人,机器人可以有更加便宜或者更加简单的处理方式去处理深度的内容。当然甚至对自动驾驶也会有很大的帮助。

这是其中的一个例子,在手机上就可以实现。这个技术可以实现后期对焦,也就是我们拍完一张照片以后,可以再去进行对焦,自动分析前景后景。这样的话,当你已经拍完照片,你还可以去选择是对焦第一个人身上,还是第二个人身上,这也是非常有趣的现象,而且以后可以在手机上有更大范围的应用。

总结一下,我觉得现在真的是有非常多的AI技术正在发展,而且有层出不穷的新的应用,尤其在大的平台上,在巨型的公司里我相信计算机视觉的应用非常之多。所以我想对我们研究人员提出一个非常简单的要求,希望他富有创造力和广博的知识,希望他能够多看看可以怎样帮助人类社区的发展,能够创造出什么新的价值。

最后给大家看一张图像,这是我们腾讯优图团队的聚餐,我们自己有口号,我们这团队叫“学历高笑点低”。好,谢谢大家。

0 人点赞