「我越来越明确自己的兴趣点——把技术研究与现实世界里的问题结合起来,去解决真正的问题、创造价值。」阿里云视觉计算团队负责人华先胜说。华先胜是视觉识别和搜索领域的***权威学者,曾被评为 IEEE Fellow、ACM2015 年度杰出科学家、MIT TR 全球 35 位 35 岁以下的杰出青年创新人物,曾担任 ACM Multimedia 等大会程序委员会主席。
2015 年,华先胜离开职业的起点微软研究院,选择加入阿里巴巴。这在很多人眼里是一个不容易理解的选择,但在华先胜看来,理论研究有价值,但把这些技术放在一个切实的应用场景中让更多人使用同样有意义。
在阿里巴巴的***年,华先胜负责电商图片搜索技术的优化,推动了手机淘宝、天猫中的「拍立淘」的技术开发,让用户通过手机拍摄物品照片搜索相同或者相似的商品,这正在成为一种更为高效的商品搜索方式。有数据显示,2015 年双 11 当天,千万消费者使用「拍立淘」功能,达成了超过数千万元的销售额。
随着云上的视觉计算需求量越来越大,2016 年初,华先胜转入阿里云并创立视觉计算团队,目前该团队隶属于人工智能研究机构 iDST 团队。2 月 27 日,机器之心对华先胜进行了独家访谈,他介绍了视觉计算团队所推动的研究进展与突破,以及他对AI行业发展的看法。
视觉计算团队实现了哪些突破
机器之心:能否和我们分享一下,您带领的阿里云视觉计算团队的工作有哪些突破性进展?
华先胜:视觉计算团队成立以后就针对几个大的场景,包括监控、交通、安防、人脸、个人图片、医疗等,其中最重要的一部分实际上是城市大脑里面的视频分析,这里面的突破,我觉得可以分为几个方面:
***是大规模视频分析,我们处理的城市数据量非常大,甚至远远超过电商的数据,这里面涉及到我们要去实时处理分析大规模的视频,所以要依靠阿里云高效力计算平台,构建一套大规模视频数据分析平台;
第二是把电商的图像搜索技术,延伸到城市场景里面来,叫做城市图搜或者叫城市搜索,专业一点的语言甚至可以叫索引整个城市,城市视频数据图像数据那么多,当然会有查找的问题,比如一辆车、一个人、一个物等,这跟电商有相似之处也有不同,从视觉角度来做的,这其实也是非常困难的事;
第三是我们可以对城市里面发生的,交通事故、违章停车、横穿马路等特殊交通事件进行检测和识别。
机器之心:视觉计算团队在研究方向上会有明确的侧重点吗?
华先胜:一方面,要确保在云计算上进行大规模的视频分析必须充分可行,必须不断进行算法的优化。另一点就是继续深入行业,在各行各业去挖掘金矿,让算法在里面能够得到优化,把一个个行业吃透,为客户带来真正的价值。当然还有像深度学习本身算法的研究还是有很大的空间,这也是我们接下来要做的事情。
机器之心:城市大脑是您所在团队的一个重要项目,除了城市道路的管理、路况预测、交通调度的优化,它还有其他方面的应用方向吗?
华先胜:目前城市大脑以交通方面的应用为主,包括路况检测识别和交通优化等。城市大脑既然是「大脑」,当然应该有更多的功用,包括安防,城市规划,环保,旅游等等。安全防护方面,如上所述,对人、机动车、非机动车等的实时索引,可以提升城市的安全防控能力;还有对一些异常事件,例如塌方、水淹、漏水、交通事故等等,能够快速警报,这个时候,能争取 1 分钟提前警报都会有很大的价值,例如,可能因此而挽救一个人的生命。当然,很多技术还在研究迭代当中。另一方面,除了城市摄像头的数据,还有卫星数据、无人机数据等等,对城市的规划、环保等等也能起到检测作用。总体来说,就像是整个城市的一个眼睛,其实不是一个眼睛,像是复眼一样,而且不仅仅是看,还要理解识别,要看全、看清、看透,并作出相应决策。
机器之心:高效准确地对路况进行仿真预测是破解交通问题的难点,可否具体介绍一下这里应用了怎样的算法去进行实时交通预测?
华先胜:我们首先要对整个城市及其交通状况有一个全面、清晰、透彻的了解。要看全,因为城市的摄像头非常多,看全就涉及到刚才讲的大规模视频处理,也包括以前在交通领域里还无法获取的信息,比如行人的信息,过去的交通模型里面其实是没有办法使用的,因为没有办法获取信息,车辆的信息还可以通过其他手段得到一部分,比如说通过地面上的感应线圈也可以得到,当然这个是比较粗一点,车的类型是没办法知道的。第二是通过 GPS 采样信息,但是也不够完整,视频的信息是可以看得非常完整,看到整个车流和人流。
看得清晰,在技术上来讲,是要看到到底有多少车经过,车的类型是什么,车牌是什么,走到哪里去,左转右转还是直行,速度是多少等,也包括到底多少行人在占用人行横道等,这些对交通的优化都是非常重要的信息,也是过去无法获取的。
从看得透彻的角度来讲,实际上是挖掘大量数据之间的关系,从而发现这个规律,或者说发现他们之间的相互制约性,从而得出决策。举个例子,比如说在交通的优化当中,我要优化红绿灯,我不能只看这一个路口的信息,要看很多的路口,因为你如果把这一个路口解决了,有可能反而造成别的路口更加拥堵。
有了这样三个层次的了解之后,才是交通模型。作为我们云计算公司来说,是要在更大规模、更准确的数据状况下,尤其是视觉数据,再加上交通专家的研究成果、交管部门实际经验,我们一起来解决交通的建模和优化问题。
机器之心:在遇到交通事故或是拥堵问题时,利用什么评价指标体系来推演获取***的解决策略?
华先胜:通常来说,我们看到车流情况以后,其实就可以对红绿灯进行优化了。做离线的优化,是根据每天的规律,或者每周长时间的规律,对红绿灯做一次性离线的优化,以及配时方案,星期一早上几点到几点是什么样子,中午、晚上是什么样子,星期二是什么样子,每天不一样的方案。
对交通事故的应对需要实时调控,这里也分两类,一种是已经堵起来,还没有堵死的时候已经看到这个趋势,可以对红绿灯进行管控,一个方向时间延长,另外一个方向减少时间等,这是对红绿灯的调控。更聪明的一点做法,我们如果观察到一些事故发生,就对它的规模、可能带来的交通问题做一个大概的估计,提前做出疏导预案,这是可以做到的。
机器之心:能否为我们详细介绍一下,城市大脑项目中的实时和离线这两个视觉计算平台中的关键技术点和数据规模?
华先胜:这是很好的问题。阿里云的计算平台,叫做飞天系统,你可以把它看作是一个超级的计算机。飞天的离线计算和实时计算,这一套系统有 100 万个 CPU 的核,这个是相当大的数量了。有 60 万块硬盘,有一个 EB 的能力,这个 EB 是 1024 个 PB,一个 PB 是 1024 个 TB,一个 TB 是 1024 个 GB,这个量是非常得大的。视频分析背后依靠的就是这样一个大规模的这样一个计算的能力,必须有这样的能力在里面,才能够完得成这些复杂的大量的计算。
对于视频而言,当然我们在这里面也会有一点特殊的地方,因为视频处理有它的特点,比如说数据量大、吞吐量大、计算消耗也非常大。我们在这个基础上,跟计算平台一起,让计算平台能够处理这些视频数据。用比喻来说,就是它能吃得进去,消化得了,并把这个营养吸收得了,最终产生结果。
但这里面的视频处理有特殊性:视频处理有时间上的相关性。比如说我们对某一当前时刻图像进行处理的时候,是依赖于前面的若干时刻图像的,所以在视频里面要很方便地处理这种逻辑。再比如说像交通的场景下,甚至是我当前的视频需要跟别的好几路视频合在一起才能形成一个决策,比如说像红绿灯的管控,我光看一个路口的一路肯定是不行的,甚至光看一个路口的四路也不行的,我要看好几个路口一起来决策,这就是在物理的空间上也是有相关性,我经常把这叫做「时空的相关性」。在这种情况下能够顺利完成计算,从而实时得出决策,这都是通过平台才能达到的。对于算法专家来说,更多的精力是放在算法的研发上,提升算法准确性和本身的计算效率。
机器之心:在离线和实时处理过程中,如果要达到理想的识别精度,比如道路车辆信息、路况信息等,需要多大规模的训练样本库?
华先胜:这个是 case by case 的,对于简单一些的问题,要识别的目标特异性明显,和其他目标和背景的差异性大,就不需要太多的样本。当然,实际应用环境中的情况往往比较复杂,识别模型往往需要到实际应用中迭代优化。离线和实时处理是模型训练好之后的生产环境,不是训练环境。当然,模型的在线更新是和离线、实时处理系统在一起的。
机器之心:深度学习落地产业应用是近年来的发展趋势,计算速度也是衡量算法能否落地的一个重要性能。我们注意到,这个项目中计算速度的提升效果是非常惊人,单核 CPU 对单帧图片处理速度可以从 998ms 提升至 135ms,可否为我们介绍一下基于 Intel 的 MKL 加速以及在优化深度学习模型方面做了哪些努力吗?
华先胜:其实我们最初的模型在 CPU 上的处理需花费 2600 毫秒,这个其实是相当慢的。后来我们跟英特尔合作,利用英特尔的 CPU 上的优化,在单核上压缩到 900 多毫秒。后来我们再通过算法本身的优化,包括模型的结构优化,参数的优化等等,就降低到 130 多毫秒,这又提升了很多倍,整个提升了十几倍。这十几倍的提升,听起来可能没什么感觉,但对于大量的计算资源来讲是非常重要的。如果你只要一台、两台机器做事情,还不是太大的问题,假如你要 1 万台、2 万台机器同时运行,那就是一个很大的事情了。这个量的相差是非常非常多的。所以大规模计算的效率也是非常重要的方向。
机器之心:深度学习计算加速技术的实际应用中,您认为哪一种是更符合工业界需求:GPU (M4) 加速,CPU (Intel MKL) 加速 或者 FPGA 加速?
华先胜:各有千秋吧,当然仅结合 CPU 的特性来优化还是很有挑战的。技术上,FPGA 当然要复杂一些,但成本上应该更优一些。
机器之心:人脸技术作为计算机视觉中较为重要的课题,阿里云的人脸识别技术在服务端和手机端分别达到了 99.53%、98.93% 的准确率,能否分享一下这背后的人脸识别技术及算法革新?
华先胜:识别技术上和其他公司并没有关键的区别,但有一些其他方面的创新应用可以讲(例如 3D 试戴、试衣、试妆等),准确率可以说和主流公司提供 comparable,方法上除了流行的方法外,借鉴了拍立淘中电商图像特征学习的经验。
机器之心:人脸识别和图像识别技术的应用范围广泛,比如安全金融、智能审核以及图像编辑等,除了支撑阿里巴巴集团内部产品,是否也在推进与其他平台厂商的合作?
华先胜:阿里云的视觉计算技术以对 B 端应用为主,当然也有to C 的。我们更多立足于用视觉智能解决各行各业的问题,过去不能解决或者必须人眼去看才能解决的问题,耗时耗力,变成简单高效。我们还着力打造生态,让第三方算法能够跑在阿里云的视觉计算平台上,为更多的客户、用户带来实在的价值。
机器之心:现在的人脸识别系统仍然主要依赖有标签数据的训练,但在特定的任务中特定群体(如刑侦或治安监控任务的小孩或青少年)的训练数据量不足导致了应用效果较差,以及图像质量不稳定或者目标有意的伪装都会影响识别。在未来的人脸识别中解决这些问题的方向是什么?
华先胜:在金融场景,可以考虑用眼纹的方法,例如蚂蚁金服收购的 EyeVerify 公司的眼纹技术,进一步增强准确率。但确实很多监控场景中人脸的分辨率都不太高,或者成像质量不好。这种情况可以考虑用一下 context,例如人体特征、步态等。这种场景下,与金融场景中的人脸比对不同,对人或人脸的识别的要求是不一样的,并不要求(也做不到)很高的准确率,而是要很高的召回率,然后通过人工来进一步确认。
机器之心:无论是在工业诊断方面还是在医疗图像领域,高精确度都是计算机视觉解决问题的前提条件,目前提升精确度的挑战是什么?
华先胜:这种场景和典型的识别场景是不一样的,因为这类场景的目标通常是个小概率事件,正例的目标很少,而且有时正例之间的差异性还很大,甚至无法穷举。在这种情况下,高召回率是主要的目标,准确率是要被牺牲的目标。例如,10000 个样本,如果目标正样本很少,只有 10 个,如果算法测出来有 100 个,只要那是个证样本在这 100 个之内,召回率就是 100%;而这时的准确率只有 10%。然而,这已经是非常不错的结果了,因为我们只需要人工确认这 100 个样本就好了,而不需要看那 10000 个样本,人工省了 99%。所以这种应用,关键是召回,然后一步一步降低虚警,也就是提高准确率。
机器之心:针对仿真视频图像的生成,阿里云采用了什么样的方法?
华先胜:这里有两种生成。一种是三维场景中的物体植入,这种场景是要做三维重建,寻找嵌入位置,然后将三维目标植入场景,随场景一起运动;另一种是平面图形的生成,只要用于生成以假乱真的某个特定类型的图像,方法是自主研发的基于 GAN(生成对抗网络)的方法,目前用于训练数据的大量自动合成。
机器之心:简单谈谈阿里云的图像搜索技术有什么特点?
华先胜:阿里的图像搜索技术有深厚的技术和实践积累,在电商中经过多年的精细打磨。目前我们正在将其应用到城市图搜的场景当中。一般而言,图像的索引(indexing)过程是图像搜索的关键,其中又包括了识别、目标检测、特征提取和索引建立,索引建得好不好直接关乎搜索结果排序 (ranking) 的质量(相关性)和搜索效率。识别、目标检测和特征又是索引质量的关键,基本上每一步都是通过深度学习来达成的,一步有问题都不能得到满意的结果。
机器之心:计算机视觉是深度学习中***个取得突破的领域,前面在静态图片上已经获得很大成功,在您看来,下一步的突破会在哪些方面?还要解决哪些关键性挑战?
华先胜:确实,深度学习是在视觉、语音,包括自动翻译这方面有很好的应用,为什么在文本搜索上可能进展并没有那么明显?当然也有人觉得还没有做到足够深入,也有人讲是因为图像和语音,尤其是图像和语义之间的差距还很大,所以深度学习在里面能够起到很关键的作用。从视觉的角度来讲,我觉得还有很多问题去解决,深度学习本身算法的研究还是有很大的空间,这并不是所有的问题都做得很好了。模型这些年也不断的在演化,训练的策略都在不断的进步。
还有一个就是人工智能的平台,我觉得也是值得思考的一个方向。就像过去电脑是单机的操作系统,像 Windows,那么在 Windows 这个平台,产生了大量的程序。对于手机也一样,在安卓、在苹果的 iOS 上也产生大量的应用,那么云计算也一样,它也是在云计算的平台上逐渐在形成大量的应用。所以 AI 是不是也会这样?是不是要有一个这样的平台,使得大家去做 AI 应用的开发和研究变得更加容易,就像过去写一个程序一样那么好做,我觉得这可能也是很关键的。
从应用的角度来讲,我觉得计算的效率可能也非常重要,尤其是大规模的视觉计算,如果需要大量的数据,计算量非常大,必须是在资源消耗可控的情况下才能完成。如果发现完成这件事情都要破产的话,就没有办法继续做下去了,这里面涉及到系统架构的效率包括算法本身的效率等等之类的各种优化,这个也是很重要的系统问题。
算法的红利会逐渐消失
机器之心:您从业近二十年,经历了人工智能行业的技术变迁,在您看来,哪些因素造就了这一波行业热度?
华先胜:我个人认为,技术是其中最重要的原因,应该说是一个根本的推动力。这些年,技术发生了很大变化,首先机器学习的技术,尤其是深度学习的技术,在识别、搜索、生成的方面都比传统方法表现更加优秀。第二是计算能力,特别是云计算使得计算的能力远远的超过以前,而且我们获得大量计算的能力,也变得非常便利,当然,移动设备的发展也是一个重要因素。我记得在上个世纪图像搜索这个事情刚刚开始研究的时候,那时候也很火热,那个时候叫 CBIR,也成就了很多的博士论文。但是当时经常有人提问,你***张图片到底哪里来呢?到今天今天这根本不再是个问题,因为我们获取数据变得非常容易。还有网络带宽的发展,使得我们在设备端,在互联网上大量的数据得以传播,尤其是视觉的图像识别数据得以传播,这些因素都是促成人工智能火热火爆的场面。
机器之心:在您看来,一个成功的商业应用应该具备哪些条件?
华先胜:我认为应该具备五个条件:
***个是算法。你要有好的算法,你的算法要有先进性,你的算法不行一切都没有了基础。(当然你也可以把算法这一个条件看做是科学家,因为人才和算法是紧密相连的)。
第二个是要有数据。数据本身就是一个很大的话题,里面有数据的采集、搜集、清洗、有效的标注,甚至包括算法里面数据怎么使用。
第三个是用户。你做的这个东西应该有用户的,因为有很多问题是需要用户参与才可以做得越来越好。当然你从商业的角度来讲,没有用户的话也不能够长久。用户本身是数据的消费者,也是数据的提供者,这过去在搜索引擎里面有非常重要的体现,可以说搜索引擎的技术能够做那么好,每个人都有 contribution 的。
第四个就是平台。这个就是涉及到你要有强大的计算能力和一套体系架构,能够方便地去研发、部署和生产,这一套是必须要有的。当然现在因为有云计算,所以这部分的瓶颈,对于很多企业来讲已经没有过去那么困难了。
第五个就是有好的商业模式。如果没有好的商业模式,就不可能长久。你做一个事情,低频的事情没有多少人用,或者不能给少量用户带来大的价值,***产生的总体价值不够的话,其实是很难长久的。这几点,我个人觉得其实是都应该具备的。当然了,可能不同的商业应用,应该来说可能有不同的侧重,但是我觉得都应该具备。
机器之心:很多大公司押注人工智能,越来越多创业公司也在涌入,公司之间的差距会体现在哪些方面,算法是公司竞争的核心要素吗?
华先胜:这是一个很好的问题,也有很多的争论,我说说我自己的观点,我们有很多公司确实是以算法起家的,但是我觉得算法之间的差异,可能会逐渐越来越小。尤其是现在基于深度学习的方法,以及包括很多开源的出现,对于内行人而言,或者叫高手之间,他们之间算法性能的差异其实不会太大。比如说人脸识别,在 AFW 上面,大家测试的差距都在小数点后面一位两位的,没有太大的差距。像 ImageNet 也一样,差不多都是 99.6%、99.7% 这样子,都是不难达到的。那这些对于内行人而言没有太大的差距,但是在真实场景下应用的时候还会有差距,随着时间的推移,大家都在实战当中磨炼的话,都不会差距太大。甚至包括数据的优势,也会减少,很多的公司,不管是大公司还是创业公司,做得稍微早一点,积累了大量的数据,不管是标注的信息还是算法在练习当中搜集的反馈,随着时间的推移算法、数据的红利也都会逐渐减少。当然,这里是对一个具体的图像识别或搜索或生成算法而言的。在很多行业,数据的获取有barrier, 这时数据本身就是价值。如果不具备或者没有足够量的相关数据,基于数据上的智能和应用就无法完成,这时数据本身就成为了核心竞争力。如果相关数据是容易获取的,就不能成为核心竞争力了。
还有什么是具有竞争力的东西呢?我觉得可能还是要看平台和商业应用。从商业模式上来使得自己的竞争力具有长久性,尤其是在细分的这个行业,你做到非常精深。因为这部分并不是那么显而易见的,并不是说随便搞搞,我们就都是 90% 几之类的,这个需要你精耕细作的,需要你深入这个行业,结合真实场景数据的一些特点,才能够逐渐把这个行业吃透、打穿,才能够有一席之地、成为高手。那么这个的话,其实是可以有差异化的。因为这个行业非常的多,其实大家不见得一定要挤在一个独木桥上,一定要去刷通用的图像识别这些东西,或者是非常火热的一些领域,其实有很多路可以走的。
机器之心:现在有不少人工智能威胁论,但反过来看,人们对人工智能整体的发展和展现出来的技术能力,是不是也过于乐观了?
华先胜:我们确实也要冷静看待一些问题,有几个角度来看到。比如说现在的识别就已经做到真的那么好了呢?大家可能有一些体会,这个准确率的数字好像很高,但是在真实场景下,有时候也不那么好。我举个例子,像大家比较公认的 ImageNet 比赛,有数百万张图片,进行 1000 类的分类,我们通常说现在***的准确率已经做到超过 96% ,错误在3% 左右。那这个其实这里面有很多可以去探讨的。
***点,超过 96% ,是指前五的正确率。也就是说一个图像识别出来 5 个结果,其中有一个对的就算对。如果规定***个必须对才算达到正确,那可能正确率只有 80% 左右。
第二点,是我们这个世界是很复杂的,远远超过这 1000 类,有很多现实世界当中太多太多不一样的东西都需要去识别。这实际上是一个覆盖率的问题,刚才讲到在标准的测试级上可以到很高,这是一个准确率的问题,准确率当然也是非常关键的,也是推动这个领域发展重要的一个指标,然而真正在现实当中的覆盖也是非常重要的。覆盖直接关系到人的体验,尤其是在识别和搜索这里面。比如说我那一年在做拍立淘的时候也是花很大的心思去解决覆盖的问题,覆盖的意思是就是说你搜什么都能给点相关结果出来。那准确率是说,我搜出来的东西要跟我想象的东西是相关的。这两个都是非常重要的。现在的识别的技术在覆盖上其实是有欠缺的,当然了覆盖的话,也不是说不能解决的。我记得我在前些年也做过一套系统,当时是利用了互联网的数据,使得覆盖能够得到更大的提升,用了互联网的数据自动取挖掘训练数据,使得它可以识别任意的东西,当然这个任意的东西还是有条件的,互联网上可以找得到数据,可以找到足够足量的数据然后可以自动清洗自动建立模型。
第三点,有没有好的商业应用,有没有真正深入行业产生价值,也是非常关键的。这一部分做不到,就不能长久。我觉得还是应该认真地考虑一下,创业也好,创新也好,基础是不是稳固的?比如说刚才我讲到的我的观点的五个要素是不是都具备了,缺什么,需不需要补,或者我们的优势在哪里?如果我们的优势只在算法上,那么可能还有一点危险,如果我们还有成功的商业模式,有源源不断的商业应用商业价值的产生,那可能就会比较安全一点。
机器之心: AI 模型的通用性怎么样?然后为了可用性高,是否最终都需要定制方案,那么开放平台上的 API 还有多大意义?
华先胜:这个问题问得比较有深度,前面其实我们也讲过了这也是为什么我讲要深入行业,但是深入行业的话,可能有人会讲了,那你有多少人,你做得过来吗?那这里面的第二个问题就是刚才讲的生态,这个不是一家人能够做得出来的,需要很多人去做,就像操作系统上那么多应用程序,包括手机操作系统上那么多好玩的 APP,各种功能的 APP 那不是苹果一家能做得出来的,所以我们要做成这样的一个生态。就像你搭了一个舞台一样,不是光自己在那里演,有很多人都可以上来演,有很多有创意的人都可以上来演,这个就解决了深入各行各业解决实际应用的,在这里面能够做得更好,在一个行业里面在一个应用领域里面怎么做得更好,这样才能够真正发展起来。现实世界就是这么残酷的,很少有一个模型可以打天下的情况,几乎都是不可能存在的。
【本文是51CTO专栏机构机器之心的原创文章,微信公众号“机器之心( id: almosthuman2014)”】