热门搜索: 时尚 搞笑 休闲 时事 品牌
首页>文章 > 资讯 > 时尚 >

深度 | 微软亚洲研究院常务副院长郭百宁:计算机视觉的最

test • 513444 分钟前 • 次阅读
在 2016 年微软亚洲研究院举办的「计算机视觉」媒体分享会上,微软亚洲研究院常务副院长郭百宁博士分享了微软亚洲研究院近期在计算机视觉领域研究上的成果,以及在产品应用方面比较有趣的例子。

 

 

郭百宁博士,微软亚洲研究院常务副院长

 

 

一、计算机视觉的发展历史

 

首先我们要探讨的问题是计算机视觉是什么?计算机视觉是从图像和视频中提取数值或符号信息的计算系统。说得直白一点就是让计算机像我们的眼睛一样可以看到图像,并能理解所看到的图像。

 

 

1998 年微软亚洲研究院建院的时候第一个成立的组就是视觉计算组,那时候计算机视觉应用非常少,很冷门。我进入微软加入的第一个研究小组就是这个组,当时我们的组长是沈向洋博士。他说计算机视觉应该做,但是它对公司的贡献和对工业界的贡献在当时还不是很清楚。他就建议我再开另外一个组——图形学组,那时候图形学对公司有直接的贡献。当时图形学火了很多年,现在轮到计算机视觉火了。

 

计算机视觉这个领域比较年轻,到现在也就是 60 多年。刚开始的时候人们就觉得计算机应该有眼睛,能够看、能够理解。到了 50 年代末,大家发现计算机视觉真的可以应用,那时候图像增强第一次应用在了对太空和航拍图像进行处理方面。 60 年代初,模式识别成为一个很大的应用,它相当于计算机视觉中的一个分支,能够识别字符。到了 60 年代末,有个麻省理工学院的博士生第一次从图像中提取了三维信息,把一个实体的物体从二维图像中提取出来。随后,麻省理工学院在 70 年代成立了机器视觉的研究组,并且开始开设了相关课程。

 

 

 

从 70 年代到现在,40 年间的计算机视觉技术发展很快,除了对道路交通等运动自然场景进行数字化并分析之外,OCR (光学字符识别)也出现了,它大量用于邮局分拣信件以及手写体支票的识别。现在手写体的支票大家可能都不了解了,美国大银行用了几十年,手写体的支票不管怎么乱,它都能识别出来帮你入账。还有图像里面也开始研究分割问题,这个领域逐渐出现了一些重点需要解决的关键问题。当一个领域还没成型的时候基本上是一锅粥,大家无从入手。而一个学科形成时,一些关键问题逐渐就出现了。

 

后来统计的方法也发现了,大家以前见图形学比较多,图形学就是你有了几何模型要把这个图生产出来。就像解一个AX=B 的方程式,假如知道了 AX 把 B 找出来很容易,但假如你只知道 A 和 B,要把 X 解出来,就比较难了。有的时候在计算机视觉领域,A 只知道一部分,但是 B 不知道,而 B 有时候又知道一些信息等等。大家发现,用解析方法解决不了的问题,就用统计的方法去解决、收集数据。再之后,视觉跟踪和分析的这两个重要研究领域就诞生了。

 

 

 

进入 21 世纪以后,大型图像和数据库的出现对计算机视觉起了很大作用。后来,又有了一个新的领域叫计算机摄影学。人们发现,照相机可以变成一个软件的模块,整个摄影的过程都用软件来控制可以产生很多奇特的效果。2011 年是一个较大的转折点,那一年人们真正觉得计算机视觉可以变成一个大的产业。以微软 Kinect 为代表,大家发现计算机可以理解动作,并实时的作出反应。2012 年,另外一个很重要的技术开始兴起——基于深度学习的图像识别。以前图像识别的准确率不是特别高,但有了深度学习之后,识别率逐年上涨,基本是直线上升。

 

由于识别的精确度提高了,以前人们想像的计算机视觉可能实现的应用真的就能用了。这些算法真的可以运用在实际中,这就促进了工业界的一些应用,比如车牌识别、游戏中动作的追踪、帮助医生检测疾病等等。

 

 

 

计算机视觉分为几个级别。一个是低级视觉,主要目的是抽取一些低级(基础)的特征,包括滤波、边缘检测、纹理抽取,然后提供给上层进行更好的应用。高级视觉则是拿到低级的信息之后,在这个上面来理解图像并做进一步的决定。还有一个是中级视觉,就是分析图像,让决定做的更准确。

 

 

 

