在过去的二十年中,计算机视觉研究已经集中在人工标定上,用于提取良好的图像特征。在一段时间内,图像特征提取器,如 SIFT 和 HOG 是标准步骤。深度学习研究的最新发展已经扩展了传统机器学习模型的范围,将自动特征提取作为基础层。他们本质上取代手动定义的特征图像提取器与手动定义的模型,自动学习和提取特征。人工标定仍然存在,只是进一步深入到建模中去。
本博客先从流行的图像特征提取SIFT和HOG入手,深入研究深度学习的特征工程。
在 1999 年,计算机视觉研究者想出了一种更好的方法来使用图像的统计数据来表示图像。它叫做 Scale Invariant Feature Transform(SIFT)。
人工特征提取:SIFT 与 HOG
图像梯度:
HOG 和 SIFT 都基于图像邻域的两层表示:首先,将相邻像素组织成单元,然后将相邻单元组织成块。计算每个单元的方向直方图,并将单元直方图矢量连接起来,形成整个块的最终特征描述符。相邻像素之间的差值称为图像梯度。
SIFT 使用16x16
像素的单元,将其组织成 8 个方向的容器,然后通过4x4
单元的块分组,使得图像邻域的4x4x8=128
个特征。
HOG 论文实验用矩形和圆形形状的单元和块。矩形单元称为 R-HOG。最好的 R-HOG 设置为8x8
像素的 9 个定向仓,每个分组为2x2
个单元的块。圆形窗口称为 C-HOG,具有由中心单元的半径确定的变量、单元是否径向分裂、外单元的宽度等。
图像归一化处理:
图像特征与文字区别很大,其对在自然图像中出现的照明和对比度的变化可能是非常敏感的。例如,在强烈的聚光灯下观察苹果的图像,而不是透过窗户发出柔和的散射光。即使物体是相同的,图像梯度也会有非常不同的幅度。为此,计算机视觉中的图像特征通常从全局颜色归一化开始,以消除照度和对比度方差。对于 SIFT 和 HOG 来说,结果表明,只要我们对特征进行归一化,这种预处理是不必要的。
SIFT结构
SIFT 需要相当多的步骤。HOG 稍微简单,但是遵循许多相同的基本步骤,如梯度直方图和归一化。图 8-6 展示了 SIFT 体系结构。从原始图像中的感兴趣区域开始,首先将区域划分为网格。然后将每个网格单元进一步划分为子网格。每个子网格元素包含多个像素,并且每个像素产生梯度。每个子网格元素产生加权梯度估计,其中权重被选择以使得子网格元素之外的梯度可以贡献。然后将这些梯度估计聚合成子网格的方向直方图,其中梯度可以具有如上所述的加权投票。然后将每个子网格的方向直方图连接起来,形成整个网格的长梯度方向直方图。(如果网格被划分为2x2
子网格,那么将有 4 个梯度方向直方图拼接成一个。)这是网格的特征向量。从这开始,它经过一个归一化-阈值-归一化过程。首先,将向量归一化为单位范数。然后,将单个值剪辑除以最大阈值。最后,再次对阈值向量进行归一化处理。这是图像块的最终 SIFT 特征描述。
基于深度神经网络的网络特征提取
SIFT 和 HOG 在定义良好的图像特征方面走了很久。然而,计算机视觉的最新成果来自一个非常不同的方向:深度神经网络模型。这一突破发生在 2012 的 ImageNet 挑战中,多伦多大学的一组研究人员几乎将前一年的获奖者的错误率减半。他们强调他们的方法是“深度学习”。与以前的神经网络模型不同,最新一代包含许多层叠在彼此之上的神经网络层和变换。ImageNet 2012 的获奖模型随后被称为 AlexNet ,其神经网络有 13 层。之后 IMANET 2014 的获胜者有 27 层。
从表面上看,叠层神经网络的机制与 SIFT 和 HOG 的图像梯度直方图有很大的不同。但是 AlxNETA 的可视化显示,前几层本质上是计算边缘梯度和其他简单的操作,很像 SIFT 和 HOG。随后的层将局部模式组合成更全局的模式。最终的结果是一个比以前更强大的特征提取器。
堆叠层的神经网络(或任何其他分类模型)的基础思想不是新的。但是,训练这种复杂的模型需要大量的数据和强大的计算能力,这是直到最近才有的。ImageNet 数据集包含来自 1000 个类的 120 万个图像的标记集。现代 GPU 加速了矩阵向量计算,这是许多机器学习模型的核心,包括神经网络。深度学习方法的成功取决于大量可用的数据和大量的 GPU 。
深度学习架构提取特征主要包含卷积、全连接层、归一化层和最大池化层。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:特征工程:图像特征提取和深度学习 - Python技术站