1.评价指标
1.1 算法评估相关概念
- TP: 被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数
- FP: 被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数
- FN:被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数
- TN: 被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数
P(精确率):TP/(TP+FP)
R(召回率):TP/(TP+FN),召回率越高,准确度越低
1.2 AP计算
mAP:
其中N代表所有图片的个数,p(k)表示能识别出k个图片的时候Precision的值,而Δ r ( k ) 则表示识别图片个数从k-1变化到k时(通过调整阈值)Recall值的变化情况。
2.目标检测和YOLO
2.1 问题描述
目标检测是在给定的图片中精确找到物体所在位置,并标注出物体的类别。物体的尺寸变化范围很大,摆放物体的角度,姿态不定,而且可以出现在图片的任何地方,并且物体还可以是多个类别。
2.2 目标检测原理
很多时候图像里有多个我们感兴趣的目标,我们不仅想知道它们的类别,还想得到它们在图像中的具体位置。在计算机视觉里,我们将这类任务称为目标检测(object detection)或物体检测。
目标检测在多个领域中被广泛使用。例如,在无人驾驶里,我们需要通过识别拍摄到的视频图像里的车辆、行人、道路和障碍的位置来规划行进线路。机器人也常通过该任务来检测感兴趣的目标。安防领域则需要检测异常目标,如歹徒或者炸弹
2.3 预备知识
- 边界框
在目标检测里,我们通常使用边界框(bounding box)来描述目标位置。边界框是一个矩形框,可以由矩形左上角的x和y轴坐标与右下角的x和y轴坐标确定。
- 锚框
目标检测算法通常会在输入图像中采样大量的区域,然后判断这些区域中是否包含我们感兴趣的目标,并调整区域边缘从而更准确地预测目标的真实边界框(ground-truth bounding box)
2.4 YOLOv1网络结构
网络结构包含24个卷积层和2个全连接层;其中前20个卷积层用来做预训练,后面4个是随机初始化的卷积层,和2个全连接层。
2.4.1 YOLO的输入与模型处理
- YOLO v1在PASCAL VOC数据集上进行的训练,因此输入图片为448 × 448 × 3。 实际中如为其它尺寸,需要resize或切割成要求尺寸
- YOLO模型处理
将图片分割为 7*7个grid,每个grid cell的大小都是相等的
每个格子都可以检测是否包含目标
YOLO v1中,每个格子只能检测一种物体(但可以不同大小)
2.4.2 YOLO的输出
- 输出是一个7 × 7 × 30的张量。对应7 × 7个cell
- 每个cell对应2个包围框(boundingbox, bb),预测不同大小和宽高比,对应检测不同目标。每个bb有5个分量,分别是物体的中心位置(𝑥, 𝑦)和它的高(ℎ) 和宽 (𝑤) ,以及这次预测的置信度
图片被分成了49个框,每个框预测2个bb,因此上面的图中有98个bb