在有一段时间里,计算机视觉里面最大的两大难题,一个是图像分割——把前景和背景分割出来。另外一个叫跟踪——视频里的人如何能一直跟着他,不丢掉。当时很长时间解决不了这两大难题,但现在可以解决得很不错了。

 

 

二、微软亚洲研究院的计算机视觉研究

 

微软十分重视计算机的基础研究,从长远考虑,所以我们很早就设立了计算机视觉相关的研究小组,并且我们在每个重要领域都有研究。

 

秉持着开放的心态,并致力于推动整个计算机领域的发展,微软亚洲研究院一直都很积极地在世界顶级会议上发表成果。CVPR(国际计算机视觉与模式识别会议)是世界顶级的计算机视觉会议之一,近6年来(2010-2015)我们在 CVPR 上共发表了94篇论文。除此之外,我们在 ECCV 和 ICCV 这两个世界顶级的计算机视觉会议上也都有很多的论文发表。

 

 

 

这些世界顶级的会议,接收论文的比例非常的低,要求很严格。这也就是为什么早在微软亚洲研究院刚刚建院的时候我们就有这样一个原则:我们要做最好的研究。怎么定义最好的研究?就是在该研究领域里最好的 5% 的会议当中要有 5% 的论文是从微软亚洲研究院出来的,而现在已经远远超出 5%了。

 

那么最近微软亚洲研究院都有哪些突破呢?

 

先从最近比较热门的 ImageNet 说起。斯坦福大学的李飞飞教授收集了很多训练样本和测试图像,她把这些物体分成 1000 个类别,基本上是按照做研究的角度进行分类的,然后来比能不能识别。在 ImageNet 2015 的比赛中,微软亚洲研究院视觉计算组的研究员们凭借深层神经网络技术的最新突破,以绝对优势获得图像分类、图像定位以及图像检测全部三个主要项目的冠军。其中的独门秘诀就叫深层残差网络(deep residual networks)。

 

计算机视觉技术的进展非常快,识别率越来越高,可以看到在 2012 年深度学习出现以后,识别的错误率有了突破性的改变。由于有了深度学习,错误率的下降速度很快,但降到越来越少的时候,再进一步的下降就越困难。之后 2013 年和 2014 年错误率慢慢的往下走,到了 6% 点多。2014 年的时候人们想说,我们人类在一千类物体识别中能做得多好?斯坦福的一个博士自告奋勇,他开始学习这一千类图像并去参加这个比赛,他的错误率是 5.1%,这是我们人类里比较杰出的代表。但是在去年年底的时候我们微软亚洲研究院的研究员,把错误率降到了 3.57%。这都是得益于深度学习在过去四、五年的发展。

 

 

 

2012 年多伦多大学的研究者有一个新突破——AlexNet,把神经网络做到 8 层。这批人以前是做机器学习的。之前做神经网络也就做到一两层,一般都是两三层,因为做深了会不稳定,就算不出结果了。2014 年剑桥大学的研究者把深度升级到 19 层。为什么基于残差学习的神经网络 ResNet 能够有那么好的成果?它能达到 152 层,而且还可以做的更深。

    

残差学习的想法是这样的:数据放进去后,计算机要学习一个函数,再在函数里面加一个值的变化。现在我们不直接学习函数,而是有一个粗略的值,这个粗略的值可能不是最精确,但是学习的是它和真的函数之间的残差。残差学习最重要的突破在于重构了学习的过程,并重新定向了深层神经网络中的信息流。

 

 

 

在图像识别中,比图片分类更加难的一件事情就是物体的检测。物体检测:有什么东西?东西在哪?在哪就要找一个框框出来,且这些框是可以重叠的。这就是人类以前做计算机视觉时候的一个梦想——拿到一张图可以辨认里面有什么东西。图片中框上方的数字表示的是概率,机器现在并不能说 100% 就是某个物体,只能说看上去概率很高的基本上就是了,这是行业里面的一个惯例。

 

大家刚才可以看到我只是用一个框把它框出来,比图像识别和物体检测还要更进一层的就是物体分割,不但框住,还把它真真切切的边界找出来。你拿一张图像来识别这里面有没有某个人,在图像级别我就说有或者没有,这是第一个级别。另外一个级别更细一些,除了要回答这里面有没有这个人,还要框出来。到了物体分割这个级别,就是像素级了,除了要回答这里面有没有人,还要标出来哪一个像素是这个人的像素,哪一个像素是背景的。这是三个级别,任务越来越难。

 

 

 

从这个图像中我们可以看到今天像素级的精准识别可以做到一种什么样的程度。每一个像素都可以很精确的识别,它是属于哪一个物体的。

 

