张长水:图像识别与机器学习
作者:张长水
图像识别是人工智能领域非常核心的一个课题。同时从研究的角度来看,机器学习也是人工智能下的一个研究方向。因此,这个题目会更容易引起大家的共鸣。
一、 什么是图像识别?
二、 图像识别有什么应用?
做这些研究可以有哪些用途?比如无人驾驶汽车:如果汽车上有一个带有摄像头的辅助系统,能够识别这个场景下所有的情况,包括车道线,交通标识,障碍物等,这样能够让我们驾驶汽车更方便、更轻松。
另外,一些相机在拍照的时候,在用户摁下快门到一半的时候,相机就会去找到这个图像的人脸在什么地方。找到人脸以后把焦点对焦在脸上,使这个图像能够让人更清楚一点。
还有,我们的计算机里面往往会有成千上万的照片,怎么组织它们,从而用户快速找到一张照片?如果有这样的图像识别系统,我可能会告诉计算机,我要找的照片里有两个人,这个照片是在颐和园照的。
三、图像识别的困难在哪里?
图像识别有很多难点。 第一个困难就是它的视点变化很多。 当我们对同样一个物体拍照的时候,因为视点不同,得到的图像外观是不一样的。所以对同一个物体这样看或者那样看,看外观非常不一样。但是也许两个不同的物体,外观又可能会很相近。所以这是造成图像识别的一个困难。
第二个难点就是尺度问题。 物体在图像中近大远小,这给我们做图像识别会带来一定的难度。
第四个难点是背景复杂。 在复杂背景下,找到某一个人带着拐杖,找到一个戴帽子的人难度很大。
第六个难点是变形。非钢体在运动的时候会产生变形。同样一匹马在不同的情况下的图像表现会非常不一样。
四、图像识别的发展历史
另外一个课题就是手写数字识别。手写数字看起来是很简单的事,但是对手写数字识别的研究引发出相当多的研究方法,给我们带来很多的成果,是一个很有意思的课题。此外的课题还有汽车的检测。我这里只是列了这几个。其实同时期还有指纹识别、文字识别OCR等、等。当时有的研究工作已经发展到了产品化的程度,包括OCR和指纹识别。
在2000年之前的图像识别曾经采用过几何的方法、结构的方法、规则的方法,当然也用了一些比较简单的模式识别的方法。
在80年代后期、90年代期间,机器学习领域发生了什么?这个时期的机器学习有了一个飞速的发展,出现了一些了不起的研究成果,包括:支持向量机方法,AdaBoosting方法,计算学习理论等。成果出现。这些都使得机器学习和识别大大的往前走。在2002年后的一段时间里,一个华人女科学家,叫李飞飞,开始用一个新的思路做图像识别。他们希望设计一个统一的框架做图像识别,而不是就事论事地针对一种图像识别任务设计一套专门的方法。他们希望这个统一的框架能识别成千上万种物体。另外,希望机器学习领域的出色成果可以用在图像识别上。她们还借鉴文本分析里的方法-“词袋”(bag of words)的方法用于图像识别。
这个方法来源自对文本的研究。在自然语言处理里面,有一个任务是对文本分类。文本分类中就采用了“词袋”方法。
比如说有这样一篇文章,我们想知道这篇文章是属于哪个类别。它是在讨论军事,还是在讨论科学。那么我们怎么做呢?一种办法是按我们通常会想到的方法,就是把每一句话都读懂,做解析,知道句子的语法结构,然后去理解句子的内容。但是,对句子做做语法分析很难,理解句子很难。我们往往做不好,所以就不采用这种方法。实际上,我们可以用一个简单的方法:我们只要看这篇文章出现过哪些词出现的频率高。这篇文章中的高频词是:视觉、感知、脑、神经,细胞,你会说这篇文章属于神经科学类。还有一篇文章,其中的高频词是:中国、贸易、出口、进口、银行、货币等,你会知道这篇文章属于经济类。这个方法不用分析和解析句子和段落的语法结构,而只要把这些高频词放到一块,叫“bag of words”。
怎样把这种方法用于图像识别呢?在识别图像的时候,我们也可以把图像中的“高频词”放在一起来识别图像。这里的“词”是什么?直观地说就是小的图像块。比如我们要识别一张人脸,这样的图像上就会有像皮肤一样,或者像眼睛一样的图像块。而相对来说,如果识别自行车,就会出现和车有关的图像块,如:车座、车梁。这些图像块就是“词”。这样就可以采用“词袋”方法。实际上,图像中的词不是我们说的这么直观,而是下方这样的图像小块。它是很底层的图像块,非常小,3*3,5*5或者7*7大小的图像块。这样小的图像块不表达很抽象的语义。
在2000年之后这些年,机器学习在做什么事?机器学习仍然是做基础研究,出现了很多优秀成果。其中,2006年Hinton在Science上发表了一篇文章介绍他们的深度学习方法。有人建议Hinton用他们的方法试一试这个物体识别问题。结果在2012年的比赛中,他们获得了第一名,成绩是85%的识别率。后来大家发现这个方法原来那么好,所以大家一拥而上,纷纷用这种方法解决各自关心的问题。为什么人工智能现在这么热?主要就是因为这个原因。
张长水教授的实验室也用这个方法做了交通标识的识别,这是基金委的一个项目。花了很大的力气,成果很好,基本上可以到实用的程度。
五、 面临的困难和今后要研究的问题
看起来图像识别已经很好了,很多人很乐观,很多人热血沸腾。其实图像识别还没有做得那么好。有什么样的困难?我们举几个例子。
比如说我们在做图像识别的时候,通常我们要标注数据,就是要标注这是鸟、这是猫。然后用这些图像去做训练。标注数据其实是很头疼的事,很花时间很花钱。李飞飞的项目组收集的第一个数据集有101类物体。这个图像库做得很好,后来一些算法可以在这个数据库上达到99%多的识别率。人们说,这些图像质量太好了,种类也太少。后来她们又做了这个数据库,这个数据库有256种物体,图像也没有对齐得那么好。尽管这样,这个数据库开始太小。
标数据是件头疼的事。例如这个数据库就要对每个物体用一个方框框起来,并给出一个类别标号。这是一些典型的图像,给每个物体都要框起来,都要标好这是什么物体。
现在还有很多问题没解决。比如说我们现在的技术只是对图像做了一些解析,可以识别出这张图中这个部分鸟、这是树,但是没有对这个图片做更深入的理解。例如:这个算法并不知道这些物体之间的关系是什么。而对于我们理解一张图片来说,理解物体之间的关系非常重要。
在这个方面给大家介绍一下我们做的一个工作,叫image caption。这件事好几个单位都在做,微软、百度、Google都在做。给大家看的这些结果是实验室在做的工作。Image caption这是一个什么样的工作呢?就是你给我一张图片,你不需要告诉我这儿有一只狗,它叼的是一个什么样的东西。你只需要告诉我一只狗在叼着一个飞碟就够了。我们现在就利用这八万多张图片和对应的自然语言的句子来设计一个模型,并且训练这个模型,使得当你给我一张新的图片的时候,这个算法能生成一个自然语言的句子来描述它。比如这是针对对这张图片生成的句子:火车站旁边的轨道上停了一辆火车。再比如这个图像:一群斑马彼此很紧密地站在一起。还有这张图片:一只狗嘴里叼着飞碟。不仅如此,在做这个时候,还得到了另外一些有意思的结果。这个算法里有一个视觉的注意模型。这个模型可以自动找到关心的图像块。在对这张图像生成的句子A brown cow is standing in the grass时,我们看到brown,cow, grass都对应着正确的图像块。大家注意,我们在训练数据里面并没有告诉算法哪一块是牛,哪一块是草地。这说明,这个算法学习到了这些概念。既然是这样,除此以外,其他的概念是不是也能找对?我们就把其他的一些词所对应的图像块找出来,看一看。比如说这一排是消火栓这个词对应的图像块。这是黑猫这个概念。结果都找对了。比较有意思的是,除了名词以外,程序还找到了动词对应的概念。比如说fill with(把…填满),你会发现图片全是容器里面盛东西。
这个结果很有意思,非常像小孩在成长过程中学习。我们会教一个一岁多的孩子,告诉他“这是一张桌子”,“这是一个激光笔”。我们不会,也无法说:“一张”是量词,“桌子”是关键词。但是孩子慢慢就能学会这些概念。我们的算法也是这样。
另外,比如说这里有一束花。现在算法可以识别出这是一束花。但是它还不能说出哪里是叶子,哪里是花蕊,哪里是花瓣。我们看起来已经取得了那么多的成果,从某种意义上来说我们也可以把它们做成产品,让他为我们服务,但同时我们看到还有更多的问题没有解决得很好,这就需要我们继续努力。
本文基本上是在讲图像。但是我们看到背后用的很多方法都是机器学习的方法。所以是机器学习人的努力,计算机视觉科学家的努力,大家共同的努力,取得了现在的成果。我们可以用这些成果转化成产品,使我们的生活可以更智能化一点。
via:数据派
End.