一、算法评估
1.相关概念
TP:被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数;
FP:被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数;
FN:被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数;
TN:被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。
P(精确率):;R(召回率):
;它们之间的关系为召回率越高,准确度越低。
2. AP(average precision)计算
其中𝑁代表测试集中所有图片的个数,𝑃(𝑘)表示在能识别出𝑘个图片的时候 Precision的值,而 Δ𝑟(𝑘)则表示识别图片个数从𝑘 − 1变化到𝑘时(通过调整阈 值)Recall值的变化情况。
3.mAP(mean average precision)计算
在多类的检测中,取每个类AP的平均值,即为mAP
二、目标检测与YOLO
1.目标检测问题
目标检测是在给定的图片中精确找到物体所在位置,并标注出物体的类别。 物体的尺寸变化范围很大,摆放物体的角度,姿态不定,而且可以出现在图 片的任何地方,并且物体还可以是多个类别。
2.目标检测基本原理
(1)概念
很多时候图像里有多个我们感兴趣的目标,我们不仅想知道它们的类别 ,还想得到它们在图像中的具体位置。在计算机视觉里,我们将这类任务称为目标检测(object detection)或物体检测。
(2)边界框
在目标检测里,我们通常使用边界框bounding box来描述目标位置。 边界框是一个矩形框,可以由矩形左上角的x和y轴坐标与右下角的x和y 轴坐标确定。
(3)锚框
目标检测算法通常会在输入图像中采样大量的区域,然后判断这些区域 中是否包含我们感兴趣的目标,并调整区域边缘从而更准确地预测目标的真实边界框(ground-truth bounding box)。
不同的模型使用的区域采样方法可能不同。锚框法以每个像素为中心生成多个大小和宽高比(aspect ratio)不同的边界框,这些边界框被称为锚框(anchor box)。
(3)并交比
为对锚框的效果进行量化,一种直观的方法是衡量锚框和真实边 界框之间的相似度。Jaccard系数(Jaccard index)可以衡量两个 集合的相似度。给定集合A和B,它们的Jaccard系数即二者交集大小除以二 者并集大小:
把边界框内的像素区域看成是像素的集合,用两个边界框的像素集合的Jaccard系数衡量这两个边界框的相似度。 当衡量两个边界框的相似度时,通常将Jaccard系数称为交并比,即两个边界框相交面积与相并面积之比。
(4)标注训练集的锚框
在训练集中,将每个锚框视为一个训练样本。为了训练目标检测模型 ,需要为每个锚框标注两类标签:一是锚框所含目标的类别,简称类别;二是真实边界框相对锚框的偏移量,简称偏移量。
定义矩阵
其中第i行第j列的元素 为锚框Ai与真实边界框Bj的交并比。
(5)输出预测边界框
锚框数量较多时,同一个目标上可能会输出较多相似的预测边界框。为了使结果更加简洁,我们可以移除相似的预测边界框。常用的方法叫作非极大值抑制。
- 从最大概率矩形框F开始,分别判断A~E与F的重叠度IOU是否大于某个设 定的阈值;
- 假设B、D与F的重叠度超过阈值,那么就扔掉B、D;并标记第一个矩形框 F,是我们保留下来的。
- 从剩下的矩形框A、C、E中,选择概率最大的E,然后判断E与A、C的重 叠度,重叠度大于一定的阈值,那么就扔掉;并标记E是我们保留下来的第二 个矩形框。
- 一直重复这个过程,找到所有曾经被保留下来的矩形框。
三、目标检测数据集
1.数据集介绍
皮卡丘数据集合成方法:
- 首先,用一个开源的皮卡丘3D模型生成了1000张不同角度和大 小的皮卡丘图像。
- 随后我们收集了一系列背景图像,并在每张图的随机位置放置一 张随机的皮卡丘图像
2.图示数据
皮卡丘的角度、大小和位置在每张图像中都不一样。当实际中的数据通常会复杂得多。
合成的皮卡丘数据集可用于测试目标检测模型。目标检测的数据读取跟图像分类的类似。然而,在引入边界框后,标签形状 和图像增广(如随机裁剪)发生了变化。