在github上看到一副总结的非常好的图(原图地址)先码住 😀😀😀
物体识别的综述
🍀发展历史:
🌱图像分类(Image Classification)
任务:根据图像中的主导对象对图像进行分类。
数据集:MNIST, CIFAR, ImageNet
🌱物体定位(Object Localization)
任务:预测包含主导目标的图像区域。然后利用图像分类对该区域内的目标进行识别。
数据集:ImageNet
🌱物体识别(Object Recognition)
任务:对图像中出现的所有物体进行定位和分类。这个任务通常包括:提议区域,然后对其中的对象进行分类。
数据集:PASCAL, COCO
🌱语义分割(Semantic Segmentation)
任务:用图像所属的对象类标记图像的每个像素,例如本例中的人、羊和草。
数据集: PASCAL, COCO
🌱实例分割(Instance Segmentation)
任务:用它所属的对象类和对象实例标记图像的每个像素。
数据集:PASCAL, COCO
🌱关键点检测(Keypoint Detection)
任务:检测一组预定义的对象关键点的位置,如人体关键点,人脸关键点。
数据集:COCO
卷积网络的相关概念
🍄 特征(feature)
模式(pattern)、神经元激活(activation of a neuron)、特征检测器(feature detector)
特征指的是:当特定的模式(特征)出现在其输入区域(接收区域)时,被激活的隐藏神经元
神经元所检测到的模式可以通过以下方法可视化:
(1)优化输入区域以最大化神经元的激活(deep dream)
(2)在输入像素上可视化神经元激活的梯度或引导梯度(反向传播和引导反向传播)
(3)在训练数据集中可视化一组最能激活神经元的图像区域
🍄 接受域(Receptive Field)
一个特征的输入区域(input region of a feature)
接受域指的是:输入图像中影响特征激活的区域。换句话说,它是特征所关注的区域。
一般来说,更高层次的特征有更大的接受域,这允许它学习捕捉更复杂/抽象的模式。卷积神经网络结构决定了接受域如何一层一层地改变。
🍄 特征图(Feature Map)
一个隐藏层的通道(a channel of a hidden layer)
特征图指的是:通过在输入图片的不同位置应用相同的特征检测器(滤波器)以滑动窗口的方式创建的一组特征(即卷积)
同一特征图中的特征具有相同的接受能力,并且在不同的位置寻找相同的模式。这就产生了卷积神经网络的空间不变性特性。
🍄 特征量(Feature Volume)
卷积神经网络中的隐藏层(a channel of a hidden layer)
特征量指的是一组特征映射(特征图),每个特征图搜索在输入图片上的一组固定位置上的特征。所有特征都具有相同的接受域大小。
🍄 全连接层作为特征量(Fully connected layer as Feature Volume)
具有k个隐藏节点的全连接层(fc层——通常连接到卷积神经网络的末端用于分类)可以看作是一个1x1xk的特征量。
该特征量在每个特征图中有一个特征,其接受域覆盖整个图像。将一个1x1xk的过滤器内核与一个1x1xd的特征卷进行卷积,将创建一个1x1xk的特征卷。用卷积层代替完全连接的层,使我们能够将卷积网络应用于任意大小的图像。
🍄 转置卷积(Transposed Convolution)
反向传播卷积运算的梯度的运算。换句话说,它是卷积层的向后传递。一个转置的卷积可以被实现为一个在输入特征之间插入零的正常卷积。一个滤波器大小为k, stride s和零填充p的卷积有一个相关的转置卷积,其滤波器大小为k ’ =k, stride s ’ =1,零填充p ’ =k-p-1,并且在每个输入单元之间插入s-1 0。
如上图左边,红色的输入单元有助于激活左上角的4个输出单元(通过4个彩色方块),因此它从这些输出单元接收梯度。这种梯度反向传播可以通过右侧所示的转置卷积来实现。
🍄 端到端的物体识别系统(End-To-End object recognition pipeline)
通过优化单一目标函数(即各阶段变量的可微函数)来训练所有阶段(预处理、区域提案生成、提案分类、后处理)的目标识别流程 这种端到端系统与传统的物体识别系统相反,后者以一种不可微分的方式连接各个阶段。在这些系统中,我们不知道改变一个阶段的变量会如何影响整体性能,所以每个阶段必须独立或交替训练,或启发式编程。
物体检测相关概念(Object Recognition Concepts)
🌴 边界框提议(Bounding box proposal)
兴趣区域(region of interest),区域提议(region proposal),框提案(box proposal)
输入图像中可能包含对象的矩形区域。这些建议可以通过一些启发式搜索生成:对象性搜索、选择性搜索或区域建议网络(RPN)。可以表示为一个边界框第4单元向量,要么存储它的两个角坐标(x0, y0) (x1, y1),或(更常见)存储其中心位置和它的宽度和高度(x, y, w h)。一个边界框通常是伴随着一个置信度得分(即判断检测框中有多大的可能性包含物体)。两个包围盒之间的差通常由它们向量表示的L2距离来测量。W和h在计算距离前可以进行对数变换。
🌴 交并比 (Intersection over Union、IOU)
度量真实框和检测框之间的相似度
🌴 非极大值抑制(Non Maxium Suppression、NMS)
任何与更高可信度的检测框显著重叠的检测框(IoU > IoU_threshold)被抑制(删除)。
🌴 Bounding box regression(边界框的回归)
通过观察输入区域,我们可以推断出更适合其中对象的边界框,即使对象只是部分可见。上面的例子说明了仅通过观察物体的一部分就可以推断出ground truth box的可能性。
因此,可以训练一个回归器来观察一个输入区域,预测输入区域框和真值框之间的偏移∆(x, y, w, h)。如果每个对象类都有一个回归器,则称为特定类的回归,否则称为与类无关的回归(所有类都有一个回归器)。
边界框回归器通常伴随着一个边界框分类器(置信度得分器)来估计对象存在于框中的置信度。分类器也可以是特定于类的或与类无关的。如果没有定义前面的框,输入区域框就扮演前面的框的角色。
🌴 先验框(Prior box)
与使用输入区域作为唯一的先验框不同,我们可以训练多个边界框回归器,每个回归器看着相同的输入区域,但有不同的先验框,并学习预测自己的先验框和地面真值框之间的偏移量。这样,具有不同先验框的回归器可以学习预测具有不同属性(宽高比、比例、位置)的边界框。先前的框可以相对于输入区域进行预定义,或者通过聚类学习。正确的框匹配策略是使训练收敛的关键。
🌴 检测框匹配策略(Box matching Strategy)
我们不能指望边界框回归器能够预测离输入区域或先验框(更常见)太远的对象。因此,我们需要一个匹配策略来决定哪个先验框和真实值匹配。每个匹配都是一个用于回归的训练例子。可能的策略:(多箱)将每个真实箱与一个先前有最高IOU的先验框匹配;
完整图片~