这5种计算机视觉技术,刷新你的世界观( 二 )


然后 , 通过卷积层而不是正常层馈送输入数据 。 每个节点仅仅关注与自身相邻的部分 。 这些卷积层随着网络的变深也趋于收缩 , 主要是通过输入的易分解因素 。 除了卷积层 , 它们通常还具有特征池化层 。 池化是一个过滤细节的方法:常见的池化技术是最大池化 , 我们采用2×2像素 , 并传递具有最大量特定属性的像素 。
目前大多数图像分类技术都是在ImageNet上面训练的 , 它是一个约120万个高分辨率的训练图像的数据集 。 测试图像不显示初始注释(没有分割或者标签) , 并且算法必须生成指定图像中存在的对象的标签 。 Oxford、INRIA、XRCE 等机构的领先计算机视觉小组用已有的最好计算机视觉方法应用于这个数据集 。 通常 , 计算机视觉系统是复杂的多级系统 , 往往需要在早期阶段通过手动调试优化参数 。
第一届ImageNet 竞赛的冠军 Alex Krizhevsky (NIPS 2012) 由 Yann LeCun 开创的深度卷积神经网络 。 其结构包括7个隐藏层 , 不包括一些最大池化层 。 前5层是卷积层 , 最后2层是全连接层 。 每个隐藏层的激活函数是ReLU 。 这些训练比逻辑单元更快更有表达力 。 除此之外 , 当相近的单元有更强的激活值 , 它还用竞争的归一化来抑制隐藏的活动 。 这有助于强度的变化 。
在硬件要求方面 , Alex在2个Nvidia GTX 580 GPU(超过1000个快速小内核)上使用了非常有效的卷积网络实现 。 GPU非常适合矩阵矩阵乘法 , 并且具有非常高的存储器带宽 。 这使他能够在一周内训练网络 , 并在测试时快速组合10个补丁的结果 。 如果我们能够足够快地传达状态 , 我们可以在多个核心上传播网络 。 随着核心变得越来越便宜而数据集越来越大 , 大型神经网络的改进速度将超过老式的计算机视觉系统 。 自AlexNet以来 , 已有多种新型号使用CNN作为其骨干架构 , 并在ImageNet中取得了出色的成果:ZFNet(2013) , GoogLeNet(2014) , VGGNet(2014) , ResNet(2015) , DenseNet(2016)等 。
2--目标检测
在图像中定义目标的任务通常涉及单个目标的边界框和标签的输出 。 这与分类/定位任务的不同之处在于 , 它将分类和定位应用于许多目标 , 而不仅仅是一个主导目标 。 你只有2类目标分类 , 即目标边界框和非目标边界框 。 例如 , 在汽车检测中 , 您必须使用其边界框检测给定图像中的所有汽车 。
如果我们就像对图像进行分类和定位的方式使用滑动窗口技术 , 我们需要将CNN应用于图像的许多不同位置 。 因为CNN将每个位置分类为目标或背景 , 我们需要在CNN中应用许多的位置和不同比例 , 计算上是非常昂贵的!
为了处理这种情况 , 神经网络研究人员已经提出使用区域来代替 , 在那里我们找到可能包含目标的“blobby”图像区域 。 这个区域运行起来相对较快 。 第一个引人注目的模型是 R-CNN(基于区域的卷积神经网络) 。 在R-CNN中 , 我们首先使用称为选择性搜索的算法扫描输入图像以寻找可能的目标 , 生成约2,000个候选区域 。 然后我们在每个区域框的基础上运行CNN 。 最后 , 我们获取每个CNN的输出并将其输入到SVM以对区域进行分类 , 并使用线性回归来收紧目标的边界框 。
基本上 , 我们将目标检测转变成了图像分类问题 。 但是 , 存在一些问题 - 训练缓慢 , 需要大量磁盘空间 , 推理也很慢 。
R-CNN的直接后代是快速R-CNN , 它通过2次增强提高了检测速度:1)在侯选区域之前执行特征提取 , 因此在整个图像上仅运行一个CNN , 以及2)用softmax层替换SVM , 从而扩展神经网络的预测 , 而不是创建一个新的模型 。

推荐阅读