当前位置: 首页 > 科技观察

卷积神经网络是如何进行图像识别的

时间:2023-03-16 15:58:58 科技观察

什么是图像识别?为什么需要图像识别?在机器视觉的概念中,图像识别是指软件区分图片中的字符、位置、物体、动作、笔迹等的能力。计算机可以应用机器视觉技术结合人工智能和相机进行图像识别。识别物体对于人类和动物的大脑来说很简单,但同样的任务对于计算机来说却很困难。当我们看到一棵树、一辆汽车或我们的朋友之类的东西时,我们通常不需要下意识地研究它就可以分辨出它是什么。然而,对于计算机来说,识别任何东西(无论是时钟、椅子、人还是动物)都是一个非常困难的问题,并且找到解决问题的方法是昂贵的。图像识别算法一般采用机器学习的方法来模拟人脑进行识别的方式。根据这种方法,我们可以教计算机区分图像中的视觉元素。依靠大型数据库,计算机可以通过识别数据中的模式来理解图像,然后形成相关的标签和类别。图像识别技术的普及图像识别技术的应用有很多。其中最常见的是借助图像识别技术对人物照片进行分类。谁不想根据视觉主题更好地管理庞大的照片库?从具体项目到广阔的景观。图像识别技术给照片分类应用的用户体验带来了全新的感受。除了提供照片存储,应用程序还可以更进一步,为人们提供更好的发现和搜索功能。通过机器学习进行自动图像管理,他们可以做到这一点。应用程序中集成的图像识别程序界面可以根据机器识别的特征对图像进行分类,并可以按主题对照片进行分类。图像识别的其他应用包括存储照片和视频网站、互动营销和创意活动、社交网络的人脸和图像识别,以及具有大型视觉图像库的网站的图像分类。图像识别是一项艰巨的任务图像识别不是一件容易的事,一个好的方法是将元数据应用于非结构化数据。聘请专家手动注释音乐和电影库可能是一项艰巨的艰巨任务,但挑战包括教会自动驾驶汽车的导航系统将过马路的行人与不同的行人区分开来,或者对用户浏览的数百万视频或照片进行标记和分类。每天发布到社交媒体。解决这个问题的一种方法是使用神经网络。理论上,我们可以使用传统的神经网络来分析图像,但实际上它的计算量很大。例如,传统的神经网络在处理一张小图片(假设30*30像素)时,仍然需要50万个参数和900个输入神经元。一个相当强大的机器可以运行这个网络,但是一旦图像变大(例如,500*500像素),参数和输入的数量将达到一个非常高的数量级。神经网络应用于图像识别时出现的另一个问题是过拟合。简单来说,过拟合一般发生在模型与训练数据拟合得太好时。通常,这会导致参数增加(进一步增加计算成本)和模型结果在新数据上的整体性能下降。ConvolutionalNeuralNetworkConvolutionalNeuralNetworkArchitecture模型根据神经网络的构建方式,相对简单的更改可以使更大的图像更容易处理。这种变化的结果就是我们所看到的卷积神经网络(CNNs,ConvNets)。神经网络的普遍适应性是它们的优势之一,但是在处理图像时,这种优势就变成了负担。卷积神经网络专门权衡了这一点:如果网络是专门为处理图像而设计的,则需要牺牲一些通用性以获得更可行的解决方案。对于任何图像,像素之间的距离与其相似度有很强的关系,卷积神经网络的设计正是利用了这一特点。这意味着,对于给定的图像,距离较近的两个像素比距离较远的像素更相似。然而,在正常的神经网络中,每个像素都连接到一个神经元。在这种情况下,额外的计算负载会使网络变得不精确。卷积神经网络通过消除大量相似的不重要连接来解决这个问题。从技术上讲,卷积神经网络通过基于相似性过滤神经??元之间的连接,使图像处理在计算层面可控。对于给定的层,卷积神经网络不是将每个输入连接到每个神经元,而是专门限制连接,以便任何神经元只能接受来自前一层的一小部分输入(例如3*3或5*5)。因此,每个神经元只需要负责处理图像的特定部分。(顺便说一句,这基本上就是人脑的单个皮层神经元的工作方式。每个神经元只对整个视野的一小部分做出反应)。上图中从左到右可以看出卷积神经网络的工作过程:网络扫描输入的真实图像,提取特征。传递特征的过滤器由浅色方块表示。激活图按堆栈排列,每个过滤器对应一个。较大的方块是要下采样的块。激活图通过下??采样进行压缩。过滤下采样的激活图以生成一组新的激活图。第二次下采样-压缩第二组激活图。全连接层为每个节点的输出分配一个标签。卷积神经网络是如何根据相似度过滤连接的呢?诀窍在于添加了两个新的层结构:池化层和卷积层。我们分解以下步骤。介绍了一个旨在只做一件事的网络的例子,决定一张图片是否包含爷爷。该过程的第一步是卷积层,它本身由几个小步骤组成。首先,我们需要将包含祖父的图片分解成一系列重叠的3*3像素块。在此之后,我们将每个像素块输入到一个简单的单层神经网络中,并保持权重不变。此步骤将像素块集转换为矩阵。只要我们保持每个像素块较小(此处为3*3),处理它们所需的网络也可以保持可管理和较小。下一步会将输出值排列成矩阵,以数据形式表示照片中每个区域的内容,不同的轴分别表示颜色、宽度和高度通道。对于每个图像块,都有一个3*3*3的表示。(如果你正在处理视频,你可以添加第四个维度来表示时间)。接下来是池化层。池化层在空间维度上对这些3或4维矩阵进行下采样。处理的结果是一个池化数组,它只包含图像的重要部分并丢弃其他部分,从而最大限度地减少了计算成本并避免了过拟合问题。下采样后的矩阵作为全连接层的输入。多亏了池化和卷积运算,输入的大小大大减少了,我们现在有了一个普通网络可以处理的东西,同时保持数据最重要的属性。最后一步的输出代表了系统对图片中有爷爷的判断的置信度。在实际应用中,卷积神经网络的工作过程很复杂,包括大量的隐藏层、池化层和卷积层。此外,真正的卷积神经网络一般涉及数百甚至数千个标签,而不仅仅是其中的一个例子。如何构建卷积神经网络从头开始??构建卷积神经网络既费时又费力。已经有许多API可以实现有关卷积神经网络的想法,而无需工程师了解机器学习的原理或计算机视觉方面的专业知识。GoogleCloudVisionGoogleCloudVision是一个使用RESTAPI构建的视觉识别API。它基于开源的TensorFlow框架。它可以检测个人面孔或物体,并包含一组非常全面的标签。IBMWatsonVisualRecognitionIBMWatsonVisualRecognition是WatsonDeveloperCloud服务的一部分,带有大量内置类别,但它实际上是为根据您提供的图像训练自定义类别而构建的。同时,和GoogleCloudVision一样,它也提供了很多花哨的功能,包括NSFW和OCR检测。Clarif.aiClarif.ai也是一个使用RESTAPI的初创图像识别服务。Clarif.ai的有趣之处在于它附带了一系列模块,可用于修改算法并将其应用于特定主题,例如食物、旅行和婚姻。虽然上述API适用于一些通用应用程序,但最好针对特定问题开发自定义解决方案。幸运的是,有大量库可以解决优化和计算问题,开发人员和数据科学家可以通过只关注训练模型来让他们的生活更轻松一些。这些库包括Theano、Torch、DeepLearning4J和TensorFlow,它们已成功用于各种应用程序。卷积神经网络的有趣小应用:自动为无声电影添加声音要为无声电影添加匹配的声音,系统必须在此任务中自动合成声音。该系统使用数以千计的鼓棒敲击不同表面时发出的不同声音的视频示例进行训练。深度学习模型将视频帧与预先录制的声音相关联,然后选择与场景最匹配的音频进行播放。该系统通过图灵测试进行评估,由人类决定哪些视频是合成的,哪些是真实的声音。这是卷积神经网络和LSTM递归神经网络的一个非常流行的应用。