基础知识以及专业名词

两阶:两阶的算法通常在第一阶段专注于找出物体出现的位置, 得到建议框,保证足够的准召率,然后在第二个阶段专注于对建议框进行分类,寻找更精确的位置,典型算法如Faster RCNN。两阶的算法通 常精度准更高,但速度较慢。当然,还存在例如Cascade RCNN这样更多阶的算法。

·一阶:一阶的算法将二阶算法的两个阶段合二为一,在一个阶段 里完成寻找物体出现位置与类别的预测,方法通常更为简单,依赖于特 征融合、Focal Loss等优秀的网络经验,速度一般比两阶网络更快,但精度会有所损失,典型算法如SSD、YOLO系列等。

Anchor:是一个划时代的思想,最早出现在Faster RCNN中,其本质 上是一系列大小宽高不等的先验框,均匀地分布在特征图上,利用特征 去预测这些Anchors的类别,以及与真实物体边框存在的偏移。Anchor 相当于给物体检测提供了一个梯子,使得检测器不至于直接从无到有地预测物体,精度往往较高,常见算法有Faster RCNN和SSD等。

IOU:即交并比,是产生的候选框(candidate bound)与原标记框(ground truth bound)的交叠率,即它们的交集并集的比值。对于IoU而言,我们通常会选取一个阈值,如0.5,来确定预测框是正确的还是错误的。当两个框的IoU大于0.5时,我们认为是一个有效的检测,否则属于无效的匹配。

召回率(Recall,R):即当前一共检测出的标签框与所有标签框的比值。

准确率(Precision,P):即当前遍历过的预测框中,属于正确预测边框的比值。

mAP:均值平均精度(mean Average Precision),通常使用这一指标来评价一个模型的好坏,这里的AP指的是一个类别的检测精度,mAP则是多个类别的平均精度。

AP:P-R曲线的面积,综合考量了不同召回率下的准确率,不会对P与R有任何偏好。

AP=\int_{0}^{1}PdR

缩小图像(或称为下采样(subsampled)或降采样(downsampled)):主要目的有两个:1、使得图像符合显示区域的大小;2、生成对应图像的缩略图

放大图像(或称为上采样(upsampling)或图像插值(interpolating)):主要目的是放大原图像,从而可以显示在更高分辨率的显示设备上

感受野:卷积神经网络每一层输出的特征图(feature map)上的像素点映射回输入图像上的区域大小。通俗点的解释是,特征图上一点,相对于原图的大小,也是卷积神经网络特征所能看到输入图像的区域。

region proposal:候选区域

RoI:RoI是Region of Interest的简写,是指对一张图片的“感兴趣区域”,用于RCNN系列算法当中。

RoI pooling:实现过程如图所示,为了输出固定大小(例如7x7)feature map,需要进行两次量化操作(取整),第一次发生在图片经过网络层缩小时,第二次是将映射后的RoI区域划分为相同大小的块时

Roi pooling的实现过程

RoI Align:RoI Align的实现过程如下图所示。RoI Align是RoI Pooling的改进版,RoI Align取消了量化操作,主要利用虚拟像素的方法(双线性插值),获得坐标为浮点数的像素点上的图像数值,从而将整个特征聚集过程转化为一个连续的操作。

神经网络中的各层

卷积层:卷积的本质是用卷积核的参数来提取数据的特征,通过矩阵点乘运算与求和运算来得到结果。

激活函数层:神经网络如果仅仅是由线性的卷积运算堆叠组成,则其无法形成复杂的表达空间,也就很难提取出高语义的信息,因此还需要加入非线性的映射,又称为激活函数,可以逼近任意的非线性函数,以提升整个神经网络的表达能力。在物体检测任务中,常用的激活函数有Sigmoid、 ReLU及Softmax函数。

池化层:在卷积网络中,通常会在卷积层之间增加池化(Pooling)层,以降低特征图的参数量,提升计算速度,增加感受野,是一种降采样操作。 池化是一种较强的先验,可以使模型更关注全局特征而非局部出现的位置,这种降维的过程可以保留一些重要的特征信息,提升容错能力,并 且还能在一定程度上起到防止过拟合的作用。

Dropout层:在深度学习中,当参数过多而训练样本又比较少时,模型容易产生过拟合现象。过拟合是很多深度学习乃至机器学习算法的通病,具体表现为在训练集上预测准确率高,而在测试集上准确率大幅下降。2012 年,Hinton等人提出了Dropout算法,可以比较有效地缓解过拟合现象的 发生,起到一定正则化的效果。

BN层:为了追求更高的性能,卷积网络被设计得越来越深,然而网络却变得难以训练收敛与调参。原因在于,浅层参数的微弱变化经过多层线性变换与激活函数后会被放大,改变了每一层的输入分布,造成深层的网络需要不断调整以适应这些分布变化,最终导致模型难以训练收敛。 由于网络中参数变化导致的内部节点数据分布发生变化的现象被称做ICS(Internal Covariate Shift)。ICS现象容易使训练过程陷入饱和区,减慢网络的收敛。前面提到的ReLU从激活函数的角度出发,在一定程度上解决了梯度饱和的现象,而2015年提出的BN层,则从改变数据分布的角度避免了参数陷入饱和区。由于BN层优越的性能,其已经是当前卷积网络中的“标配”。

全连接层:全连接层(Fully Connected Layers)一般连接到卷积网络输出的特征图后边,特点是每一个节点都与上下层的所有节点相连,输入与输出都被延展成一维向量,因此从参数量来看全连接层的参数量是最多的。全连接层将卷积抽象出的特征图进一步映射到特定维度的标签空间,以求取损失或者输出预测结果。全连接层最致命的问题在于其庞大的参数量。在很多场景中,我们可以使用全局平均池化层(Global Average Pooling,GAP)来取代全连接层。

使用GAP有如下3点好处:1.利用池化实现了降维,极大地减少了网络的参数量   2.将特征提取与分类合二为一,一定程度上可以防止过拟合   3.由于去除了全连接层,可以实现任意图像尺度的输入。

公式

经卷积后的矩阵尺寸大小计算公式

N=(W-F+2P)/S+1

其中 输入图像大小W*W

        Filter大小F*F

        步长S

        padding的像素P

猜你喜欢

转载自blog.csdn.net/a545454669/article/details/123141504