图像识别算法有哪些 如何进行图像识别

人类会注意画面中物体的形状。深度学习计算机系统使用的算法不一样,它会研究物体的纹理。图片中的动物轮廓是猫,但是猫披着大象皮肤纹理,将图片交给人识别,人会说是猫,如果给计算

本文最后更新时间:  2023-05-02 02:23:49

人类会注意画面中物体的形状。深度学习计算机系统使用的算法不一样,它会研究物体的纹理。

图片中的动物轮廓是猫,但是猫披着大象皮肤纹理,将图片交给人识别,人会说是猫,如果给计算机视觉算法处理,它会说是大象。德国研究人员认为:人看的是形状,计算机看的是纹理。这一发现相当有趣,但它证明计算机算法离人类视觉还有很远距离。

当你看着一张猫的照片,轻松就能知道猫有没有条纹,不管照片是黑白照,有斑点,还是磨损或者褪色了,都能轻松识别。不论宠物蜷缩在枕头背后;或者跳到工作台上,拍照时留下一片朦胧,你都能轻松识别。如果用机器视觉系统(用深度神经网络驱动)识别,准确率甚至比人还要高,但是当图片稍微新奇一点,或者有噪点、条纹,机器视觉系统就会犯傻了。为什么会这样呢?德国研究团队给出一个原因,这个原因出乎意料:人类会关注图中对象的形状,深度学习计算机系统所用的算法不一样,它会研究对象的纹理。德国的发现告诉我们人类与机器“思考”问题时有着明显区别,也许还能揭示人类视觉进化的秘密。?当你看一张猫的照片时,你很容易知道猫是否有条纹。无论照片是黑白的、有斑点的、磨损的还是褪色的,都能轻松识别。不管蜷缩在枕头后面的宠物;或者跳到工作台上,留下一个朦胧的画面,你很容易就能认出来。如果用机器视觉系统(深度神经网络驱动)进行识别,准确率甚至比人还高,但是当画面有点新奇,或者有噪点和条纹的时候,机器视觉系统就会傻掉。为什么会这样?德国研究团队给出了一个出人意料的原因:人类会关注图片中物体的形状,深度学习计算机系统使用的算法不同,它会研究物体的纹理。德国的发现告诉我们,人类和机器在“思考”问题时存在明显的差异,也可能揭示人类视觉进化的秘密。

披着象皮的猫和钟表做的飞机。

深度学习算法是如何“工作”的?首先,人类给算法看了很多图片,有些有猫,有些没有。算法从图片中找到“特定的模式”,然后利用模式做出判断,看从未见过的图片应该贴上什么样的标签。神经网络结构是根据人类视觉系统开发的。网络的各层连接在一起,从图片中提取抽象特征。神经系统通过一系列的连接得到正确的答案,但是整个过程非常神秘,人类只有在事实形成后才能解释这个神秘的过程。俄勒冈州立大学的计算机科学家托马斯·迪特里奇(Thomas Dietterich)说,“我们试图找出是什么让深度学习计算机视觉算法成功,是什么让它脆弱。”怎么做?研究人员修改了图片,并欺骗神经网络,看看会发生什么。研究人员发现,即使只是很小的修改,系统也会给出完全错误的答案。修改量大的时候,系统连图片都无法标注。其他研究人员跟踪该网络,以了解单个神经元如何对图像做出反应,并了解系统学到了什么。德国图宾根大学科学家盖尔斯领导的团队采用了一种独特的方法进行研究。去年,该团队发表了一份报告,称他们用特殊的噪声干扰图像,将其降级,然后用图像训练神经网络。研究发现,如果将新的图像交给系统处理,这些图像就会失真(同样失真),系统在识别失真图像方面的表现比人更好。然而,如果图像以稍微不同的方式失真,神经网络就无能为力了。即使图像像人眼一样扭曲,算法也会出错。

