什么是卷积神经网络或CNN?
图1.卷积神经网络的架构
由于技术的发展,人工智能和深度学习在最近几年取得了巨大的进步。为了创造出令人惊奇的东西,研究人员和程序员们在这一主题的大量不同部分工作。
这一领域的目标是使机器能够以类似于人类的方式审视世界,对其进行类似的感知,并将这种理解用于各种任务,如图像和视频识别、图像分析和分类、对象检测、语言处理等。随着时间的推移,卷积神经网络在计算机视觉深度学习的发展和完善中发挥了重要作用。
卷积神经网络(CNN)是一种特殊的神经网络,因其卷积层而与其他神经网络不同。卷积层有三个主要部分:输入数据、过滤器(用于提取特征的矩阵)和特征图。卷积层的特征检测器迭代扫描输入,并使用过滤器确定特征是否存在。
什么是R-CNN?
图2.基于区域的卷积神经网络的架构
基于区域的CNN换句话说,R-CNN是一种物体识别模型,它将CNN应用于不同的 "区域 "来执行分割和定位等操作。这种技术被称为区域建议,它采用选择性搜索来寻找许多划定的区域,然后从每个区域中提取信息,分别为每个区域做分类。丰富的特征层次用于精确的物体检测和语义分割是最初引入它的研究。
R-CNN收到的输入图像要经过各种阶段:
- 具有选择性搜索功能的区域建议算法识别并 "选择 "各种区域以通过CNN。
- CNN将从每个区域中提取特征,将每个区域传递给它的输出。
- 然后,特征向量被 "输入 "到SVM(支持向量机)进行分类。
用R-CNN进行物体检测和分割
图3.具有CNN特征的R-CNN区域
对照片或视频等事物的检测、识别、定位和分类,只是物体检测中包含的少数活动。
在图像中画出一个物品的边界区域或面积是物体分割的过程。
选择性搜索:计算机视觉中广泛使用的物体识别技术
计算机视觉中的物体检测和分割是对图像中的项目进行发现和分类的过程。选择性搜索是完成这一任务的最常用技术之一。使用各种方法,利用选择性搜索物体识别技术创建一个初步建议的集合,或候选区域。一种在照片中定位物品的方法被称为选择性搜索。它遵循一种自下而上的方法,首先将小的物体扩大到大的物体。找到一张小照片中的所有物体是目标。为了实现这一目标,首先要找到图像中的所有边缘,然后将这些边缘归类为物体。然后用更大的图像重复这一程序,直到找到图像中的所有物体。
最终的结果将是一个优秀的对象建议集合,可用于额外的处理,如实例分割或对象分类。为此目的,一种特别有效的神经网络类型是R-CNN(基于区域的卷积神经网络)。R-CNN已经被应用于广泛的应用,包括人体姿势估计、语义分割和物体检测。利用R-CNNs进行物体检测的一个好处是,整个过程可以从数据中学习,而不需要人类的特征工程,因为R-CNNs可以进行端到端的训练。这比传统的物体检测技术有很大的好处,传统的物体检测技术经常需要大量的人工调整才能很好地工作。
选择性搜索的快速性和准确性是优势。此外,它可以在拥挤或多物体的照片中定位事物,并能处理图像内容的广泛变化,如比例、方向和光线的变化。选择性搜索的缺点是在处理大型图像或生成大量建议时比某些其他技术要慢,而且有时也会产生相互之间过于相似的建议。
特征提取:一个逐步降低维度的过程
一个被称为特征提取的降维过程将输入的图像转换为可用于描述图像特征的特征集合。卷积过滤器通过从图像中提取基于它们在空间中的接近程度的特征来实现这一目的。然后用一个神经网络来对提取的特征进行分类。R-CNN网络的架构在这方面具有可比性。接下来的阶段是利用卷积神经网络(CNN)从之前步骤中收到的每个区域建议中构建一个特征向量,它以更低的维度表示图像。
著名的 "AlexNet "特征提取器被用于特征提取。它有2个完全链接层和5个卷积层。这个阶段主要是帮助卷积层提取基本的视觉特征。现在必须对网络进行调整,以便学习(a)新型图像类型的视觉特性--扭曲区域建议--和(b)用于检测任务的较小数据集的特定目标类别。分类网络被调整为从区域建议中提取对检测工作重要的类。
AlexNet的输入大小总是相同的,为227 x 227。一个额外的选项p表示初始边界框可能被放大的程度,以适应周围区域的环境。以下是CNN的结构:
图4.使用CNN进行特征提取的方框图
该网络以初始预训练学习率的(1/10)使用SGD进行训练。他们在每次迭代中对所有类别中的32个窗口进行采样,加上来自背景类别的96个窗口,产生一个128个的小批次,以确保在整个训练过程中有足够的来自正面类别的代表性。
用SVM实现加强R-CNN
对所有区域的项目进行正确分类是物体检测的必要条件。因此,在这个阶段,对前一阶段检索到的特征进行分类。在基于区域分类的神经网络中使用SVM来实现这种分类,然后再使用一个边界盒调节器。对于检测和分类任务,R-CNN中建议使用SVM技术,因为它通过在N维空间中使用逻辑超平面划分类别来产生精确的结果。通过将这种SVM实现与其他转移学习算法合并,未来的R-CNN改进,如快速R-CNN和更快R-CNN。由于这些修改,检测的准确性和速度都得到了提升。
二元SVM模型得到了本阶段提取特征后产生的特征向量。对于每个类别,模型需要单独训练。SVM模型使用从CNN架构中检索到的特征向量作为其输入。在对特征向量进行分类后,它以信心分数的形式产生结果。信任度分数表明目标对象已被肯定地定位在指定区域。
在R-CNN中,SVM模型和CNN架构不能同时进行训练(AlexNet,一个基于CNN的物体识别架构,可能是一个例外)。这是为了让我们可以使用CNN架构提供的特征向量来训练SVM模型。快速R-CNN和更快R-CNN解决了这个缺陷。
R-CNN的类型
1.快速R-CNN
在快速R-CNN中,我们使用兴趣区域池来代替最大池层,这是普通R-CNN的一个较慢的变体。通过对输入进行最大池化,ROI池化从不同大小的输入区域创建单一大小的特征图。这种方法的主要好处是,我们可以将整个图像发送给CNN,因为我们只对所有被建议的区域利用一个特征图。
2.更快的R-CNN
更快的R-CNN使R-CNN的速度更快;它通过使用一个特殊的CNN,我们称之为区域建议网络,以取代选择性搜索来创建一个区域池。该网络接收来自网络的区域提议,并将特征图作为其第一输入。
3.掩膜R-CNN
在更快的Mask R-CNN中,一个ROI池化层被兴趣区域排列层所取代。为了保持特征图上的空间特征,这个对齐层使用双线性插值,这更适合于像素级投影。这个网络的输出图上的每个兴趣区域都是相同的大小。
比较
表。1.R-CNN、快速R-CNN、更快R-CNN和Mask R-CNN之间的比较
结论
基于区域组合特征图、区域搜索方法和神经网络,CNN及其变体通过上述策略来加快计算速度,增加神经网络能够完成的物体识别任务。虽然R-CNN是深度学习的一个可怕的前沿技术,在物体检测和分割方面有应用,但它的全部潜力仍在被释放,并应用于各种人工智能相关的问题。任何深度学习工程师都可以使用这种尖端的方法。
这个博客是一个小小的努力,收集和提供有关信息,并对现有的知识体系进行补充。