这是我的最爱啊 还没学明白 欢迎大佬来指点哦
卷积神经网络
虽然人类对于生物神经系统的认知并非十分透彻,但针对于这个问题,科学家采取了人工神经网络的算法进行应对。并随着机器深度学习算法的不断进步,对于物体识别与图像处理的机器应用与研究方面也有很大的帮助。不仅如此,人工神经网络的算法也在不断地完善与创新。从最开始的手写数字的自动识别时开始传统神经网络的应用。但是这种图像识别首先需要大量的正负标记的物体样本数据,然后使用选定的神经网络和损失函数模型通过监督学习的方法进行训练,以确定网络中不同神经元的权重。
学习过程中的知识是成功的关键。为了增强网络的表达能力,需要足够数量的隐藏层和神经网络中的神经元数量。由于一般图像中包含的像素数量非常多,相应的神经网络的参数量也很大。虽然理论上全连接神经网络可以将包含图像的高纬度像素空间映射到代表类别的低纬度特征空间,但实际应用中所需的神经元参数空间是巨大的,尤其是隐藏层增加了训练成本和难度也大大增加,在很大程度上影响了手写图片的识别准确率。
识别准确率不高原因
相较于传统的神经网络带来的种种不便,法裔美国计算机学家杨立昆1989年发明了卷积神经网络。这项研究成果是人工智能深度学习历史上划时代的里程碑,其核心思想得益于美国神经学家大卫·休伯尔和托斯坦·威泽尔对动物视觉神经感知过程的研究成果,也受到日本计算机科学家福島邦彦的新认知子理论模型的启发。
卷积神经网络的发展历程
卷积神经网络的基本结构由输入层、卷积层、池化层(也称为取样层)、全连接层及输出层构成。卷积层和池化层一般会取若干个,采用卷积层和池化层交替设置,即一个卷积层连接一个池化层,池化层后再连接一个卷积层,依此类推。由于卷积层中输出特征面的每个神经元与其输入进行局部连接,并通过对应的连接权值与局部输入进行加权求和再加上偏置值,得到该神经元输入值,该过程等同于卷积过程。
卷积神经网络的基本结构
同样,图像识别的实质是将图像的像素数据经过某种压缩编码提取其中物体的语义信息,卷积神经网络发挥着关键的作用,它通过使用低维度卷积核或滤波器对图像的局部像素空间进行卷积,然后进入神经元激活来提取图像的特征,所产生图像被称为特征图。接下来可以对卷积后的特征图进行池化,即首先用滤波器在特征图按给定步长移动,每次对每个区域的元素通过“平均”或“最大”化操作进行数据压缩,从而产生一组维度更低的特征图。
卷积网络相邻连接的局部性导致整体连接的稀疏性,有助于减少训练过程中的过度拟合,提高的网络的泛化能力。使用同一滤波器以实现参数共享,不仅大大减少的网络的参数空间,也在一定程度上确保了特征对位移、拉伸和旋转的相对不变性,从而提高了算法的鲁棒性。在深度学习神经网络中,一般均采取多个“卷积-激活-池化”层分级提取图像的特征信息,不断对原始图像数据进行压缩编码最终通过完全连接网络实现图像分类与识别。[2]
卷积神经网络由浅到深、从局部到全局,通过不断提取和压缩图像的特征数据,最终实现对图像中数字识别的过程。在这个过程中“编码-解码”的基本规则不可忽视。卷积神经网络通过不断卷积和池化编码提取图像的宏观特征和语义,但同时会损失图像的空间分辨率和局部特征。为了平衡全局物体分类和局部物体定位之间的矛盾,科学家采用了通过数据扩展的“上采样”提高图像的分辨率和获取图像的局部特征,这种方式很好地弥补了卷积池化这种数据压缩的“下采样”带来的问题。
韩国浦项工科大学的研究者在标准卷积网络上附加一个对称的“反卷积”网络,对卷积网络产生的特征图进行对应的上采样,最终输出与输入图像同样尺寸和分辨率的语义分割图像。这种端到端“编码-解码”神经网络的下采样和上采样参数均通过训练学习获得,能够取得更高的语义分割精度。
在图像识别与人工智能的处理过程中,先验知识也起到关键的作用。因为虽然通过人工智能的相关算法可以较为精准地识别出图像。但是针对于图像应该作出的判断与反应,例如识别出该图像具体是一个什么事物,这些事物之间的可能存在的关系,以及这些事物所代表的含义等等,却是需要先验知识作为前提,再用现有知识与之进行比对才能做出合适的判断。正如我们在“自然智能”章节中所讲到的有关情绪智能的部分。如果想让人工智能真正如电影《人工智能》里面一般,可以通过图像识别分辨出人的表情,从而分析出他的喜怒哀乐的情感。那么这个图像识别程序中就必须要有一定的先验知识,才能达到这样的境界。 哈哈 不过这个电影并没看过 估计 也不怎么好看把
矛盾的解决
物体识别既要提取语义信息,又要获取位置信息,前者需要全局特征,而后者需要局部特征。这两个矛盾看似不可调和,实际上却存在非常丰富的解决办法。在讨论这个问题之前。我们要先明确计算机视觉的任务,它主要分为两大类:物体检测与实例分割。物体检测即确定包含目标物体边框的大小与位置并识别其所属类别,而实例分割即确定包含目标物的像素空间并识别其所属类别。物体检测或事件分割既需要识别目标物体的类别,又需要确定被识别物体的定位边框或所占据的像素空间。
当只有单物体需要识别时,通过神经网络卷积与池化之后产生了一组特征图,通过两个完全连接网络,我们既可以对图像中的物体进行分类,也可以对物体所处的边框参数进行回归等等的方法解决。
如果要进行多物体的识别,解决这两个矛盾的基本方法之一是先设法确定图像中可能包含不同物体的边框,再对每一个边框中的单一物体进行分类。这种先分割、再分类的策略需要找到可以包含被识别物体的边框。但是由于现实中图像中的物体呈现的情形非常复杂以及综合原因的影响,在分类之前识别和定位这些物体本身也是一件极具挑战性的问题。虽然理论上可以先将图像按某种方式分为不同尺寸的边框,希望这些边框能够以最小边框最大限度覆盖图像中包含的物体。针对这个问题,科学家们人工设计一种选择搜索的算法,对一幅给定图像产生若干个可能覆盖物体的边框。于是美国加州大学伯克利分校的博士后研究员 Girshick及合作者在骨干网络产生特征图之后再用选择搜索算法产生定位边框,从而大大减少了图像分类的重复计算。[3] 虽然这种方法可以取得比较高的精度,但网络训练过程复杂且效率低。
为了解决这个问题,科学家们提出了单步算法,美国华盛顿大学博士研究生Redmon 等提出的“你只看一次”(YOLO)算法,基本思想是将物体识别问题视为针对不同定位边框和分类概率的回归问题,YOLO首先将输入图像划分为网格,然后以每个网格为中心定义若干个不同比例和尺寸的锚定边框,作为卷积神经网络的输入。在卷积神经网络的输出端对每个网格输出所有锚定边框与基础真相边框的相对位置和尺寸参数以及对应边框中不同类别的概率。我们只考虑信心系数大于一定阈值的锚定边框,最终只输出包含目标物体的边框,否则则认为边框所对应的是背景。[4]其应用非常广泛,如识别下面图像中自行车和小狗的应用: whaosoft aiot http://143ai.com
YOLO算法的实际应用
为了更进一步的保证定位边框的精度,微软研究院何凯明等人于2017年发明了“掩膜R-CNN”, 在原Fast R-CNN基础上引入一个与物体检测平行的卷积神经网络对区域建议网络产生的物体区域提取掩膜。为了克服原来物体识别网络“关注区域池化”中输入图像与特征图图像像素之间产生的偏移误差,采取了线性插值方法进行校准,并以“关注区域对准”取而代之。[5]这种在包含物体的定位边框内生成物体所对应的像素空间的方法是一种“先检测再区分”的策略。这在极大程度上解决了这两者之间的矛盾。