深度学习之目标检测(一)-- 前言

木卯 于 2021-08-02 发布

深度学习之目标检测(一)前言

从今天开始学习深度学习目标检测任务,从Faster R-CNN到SSD,再到YoloV1开始到YoloV5。本章节学习资源见 Bilibili 。前言中讲解常用数据集以及评价指标。

1. 数据集

目标检测常用数据集 PASCAL VOC2012数据集讲解 和 COCO数据集讲解 。PASCAL VOC2012 主要有二十个类别,自己标注的话为了一致建议使用 LabelImg(而非LabelMe,因为它生成json而不是xml),labelImg 的使用也可参考讲解

img1

相比而言,COCO则是非常大型且常用的数据集,可以使用 pycocotools 读取 COCO 标注文件。

img2

img3


2. 评价指标

本小节主要讲解:目标检测mAP计算以及coco评价标准,学习自 Bilibili。首先讲解 mAP 的计算方法。

img5

我们以小猫类别检测举例,网络预测结果都是非极大值抑制之后的检测框,假设第一张测试图片中有两只猫,网络预测结果如下,我们使用列表来统计检测信息。表格是按照Confidence降序排列的,OB是说IoU是否大于0.5。然后把第二张图片加进去,此时总猫个数变为3,然后依然按照Confidence降序插入预测结果。同理加入第三张图。

img6

img7

img8

有了表格之后就能来计算 TP,FP 和 FN,以及 Precision 和 Recall 了。需要根据我们设定的 confidence 来计算。比如设定 confidence = 0.98,总目标个数为7,漏检6个,没有假阳性,正确检出1个。

img9

如果降低 confidence 阈值,则结果如下所示:

img10

img11

最后就可以得到 Precision-Recall 曲线了,注意横坐标 Recall 需要滤除一些重复的 Recall,只需要保留 Precision 值最大的结果就行了:

img12

接下来我们看看 COCO 评价指标怎么来看,参考于官网:

img4

img13

结果主要看什么?


最后的开篇前言:目标检测任务,分类网络是基础!

目标检测分两类: