爱收集资源网

视觉识别挑战赛数据集:4个关键技术应用,颠覆你的视觉体验

网络整理 2023-10-28 17:09

卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,是现今图象处理的主流技术。说起CNN频域网路,不得不说2012 年Alex Krizhevsky 凭借它们博得了那一年的 ImageNet 大赛(由斯坦福大学李飞飞发起的世界级人工智能比赛),AlexNet将图象分类偏差记录从 26% 降低到 15%,之后好多公司开始将深度学习作为的核心技术发展。Facebook、谷歌、亚马逊等著名公司都借助频域网路进行图象辨识,商品推送等工作。

CNN卷积神经网络是一个大家族,对图象而言主要有以下4个关键技术应用。

物体定位:预测包含主要物体的图象区域,以便辨识区域中的物体。

物体辨识:针对分割好的目标进行分类。

目标分割:将图象目标分割下来,针对图象上的象素进行归属,例中如人类、建筑物等。

关键点测量:从图象中测量目标物体上某关键点的位置,例如人类脸部关键点信息。

CNN网路训练数据集是公开的,支持全球的开发者进行下载训练模型数据集:

(1)MNIST:最受欢迎的深度学习数据集之一。手写数字数据集,包含一组60,000个示例的训练集和一个包含10,000个示例的测试集。

(2)ImageNet:李飞飞成立的全球视觉辨识挑战赛数据集(ILSVRC)。

(3)PASCAL:标准化的优秀的数据集,数据集可以用于图象分类、目标测量、图像分割。

(4)MS-COCO:COCO是一个小型的、丰富的物体检查,分割和字幕数据集。

为什么要用CNN来处理图象呢?原因很简单,因为能在短时间内提取图象特点。一般来讲,普通神经网路将输入层和蕴涵层进行全联接(Full Connected),从而保证系统才能提取张图象的特点。从算力的角度来剖析,较小的图象从整幅图象中估算特点是可行的。比如提取一张28x28的小相片的特点,当前CPU还够用。但是,如果提取大的图象(如 96x96 的图象),要使用这些普通神经网路全全联接方式来学习整幅图象上的特点,将显得十分历时。需要设计个输入单元,如果要学习 100 个特点,那么就有个参数须要进行运算。相比之下,96x96 的图象估算过程比28x28图象的处理过程慢100倍。大家都明白当前的照片动不动就是高清大图,普通神经网路根据全联接的方法难以预计何时能够处理完。

下面的内容是本节的重点部份,我们具体来述说一下CNN网路的实现过程。

1. 图像的输入

我们首先要搞清楚一张相片是怎样输入到神经网路中的。众所周知,计算机适宜处理的是矩阵运算,所以必须要把图片转换成矩阵后计算机能够认识。所有的彩色图象都由红绿蓝(RGB)叠加而成,成为图象的三个通道,一张图片在计算机中储存也是通过这三个矩阵完成的。

图4-23图的色调通道