ImageNet 是非常大的竞赛,其实在各个细分领域的竞赛微软亚洲研究院都有非常强的结果,比如在视频人脸识别的测试集上。近期我们在三个视频人脸标准测试集上都排名第一,且都有很大的优势。

 

和传统人脸识别的不同, 视频人脸识别的输入是视频而不是单张的图像。传统方法需要算法将第一个视频中每一个人脸和第二个视频中的每一个人脸一对一的做一个比较,然后取所有相似度的平均值作为两个视频人脸的相似度。而我们方法的不同在于针对不同长度的人脸视频,我们会产生一个固定长度的特征表示,然后可以直接比较这两个特征表示,这两个特征相当于两组人的 DNA,DNA 如果对上,就是同样的人。这样我们不仅可以节省计算,也可以节省存储空间。

 

我们采用的方法是一个对时序信号建模的新的有记忆的深度学习网络叫做组合网络,它可以做端到端的学习。Residue Network 解决的是单张图片的识别问题,组合网络解决的是视频输入的识别问题。

 

 

 

我们在计算机视觉领域的世界顶级会议上发表过很多文章,还有一些论文得到了最佳论文奖,其实最佳论文奖是很难拿到的,像每年在 CVPR 上最佳论文只有一篇。

 

我们来看看我们的研究员之前获得最佳论文奖的研究——怎么去雾霾?尤其是在北京,在生活当中去雾霾比较困难,那在相片里怎么去雾霾呢?这篇论文研究的问题就是图像的去雾技术,它可以还原图像的颜色和能见度,同时也能利用雾的浓度来估计物体的距离,这些在计算机视觉上都有重要应用(例如三维重建,物体识别)。

 

 

 

我们发现,在无雾图像中,每一个局部区域都很有可能会有阴影,或者是纯颜色的,又或者是黑色的。因此,每一个局部区域都很有可能有至少一个颜色通道会有很低的值。我们把这个统计规律叫做 Dark Channel Prior(暗原色先验)。直观来说,Dark Channel Prior 认为每一个局部区域都有一些很暗的东西。这个规律很简单,但在我们研究的去雾问题上却是本质的基本规律。由于雾总是灰白色的,因此一旦图像受到雾的影响,那么这些本来应该很暗的东西就会变得灰白。不仅如此,根据物理上雾的形成公式,我们还能根据这些东西的灰白程度来判断雾的浓度。因此,我们提出的 Dark Channel Prior 能很有效地去除雾的影响,同时利用物的浓度来估算物体的距离。

 

 

三、从技术到应用

 

那微软亚洲研究院的这些研究突破和技术又是如何应用的呢?

 

首先我先来给大家分享一些面向终端用户的应用。

 

2015年底,微软推出了一个「微软自拍」的应用很受大家追捧。上线一个月就有 100 万用户在里面。它有很多的核心技术能够把你拍得更漂亮更自然。或者有时候你拍的照片噪音很高,这通常是因为周围的环境比较暗没有足够的光子让它曝光。我们通过很多方法把其中一些光子重新合理利用,能够把照片的噪音去掉。还可以增强曝光,合理的说应该是曝光调整。

 

自然美颜:事实上,不同性别和不同年龄段的用户对自拍修图的要求差别很大。例如,一家三代同堂的合照,奶奶、母亲和女儿三代人的面部都被同样对待——修得同样光滑、毫无皱纹与瑕疵,那肯定不是我们希望看到的。男士也希望自己修图的效果能恰到好处的表现出男人的硬气和潇洒,而不是最后修出来的皮肤吹弹可破、嫩白细滑。

 

微软自拍在美化人像照片时,会自动识别图片中人像的年龄、性别、肤色和光照等因素,并基于此相应地消除用户不需要的皱纹、眼袋、雀斑、痘印等。但对于用户希望保留的体貌特征,如,头发、纹身、浓密的胡子等,或者面部出现的装饰物,如耳钉、鼻环、眼镜等,该应用则会尽量保持不变,最终使整个人脸美化效果更为自然。

 

 

 

如此简单通用的美颜操作,背后的技术却并不简单。首先,系统要对照片进行 JDA 人脸检测,检测出这张图片是否存在人脸,一共有多少张人脸,以及人脸出现在图片的什么地方。随后,系统利用特征点检测技术分析每一张人脸的不同五官需要什么程度的美化。微软自拍采用的是微软亚洲研究院在 2014 年 CVPR 大会上发表的论文中提出的 68 个人脸特征点检测方法。借用该方法,系统能够快速准确地检测出脸型和特征点。接下来,基于高层的智能方式,算法会对图片中的人脸进行信息提取,包括年龄和性别的判别。最后,该应用采用的「数字化洁面」算法会基于已经提取的面部信息对人脸进行美化处理。

 

 

 

