目标检测学习笔记(一)预备知识

参考视频: (全)最好的目标检测原理与实践课程
参考目录: 计算机视觉应用实战-网易云课堂



【1】1×1卷积的作用

1.增加非线性
1x1卷积核的卷积过程相当于全连接层的计算过程,并且还加入了非线性**函数,从而可以增加网络的非线性,使得网络可以表达更加复杂的特征。
2.特征降维
通过控制卷积核的数量达到通道数大小的放缩。特征降维带来的好处是可以减少参数和减少计算量。
目标检测学习笔记(一)预备知识

目标检测学习笔记(一)预备知识

【2】空洞卷积

空洞卷积(atrous convolutions)又名扩张卷积(dilated convolutions),向卷积层引入了一个称为“扩张率(dilation rate)"的新参数,该参数定义了卷积核处理数据时各值的间距。空洞卷积提供了更大的感受野。
目标检测学习笔记(一)预备知识
在相同感受野的情况下,使用空洞卷积可以得到更大的特征图,可以获得更加密集(Dense)的数据。
在相同感受野的情况下,更大的特征图有助于在目标检测和目标分割的任务中对小物体的识别分割效果。
目标检测学习笔记(一)预备知识

【3】转置卷积

转置卷积(transposed Convolutions)又名反卷积(deconvolution)或是分数步长卷积
(fractially straced convolutions)。
那什么是反卷积?从字面上理解就是卷积的逆过程。值得注意的反卷积虽然存在,但是在深度学习中并不常用。而转置卷积虽然又名反卷积,却不是真正意义上的反卷积。转置卷积是一种上采样的方式(Upsampling),可以让小图片变成大图片。
https://github.com/vdumoulin/conv_arithmetic

目标检测学习笔记(一)预备知识

【4】目标检测简单方法(传统)

1.滑动窗口法+传统机器学习分类器**

后续改进的方向有采用不同大小的窗口。

目标检测学习笔记(一)预备知识

  • 识别效果不够好,准确率不高
  • 计算量比较大,运行速度慢
  • 可能会出现多个正确识别的结果

2.滑动窗口法+卷积神经网络CNN**

滑动窗口法+ CNN提升识别的准确率

【5】加快检测速度:全卷积神经网络FCN(Fully onvolutional Networks)

我们知道对于一个各层参数结构都设计好的神经网络来说,输入的图片大小需要是固定的,如图AlexNet,VGGNet,GoogleNet等网络都需要输入固定大小的图片才能正常工作。
FCN的精髓是让一个已经设计好的网络可以输入任意大小的图片。

目标检测学习笔记(一)预备知识
目标检测学习笔记(一)预备知识
目标检测学习笔记(一)预备知识
其中最后一个8x8特征图中的每一个格子都对应前面28x28大小图片中的一个滑动窗口,例如最后一个特征图中的绿色格子对应原始图像中的绿色部分。对比原始的滑动窗口方法,每一个滑动窗口都需要放进神经网络进行卷积识别,而采用FCN只需要进行一次卷积操作,即可得到所有的结果,所以可以加快目标检测的速度。但是窗口大小固定。

【6】 交并比和mAP介绍

真实的标签:Ground Truth
获得的目标结果:Detection Result
目标检测学习笔记(一)预备知识
目标检测学习笔记(一)预备知识
一般可以设置loU的阈值大于等于0.5比如把loU阈值设置为0.5,则可以认为与Ground Truth的IoU大于等于0.5的Detection Result是正样本。

mAP(mean average precision)平均准确率均值
目标检测学习笔记(一)预备知识

每一个类别都可以根据recall和precision绘制一条曲线,那么AP就是该曲线下的面积,而mAP是多个类别AP的平均值,这个值介于0到1之间,且越大越好。这个指标是目标检测算法最为重要的一一个。

【7】mAP的具体计算方法

多标签图像分类任务中图片的标签不止一个,因此评价不能用普通单标签图像分类的标准。
首先用训练好的模型得到所有测试样本的置信度(confidence score),比如某个类别(如检测猫)有20个测试样本:
目标检测学习笔记(一)预备知识
接下来按照置信度的大小重新排序:目标检测学习笔记(一)预备知识
我们想得到top-5的结果:
目标检测学习笔记(一)预备知识
这个例子中:
Precision= 2/5 =40%
Recall= 2/6= 30%

实际多类别分类任务中,我们需要知道从top-1到top-N(N是所有测试样本个数,我们的例子中是20)对应的precision和recall。显然随着我们选定的样本越来也多,recall-定会越来越高,而precision整体.上会呈下降趋势。把recall当成横坐标,precision当成纵坐标,即可得到常用的precision-recall曲线:
目标检测学习笔记(一)预备知识
接下来说说AP的计算,这里参考的是Pascal VOC Challenge的计算方法。首先设定一组阈值,[0,0.1,0.2,…1]。然后对于recall大于每一个阈值(比如recall>0.3),我们都会得到一个对应的最大precision。这样,我们就计算出了11个precision。AP即为这11个precision的平均值。这种方法英文叫做1 1-point interpolated average precision。
Pascal VOC Challenge是计算机视觉中分类和检测的一个基准测试,提供了检测算法和学习性能的标准图像标注数据集和标准的评估系统。2005年至2012年,该组织每年都会提供一系列的,带有标签的图片,挑战者通过设计各种算法来对图片进行分类,检测。通过最终的结果来一决高下。

Pascal VOC Challenge自2010年后就换了另一种计算方法。新的计算方法假设这N个样本中有M个正例,那么我们会得到M个recall值(1/M,2/M,…M/M),对于每个recall值r,我们可以计算出对应(r’≥r)的最大precision。然后对这M个precision值取平均即得到最后的AP值。计算方法如下:
目标检测学习笔记(一)预备知识
最后得到单调递减的Precision-Recall曲线:
目标检测学习笔记(一)预备知识
AP衡量的是学出来的模型在每个类别上的好坏,mAP衡量的是学出的模型在所有类别上的好坏,得到AP后mAP的计算就变得很简单了,就是取所有AP的平均值。

【8】非极大值抑制NMS(Non-max suppression)

选出置信度最高的候选框,如果和当前最高分的候选框重叠面积IoU大于-定阈值,就将其删除。
目标检测学习笔记(一)预备知识
当存在多预测目标时,先选取置信度最大的候选框b1,然后根据loU阈值来去除b1候选框周围的候选框。然后再选取置信度第二大的候选框b2,然后去除b2候选框周围的候选框。
目标检测学习笔记(一)预备知识