对于这样的结果如何解释?研究人员深入思考:到底是什么发生了变化,即使只是加入很少的噪点,也会发生如此大的变化?答案是纹理。当你在很长的时间段内添加许多噪点,图中对象的形状基本不会受到影响;不过即使只是添加少量噪点,局部位置的架构也会快速扭曲。研究人员想出一个妙招,对人类、深度学习系统处理图片的方式进行测试。研究人员故意制作存在矛盾的图片,也就是说将一种动物的形状与另一种动物的纹理拼在一起,制作成图片。例如:图片中的动物轮廓是猫,但是猫披着大象纹理;或者是一头熊,但它们是由铝罐组成的;又或者轮廓是飞机,但飞机是由重叠的钟面组成的。研究人员制作几百张这样的拼凑图片,然后给它们标上标签,比如猫、熊、飞机。用4种不同的分类算法测试,最终它们给出的答案是大象、铝罐、钟,由此看出算法关注的是纹理。Columbia大学计算机神经科学家Nikolaus Kriegeskorte评论说:“这一发现改变了我们对深度前向神经网络视觉识别技术的认知。”乍一看,AI偏爱纹理而非形状有点奇怪,但细细深思却是有理的。Kriegeskorte说:“你可以将纹理视为精密的形状。”对于算法系统来说精密的尺寸更容易把握:包含纹理信息的像素数量远远超过包含对象边界的像素数量,网络的第一步就是检测局部特征,比如线条,边缘。多伦多约克大学计算机视觉科学家John Tsotsos指出:“线段组按相同的方式排列,这就是纹理。”Geirhos的研究证明,凭借局部特征,神经网络足以分辨图像。另有科学家开发一套深度学习系统,它的运行很像深度学习出现之前的分类算法——像一个特征包。算法将图像分成为小块,接下来,它不会将信息逐步融合,变成抽象高级特征,而是给每一小块下一个决定,比如这块包含自行车、那块包含鸟。再接下来,算法将决定集合起来,判断图中是什么,比如有更多小块包含自行车线索,所以图中对象是自行车。算法不会考虑小块之间的空间关系。结果证明,在识别对象时系统的精准度很高。研究人员Wieland Brendel说:“这一发现挑战了我们之前的假定,我们之前认为深度学习的行为方式与旧模型完全不同。很明显,新模型有很大飞跃,但飞跃的幅度没有大家预料的那么大。”约克大学、多伦多大学博士后研究员Amir Rosenfeld认为,网络应该做什么,它实际做了什么,二者之间仍有很大差异。Brendel持有相似观点。他说,我们很容易就会假定神经网络按人类的方式完成任务,忘了还有其它方式。?你怎么解释这个结果?研究者深思:是什么发生了变化,哪怕只增加一点点噪音,就能发生这么大的变化?答案是质地。当你在很长一段时间内加入大量的噪声时,图片中物体的形状基本不会受到影响;但是,即使只添加少量噪声,局部位置的架构也会很快失真。研究人员想出了一个妙招,来测试人类和深度学习系统处理图片的方式。研究人员故意制作相互矛盾的图片,也就是说,将一种动物的形状和另一种动物的纹理放在一起制作一张图片。比如图中动物的轮廓是猫,但猫身上披着大象纹理;或者一只熊,但它们是用铝罐制成的;或者轮廓是一架飞机,但飞机是由重叠的钟面组成的。研究人员制作数百张这样拼凑的图片,然后贴上标签,比如猫、熊、飞机。用四种不同的分类算法测试,他们给出的最终答案是大象、铝罐和时钟,可见算法侧重于纹理。哥伦比亚大学计算机神经科学家Nikolaus Kriegeskorte评论道,“这一发现改变了我们对深度前馈神经网络视觉识别技术的认知。”乍一看,AI更喜欢质感而不是形状,这有点奇怪,但仔细想想也是有道理的。Kriegeskorte说,“你可以把纹理想象成一个精确的形状。”对于算法系统来说,精确的大小更容易把握:包含纹理信息的像素数量远远超过包含物体边界的像素数量。网络的第一步是检测局部特征,例如线和边。多伦多大学的计算机视觉科学家约翰·措措斯(John Tsotsos)指出:“线段以同样的方式排列,这就是纹理。”Geirhos的研究证明,神经网络足以区分具有局部特征的图像。另一位科学家开发了一套深度学习系统,其工作原理很像深度学习出现之前的分类算法——像一个特征包。该算法将图像分成小块。接下来,它不是逐渐将信息合并到抽象的高级特征中,而是为每个小块做出决定,例如这个包含自行车,那个包含鸟。接下来,算法将收集决策并判断图片中的内容。比如包含自行车线索的小件比较多,那么图中的物体就是自行车。该算法不考虑小块之间的空关系。结果表明,该系统识别物体的准确率很高。研究人员维兰德·布伦德尔说:“这一发现挑战了我们之前的假设,即深度学习的行为与旧模型完全不同。很明显,新模式有了很大的飞跃,但飞跃并没有大家预期的那么大。”约克大学和多伦多大学博士后研究员阿米尔·罗森菲尔德(Amir Rosenfeld)认为,网络应该做的和实际做的还是有很大差别的。布伦德尔持有类似的观点。他说,很容易假设神经网络以人类的方式完成任务,而忘记了还有其他方式。

