雷锋网按:本文根据2月27日阿里云视觉计算团队负责人华先胜的视频采访整理而来。
华先胜,北京大学应用数学博士、IEEE Fellow、ACM2015年度杰出科学家、MIT TR全球35位35岁以下的杰出青年创新人物,曾担任ACM Multimedia等大会程序委员会主席,是视觉识别和搜索领域的国际级权威学者。于2016年7月加入阿里云人工智能研究机构iDST科学家团队,带领阿里云视觉计算团队的研发工作。
我在2015年加入阿里,之前在微软待了14年。第一年加入阿里巴巴,实际上在搜索事业部,不在阿里云,那个时候解决的是搜索的问题,也就是以图片搜商品。这个题目是上个世纪末就在做的,真正取得进展也是在近些年,我在那一年主要做的就是这些事情。把图片搜索商品这件事情从比较初步的状态,做到一个我个人认为是世界上最好的一个状态,因为它真正能够使用了。
那么在大约一年前,我就到了阿里云,这个原因是因为云上的视觉计算需求量非常大。我们视觉计算团队成立以后就针对几个大的场景,包括监控、交通、安防、人脸、个人图片、医疗等,其中最重要的一部分实际上是城市大脑里面的视频分析,这里面的突破,我觉得可以分为几个方面:
第一点,是大规模的视频分析。因为我们处理的城市数据量是非常大的,甚至远远超过电商的数据。这里面涉及到我们要去实时大规模处理视频,所以要依靠阿里云的计算平台,再加上视频分析的一些特点,构建这样一套大规模视频数据分析平台,包括它的计算效率,因为这个数据量非常大,你必须有非常高的计算效力才可以在可控的成本下完成这么复杂的事情。
第二点,把电商的搜索技术,也延伸到城市的场景里面来。因为城市视频数据图像数据那么多,当然就有查找的问题,比如一辆车、一个人、一件物等等,我们把电商里的以图搜图应用到城市的场景里面来,可以叫做“城市图搜”或者叫“城市搜索”,专业一点的语言可以叫“索引整个城市”。当然是从视觉的角度来做的,这个其实也是非常困难的一件事情,我们在这方面也是取得了一些突破。
第三点,是在交通或者公开场景下,对特殊事件进行检测和识别。比如说,交通事故、违章停车、横穿马路等,我们做了深入的研究。
下面我给大家展示其中的一些技术。
第一个是城市搜索,这个是以车为例,城市里面的车流是很多的,这些信息都可以放在一个数据库或者索引里面,你有一些关于这个车的一部分信息,比如说车的图片、车牌、车牌的部分信息,这些信息哪怕部分车的特征(比如说红色宝马或黑色宝马X5等信息),都可以在这个系统里找到这个车在城市里面哪里出现过。不过大家不用担心,这个系统不是任何人都可以访问的,都是交通部门或者安全部门可以访问到,所以大家不用担心你的信息被泄露。
这个是刚才讲过交通优化,必须对车流有一个非常完整的认识,比如说像这里,可以看到我们对车辆的检测、跟踪,还有车型的识别、车牌的识别,还有车的走向识别,其实我们还有行人识别,都要有一个非常全面的了解。
这个是对速度的估计,我们通过视频的角度,而不是通过雷达。我们可以测算出车流的速度,这对于交通优化来讲也是非常关键的一个因素。
我们还有对人的搜索,这个还不是对人脸的搜索。因为在城市的环境下,其实很多情况下,人脸并不是很清楚的,反而你只有一个人的大概轮廓,和一些大概的特征。所以,这跟人脸的技术还是稍微有点不一样的。
下面这个例子,是我们把视频的商业价值更进一步发挥起来。比如我们在视频里找到可以嵌入广告的地方,不管是张贴画的广告还是物品的广告。这个是张贴画,这个左边是原来的视频,右边是我们贴了一个画。我们可以把这些画面嵌进去,就像原来视频里本来就有的画面一样。
另外还有关于人脸技术方面的一些应用,比如说虚拟时装,我们在虚拟试衣的时候,通过一张照片合成3D人脸模型,换成用户的脸,这样就能够更有真实感。当然还有虚拟试戴,像这里,我们在手机屏幕上也可以看到眼镜戴在用户眼睛上大概是什么样子。
人脸和人的关键点的跟踪功能,是很多应用包括试戴应用必须具备的一项技术,而且要到手机端实时做到非常精准,否则就会出问题。像这个是有点好玩的应用,因为对人脸能够进行跟踪,就可以进行改造,变成一个或搞笑或恐怖的一个场景。
下面这个,已经是产品了。我们拍立淘里面有时装的部分,比如说这儿,她试一个口红,这个当然都在手机端实时完成的。这个时候要做得非常精准,因为口红颜色稍微变化一点就比较难看了,多一点少一点都不像,所以对算法的要求是非常高的。
这个问题是这样的,我们首先要对整个城市的状况、交通状况有一个全面的清晰的透彻的了解。什么叫全面呢?我们要“看全”,因为这个城市的摄像头是非常多的,这就涉及到刚才讲的大规模视频处理,也包括以前在交通领域里面还无法获取的一些信息,比如说行人的信息。以前的交通模型其实是没有办法使用的,因为没有办法获取这些信息。在以前,车流的信息可以通过其它手段得到一部分,比如说通过地面上的感应线圈也可以得到粗略的信息;不然是通过GPS采样信息,但是这样获得的数据也不够完整。那么视频的信息是可以看得非常完整的,可以看到整个车流、人流和非机动车。
所谓的“看清”,从技术上来讲,就是要把经过车子的数量,车的类型、车牌、走向、速度等信息都要提取出来。还有行人的信息也要看清楚,到底多少人在占用人行横道,这个对交通的优化都是非常重要的信息,过去是很难获取的。而且我们还要“看得透”,指的是挖掘大量数据之间的关系,从而发现规律,或者说发现他们之间的相互制约性,从而得出决策。
我举一个例子,比如说在交通的优化当中,我要优化红绿灯,不能只看某一个路口的信息,要看很多的路口,因为你如果把这一个路口解决了,有可能别的路口堵了。我听一个交通部门的人讲过,曾经有一个城市做优化的时候,看到一条路上,觉得这个路面机动车和行人争抢道路,引起了交通堵塞。他就想了一个办法,修了一条地道,车走下面,行人走上面,这真的是解决这一部分的道路非常的畅通。可是这一条路的下一站,到最后是什么呢?是一个火车站,所有的车都堵在火车站里头了,这其实是一个局部优化,有时候看上去解决了当前的问题,但没有解决整体问题。有了这个以后,才是交通模型。那这方面,其实过去很多的交通专家也做了很多工作,也有很多值得借鉴的地方,也有很多成果,当然对于交警来讲也有很多实战的经验,这些对我们交通优化都有非常重要的作用。作为我们云计算公司来讲的话,是要在更大的数据下,更准确的数据情况下,获得更全、更透、更清晰的数据。再加上交通专家的研究成果,加上交管部门实际的经验,我们一起来解决这个交通的建模、交通优化问题。
通常来说我们看到车流情况后,可以对红绿灯进行优化。有一种方法是根据每天的规律,或者每周长时间的规律,对红绿灯做一次性离线的优化。有一个配时方案,星期一早上几点到几点是什么样子的,中午、晚上是什么样子的,星期二是什么样子的,每天不一样的方案。
刚才讲的交通事故需要实时调控,这里面也可以分两类,一种是已经堵起来了,在还没有堵死的时候已经看到这个趋势了,可以对红绿灯进行管控,一个方向时间延长,另外一个方向减少时间等,对红绿灯调控。另一种更聪明的一点做法,我们如果观察到一些事故,就对它的规模、可能带来的交通问题做一个大概的估计,提前进行疏导,这是可以做到的。
阿里云的计算平台,叫做飞天系统,你可以把它看作是一个超级的计算机。对于视频而言,当然我们在这里面也会有一点特殊的地方,因为视频处理有它的特点,比如说数据量大、吞吐量大、计算消耗也非常大。我们在这个基础上,跟计算平台一起,让计算平台能够处理这些视频数据。用比喻来说,就是它能吃得进去,消化得了,并把这个营养吸收得了,最终产生结果。
但这里面的视频处理有特殊性:视频处理有时间上的相关性。比如说我们对某一当前时刻图像进行处理的时候,是依赖于前面的若干时刻图像的,所以在视频里面要很方便地处理这种逻辑。再比如说像交通的场景下,甚至是我当前的视频需要跟别的好几路视频合在一起才能形成一个决策,比如说像红绿灯的管控,我光看一个路口的一路肯定是不行的,甚至光看一个路口的四路也不行的,我要看好几个路口一起来决策,这就是在物理的空间上也是有相关性,我经常把这叫做“时空的相关性”。在这种情况下能够顺利完成计算,从而实时得出决策,这都是通过平台才能达到的。对于算法专家来说,更多的精力是放在算法的研发上,提升算法准确性和本身的计算效率。
有几个方面,第一个就是刚才提到的,我们在云计算上,必须立足于大规模的视频分析,所以对于算法的优化是非常非常重要的。比如说,我们前不久也做了很多的优化工作。比如我们对车的检测分析识别,最初的版本,一帧图像在CPU上的处理需花费2600毫秒,这个其实是相当慢的。后来我们跟英特尔合作,利用英特尔的CPU上的优化,在单核上压缩到900多毫秒。后来我们再通过算法本身的优化,包括模型的结构优化,参数的优化等等,就降低到130多毫秒,这又提升了很多倍,整个提升了几十倍。这几十倍的提升,听起来可能没什么感觉,但对于大量的计算资源来讲是非常重要的。如果你只要一台、两台机器做事情,还不是太大的问题,假如你要1万台、2万台机器同时运行,那就是一个很大的事情了。这个量的相差是非常非常多的。所以大规模计算的效率也是非常重要的方向。
另外一点就是继续深入行业,在各行各业里面去挖掘金矿,让算法在里面能够得到优化和深入,把这个行业吃透,为客户带来真正的价值。当然还有像深度学习本身算法的研究还是有很大的空间,这也是我们接下来要做的事情。
我认为,一个成功的人工智能应用,应该具备五个条件。
第一个是算法。你要有好的算法,你的算法要有先进性,你的算法不行一切都没有了基础。(当然你也可以把算法这一个条件看做是科学家,因为人才和算法是紧密相连的)。
第二个是要有数据。数据本身就是一个很大的话题,里面有数据的采集、搜集、清洗、有效的标注,甚至包括算法里面数据怎么使用。
第三个是用户。你做的这个东西应该有用户的,因为有很多问题是需要用户参与才可以做得越来越好。当然你从商业的角度来讲,没有用户的话也不能够长久。用户本身是数据的消费者,也是数据的提供者,这过去在搜索引擎里面有非常重要的体现,可以说搜索引擎的技术能够做那么好,每个人都有contribution的。
第四个就是平台。这个就是涉及到你要有强大的计算能力和一套体系架构,能够方便地去研发、部署和生产,这一套是必须要有的。当然现在因为有云计算,所以这部分的瓶颈,对于很多企业来讲已经没有过去那么困难了。
第五个就是有好的商业模式。如果没有好的商业模式,就不可能长久。你做一个事情,低频的事情没有多少人用,或者不能给少量用户带来大的价值,最后产生的总体价值不够的话,其实是很难长久的。这几点,我个人觉得其实是都应该具备的。当然了,可能不同的商业应用,应该来说可能有不同的侧重,但是我觉得都应该具备。
关于这个问题,有很多的争论。我说说我自己的观点,我们有很多公司确实是以算法起家的,但是我觉得算法之间的差异,可能会逐渐越来越小。尤其是现在基于深度学习的方法,以及包括很多开源的出现,对于内行人而言,或者叫高手之间,他们之间算法性能的差异其实不会太大。比如说人脸识别,在AFW上面,大家测试的差距都在小数点后面一位两位的,没有太大的差距。像ImageNet 也一样,差不多都是99.6%、99.7%这样子,都是不难达到的。那这些对于内行人而言没有太大的差距,但是在真实场景下应用的时候还会有差距,随着时间的推移,大家都在实战当中磨炼的话,都不会差距太大。甚至包括数据的优势,也会减少,很多的公司,不管是大公司还是创业公司,做得稍微早一点,积累了大量的数据,不管是标注的信息还是算法在练习当中搜集的反馈,随着时间的推移这部分红利也会逐渐减少。
什么是具有竞争力的东西呢?这个问题很好,我觉得可能还是要看平台和商业应用。从商业模式上来使得自己的竞争力具有长久性,尤其是在细分的这个行业,你做到非常精深。因为这部分并不是那么显而易见的,并不是说随便搞搞,我们就都是90%几之类的,这个需要你精耕细作的,需要你深入这个行业,结合真实场景数据的一些特点,才能够逐渐把这个行业吃透、打穿,才能够有一席之地、成为高手。那么这个的话,其实是可以有差异化的。因为这个行业非常的多,其实大家不见得一定要挤在一个独木桥上,一定要去刷通用的图像识别这些东西,或者是非常火热的一些领域,其实有很多路可以走的。
我们确实也要冷静看待一些问题,有几个角度来看到。比如说现在的识别就已经做到真的那么好了呢?大家可能有一些体会,这个准确率的数字好像很高,但是在真实场景下,有时候也不那么好。我举个例子,像大家比较公认的ImageNet比赛,有数百万张图片,进行1000类的分类,我们通常说现在最高的准确率已经做到96%点几,错误是3%点几。那这个其实这里面有很多可以去探讨的.
第一点,这个96%点几,是指前五的正确率。也就是说一个图像识别出来5个结果,其中有一个对的就算对。如果规定第一个必须对才算达到正确,那可能正确率只有80%多点。
第二点,是我们这个世界是很复杂的,远远超过这1000类,有很多现实世界当中太多太多不一样的东西都需要去识别。这实际上是一个覆盖率的问题,刚才讲到在标准的测试级上可以到很高,这是一个准确率的问题,准确率当然也是非常关键的,也是推动这个领域发展重要的一个指标,然而真正在现实当中的覆盖也是非常重要的。覆盖直接关系到人的体验,尤其是在识别和搜索这里面。比如说我那一年在做拍立淘的时候也是花很大的心思去解决覆盖的问题,覆盖的意思是就是说你搜什么都能给点相关结果出来。那准确率是说,我搜出来的东西要跟我想象的东西是相关的。这两个都是非常重要的。现在的识别的技术在覆盖上其实是有欠缺的,当然了覆盖的话,也不是说不能解决的。我记得我在前些年也做过一套系统,当时是利用了互联网的数据,使得覆盖能够得到更大的提升,所以用了互联网的数据自动取挖掘训练数据,使得它可以识别任意的东西,当然这个任意的东西还是有条件的,互联网上可以找得到数据,可以找到足够足量的数据然后可以自动清洗自动建立模型。
我记得当时我还在美国的时候,去参加一个朋友的聚会,他家里有一株花很好看,但是那个花就一朵,而且属于刚刚开放的样子。所以,大家其实就都认不出来,这个主人也忘了叫什么花。当时我正好在做这个项目,确实是有个花的自动识别的系统,我当时拿来识别了一下,果然就识别出来了,它叫孤挺花,有点像百合。当时在那种情况下,只有一株花,如果有很多花还好一点,而且又是刚刚开放的样子,不是很典型的,但是利用互联网上的大量的数据可以把它自动识别出来,所以也是有很多工作需要去做的。那么到行业里面更是这样的,一些通用算法在行业里面,在金融的环境对人脸的比对可能还是OK的。但是在安防的场景下,在城市的摄像头的场景下,基本上是不行的,因为摄像头也不是正脸,这有很多的问题需要去解决。像我们刚才提供了一些解决方案,不仅仅是从人脸的角度,还有从人体的角度去做。所以说,技术本身是不是一定那么好呢?其实也是值得考虑的。
第三点,有没有好的商业应用,有没有真正深入行业产生价值,那么这一点也是非常关键的。因为这一部分做不到的话,那么它就不能长久。所以我觉得还是应该认真地考虑一下,创业也好,创新也好,基础是不是稳固的?比如说刚才我讲到的我的观点的五个要素是不是都具备了,缺什么,需不需要补,或者我们的优势在哪里?如果我们的优势只在算法上,那么可能还有一点危险,如果我们还有成功的商业模式,有源源不断的商业应用商业价值的产生,那可能就会比较安全一点。
从视觉的角度来讲我觉得还有很多问题去解决,深度学习本身算法的研究还是有很大空间的,这并不是所有的问题都做得很好了。模型这些年也不断在演化,训练的策略都在不断进步。
还有一个就是人工智能的平台,我觉得也是值得思考的一个方向。就像过去电脑是单机的操作系统,像Windows,那么在Windows这个平台,产生了大量的程序。对于手机也一样,在安卓、在苹果的iOS上也产生大量的应用,那么云计算也一样,它也是在云计算的平台上逐渐在形成大量的应用。所以AI是不是也会这样?是不是要有一个这样的平台,使得大家去做AI应用的开发和研究变得更加容易,就像过去写一个程序一样那么好做,我觉得这可能也是很关键的。
从应用的角度来讲,我觉得计算的效率可能也是非常重要的,尤其是大规模的视觉计算,人工智能的话,如果需要大量的数据,计算量非常大,这个事情你要让他发生的话,必须是在资源消耗可控的情况下才能完成。如果发现完成这件事情都要破产的话,就没有办法继续做下去了,这里面涉及到系统架构的效率包括算法本身的效率等等之类的各种优化,这个也是很重要的系统问题。
AI的人才现在也是蛮多的,当然AI人才的需求量也是非常得大,所以AI的同学这时候找工作是一个旺季。当然这个时候我觉得AI的同学们,也是除了关注技术以外,还要专注应用,只有技术还没有个很好的应用场景的话,那么是不能长久的,不能够在现实当中产生真正的价值。
更多雷锋网相关文章: