深度学习|目标检测入门常见问题(深度学习 / 图像分类)

目录
机器视觉中关于目标检测有4大类任务
回归问题和分类问题
IoU(交并比)
准确率(P)
平均准确率(AP)
平均准确率均值(mAP)
双阶段检测器
R-CNN
步骤
1. 规整:
2. 分类:
3. 非极大抑制(NMS):去除冗余检测框
4. 修正:
目标检测常用指标


参考文献:
目标检测 - 搜索结果 - 知乎
目标检测算法研究_zzb103749的博客-CSDN博客_检测算法研究
机器视觉中关于目标检测有4大类任务

  1. 分类(Classification):给定一张图片或一段视频判断里面包含什么类别的目标。
  2. 定位(Location):定位出这个目标的的位置。
  3. 检测(Detection):即定位出这个目标的位置并且知道目标物是什么。
  4. 分割(Segmentation):分为实例的分割(Instance-level)和场景分割(Scene-level),解决“每一个像素属于哪个目标物或场景”的问题。

回归问题和分类问题 要解决的目标检测任务,是一个分类问题和回归问题的叠加,
分类是区分目标属于哪个类别,回归用来定位目标所在的位置。

IoU(交并比) 判断预测框的正确程度
利用IoU,我们就能判断检测结果是否正确,常用的阈值是0.5。
如果IoU > 0.5,就认为是一个正确的检测,否则就认为是一个错误的检测。

准确率(P) 我们为模型生成的每一个检测边框计算其IoU值,利用该IoU数值和阈值,我们为图片中的每一个类计算其正确检测的数量A。对于每张图片,我们都有标准数据,可以告诉我们在图片中某个特定类别的真实数量B,那么A/B就是该类别的预测精确率.

平均准确率(AP) 让我们对验证集中的每张图片都计算它的精确率。假设我们的验证集中有 100 张图片,并且我们知道每张图片都包含了所有的类别(根据参考标准告诉我们的信息)。这样对于每个类别,我们会有 100 个精度率的值(每张图片一个值)。让我们对这些 100 个值进行平均。这个平均值叫做该类的平均精度(Average Precision)。

平均准确率均值(mAP) 假设我们有20个类别,对每一个类别,我们都进行相同的计算流程:IoU -> 精确率(Precision) -> 平均精度(Average Precision)。这样就有20个类别的平均进度,我们对所有类别的平均精度值计算其均值(average/mean)。这个新的值,就是我们的平均精度均值 mAP(Mean Average Precision)

双阶段检测器 图像的定位和识别在不同阶段进行

R-CNN 步骤
  1. 边框粗提取:使用SS(selective search)算法在一张图片上生成大约2000个候选区域
  2. 规整:对于每个候选区域,使用深度网络提取特征(4096维特征向量)
  3. 分类:特征送入每一类的SVM分类器中,判别是否属于该类(图片中有几个类就有几个分类器),使用非极大值抑制算法去除冗余框
  4. 修正定位:使用回归器精细修整候选框位置(使用bounding box regression来确定最佳的边界框)

1. 规整:
我们使用的是AlexnetCNN网络进行特征提取。在把2000个目标框输入CNN之前,需要把他们reset称为227*227的大小,可获得2000*4096维矩阵。
Alexnet特征提取部分包含了5个卷积层、2个全连接层,在Alexnet中p5层神经元个数为9216、 f6、f7的神经元个数都是4096,通过这个网络训练完毕后,最后提取特征每个输入候选框图片都能得到一个4096维的特征向量。

2. 分类:
R-CNN采用的是SVM二分类器,每个分类器负责分类一个类别,需要分类多少个类别就有多少个分类器。每个候选区域分别送入每个分类器及计算出来不同分类器的概率,选取最大的一个作为最终的类别。

3. 非极大抑制(NMS):去除冗余检测框
目的:筛选候选区域框,目的是一个物体只保留一个最优的框,来抑制那些冗余的候选框。采用的候选框和真实框的占比,重叠越多说明该候选框越好。但是这个方法也是存在问题,当候选框大于真实框很多,并且能够完整框住物体,但是这类框严格意义上是不精确的,需要及进一步优化。
候选区域有 2000 个,所以很多会进行重叠。针对每个类,通过计算 IoU 指标,采取非极大性抑制,以最高分的区域为基础,剔除掉那些重叠位置的区域。

4. 修正:
深度学习|目标检测入门常见问题(深度学习 / 图像分类)
文章图片

  • 输入是CNN输出的某一物体的特恒向量+该物体的标准真实框
  • 输出是红色框要达到绿色框所需的位移值

个人理解:rcnn从2000个候选框中提取每个候选框的特征向量,然后 使用SVM分类器对候选框中的物体进行分类,对于符合某一类的多个候选框,再使用非极大值抑制来对冗余的框进行剔除,从而找出能框出该物体的最合适的边框;最后使用回归分析来对rcnn选出来的框和真实的框进行修正,从而进一步精确框的位置和大小。
目标检测常用指标
  • FPS:每秒处理的图像帧数
  • IoU:重叠度,真实边框和预测边框的交集面积与并集面积的比值
  • P
  • R
  • AP:把每一个R的P都求出来,取最大的P作为该R的P,然后
  • mAP:所有类别的AP的均值
目标检测的指标AP与mAP - 知乎
关于AP和mAP(详见知乎)

训练样本分为正例样本和反例样本,其中正例样本是指待检测目标样本,反例样本指不是目标需要检测的样本。
准确率:所有预测为正例的值(TP+FP)为分母
召回率:所有预测出来的值(TP+FN)为分母
深度学习|目标检测入门常见问题(深度学习 / 图像分类)
文章图片

深度学习|目标检测入门常见问题(深度学习 / 图像分类)
文章图片


【深度学习|目标检测入门常见问题(深度学习 / 图像分类)】对应关系如图所示,Precious表示预测为正确结果中,由多少是对的,即反映预测准确的参数;但是只是预测准确率很高,但是很多没有预测出来那也是不行的(有100个样本,预测了1个正例,99个反例,而且这个1个正例预测是正确的,那么准确率是100%,单纯的这样来衡量是没有道理的,因为还有99个直接给否定了),所以Recall这个指标就是为了衡量这个问题,一共的正例的样本,成功预测出来多少个,当这两个指标都很高的时候,那么说明这个结果才是好的。

    推荐阅读