接近人类视觉

目前的深度学习技术可以将局部特征(比如纹理)与整体模式(比如形状)结合 在一起。Columbia大学计算机神经科学家Nikolaus Kriegeskorte说:“在这些论文中有一点让人感到稍稍有些奇怪,架构虽然允许这样做,不过如果你训练神经网络时只是希望它分辨标准图像,它不会自动整合,这点在论文中得到明显证明。”如果强迫模型忽视纹理,又会怎样呢?Geirhos想找到答案。团队将训练分类算法的图片拿出来,用不同的方式给它们“粉刷”,将实用纹理信息剔除,然后再用新图片重新训练深度学习模型,系统转而依赖更全局的模式,像人类一样更加偏爱形状。当算法这样行动时,分辨噪点图像的能力同样更强了,虽然在此之前研究人员并没有专门训练算法,让它识别扭曲图像。对于人类来说,可能自然而然也存在这样的“偏爱”,比如偏爱形状,因为当我们看到一件东西,想确定它是什么时,靠形状判断是最有效的方式,即使环境中有许多干扰,同样如此。人类生活在3D世界,可以从多个角度观察,我们还可以借助其它感知(比如触觉)来识别对象。所以说,人类偏爱形状胜过纹理完全合理。德国图宾根大学研究人员Felix Wichmann认为:这项研究告诉我们数据产生的偏见和影响远比我们认为的大得多。之前研究人员也曾发现相同的问题,例如:在面部识别程序、自动招聘算法及其它神经网络中,模型过于重视意料之外的特征,因为训练算法所用的数据存在根深蒂固的偏见。想将这种不想要的偏见从算法决策机制中剔除相当困难,尽管如此,Wichmann认为新研究证明剔除还是有可能的。虽然Geirhos的模型专注于形状,不过如果图像中噪点过多,或者特定像素发生变化,模型仍然会失败。由此可以证明,计算机算法离人类视觉还有很远距离。在人类大脑中,可能还有一些重要机制没有在算法中体现出来。Wichmann认为,在某些情况下,关注数据集可能更重要。多伦多大学计算机科学家Sanja Fidler认同此观点,她说:“我们要设计更聪明的数据和更聪明的任务。”她和同事正在研究一个问题:如何给神经网络分派第二任务,通过第二任务让它在完成主任务时有更好表现。受到Geirhos的启发,最近她们对图像分类算法进行训练,不只让算法识别对象本身,还让它识别对象轮廓(或者形状)中的像素。结果证明,执行常规对象识别任务时,神经网络越来越好,自动变得越来越好。Fidler指出:“如果指派单一任务,你会特别关注某些东西,对其它视而不见。如果分派多个任务,也许能感知更多。算法也是一样的。”当算法执行多个任务时,它会关注不同的信息,就像Geirhos所做的“形状纹理”实验一样。美国俄勒冈州立大学计算机科学家Thomas Dietterich认为:“这项研究是一个激动人心的突破,深度学习到底发生了什么?我们对此有了更深的理解,也许研究还能帮助我们突破极限,看到更多东西。正因如此,我很喜欢这些论文。”

温馨提示:内容均由网友自行发布提供,仅用于学习交流,如有版权问题,请联系我们。