图像识别已成为当下的主流,每天都有成千上万的公司和数百万的消费者在使用这项技术。 图像识别由深度学习提供动力,特别是卷积神经网络(CNN),这是一种神经网络体系结构,可模拟视觉皮层如何分解并分析图像数据。CNN和神经网络图像识别是计算机视觉深度学习的核心组成部分,它具有许多应用场景,包括电子商务,游戏,汽车,制造业和教育。
在本文中,你将学习到:
1)什么是图像识别?
2)图像识别如何工作?
3)神经网络的图像数据预处理步骤
4)使用神经网络建立图像预测模型
5)卷积神经网络及其在图像识别中的作用
6)图像识别的应用
1、什么是图像识别?
图像识别使用人工智能技术自动识别图像中的对象,人物,位置和动作。 图像识别用于执行任务,例如使用描述性标签标记图像,在图像中搜索内容以及引导机器人,自动驾驶汽车和驾驶员辅助系统。
图像识别对于人类和动物来说是很自然的,但是对于计算机来说却是一项极其困难的任务。 在过去的二十年中,计算机视觉领域出现了,并且已经开发了可以挑战的工具和技术。目前用于图像识别任务的最有效工具是深层神经网络,特别是卷积神经网络(CNN)。 CNN是一种旨在有效处理,关联和理解高分辨率图像中的大量数据的体系结构。
2、图像识别如何工作?
人眼将图像视为一组信号,由大脑的视觉皮层来解释。结果是一个场景的体验,它链接到保留在内存中的对象和概念。图像识别模仿了这一过程。计算机以一组矢量(带有彩色注释的多边形)或一个栅格(一个带有颜色离散数值的像素画布)“看到”图像。
在神经网络图像识别过程中,图像的矢量或光栅编码被转换为描绘物理对象和特征的构造。计算机视觉系统可以从逻辑上分析这些构造,首先是通过简化图像并提取最重要的信息,然后通过特征提取和分类来组织数据。最后,计算机视觉系统使用分类或其他算法来决定图像或图像的一部分-它们属于哪个类别,或者如何最好地描述它们。
3、图像识别算法
一种图像识别算法是图像分类器。它以图像(或图像的一部分)作为输入并预测图像包含的内容。输出是一个类别标签,例如狗,猫或桌子。需要训练该算法以学习和区分类。
在一个简单的情况下,要创建一种可以识别带有狗的图像的分类算法,你将训练具有数千个狗的图像和数千个没有狗的背景图像的神经网络。该算法将学习提取识别“狗”对象的特征,并正确分类包含狗的图像。虽然大多数图像识别算法是分类器,但其他算法可用于执行更复杂的活动。例如,循环神经网络可用于自动编写描述图像内容的标题。
4、神经网络的图像数据预处理步骤
神经网络图像识别算法依赖于数据集的质量-用于训练和测试模型的图像。以下是图像数据准备的一些重要参数和注意事项。
1)图像大小-更高质量的图像为模型提供了更多信息,但需要更多的神经网络节点和更多的计算能力来处理。
2)图像数量-你向模型提供的数据越多,它将越精确,但要确保训练集代表实际人口。
3)通道数-灰度图像具有2个通道(黑白),彩色图像通常具有3个颜色通道(红色,绿色,蓝色/ RGB),其颜色表示为[0,255]。
4)高宽比-确保图像具有相同的高宽比和尺寸。通常,神经网络模型采用正方形输入图像。
5)图像缩放-一旦所有图像都经过平方处理,就可以缩放每个图像。有许多放大和缩小技术,它们可以作为深度学习库中的函数使用。
6)输入数据的均值,标准差-在所有训练示例中,你可以通过计算每个像素的平均值来查看“均值图像”,以获得有关图像中基础结构的信息。
7)标准化图像输入-确保所有输入参数(在这种情况下为像素)均具有均匀的数据分布。训练网络时,这将加快融合速度。你可以通过从每个像素中减去平均值,然后将结果除以标准偏差来进行数据归一化。
8)降维-你可以决定将RGB通道折叠为灰度通道。如果你打算使神经网络对该尺寸不变,或者使训练的计算强度降低,则可能需要减小其他尺寸。
9)数据扩充-涉及通过扰动当前图像的类型(包括缩放和旋转)来扩充现有数据集。这样做是为了使神经网络具有多种变体。这样,该神经网络不太可能识别数据集中的有害特征。
5、使用神经网络建立图像预测模型
准备好训练图像后,你将需要一个可以处理它们并使用它们对新的未知图像进行预测的系统。该系统是一个人工神经网络。神经网络图像识别算法可以对几乎所有内容进行分类,从文本到图像,音频文件和视频。
神经网络是称为神经元或感知器的节点的互连集合。每个神经元都会获取一份输入数据,通常是图像的一个像素,然后应用称为**函数的简单计算来生成结果。每个神经元都有影响其结果的数值权重。
该结果将被馈送到其他神经层,直到该过程结束时,神经网络为每个输入或每个像素生成一个预测。多层感知器此过程针对大量图像重复进行,并且网络在称为反向传播的过程中为每个神经元学习最合适的权重,从而提供准确的预测。训练模型后,将其应用于未参与训练的一组新图像(测试或验证集)以测试其准确性。进行一些调整后,该模型可用于对真实世界的图像进行分类。
6、常规神经网络在图像识别中的局限性
传统的神经网络使用完全连接的体系结构,如下所示,其中一层中的每个神经元都连接到下一层中的所有神经元。完全连接的神经网络在处理图像数据时,完全连接的体系结构效率很低:
对于具有数百个像素和三个通道的普通图像,传统的神经网络将生成数百万个参数,这可能会导致过拟合。
该模型将需要大量的计算。
可能难以解释结果,调试和调整模型以提高其性能。
7、卷积神经网络及其在图像识别中的作用
与完全连接的神经网络不同,在卷积神经网络(CNN)中,一层中的神经元不会连接到下一层中的所有神经元。相反,卷积神经网络使用三维结构,其中每组神经元都分析图像的特定区域或“特征”。 CNN会按接近程度过滤连接(仅针对附近的像素分析像素),从而可以在计算上实现训练过程。
在CNN中,每组神经元都专注于图像的一部分。例如,在猫的图像中,一组神经元可能会识别出头部,另一组是身体,另一组是尾部等。在分割的几个阶段中,神经网络图像识别算法会分析图像的较小部分,以便例如,在头部,猫的鼻子,胡须,耳朵等内部。最终输出是概率矢量,它针对图像中的每个特征预测其属于某个类别或类别的可能性。
8、卷积神经网络的有效性和局限性
CNN架构使使用行业基准数据集预测图像中的对象和面部的可能性达到了95%的准确性,而人类能力达到了94%的准确性。 即便如此,卷积神经网络也有其局限性:需要高处理能力。 通常在具有专用图形处理单元(GPU)的高成本机器上训练模型。
当图像旋转或倾斜时,或者图像具有所需对象的特征,但顺序或位置不正确时,可能会失败,例如,鼻子和嘴巴张开的脸。 已经出现了一种称为CAPSNet的新体系结构来解决此限制。
9、图像识别应用
图像识别的实现包括安全性和监视,面部识别,视觉地理定位,手势识别,对象识别,医学图像分析,驾驶员帮助以及网站或大型数据库中的图像标记和组织。图像识别已进入主流。人脸,照片和视频帧识别已在Facebook,Google,Youtube和许多其他高端消费者应用程序中使用。已经出现了工具包和云服务,可以帮助较小的参与者将图像识别集成到他们的网站或应用程序中。
10、在各行业中使用图像识别
1)电子商务行业-图像识别用于自动处理,分类和标记产品图像,并实现强大的图像搜索。例如,消费者可以搜索带有特定扶手的椅子并接收相关结果。
2)游戏产业-图像识别可用于将数字层置于真实世界的图像之上。增强现实为现有环境添加了细节。精灵宝可梦Go是一款依靠图像识别技术的流行游戏。
3)汽车工业-自动驾驶汽车在美国处于测试阶段,并在许多欧洲城市用于公共交通。为了促进自动驾驶,传授了图像识别功能,以识别道路上的物体,包括移动的物体,车辆,人和道路,以及识别交通信号灯和道路标志。
4)制造业-在制造周期的不同阶段采用图像识别。它用于减少制造过程中的缺陷,例如,通过存储具有相关元数据的组件的图像并自动识别缺陷。
5)教育—图像识别可以帮助有学习障碍和残疾的学生。例如,以计算机视觉为动力的应用程序提供了图像转语音和文本转语音功能,可以向阅读障碍或视力障碍的学生朗读材料。
计算机视觉与语音识别的应用示例
Gravitylink推出的钛灵AIX是一款集计算机视觉与智能语音交互两大核心功能为一体的人工智能硬件,Model Play是面向全球开发者的AI模型资源平台,内置多样化AI模型,与钛灵AIX结合,基于Google开源神经网络架构及算法,构建自主迁移学习功能,无需写代码,通过选择图片、定义模型和类别名称即可完成AI模型训练。
在本文中,我们介绍了图像识别的基础知识,以及如何通过卷积神经网络实现它。当你开始研究CNN项目时,使用TensorFlow,Keras和PyTorch等深度学习框架来处理图像和对图像进行分类时,你会遇到一些实际挑战:
1)追踪实验
跟踪实验源代码,配置和超参数。卷积网络可以具有许多参数和结构变化。你需要进行成百上千次实验才能找到提供最佳性能的超参数。组织,跟踪和共享实验数据和结果可能是一个挑战。
2)在多台机器上运行实验/在本地或云端扩展实验
CNN的计算量很大,在实际项目中,你需要在多台计算机上扩展实验规模。无论是在内部还是在云上配置机器,将它们设置为运行深度学习项目并在它们之间分发实验都是非常耗时的。
3)管理训练数据集/管理培训数据
计算机视觉项目涉及诸如图像或视频之类的富媒体,其大型培训集的大小从千兆字节到PB级。将数据复制到每台训练机,然后在更改训练集时重新复制,这既耗时又容易出错。