YOLO-V3深度阅读笔记

损失函数

  1. coordinate loss
  2. class predictions loss
    使用多标签分类损失。(使用 binary cross-entropy loss)
  3. objectness loss

默认框和真实目标的匹配策略

  1. 与真实目标重叠度最大的默认框为正样本。
  2. 与真实目标重叠度大于阈值的默认框为正样本。(Faster RCNN中阈值为0.7,YOLO-V3阈值为0.5)。
  3. 每一个真实目标只会指定与一个默认框匹配,其余的框只会有objectness loss(即是否存在物体的损失)

多尺度预测

  1. 在三种不同的尺度上进行预测。

评价指标

  1. 使用MAP0.5时,yolov3和其他方法差异不大。按照COCO那样的标准,明显的差异就出来了。作者认为从肉眼观察角度上讲,0.5和0.3的重叠差异不大,反对COCO那种评价标准。

尝试了其他策略,发现没效果

  1. 采取普通的锚框预测机制,预测锚框相对于真实框中心位置的偏移量(以真实框的w和h,预测值为w和h值的倍数),采取线性激活的方式。w = prediction[..., 2],预测的pred_w和pred_h,w和h的倍数,不过是取了对数后的。pred_boxes[..., 2] = torch.exp(w.data) * anchor_w pred_boxes[..., 3] = torch.exp(h.data) * anchor_h
  2. 采取线性激活的方式来预测x,y的偏移量,而不是逻辑回归激活函数。
  3. Focal loss没效果,yolov3将目标存在得分预测和类别预测分开了。(正负样本失衡会得到减轻)。
  4. 同Faster RCNN一样,采取两个阈值。

作者对COCO数据的认识

  1. MAP指标不恰当。PASCAL VOC数据将阈值设为0.5,这也是为了适应实际标注过程中存在不确定性这一情况。
    2.COCO数据更精确,还有语义分割的标签。COCO的评价指标更强调框的准确性,降低了对分类准确性的重视。但作者认为错误的分类比预测框存在很小的偏移更严重。
  2. MAP指标已经被玩坏了,因为其唯一在意的是每一类的结果框排序。(如果某个物体有一个预测正确的框,即使这个物体还没预测为其他类别,而且重合度很高,最终在MAP指标上也不会造成影响)

    上图中,上下两个检测器预测结果视觉上看起来差别很大,很明显上一个预测结果更好,但是在MAP指标上,两个检测器的效果是差不多的。
    作者认为现有的MAP检测指标与人们关心的内容差异很大,新的指标应该关注这些差异。

检测任务人们关心的核心
重点:给定一张图片和检测器,检测器在一张图片中,找到物体并正确分类的能力如何?
建议:需要摆脱每一类的AP(per-class AP),做一个global average precision(摆脱类别的依赖),或者对每张图片做一个AP,然后在整个数据集上做平均!

你可能感兴趣的:(论文阅读笔记,目标检测论文及网络模型)