智能降噪:智能降噪功能是微软自拍的一项「独门绝技」,在开启摄像头时就会针对周围环境进行判断。如果所处的拍摄环境光线条件不甚理想,直接拍摄到的照片通常会带有很多噪点,清晰度也会受到影响。在此时微软自拍会自动开启降噪功能,通过快速拍摄多张照片,并对其进行处理,最终生成一张平滑降噪的照片。正如大家所知道的,照片成像的噪声水平受手机或照相机本身等硬件条件影响极大,但购买高级设备则花费巨大,而微软自拍采用数字化降噪功能所生成的图片效果完全可与单反相机(DSLR)在三脚架上采用低 ISO 长曝光时间的拍摄效果媲美,从而为智能手机用户在夜间拍摄到高质量的照片提供了更好的选择,真正做到「硬件不足软件补」。

 

微软自拍在智能降噪功能的关键技术包括快速帧间对齐和多帧降噪技术。单张照片上的噪点是围绕平均值进行上下波动的,而如果把两张有噪点的图片进行叠加的话,就可以得出一张更为干净的图片。图片数量增多,照片中的噪点也会逐步下降。

 

但针对拍照过程中的手抖现象,如果只是简单地把连拍的多张照片进行平均叠加的话,则会产生重影的效果。因此,研究员对帧和帧之间采用了相机模型估计的方法,不通过传感器而是完全通过数字化的帧间对齐方法进行处理。其次,当帧和帧对齐之后,因为场景中深度有所不同,一个微小的运动都会导致同一个像素点在不同帧对应的物体不一样,所以如果只是简单地做图片平均的话,还是有可能导致图片重影。所以,研究员采用的算法会甄别选取一致的像素点拿来做平均,这个平均不仅是发生在时间域上也会发生在空间域上,从而让该降噪算法对于无论是人脸照片还是非人脸照片都有着非常理想的效果。

 

 

 

增强曝光:相信大家都碰到过想要拍摄的场景受限于角度、光线等问题从而导致逆光拍摄的情况,而微软自拍的自动曝光功能则能对照片进行针对性的区域曝光调整。例如一张逆光的照片,人脸和所有逆光的景物,相对比背景都显得十分暗淡。或者是面对阳光的照片,受光面十分耀眼,并且人脸难以获得自然的表情。这种情形下,对拍摄到的一张照片进行后期处理的话,传统修图应用通常会全局地调整画幅中的光线情况,即会出现前景拉亮的同时,整个背景光线过亮,甚至出现过曝的情况。

 

面对这种情况,微软自拍会自动对画幅中各区域进行曝光分析和调整。首先系统会自动检测背光情况,并对各区域提供最佳的局部曝光补偿,避免整体图片调整而导致图片过度曝光,并保证照片在能够看清逆光景物的同时保持照片的层次感。而针对风景照常见的薄雾情况,研究员还开发了去雾算法。该算法能与曝光校正算法融合增强照片的清晰度,从而达到使用紫外线滤镜(UV)或圆偏振镜(CPL)的专业级照片效果。

 

再来说说,微软亚洲研究院人脸识别技术的又一个应用。我们在跟产品部门的合作中发现了人脸识别可以做的很准。以前我们在推Xbox 时,很多人抱怨不稳定。后来我们发现一个方法——假如用红外线的话,永远是准的。为什么呢?之所以不准不是因为算法的问题,而是视觉算法对光的敏感度很高,会受到光强弱的影响。红外线的光就很稳定,不受这些光的影响。于是我们通过大量的实验推出了 Windows Hello,它与 password 有一致的安全率。因为它的错误率低于 10 万分之一,连双胞胎都可以分辨出来。当然它还有反干扰的功能,用照片和视频来伪装成电脑主人是无法通过的。为了反干扰的算法,我们甚至请了著名的黑客,他的任务就是攻进去,几个星期没有攻进去,这就算是过关了。

 

除此之外计算机视觉技术在微软的产品上还有一个应用。为了方便用户可以更轻松的从众多照片中找到自己想要的,微软的 OneDrive 增加了图片识别功能。该功能会自动为用户上传的照片创建标签,比如人、狗、沙滩、落日等等,使用户借助标签能够更轻松地寻找到自己想要的图片。输入关键词或标签,就能搜索出心仪照片。

 

这个技术是利用微软亚洲研究院实现的一种称为「空间金字塔聚合」(Spatial Pyramid Pooling,SPP)的新算法——通过内部特征识别,而不是每个区域从头检测,对整个图片只做一次计算,在不损失准确度的前提下,物体检测速度有了上百倍的提升。

 

