⽤于图像识别的神经⽹络,以及5⼤应⽤场景
图像识别已成为当下的主流,每天都有成千上万的公司和数百万的消费者在使⽤这项技术。 图像识别由深度学习提供动⼒,特别是卷积神经⽹络(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级。将数据复制到每台训练机,然后在更改训练集时重新复制,这既耗时⼜容易出错。
>未识别的网络