人工智能 计算机视觉(人工智能计算机视觉技术)
『拓扑秀』是拓扑社旗下的一档线上活动,每期邀请一位嘉宾,以语音或文字形式,分享和交流to B领域的热点及趋势。
本文为8月3日拓扑秀第34期嘉宾的分享小结。
口述丨赵京雷
编辑丨拓扑社 赵凡
分享嘉宾
赵京雷,阅面科技创始人&CEO。赵总是上交大人工智能博士,前Wise nut 算法总监,前阿里北京算法研究中心负责人、高级算法专家。
关于阅面科技
阅面科技(ReadSense)是一家人工智能企业,专注于深度学习和嵌入式视觉,为智能机器提供世界领先的视觉识别技术,包括面部识别、手势识别、人体识别以及环境感知。面向的行业涵盖智能机器人、智能家居、智能玩具和车载设备等。 阅面科技的视觉解决方案包括软件SDK、嵌入式硬件模组以及视觉sensor等。
互联网小常识:可以选择配置下列三种方法的安全访问权限访问:身份验证和访问控制;IP地址和域名限制;安全通信。
以下是嘉宾分享全部内容,enjoy~
今年是人工智能发展的60周年,我们已经走了很长一段路。由于今年受到AlphaGo事件的影响,人工智能在各个行业的应用也逐渐火爆起来。在这个时候,如果我们来回顾一下以前走过的路,可能更加有助于我们思考现在和未来,带着这样一种想法,我今天带来了计算机视觉之路的分享,希望能够对大家有所启发。
/ Hello World /
首先,什么叫计算机视觉?其实说起来非常简单,先通过一个简单的例子,让大家快速地了解计算机视觉这件事。
上面这张图片,可以认为是计算机视觉的Hello World问题。对于我们人类来说,区分苹果或者桔子是非常简单的,但是对机器来说,我们怎么写个程序让机器,来区分苹果和桔子呢?如果让大家思考,可能会给出很多答案,比如:是不是可以让机器通过水果的颜色来区分,或者通过形状和纹理来区分等等。
上面谈到的这个小例子,在深度学习出现之前,在某种意义上基本代表了计算机视觉发展的全部。其实,计算机视觉在过去非常长的时间里面就是一直在寻找某种合适的特征,比如:颜色、形状、纹理等等特征,然后用这种特征让计算机去辨识物品。
1、颜色特征
就像上图表示的,它是一种在现在依然被广泛应用的特征,我们称之为颜色直方图特征。它是一种最简单、最直观,对实际图片的颜色进行抽象表达的方式。
机器是如何识别图片的呢?机器看到图片只能用二维的向量来表示。对于颜色直方图,大家一看其实非常明显,比如:我们都知道颜色的值可以用RGB三原色来表示,颜色直方图的横轴代表颜色的RGB数值,表示一个物品所有颜色的可能性。纵轴则代表了整个图像具有某个颜色值的像素数量。其实,通过这样一种非常直观的方法,机器就可以对看到的图片进行颜色表征。
在过去的二三十年里,关于颜色特征的表示可能出现了大量的工作,比如:各种各样颜色直方图的变种,使得计算机能够通过二维数字串的形式,更好地表示图像的颜色特征,使得其能够区分看到的不同物品。
2、纹理特征
上图是一种纹理特征的表示。比如:桔子会有坑坑洼洼的纹理,而苹果的纹理则非常的光滑。这种局部的表达,如何通过数字串的形式抽象表示出来,让计算机认知到,和颜色特征一样,这是过去很多年计算机视觉一直在探求和优化的问题。
3、形状特征
上图是计算机视觉通过形状特征来做图片识别的示例。
通过这些例子可以看出,计算机视觉在过去很多年,其实它的问题非常简单,就是找到一种合适的方法,对于一个待分类问题进行特征表达,然后进行计算的过程。比如我们要做一个人脸识别,需要寻找到底是颜色特征还是纹理特征或者形状特征更适于表达,怎么样能把目标问题区分开来。如果我们要区分人脸,形状特征的作用就不会那么大,因为人脸的形状长得都差不多。但是人脸的褶皱、纹理,可能代表了不同人之间的区别。而如果我们要检测人体,可能纹理特征就不是那么重要,因为人会穿各种各样的衣服,但形状特征就会很重要。所以,在过去针对不同的问题,需要不同的特征表征方法。
/ 计算机视觉的发展历程 /
从2006年开始,在将近10年的时间里,整个计算机视觉界发生了一个比较本质的变化,也是人工智能带来的核心本质的变化—深度学习的出现。深度学习的出现真正改变了计算机视觉之前的定义。那么,这种改变到底是怎样带来的,它对我们解决现在的特定问题会带来什么样的影响呢?我觉得要解决这样的问题,先要看一下整个计算机视觉的发展历程。
1、计算机视觉的发展历程 —— 起点
计算机视觉的发展历史可以追溯到1966年,在这一年有一个非常有名的人工智能学家,叫马文·明斯基。在1966年夏天,明斯基给他的学生布置了一道非常有趣的暑假作业,就是让学生在电脑前面连一个摄像头,然后想办法写一个程序,让计算机告诉我们摄像头看到了什么。大师就是大师,非常超前,在五十年前就给学生布置了这样一道题。这道题太有挑战了,其实它代表了计算机视觉的全部,通过一个摄像头让机器告诉我们它到底看到了什么。
所以,1966年被认为是计算机视觉的起始年。
2、计算机视觉的发展历程 —— 探索
① 1970s:从二维图像中构建三维结构
70年代,研究者开始去试图解决这样一个问题,就是让计算机告知他到底看到了什么东西。当时,大家认为要让计算机认知到底看到了什么,可能首先要了解人是怎样去理解这个世界的。当时有一种普遍的认知,认为人之所以理解这个世界,是因为人是有两只眼睛,他看到的世界是立体的,他能够从这个立体的形状里面理解这个世界。在这种认知情况下,研究者希望先把三维结构从图像里面恢复出来,在此基础上再去做理解和判断。
② 1980s
80年代,是人工智能发展的一个非常重要的阶段。当时,在人工智能界的逻辑学和知识库推理大行其道,大家开始做很多类似于现在的专家系统,计算机视觉的方法论也开始在这个阶段产生一些改变。在这个阶段,人们发现要让计算机理解图像,不一定先要恢复物体的三维结构。例如:让计算机识别一个苹果,假设计算机事先知道对苹果的形状或其他特征,并且建立了这样一个先验知识库,那么计算机就可以将这样的先验知识和看到物体表征进行匹配。如果能够匹配上,计算机就算识别或者理解了看到的物体。所以,80年代出现了很多方法,包括几何以及代数的方法,将我们已知的物品转化成一些先验表征,然后和计算机看到的物品图像进行匹配。
③ 1990s:统计分析方法、局部特征描述符的兴起
互联网小常识:内部网络专用IP地址规划与网络地址转换NAT方法。首选A类地址、不要拘泥于数值上的划分,可以根据四段每一段进行十进制的划分。
90年代,人工智能界又出现了一次比较大的变革,也就是统计方法的出现。在这个阶段,经历了一些比较大的发展点,比如现在还广泛使用的局部特征。我们前面介绍的形状、颜色、纹理这些表征,其实会受到视角的影响,一个人从不同的角度去看物品,它的形状、颜色、纹理可能都不太一样。随着90年代统计方法的流行,研究者找到了一种统计手段,能够刻画物品最本质的一些局部特征,比如:要识别一辆卡车,通过形状、颜色、纹理,可能并不稳定,如果通过局部特征,即使视角、灯光变化了,也会非常稳定。局部特征的发展,其实也导致了后来很多应用的出现。比如:图像搜索技术真正的实用,也是由于局部特征的出现。我们可以对物品建立一个局部特征索引,通过局部特征可以找到相似的物品。其实,通过这样一些局部点,可以让匹配更加精准。
④ 2000s:机器学习、模式识别的兴起以及现代数据集的出现
到2000年左右,机器学习开始兴起。以前需要通过一些规则、知识或者统计模型去识别图像所代表的物品是什么,但是机器学习的方法和以前完全不一样。机器学习能够从我们给定的海量数据里面去自动归纳物品的特征,然后去识别它。在这样一个时间点,计算机视觉界有几个非常有代表性的工作,比如:人脸识别。你要识别一个人脸,第一步需要从图片里面把待识别的人脸区域给提取出来,我们一般叫做人脸检测。像在大家拍照的时候,会看到相机上有个小方框在闪,那其实是人脸识别必要的第一步工作,也就是人脸框的检测。在以前,这是非常困难的工作,但是在2000年左右,出现了一种非常好的算法,它能够基于机器学习,非常快速的去检测人脸,我们称之为Viola&Jones人脸检测器,它其实奠定了当代计算机视觉的一个基础。
当然,机器学习的出现其实是伴随着一个必要条件出现的,就是在2000年左右,整个互联网的出现和爆发,产生了海量的数据,大规模数据集也相伴而生,这为通过机器学习的方法来做计算机视觉提供了很好的土壤。在这期间,出现了大量学术官方的,针对不同领域评测的数据集。比如像刚刚谈到的人脸检测,这里面最具有代表性是一个叫FDDB的数据集。这个数据集包含了超过5000多张人脸数据,每一张人脸,都人为的用框给框出来,机器就可以从这些框好的数据里面,通过一些机器学习的手段去学习从任何一张图片中找到人脸区域。
另外,大家可能耳熟能详的一个数据集叫LFW。提到人脸识别,大家可能都会听到一句话,说人脸识别比人做得都要准确。其实这句话是有一定问题的。在很多的实际场景里面,人脸识别连人的百分之六七十可能都达不到。那么,在什么情况下,它比人准呢?其实就是在LFW上。LFW数据集里面有1万多张人脸和5000多个人的数据,每个人都有在不同情况下拍摄的真实场景的多张人脸。基于这样的一个数据集,我们可以在上面评估人脸识别的精度。人脸识别领域发展非常快,尤其是最近几年深度学习的兴起后,这个数据基本上快被刷爆了。人在LFW上面的识别正确率大概是97.75%,而机器已经在LFW上可以做到99.75%甚至更要高。
在这期间,还出现了其他非常有影响力的数据集,其中比较有代表性的就是IMAGEMET。这是由非常著名的教授李菲菲发起的一个项目,他通过众包的方式,大概标注1400万张图片,分了大概2万多个类别,这些类别包罗万物,比如像动物,里边可能分为鸟类、鱼类等;植物,里面可能会分为树和花。她的理想很宏大,就是希望提供这样一个数据集,为计算机视觉算法提供一个数据土壤,让未来的机器能够认识世界上的一切物品。
在2000年代,人工智能经历了一个快速发展期以后,整个人工智能在很多行业取得了非常好的应用,比如:视觉之外有搜索引擎排序和计算广告等等,视觉领域人脸检测器也被用在了各种各样的相机里面。
⑤ 2010s:深度学习爆发
到2010年代,进入了一个最激动人心的年代,它就是深度学习的年代。深度学习从本质上给整个人工智能带来了一次革命。在80年代,有人做了一个猫的实验。他们在猫脑袋上开了一个洞,然后在猫的前面放各种各样的物品,观察猫在不同物品下的反应。通过实验发现,当我们放一些形状非常类似的物品时,猫会表现出同样的刺激反应,这就表明了人的认知是分层的。在早期多层神经网络经历2000年左右的一个低谷后,2006年Hinton教授在《科学》发表了对于深层神经网络的训练方法,带来了深度学习的蓬勃发展。
/ 计算机视觉的应用领域 /
深度学习出现以后,其实对各种各样的视觉识别任务的精度都进行了大幅度的提升,我们拿人脸来进行举例。在深度学习出现之前,一个普通的识别算法,比如说使用颜色、纹理、形状或者局部特征,你可以将各种特征糅合在一起,对于人脸识别率在LFW上最高也只能做到94%~95%。在很多的实际系统,比如我们以前用的人脸考勤,可能在用的系统当时只能在LFW上做到90%~92%的识别率。深度学习出现以后,直接将这个精度提高到了99.5%上,将错误率降低了10倍。
我们可以举个简单例子,来说明这种量级的错误率降低代表了什么。比如:如果我们把人体识别的精度用到汽车的辅助驾驶系统里边,如果出现了漏报或错包,这是非常头大的事。如果是95%的精度,有100个人经过,在一定距离范围内,他可能就有五次错报或者漏报,这肯定是无法接受的。但如果精度再提升10倍或者100倍,比如一米之内的1万个人只有5次漏报的话,那这件事可能就是可行了。所以,深度学习的出现使得以前视觉方法不太实用的一些应用领域,基本上都可以通过深度学习的方法来获得一个良好的应用。
整个计算机视觉在深度学习出现以后,使得它可以应用在各种各样的行业。比如:人脸识别用的比较多的领域是金融,像Face++等提供的人脸识别验证技术。
另外,像图像搜索,大家可以拍一张鞋的照片,在淘宝上进行搜索,就可以找到类似的鞋。
再比如像安防,也是计算机视觉的一个典型应用领域。还有一块非常大的应用,就是在机器人领域,包括整个的智能设备领域。可能以前这块不太好做,但深度学习的出现,使得机器人在视觉能力或者语音能力上,去模仿人的能力成为可能。下面列举国内的一些主要的视觉公司以及其技术的应用领域。
/ 阅面科技的探索 /
前面简单的回顾了一下计算机视觉的发展历程以及应用,接下来讲一下阅面科技在这一领域的探索。
我们认为深度学习的出现,使得人工智能领域可以有很多的创业机会。比如在和垂直行业结合方面,像金融、医疗行业就有很多机会。另外,我们认为智能设备会有比较大的改变,因为智能设备以前非常不智能。我觉得人工智的出现,会把智能设备,包括智能机器变得智能起来。阅面科技正在做的事是在后面这一块,希望做嵌入式视觉,帮助各种各样的智能机器,通过嵌入视觉算法,让它拥有一双像人类一样的眼睛,能够去认知周边的人或者场景。
阅面科技主要想帮助未来的智能机器,包括机器人、车载设备、智能家居等解决两方面的问题:一方面是人机交互;另一方面是场景的感知,这两方面的能力是未来的智能机器必须具备的核心能力。我们围绕我们的深度学习技术和海量数据积累,在上面构建未来机器所需的人机交互以及场景感知算法。
拿智能机器来举例,它需要理解人,知道这个人是谁,并且理解人的表情变化以及交互的手势动作,这其实就是人机交互层。另外,我们还希望解决智能机器的场景感知层,就是将智能机器放在一个陌生环境里,能够让它知道处于什么样的环境,能够让它进行视觉避障,能够识别物品和场景,能够进行导航定位,自由行走。我们认为视觉是整个场景感知和理解的未来。
那么,我们是如何去帮助智能机器的呢?我们在底层构建了很多的算法,比如:人脸识别、手势识别、人体识别和追踪等等。当然,要让算法在嵌入式设备里面跑起来,需要解决的一个最大的挑战就是效率问题。大家都知道,深度学习的运算效率是比较低的,那该如何去解决呢?
我们提出的是软硬件一体的解决方案。首先,算法引擎是其中的核心的核心,然后在算法层上面,我们做了两件事,一方面做硬件模组,另一方面做芯片。所有硬件层的努力,都是为了让底层的神经网络深度学习算法能够非常流畅的在嵌入式设备上以非常低的功耗跑起来。我们希望通过软硬件一体化的解决方案,真正帮助未来的智能机器非常方便的接入我们的服务,去认知这个世界。
/ 面临的挑战 /
整个行业的发展其实还是存在很多挑战的,这些挑战也正是今天计算机视觉这块面临的最大的挑战。那这些挑战来自于何方呢?
1、复杂的自然条件:姿态、遮挡、极端光照
对任何一个视觉识别任务而言,它的自然条件的变化,比如像姿态、遮挡,包括光照等各种条件的变化,都会极大的影响它的识别精度和正确率。怎样去解决这个问题,其实是整个计算机视觉面临的最大挑战。
2、粗颗粒的语义识别到细颗粒的语义理解
深度学习擅长的是分类问题,而对于上下文语义的理解,它是非常不擅长的。比如让它理解我现在说什么话,深度学习在这方面的应用这几年并没有太多实质性进展,这也是我们当时选择做计算机视觉这件事的原因之一,如果去做自然语言理解,深度学习对这块这些年的帮助不大。但连续语义以及上下文的理解是近年深度学习模型研究的重点,相信未来会有所突破。
3、深度学习模型的进一步加深与加速
深度学习确实带来了实质性的一个突破,但是针对很多任务,离我们真正想达到的精度还有不小差距,比如:人体检测、物品识别的的精度,在真实场景中比起我们人类,还远远不够。整个学术界对于新一代深度学习模式的研究还一直在继续。比如:人在认识世界的时候,它不仅仅把信息从大脑的初级皮层向深处的神经元传递。人在理解的时候,心理学家发现人脑深处高层的神经元可以反过来指导最开始输入层的认知。所以,我相信深度学习,在这些年还会从理论模型上带来比较大的突破,这种突破可能会使得这种模型越来越逼近我们人对信息的处理。
Q&A
▎阅面科技在人脸识别方面的识别率有多高,在同行业中处于一个什么样的水平?
对一个人脸识别算法而言,评测是多方面的。第一、我们可以在标准数据集上评测。我们在LFW上的评测是99.7%左右。第二、人脸识别还不仅仅是识别的一个精度,比如说像检测,也是一个非常重要的评估点。比如:你到底能检测多大角度的人脸或者最小检测多大尺寸的人脸,这会直接影响人脸识别的一个精度。我们在检测这一层,能做到最大90度,基本上就是没死角的一个检测,最小的图片尺寸可以是20×20,这样使得你的距离其实可以放得很远。其实在任何实际的问题里面,人脸识别存在非常大的挑战,我可以随便举一个例子。比如:我们在视频监控这种条件下,人脸识别是非常困难的。因为人在快速移动的时候,你的图片会模糊,另外人是处于各种各样的极限条件变化下,像灯光等。所以,你去拿一个号称在LFW上刷到99.7%或者更高的算法,在真实的环境下,基本上能跑到70%多就算不错了,比如在安防监控这种复杂的环境下。
所以,人脸识别的优化需要结合你所要解决的问题,然后针对这个问题进行优化。我们做的优化比较多的就是无感的人脸识别,就像我刚才谈到的在视频环境下无感的识别精度。为什么要优化这一块呢?因为我们要解决这样的问题,比如像机器人,你可以从各种各样的角度走过来,不会要求你摆正脸,机器在识别你时人是感觉不到的,受距离、灯光、角度和模糊的影像,这个挑战会比较大,我们其实在这方面做了很大的优化。
因此,你不仅仅要看标准数据,还要看他在各种各样实际场景下的一个识别精度。
▎底层技术的改变往往会带来翻天覆地的变化,就像安卓和IOS系统的出现催生了移动互联网时代。那么,您认为人工智能领域接下来可能会出现类似的颠覆性成果吗?
其实,这就是我们阅面科技诞生的一个原因。阅面科技为何而生,其实就是为了下一个计算平台而生,为了下一种人机交互方式而生。我们都知道,整个移动互联网的爆发,其实依赖于手机这样一种平台的普及。而手机的普及,我觉得最大的促因取决于触屏这种新的交互方式的出现,大大的提升了用户体验,彻底把手机这样一个平台给普及开来。那么,对于人工智能以及整个计算机视觉也是这样的。我觉得人工智能包括深度学习的发展,带来了一种可能性,它从根本上会颠覆了我们现在的这种交互方式。比如像AR技术,其实里面应用了非常多的视觉技术。我觉得这些东西的成熟,其实会从本质上带来计算设备的变革。
▎现在很多创业公司都喜欢赶热点,经常会说自己公司运用了人工智能或者机器学习等技术,那如何去判断一家公司是不是真的具备这方面的技术或者能力呢?同样,对很多公司来说,目前的人工智能或者机器学习更多的是一种工具,那如何判断我的公司是不是该去用这种工具,又该如何去用好呢?
第一部分:我觉得人工智能技术,其实和前几年流行的大数据技术一样。可能在以前,大家都是为了大数据而大数据。比如说自己是在用大数据,其实本身就没有用算法。不是说你积累很多的数据就是大数据公司,人工智能也是这样的。我觉得现在人工智能很热,大家确实可能都会想着这块。怎么样通过这样一种新的技术和方法,给自己的行业带来一种新的改变。当你评估一家人工智能公司时,比较重要的一点是看它的人才积累。我自己的体会是,人工智能这一块最大的竞争不是别的,它不是计算能力的竞争,也不是数据的竞争,而是人才的竞争。
第二部分:我觉得这块,其实还是要看你本质上想要改变的是什么样的问题。我觉得有这么几个点,第一、你的效率出现问题了,你需要用一些工具去解决你的效率问题;第二、你现在的成本出现问题了,你是不是需要用一些工具去解决你的成本问题。
我举个简单的例子,我记得前段时间和一个朋友交流,他是做报关文件的,会有很多的报关文件需要整理,以前他用人力,可能需要上百个人。这个时候,刚才谈到的效率和成本问题都出现了,效率非常低下,而且成本非常高,那么,这个时候你可能要考虑是不是可以找一种自动的方法来解决这件事。这样的话,可能就需要人工智能的方法来帮你去做这件事。
▎如何看待计算机视觉技术在ADAS、自动驾驶领域的应用?国内外的发展情况如何?
计算机视觉在这方面应用最成功的一家企业就是Mobileye,其实在中国一直没有出现这样的一家企业。目前,计算机视觉在ADAS里面用的最多的比如像行人检测、车辆检测,车道线检测等。车道线的检测,可以做偏离报警。检测行人、车辆,可以防撞。另外还包括距离的预测评估以及行驶区域的检测等等。但这个领域涉及到嵌入式视觉的一个问题,也就是我们这里面解决的一些问题。
它取决于两块,第一块就是算法要高效,而且数据量要非常的大,因为你要解决的不仅仅是高速公路的车道线检测,而是要解决下雨、冰雪覆盖或者乡村道路的车道线检测,这样可能更加有意义。但这种难度很大,取决于海量数据的一个采集。
另外一块,人工智能包括整个计算机视觉在ADAS的应用一定是离不开芯片的。我们知道Mobileye号称领先业界很多年,那它是如何做到的呢?我觉得很多人认为是它的算法,算法一定是基本的。另外一块其实,Mobileye的领先是在于芯片。Mobileye在很久之前就已经压成了图像处理的专用芯片,这块芯片使得它形成很高的竞争壁垒。所以,未来在这一块是芯片会是非常重要的一个因素。
那么国内到底存不存在弯道超车的机会,比如说超越Mobileye?我认为这样的机会是存在的,但这块确实不太容易做。一方面可能是受限于技术本身,就像刚才谈到的算法和芯片;’另外一方面,可能也受限于中国市场,和整车厂以及供应链打交道,其实还是蛮考验人的。
从基础层面来考虑,我还是认为算法一定要做好,但算法做好还不够,还需要将硬件层和芯片层做好。其实这也是我们现在同步抓的一个原因。
— END —
互联网小常识:生成树协议是一个二层链路管理协议。STP的基本原理是通过在交换机之间发送网桥协议数据单元(BPDU)并使用生成树算法进行的。BPDU每隔2秒发送一次。BPDU分为两种:一种是配置BPDU(不超过35字节)和拓扑变化通知BPDU(小于4字节),优先级增量为4096,越小优先级越高。
免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186