再有大家很熟悉的微软小冰,里面也有很多图像识别技术。最有名的是小冰识狗,它可以把狗认出来,还可以和明星挂上钩。它能够识书,你要买什么书,让小冰看,它就可以认出来,告诉你哪里可以买到,而且告诉你书里面的信息。

 

另外,小冰还可以通过人脸识别技术猜测人与人之间的关系,或者对人的性格做一些分析。

 

颜值打分也很受欢迎,你发照片给小冰它可以给打一个颜值(分数)。现在网上相亲的话,就可以发一张照片先让它打一打分嘛。

 

 

 

而对于开发人员,微软亚洲研究院计算机视觉技术也有相应的应用。在 Build 2016 微软开发者大会上,微软发布了最新的智能服务:微软认知服务(Microsoft Cognitive Services)。该服务集合了多种智能 API,借助这些 API,开发者可以开发出更智能、更有吸引力的产品。微软认知服务集合了多种来自 Bing、 「微软牛津计划」 等项目的智能 API。应用了这些 API 的系统能看、能听、能说话,并且能理解和解读我们通过自然交流所传达的需求。同时,服务中所包含的知识 API 可以通过强大的互联网来助力广大开发者。借助微软认知服务,开发者们就算没有人工智能的知识背景也能轻松开发出属于自己的智能应用。目前这套认知服务包括视觉、语音、语言、知识和搜索五大类共二十一项 API。在此基础上该服务还会持续增加新的 API,并不断更新现有的 API。

 

视觉是微软认知服务的一部分,视觉类里面有计算机视觉 API,情感识别 API,人脸识别 API 和视频检测 API。

 

有了这些 API 之后就开发者不需要自己再花很多时间去开发这个技术了,直接用几行 Code 就可以调用,并生成 APP。

 

我们现在提供的 API 功能马上可以识别图像、估计年龄、识别男女、识别是不是有成人的内容,如果是成人的东西就要屏蔽掉。程序员比较关注的是这些框把具体的位置和信息都告诉你了。还有一些程序员很关注的数据这里面也都有。

 

此前,红遍全球的应用——How-Old.net(微软颜领机器人)。这款应用花了多长时间去开发呢?其实很简单,就是用 20 几行代码去调用微软认知服务中的 API,就可以写出来这样很智能的应用。除了这些之外,情感识别 API 还可以帮助我们知道图片中人的表情怎么样,他的喜怒哀乐。

 

 

 

除了图片,视觉类 API 中还有专门针对视频的 API。目前开放的 API 能够自动实时的对视频进行分析和编辑,其中包括稳定处理、人脸检测及追踪和运动检测这三大功能。

 

稳定处理:稳定处理技术主要解决的是视频拍摄过程中出现的抖动、不平稳的问题,如手持摄影等第一人称视角视频中常见而不可避免的抖动问题等等。用户上传了原本剧烈抖动的视频之后,通过云端对视频进行快速编辑,几乎能实时生成一个更加平稳、流畅与清晰的视频。

 

人脸检测及追踪:这项技术能对视频文件中出现的多个人脸进行持续检测与追踪,并对不同人脸进行信息甄别,以区分不同的人脸。例如亲友聚会的派对视频、安防摄像头拍到的视频等都可以应用于此,找出某一个到多个特定的人脸在视频中的持续动态。

 

运动检测:简单的来说,这项功能可以检测出视频画面中有无运动行为等变化。随着各种智能摄像头的大量普及,这项技术在区域安全监控领域有很大的应用。例如,在家庭中,为了让儿童远离厨房等危险区域,可以利用该功能对某一区域进行运动检测,如果检测到有人或物体(儿童)进入该区域,会及时得到警报提醒。再比如,对门窗区域进行运动检测,如果有开门翻窗等动静,用户也能得到及时提醒。

 

现在大家也越来越感觉到计算机视觉技术真的很火,在我们身边已经有很多计算机视觉技术的应用。未来还会有哪些应用场景呢?我给大家放一个视频。

 

 

 

正如这位盲人工程师说的,这只是一个开始。未来,我们的应用可能有很多。当然为了让机器人能看的见并更好的服务,计算机视觉一定会在机器人领域有很大的应用。安防和控制也很普遍;还有文化遗产保护,将一些文物古迹进行数字化,微软已经在保护敦煌莫高窟方面与敦煌研究院有一些合作,有专门的摄像机保护那些洞窟里的壁画和佛龛,当然自动无人车的驾驶也需要计算机视觉技术和物联网。

周排行 更多爆文 >

大家都在关注 更多公众号 >