人工智能历史上的三次黄金时代是什么?这次有何不同?视觉智能应用成功的关键因素有哪些?本文通过众多的成功实例和遍地黄金的视觉计算应用机会,对这些问题进行探讨,并试图讨论云上视觉智能的终局。
注:本文整理自阿里iDST科学家华先胜在全球人工智能技术大会上的演讲。
今天和大家报告的主要是近两年在阿里云上做的视觉智能方面的工作和一些思考。
首先看一下人工智能的三次“春天”。
第一次是在20世纪50年代,人工智能的概念首次提出,大家觉得人工智能在20年之内会改变世界,所有的工作都会被人工智能颠覆。但是后来很遗憾,10年以后发现不行,大家很失望。
第二次是80年代,神经网络的提出,BP算法的提出,以及专家系统的初步结果,大家又很高兴,人工智能又要改变世界,取代很多人的工作,但是后来证明还是不行,人工智能又一次进入了低谷。
第三次就是今天,这次是不是真的春天呢?昨天有一个论坛也在探讨这个问题。这次有一些不一样,有很多不同的观点,有人认为深度学习取得了很大的突破,计算能力大大提升,数据更多,网络带宽也大大增加。还有一个很重要的原因,我们已经看到一些结果,虽然这些结果离真正的智能还差很远,但是在一些领域已经取得了非常不错的结果,不管是只有PR效应的还是真正在产业界的应用,都有一些可喜的结果。
云上的大数据视觉智能
人工智能技术将会改变哪些行业?我们先从视觉的角度看一看,视觉智能可以从云上做,也可以从端上做,我们今天就从云上来看。我们看看现在发生了什么样的事情,其实有的是发生了很多年的事情。
大家看这些图,左上角是交通的监控场景,右边和左下是治安和教育的场景,最后一个是直播。直播是主动的,前面三个是被动的。这些大量的数据,其价值有没有被充分发掘出来,这是一个很大的问题。
例如,在全世界有数以亿计的摄像头,中国占了一多半,每年有几千万的摄像头被采购,中国一个一级城市里就有几十万的摄像头。大家可能也注意到一些,这些摄像头的数据到底是怎么被利用的,大家开车可能被处罚过,还有交警的控制中心经常要巡检查看,公安局里出了什么案件也需要调录像查看。仅有这些吗?投入了这么多,这些视频的价值怎么才能充分被挖掘出来,这是一个很大的问题。
再看个人的图像和视频数据,这个量也挺大,和我们每个人切身相关。我们每到一个好的地方、有好的风景,自己看没看没有关系,一定要让相机“看”一下。另外还有各行各业的数据,比如无人机的数据、工业的数据、医疗的数据,以及体育、娱乐、新闻等等。这些大量的数据,在技术往前发展了一大步的今天,它们的价值能不能充分挖掘出来?
我们处理这样的数据,就是一个视觉大数据的问题。它的特点是显而易见,第一就是数据量非常大。视觉数据量最大的地方就在城市里面。有一些电视台有100万小时的数据,已经很多了,后来想一想,如果一个城市里有10万个摄像头,跑10个小时就是100万小时。第二是很多应用有实时性的要求。例如,交通红绿灯配时的自适应优化,就需要实时进行分析,实时做出决策。
第三点就是数据的复杂度非常高,各种情况下的数据都有,各种应用的数据都有,数据的干净程度和质量都有很大的不同,需要完成的任务、开发的智能也都是不一样的,这就对算法的普适性提出了很高的要求。
视觉智能的五要素和现状
我们首先回顾一下现在的技术和数据等各方面是不是准备好了。
第一方面,从算法的角度来看,准确率是我们首先关注的目标。我们经常看到这个公司又刷新了一个公测集的记录,包括我们自己最近也刷了一个车辆检测的记录。这是不是说明视觉智能已经很厉害、已经超过人了?在现实的应用当中往往是非常残酷的,公测集上的结果往往只是一个开始,在实际应用中还需要很多非常繁重的工作,才能使得我们的算法在一个行业里做到可用。
其次,从覆盖率上来讲,这个问题就更大了,在座的各位可能很多都是学生,我们在写论文时很少有人关注覆盖率这个问题。覆盖率是什么意思?如果从识别的角度来讲,就是识别的范围足够大。这个问题很有意思,例如,ImageNet中1000类物体场景的识别,我们拿到真正的应用场景里去看,是远远不够的;或者说,实际应用场景感兴趣的常常不是这些类别,也就是说这些还没有覆盖到用户需要的地方。你要覆盖全世界是非常难的事情,但是不见得是不能做的事情。
几年前我在微软还尝试做过百万标签识别的问题,这个准确率当然很难做得高,但是在一些场景下也是可以用的,例如搜索。覆盖率在视觉搜索中的体现,例如,能搜衣服,不能搜鞋子不行,不能搜其他东西也不行。用户的使用体验往往与覆盖率有非常大的关系。
第二方面,计算效率。效率决定了这个事情可不可能发生,比如我们要处理城市几十万的摄像头,需要花几十亿就完蛋了,这不是成本的问题,是这个事情可不可能发生的问题。从计算的角度来讲,不仅仅是计算的效率,还有计算的平台,尤其是当你处理大量数据时,不是一两台机器,而是百台、千台、万台时,就需要处理系统和流程的问题,比如说容错、流程的控制等,这就需要一个大的计算平台来支撑。
从计算来讲,效率是非常重要的,包括平台的效率、计算节点的效率。例如,一台计算机放多张GPU卡,这些卡如何充分利用起来。还有算法本身运行效率的问题。刚才我忘了说一句,关于算法的一个结论:我们确实有很大的进展,但是还有很长的路要走。对于算法而言,只有把计算的效率发挥到极致,算法的优势才能发挥到极致。
第三方面,数据。这也是争论最多的问题,昨天也有一个论坛讨论数据的问题。大家经常发现数据的威力有时会超过算法,当然如果只是学生作为借口,做不好算法说是数据的问题,那是另外一回事。在昨天的论坛上也一直讨论数据和深度学习算法的问题,实际上数据的使用有两个方面的问题,这个还是一直没有说清楚。
数据的作用到底在哪里?我觉得很多时候大家只是关注了数据对算法研发的作用,但是这只是其中一个作用;而数据对智能本身是另外一种作用,而且是很重要的作用。没有数据,就没有从数据产生的智能。至于没有大量数据是不是就没有深度学习算法,这个还可以商量,也许少量的数据也是可以的,但是作为智能,尤其是强人工智能的话,如果没有大量数据恐怕是不可能的。
所以,数据是有两个维度的作用在里面,数据本身是算法研发的原料,同时数据又是产生智能的原料,这是数据的两个作用。数据本身也有很多的困难,数据量大的时候,包括采集、传输、接入、融合和存储等各方面都不是简单的事情。还有非技术方面的困难,尤其是数据的开放,其实在中国这件事情已经比西方国家好得多了。在中国,大家对数据开放没有那么纠结,这也是人工智能在中国获得更快发展的一个很重要的原因。
第四个方面,刚才讲了人工智能风声水起,视觉计算遍地开花,但是,花开了,能不能得到结果?就是你做的事情是不是个正确的事情,是不是真的事情。有时候看起来是个真事情,其实是个伪课题、伪需求。昨天也有人提到伪需求,我们在实际当中确实是会碰到的。客户有时提出的需求,仔细想一想可能就是伪需求,也就是说不是一个能够带来真正价值的需求。
无论你带来的价值是节省了人力、降低了成本,还是提高了安全性等等,这些都是要非常明确的。如果这些不明确,你就没有一个商业的模型和应用,没有明确的商业应用,没有持久的商业应用,这个AI也就不能持久。
总结一下,一共五点(有一点没有直接讲):算法是安身立命之本;计算平台保证算法能大规模处理大量数据,也是计算效率的问题;数据,一方面是算法研发的原料,也是产生智能的原料;用户这个要素刚才没有单独分析,但它与商业模式和数据是非常相关的。商业上,有大量的用户使用,或者说用户少,使用的频率比较高也是OK的,而用户本身也能产生数据。例如,搜索引擎就是利用了大量用户的数据,每个人对搜索引擎都是有贡献的。商业刚才讲了,合适的商业模式,保证你做的是正确的事情,不是虚假需求。
视觉智能实例:拍立淘
下面讲几个例子,有的是已经做好的,有的是正在做的。
首先看基于图像的商品搜索。我们今天讲的是视觉的搜索,是通过拍照的方式搜索商品。淘宝上有一个功能就是拍照搜索,叫做“拍立淘”。它要解决的问题就是文字之外的搜索入口,是无法用简单文字描述的搜索需求,是种简单直接的搜索方式。如果这个应用每天的用户和交易量在千万级别的话,还是很有价值的。
这里关键的技术包括商品识别、商品检测、和商品描述。首先,用户拍了商品照片后,要做出精准的商品类型判断,不然后面就全错了;然后要知道这个商品在图像中的位置,再用一个深度学习网络做特征提取;后面还有检索、排序、搜索质量判断,以及结果呈现。这里的几乎每一步都是用深度学习来完成的。
我们来看几个例子。这是同一个包,但其实图像是不一样;这是一只鞋子,虽然我们没有找到同款,但找到了非常相像的款式;这是一件圆领衫,没有什么显著的特征,比较难做,但也是找到了很像的衣服;这个杯子是一次开会的时候看到的,你要用文字搜就说不清楚了,但用图像找到同款却易如反掌。
还有个例子,是和朋友喝茶的时候,看到这个泡茶杯太好了,我之前没有见过;杯子上面有一个红色的按钮,就是水倒下去后,水是在上面泡着茶叶,觉得泡的浓度差不多了,就可以按这个红色的按钮,茶水就流下去了。我想买,但不知道这个杯子叫什么。好在我们有拍立淘,一拍就知道,这种杯子叫做飘逸杯,淘宝上有很多可以选择。
视觉智能实例:城市之眼
视觉之眼,是城市的眼睛。我们要处理的是城市的摄像头,不管是交通、安防、城管,还是个人的,这些摄像头的数据,我们思考怎样把它的价值挖掘出来。里面涉及到的技术仍然是视觉数据的检测、识别、系统、搜索、挖掘等。
这个例子是交通视频的分析,对车辆的检测、车辆的跟踪、车辆的属性,就是将路面上发生的事情了解个底朝天。过去做交通优化的时候有两个信息源,第一个是地感线圈;但线圈数据不知道这个车的属性、车类型、车多长,这个车到哪里去了,这个信息不全。第二个数据,是GPS的数据;但一般只有少数人开启GPS,所以是采样数据。视频数据不同,是“眼见为实”,摄像头见到的才是真实完整的数据,所以这个数据是不可替代的。
这个例子是另外一种摄像头,高点的摄像头,虽然细节看不清楚,但是数数可以数得出来,而且,你任意画一个区域就知道关于这个区域物体的移动情况。比如说经过多少辆车、大概的类型是什么;有的地方不让停车,你可以画个区域不让停,一旦有车停了就报警。
这些技术也没有什么特别的地方,也有很多人做类似的工作。但是有一件事情不同,就是如果处理大量这样的数据,几万、几十万这样的数据,你需要在一个平台上进行实时处理,这就不是一个简单的事情,而且处理的效率要足够高,这是很关键的事情。我们有离线和实时两套处理系统,大规模离线视觉分析,这个是阿里的一套系统,对实时性要求不高的大量视频数据,离线比较容易处理。实时的原理也差不多,只不过有延时方面的要求。
系统实现上,还有时间上的和空间上的实时协同。比如说,对一个路口的交通灯进行管控,你要看这四个路口,还要看旁边几个路口,你在实时分析的时候还需要把空间多路信息进行融合。时间和空间的协同问题,是由平台来支撑,而不是算法,这样我们做算法的人员就可以集中在算法的设计和优化上。
还有搜索的功能,刚才讲了电商的搜索,这个量级不小,但是还有一个量更大的就是城市的数据。城市的数据量太大了,里面有车、有人。人是非常难的事情,人脸相对容易,而看不清人脸的人就非常难;车相对容易一点,我们要学习它的结构化特征和它的非结构化特征,也就是用一个向量表示的视觉特征。
这里我稍微岔开来讲两个关于视觉数据的特别的例子,其实也是城市视觉识别技术的例子,但又是在数据的量上和我们直观的感受并不太一致的例子。第一个是车牌。数据这件事情是非常有意思的,刚才讲了大数据,但是刚才讲的数据一个是研发算法的原料,第二个是人工智能的原料。对于算法研发而言,往往需要大量的标注数据,但有时这样的数据并不容易获取,或者获取的成本比较高。例如车牌的识别,车牌看起来数据量很大,但双层黄车牌的量就要小很多。
有一种思路就是自动生成一些车牌作为车牌识别的训练数据,这两幅图就是例子,是算法生成的以假乱真的车牌。这个车牌产生以后,对识别的准确率有显著性的提升。还有些场景,数据的获取更可怜,比如事故,但是你有大量正常的样本,一样可以用来作数据的模型,把它作为异常检测的问题来做就可以了。这上面是公开测试级上的结果,视频中间有人撒了一点纸,这个异常的检测响应是非常明显的;下面的这个例子是车辆的刮蹭,是个真实场景,难度就大多了。
从搜索的角度来讲,我们把整个城市的数据如果都收集起来,放到一个大数据里,建好索引,大家脑补一下,将会对城市的交通优化等应用产生什么样的影响。如果我们再进一步挖掘数据的价值,有很多应用场景可以考虑 ……
视觉智能实例:视觉诊断
第三个是视觉诊断,包括诊断人和诊断机器。诊断人比较好说,就是医疗图像分析,现在也是很热的题目。当然它比其他的方向慢了半拍,一方面由于数据收集的困难;另一方面是需要很强的专业知识。机器诊断是还没有开发的方向,它的问题有点像前面提到的异常检测的问题,有发生概率很低、正例样本很少,以及正例样本差异性大三个特点。
举个例子,1万个样本,只有10个有问题是你要找出来的。但是你找不准那10个,只能说找出100个,那10个就在100个里面。这时你的召回率是100%,而准确率很低,只有10%。但是,这有没有用?我们算算省了多少人力,省了99%,因为你只需要看100个就行了。哪怕只有1%的准确率,只要召回率足够,也省了90%的人力。
所以这类问题的目标不一样,衡量的标准也是不一样的,省人力是非常重要的指标。其实这里面涉及到各行各业的视觉问题,凡是过去需要人眼来看的,是不是都可以用视觉的方法来解决。从这个角度来讲,就是遍地黄金,很多地方都可以挖到黄金,不见得出来一个视觉创业公司就一定要去做人脸识别。
视觉智能实例:视觉广告
前面三个是偏分析、搜索的,第四个方向——视觉广告,是合成的方向。视觉广告是将视觉数据变现的最直接方法,特别是对于娱乐的数据、个人的数据、新闻、电视电影等这些数据。这些数据怎么发挥更多价值,除了人看以外,广告是很重要的方法。但是增加广告后用户的观看体验就很差,大家如果看过网上的视频,应该有深切的体会。那广告是不是可以做的更好一点?我们看几个例子。
例如,可不可以把广告放在场景里,作为场景的一部分?当然,这个已经有人工在做这样的事情,但是人工做不了大量的内容。如果可以自动化,就可以用到大量的视频中。像下面这个例子,把视频中电视机的屏幕部分换成广告视频。这样的广告既不耽误观看者欣赏视频的内容,也不占用观看者的时间,但实际上它已经潜移默化地影响了你。
云上视觉智能生态
阿里云上的视觉技术有一个统一的名字——阿里云眼,是阿里云大数据平台的智能视觉中心,这是它的总图。回到一开始提出的问题,人工智能将会改变什么行业,答案就是智能将进入各行各业,Intelligence Everywhere势不可挡。
但是,人工智能的从业者也是很容易翻船的,因为你需要这五个要素齐备。还有一种选择,就是你可以加入到一个生态里。终于回到今天讲的主题上来了——打造云上视觉计算的生态。不仅仅是视觉,其他智能也是一样。在云上可以搭一个舞台,这个舞台不仅仅是大公司在玩,小公司也可以玩,个人也可以玩。不管是哪个层次的智能,基础API、功能模块和解决方案都可以。
这个舞台上还有一些基本的道具可以使用,例如搜索引擎、机器学习平台、大规模视觉计算等,还有最基本的计算和存储,这些东西都可以利用起来,大家都可以在这个平台上玩。其实,整个云上的智能也不是一两个公司可以完成的,各行各业的需求量非常大,需要很多人一起努力,把这个生态一起繁荣起来。