如图4-23所示,一张64*64个象素大小的图片(例如蓝色可以表示成RGB(255,255,255),可以用3个64*64大小的矩阵来代表这个图。上面指画三个5 * 4的矩阵来代表64*64的全规格矩阵。RGB这三个矩阵称为为图象的3个通道,也作为神经网路的输入数据。

2. 卷积神经网络的组成

与其他神经网路相同,CNN网路同样也包含输入层、隐藏层、输出层几大部分,卷积神经网络的主要运算过程如图4-24所示。

图4-24 卷积神经网络处理过程

卷积层(Convolutional layer):卷积层由多个频域单元组成,每个频域单元的参数都是通过反向传播算法优化得到的。卷积运算主要为了提取图象的特点,随着频域层的降低,多层网路可以提取更为复杂的图象特点。

线性检波(Rectified Linear Units layer, ReLU layer):主要指的是激活函数运算(Activation function)使用线性检波的ReLu函数(Rectified Linear Units, ReLU)。

池化层(Pooling layer):在频域以后图象的维度特点仍然好多,将特点矩阵分割成几个单个区块,取其最大值或平均值,起到了聚类的作用。

全联接层(Fully-Connected layer):把所有局部特点以及各通道的特点矩阵结合变为向量代表,计算最后每一类的得分。

3. 计算过程

CNN网路的估算过程如图XXX,每个组成模块代表了不同的估算内容。

(1)数据规则化

彩色图象的输入一般先要分解为R(红)G(绿)B(蓝)三个通道,其中每个值介于0~255之间。

(2)卷积运算(Convolution)

前面提到,由于普通的神经网路对于输入与隐层采用全联接的方法进行特点提取,在处理图象时,稍微大一些的图将会造成估算量巨大而显得非常平缓。卷积运算正是为了解决这一问题,每个蕴涵单元只能联接输入单元的一部分,我们可以理解为是一种特点的提取方式。

首先我们来明晰几个基础概念:深度(depth)、步长(stride)、补零(zero-padding)、卷积核(convolution kernel)。

深度(depth) :深度指的是图的深度与它控制输出单元的深度,也表示为联接同一块区域的神经元个数。

步幅(stride):用来描述频域核联通的步长。

补零(zero-padding) :通过对图片边沿补零来填充图片边沿,从而控制输出单元的空间大小。

卷积核(convolution kernel):在输出图象中每一个象素是输入图象中一个小区域中象素的加权平均的残差函数。卷积核可以有多个,卷积核参数可以通过偏差反向传播来进行训练。

如图4-25为步长=1的频域估算过程,卷积核依次往右联通进行频域运算得到相应结果。

图4-25 卷积运算过程

为图象估算可以对边沿进行补零,可见这个过程改变了图象的运算大小,如图4-26所示。

卷积运算的过程似乎十分简单神经网络预测r程序神经网络预测r程序,过程如图4-27描述,可以概括为公式(4.3.6)。其中B代表频域后的结果,K是频域核,A为图象的输入矩阵。

图4-27 卷积运算过程

如图4-27所示,可见频域核K为2*2的频域核,详细运算过程如下。

全部图象频域运算可以通过公式(4.3.6)进行。

(3)激活

CNN卷积神经网络在频域后须要经过激活过程,当前一般使用的激活函数是Relu函数。Relu函数的主要特征在之前的章节早已讲过。从函数的图象上来看,单侧抑制,相对开阔的激动边界,具有稀疏激活性的特性。

(4)池化(Pooling)

池化的目的是提取特点,减少向上一个阶段传递的数据量。池化操作相对于对每位深度切块是独立,池化规模通常为象素的 2*2,与频域运算相比,池化层运算通常有以下几种: * 最大池化(Max Pooling):取4个点数值的最大值。这是最常用的池化算法。 * 均值池化(Mean Pooling):取4个点数值的均值。 * 高斯池化(Gauss Pooling):按照高斯模糊的方式。

如图4-28,描述了最大池化的估算方式。

图4-28 池化运算过程

(5)全联接(Fully-connected layer)

全联接层通常出现最后几步,在卷积神经网络中起到“分类器”的作用。如果说频域层、池化层和激活函数层等操作是将原始数据映射到隐层特点空间的话,全联接层则起到将学到的“分布式特点表示”映射到样本标记空间的作用。全联接过程是对矩阵的展开过程,也可以理解为输出矩阵与一个1*1的频域核进行频域运算,最后展开为一个1*n的向量。

在卷积神经网络中,全联接层通常使用Softmax函数来进行分类。Softmax函数适用于数据分类,用于保证每位分类机率总和为1。

卷积神经网络(CNN)的估算过程其实讲解冗长,但对于了解深刻理解神经网路算法十分有益。卷积神经网络经过近30年的发展拥有多条网路发展分支,并且持续高速发展之中。其中有网路层数加深的VGG16与VGG19等,有前馈模块提高的NIN网路等,从分类任务向目标测量任务过度的新型网路R-CNN等,图4-29展示了卷积神经网络的不同发展分支。

文章来自社区签约作者:白白说话(公众号)《手把手建立人工智能产品》作者。

神经网络预测r程序
上一篇:微软飞行模拟器多人游戏火爆上线 下一篇:没有了