继“让机器听懂你的声音”,钛坦白又请来六位钛客,探讨如何让机器看懂这个世界。本文根据阅面科技创始人、CEO赵京雷在钛坦白的分享整理。
赵京雷是上海交通大学人工智能博士,前阿里巴巴北京算法研究中心负责人、高级算法专家,专注人工智能领域算法和产品研发超过15年。
以下是赵京雷在钛坦白的分享:
大家晚上好,非常荣幸有这样的机会在钛坦白和大家交流。前面听了几位创始人的分享,在群里面也看到了这么多从事计算机视觉研究以及对这个领域感兴趣的朋友。给我的感受是,计算机视觉在各个领域的应用正在快速爆发中。
这一波的人工智能创业潮和移动互联网以及O2O的创业潮不太一样,各种垂直行业的机会很多。我个人认为,AI行业很难形成一家独大,赢家通吃的局面,另外市场也非常大,需求也很强。不同的视觉公司正在从不同的领域形成各自的突破,都存在非常大的机会。
简单介绍一下阅面科技,我们从2014年底开始筹备,公司正式成立是在2015年7月份,目前我们的总部在上海,在北京、南京、美国设有研发分部。阅面科技主要专注在深度学习和嵌入式视觉,为消费级以及民用智能产品提供基于深度学习的低成本视觉解决方案。
视觉功能的层次和基础设施
谈到嵌入式视觉,顾名思义,我们更多是希望算法能够慢慢沉淀为成熟的视觉模块,能够在设备端不依赖于服务器,本地化和实时化的运行。当然与前端视觉模块相对应还有云服务。人工智能发展到一定阶段,一定会沉淀为比较基础的实施,就像移动互联网的发展轨迹一样。这种基础设施的沉淀和成熟,会让人工智能技术拿来即用。
计算机视觉基础设施形式可以是云,也可以是集成在设备前端的视觉模块。计算机视觉其实涵盖的领域非常多,包含的各种各样的功能也非常多。哪些视觉功能适合作为云服务提供,哪些视觉功能应该集成进设备前端呢?这个其实是从我们开始筹备这家公司就在思考的问题。答案隐藏于对我们人类自身视觉能力形成过程的思考。
如下图所示,人类在长大的过程中,视觉能力经历了不同的层面的形成过程。有一些视觉能力是每一个人生下来就具备的。比如,孩子可能刚刚学会走路,或者是刚刚会爬的时候,就具备的这样一些视觉能力,我们把他称之为本能层的视觉能力。比如孩子知道身边没人了,他就害怕。知道爸爸妈妈来了,有人过来照顾他了,他会觉得很开心。这种能力我们称之为对人感知的视觉能力。另外一块比如说孩子即便是刚学会爬,也不会把头往墙上去撞。孩子知道哪里是可以行走的,哪里是不可以行走的,这种能力我们称之为对空间感知的视觉能力。人感能力和空间感知能力都是本能层视觉能力。
另外还有很多的视觉能力是靠我们后天不断的学习才得到的。比如,对物品的识别,认识前面的物品是一个手机,是一个电脑,还是一个杯子等等。另外比如说识字,也是一种后天通过不断的学习得到的视觉能力。这一层的视觉能力称之为习得层视觉能力。
另外还有一些视觉能力,可能是比较专业的人士才会具备的,比如说通过医学图片来判断上面会不会有一个病灶,这只有专业的医生才能做到。另外比如说任给一个植物照片,说出植物的名字,这只有植物学家能够做到。这一层能力称之为专业层视觉能力。
不同层面的视觉能力,具有不同的特性,随着技术的成熟,会沉淀为不同层面的基础设施。比如下图所示:本能层的视觉能力,更多的是动态的,最基本的视觉理解层面的东西,未来会沉淀为即插即用的前端处理模块;习得层的视觉能力,更多的是静态的图像识别,未来更多会沉淀为公有云服务;而专业层的视觉能力,未来更多会沉淀为垂直的行业服务或解决方案。
阅面科技在做的视觉模块,主要是对应于本能层这块,我们是希望能够把未来的比较基础的比如说像对人感知,对空间感知这样的基础能力做成比较标准化的前端的视觉模块。因为只要是消费和民用的场景的各种机器和设备,一定是和人打交道的,一定是和人的生活空间打交道的,一定离不开这些本能层的视觉能力。
为什么是视觉模块,而不是SDK?
说到这里,可能大家会有个疑问,是不是我们把算法做成SDK让我们的前端设备去集成就行了?为什么还要沉淀为这种软硬件一体的视觉模块呢?
相比较于算法的SDK,视觉模块有以下的这样几个特点:
- 视觉模块的集成可以不考虑被嵌入设备本身的计算能力,做到即插即用。比如机器人也好,或者是其他带摄像头的设备也好,通过集成一个对人感知模块,可以马上具备对人感知的综合能力,比如:有没有人,人在哪里,各自的移动轨迹,分别是谁,等等。
- 视觉模块可以屏蔽掉硬件的适配问题,不受摄像头选型、芯片架构、操作系统类型的影响。
- 最重要的是,算法模块是和行业紧密结合的,可以把这个行业相关的,若干不同的算法集成在一起,多算法协同作业,以最有效率,最具有扩展性的,最低成本的一种方式,帮助这个行业去快速解决问题。
嵌入式视觉领域,非常典型的一家公司是以色列的Mobileye。Mobileye的IQ系列视觉模块专为自动驾驶行业构建,集成了自动驾驶行业里面所需的一系列算法,一体化的提供给这个行业。行业的客户的比如说像车厂可以迅速的基于这个模块去搭建他自己的自动驾驶产品。IQ系列视觉模块的基础和核心,毫无疑问,一定是里边集成的视觉算法,比如各种人、车的检测和识别算法。
算法的成熟,其实是一个非常非常漫长的过程。我们都知道Mobileye在自动驾驶领域目前绝对领先,更多的是它们的基础算法经过了多年的优化。视觉算法的优化不是一两个月就能达到的,一般来讲,从一个实验室级别的算法到一个工业级的算法,没有一年半以上的优化时间,是不太可能达到出色水平的。
拿最普通的人脸检测算法来举例。假设有公司找到两个非常不错的人才去做这样一件事,要求是能在普通的手机设备上能够实时运行。出于速度考虑,他可能首先会想到使用比较传统的方法,比如NPD之类的。如果足够优秀,1个月左右可以完成第一版实验室级别的算法。然后,各种各样的问题就来了,比如在FDDB上能跑到多少?侧面检测角度能支持多少?平面内旋转能支持多少?多人同时检测速度是否成比下降?头顶有大灯的情况下能否检测出来?逆光的情况下能否检测出来?表情夸张的时候能否检测出来?严重遮挡的时候能否检测出来?距离是否可以支持的足够远?第一个版本,几乎上面列的任何一个问题都是远远不能满足要求的。后面,每一个点的优化其实都是一个坑,跳进去可能就爬不上来。最终可能面临很多无法解决的问题,这时候你开始对模型怀疑,考虑换模型,比如说换成深度学习模型。事实确实是这样的,深度学习算法在遇到上面这些问题上鲁棒性要好很多,但还是要反复不断的进行优化。
除了算法的精度优化之外,是不是可以做到让这样的深度学习算法依赖的计算资源很小,运算速度足够快?比如深度学习算法实现以后,算法包可能非常大,只能借助于GPU或者在台式机上勉勉强强能够跑起来。在这个基础之上,怎么样在不降低精度的情况下,优化模型,让模型可以在嵌入式设备跑起来,这决定了模块化的成本。各种各样的方法,比如说像多值化、定点化,包括各种矩阵计算的优化,每一个都是非常大的坑,跳进去是不是能爬得上来,都是一个未知数。我相信每一个视觉公司,每一个算法公司,在底层算法的成熟上一定会经历这样的一个漫长的熬人的过程,这样一个从实验室级别算法到工业级算法的优化过程。
具体到阅面科技,我们在底层算法的成熟基础上,已经形成了模块化的系列产品线,主要包括人脸识别模块、人感模块和空间感知模块。简单介绍一下,人感视觉模块,称之为Human Sensing Module,里面集成了对人进行感知的系列算法闭环,包含检测有没有人、几个人、人在哪里、运动轨迹、姿态、分别是谁,以及有没有和我产生交互。这个模块可以通过普通摄像头,即插即用。目前,我们的模块化的产品,很多是针对行业的解决方案。我们还是围绕我们最开始成立公司的初衷,围绕人、人的生活圈,在消费和民用相关领域展开服务。第一个领域,称之为泛机器人,也可以称为智能机器行业。第二个领域,是智慧家庭和智慧社区。智能机器方面,以增量市场为主,比如各种嵌入摄像头的设备等。在智慧社区这块,更多是针对现有的一些存量市场,比如像楼宇对讲系统、门禁系统、各种各样的IP摄像头等。
算法前端化的两个重要问题
前面我大概讲了一下,我们在构建我们的产品和商业模式上的一些想法和一些思路。接下来和大家一起探讨两个比较具体的算法前端化的一个问题,也是我自己经常思考的两个问题。
- sensor的选择(摄像头选型问题)
目前我们推出的一些模块,主要都是基于单目RGB摄像头,也就是随处可见的最普通的摄像头。任何一个摄像头,只要30万象素以上都可以集成我们的模块马上获得模块所提供的视觉认知能力。
我们来对比一下前端视觉的可能几种选型:首先看一下单目RGB和双目RGB的不同。我们还是拿Mobileye做为例子,我们都知道,Mobileye基于单目RGB实现。自动驾驶领域,其实是一个对距离,对深度非常敏感的领域。自动驾驶需要知道前面车、人的距离,包括其他方面的景深。我们如果不知道这家公司的存在,可能粗粗一想,会认为双目摄像头在自动驾驶领域是必不可缺的。但是Mobileye给的答案是单目摄象头,是因为他技术上没办法做双目吗?显然不是。Mobileye认为,即便在自动驾驶的这种场景下,其实更多的是要做识别,而深度以及距离信息其实可以通过单目结合摄像头内参等信息精确获取。
总体来讲,在对识别需求更多的场景里边,单目是一个比较佳的选择,不管是从成本上还是实际的效果上。那种比较远距离的,三维空间的避障方面,比如无人机领域,可能双目是一个比较好的选择。其他的sensor类型,诸如TOF以及结构光Sensor,其实可以类比于双目RGB摄像头,都只是构建深度的一个手段,本身都不具备识别功能。
- 芯片选型问题
到底使用什么样的芯片去承载深度学习算法的计算?目前,我们底层的深度学习算法,都是可以不依赖于GPU或其他加速设备,仅仅依赖于低端的CPU运行的,这使得我们模块成本可以做到很低。
芯片之争,在整个人工智能领域现在是非常激烈。2016年其实发生很多领域的并购案,像因特尔收购了Altera和Movidius,分别是做FPGA和神经网络架构芯片。软银收购了ARM这样的传统CPU架构芯片公司。另外,GPU企业Nvidia在2016年借助深度学习风潮迅速圈钱。
粗粗算来,在前端模块上有很多种选择,比如像英伟达的嵌入式端GPU TK1或者TX1;FPGA企业推出的各种各样的FPGA;当然还有传统的CPU;还有国内现在也有不少公司在做的,被称之为新一代的计算架构的芯片, VPU或者称之为NPU也好,也就是为神经网络加速而优化的计算芯片;另外,还有针对某些行业的特定模块在未来其实可以变成ASIC,比如说像Mobileye的IQ系列模块,其实已经变成了一款视觉专用芯片。
不同的芯片,在现在支持的领域可能不太一样,比如说像GPU这种,能力比较强一点,但是功耗比较高,可能适合于更加军用、政府用这种对成本不太敏感的场景,FPGA其实也是这样的。另外,VPU或称为NPU,真能做出来还是可以对整个这个行业推动比较大。但这个做出来以后,到底是以一种什么样的形式呈现,这个目前还不得而知。目前而言,我们还看到另外一种变数,就是这种深度学习的加速能力,其实没有变成所谓的VPU、NPU,而是被整合到我们以前可能都想不到的地方,比如说DSP,然后和CPU结合起来提供整体的一个计算能力。
那么ASIC,也就是专用芯片呢?个人认为不一定是一个必然的结果。专用芯片是某种程度上节省成本,构建行业壁垒的一种手段,不一定是一个必然的结果,有可能做到模块这一层就够了。总体来讲,其实还是像刚才讲的,各种各样的前端芯片选型,还是和具体的行业以及应用领域有关。
人工智能领域在2016年变得非常的火热,我觉得这种火热来自于两个方面,一方面就是技术进步使我们已经能够看到很多智能应用的落地,另一方面,是人工智能带给我们很多的未知数和不确定性。正是这些未知数,撬动了行业以及资本的热度。人工智能到底在行业应用里边能应用到怎样一个程度,到底能给我们生活带来什么样的改变,目前是没有答案的,但改变是必然的。
移动互联网的红利过去以后,各行各业都面临效率提升和成本下降的进一步需求。技术的进步将为这种需求的满足带来强大驱动力。我们最希望看到的是通过人工智能企业的一起努力,让人工智能的技术迅速沉淀为基础设施。这样的话,我们将迎来人工智能时代的真正主角,也就是让更多行业出来的人,拿起AI的武器,迅速去改变我们的世界。(本文独家首发钛媒体,根据阅面科技创始人、CEO赵京雷在钛坦白上的分享整理)
………………………………………………
钛坦白第28期“AI已来,让机器看懂这个世界”,六位钛客的精彩分享已经结束,干货会陆续发布:https://www.tmtpost.com/tag/1508094
钛坦白2017年,精彩分享继续!
推荐钛客、赞助、合作:请与钛坦白负责人佳音联系,邮箱jiayinge@tmtpost.com
根据《网络安全法》实名制要求,请绑定手机号后发表评论