| GIOU | Objectness | Classification | Precision | Recall | |
|---|---|---|---|---|---|
| 简述 | GIou损失函数。 | 目标检查度量 | 分类loss均值 | 准确率 | 召回率 |
| 度量 | 推测为GIoU损失函数均值,越小方框越准 | 推测为目标检测loss均值,越小目标检测越准 | 推测为分类loss均值,越小分类越准 | 结果正确率 | 召回率正确性 |
| 概述 | 是一种目标检测领域用于回归目标框损失函数 | Objectness很高,这意味着图像窗口可能包含一个物体,允许我们快速地删除不包含任何物体的图像窗口。 |
指标概述:
在目标检测中,经常需要计算预测回归框和真实回归框的交并比(Intersection Over Union,IOU),也称重叠度,计算公式如下。
IOU实际上衡量了如上图A,B两个边界框重叠地相对大小,预测框和真实框重叠越大。我们希望A,B两个框越近越好,及IOU越大对应结果越好。
def IoU(bbox, prebox):
# bbox, prebox = [x,y,width,height]
# bbox,prebox左上角坐标
xmin1, ymin1 = int(bbox[0] - bbox[2] / 2.0), int(bbox[1] - bbox[3] / 2.0)
xmax1, ymax1 = int(bbox[0] + bbox[2] / 2.0), int(bbox[1] + bbox[3] / 2.0)
xmin2, ymin2 = int(prebox[0] - prebox[2] / 2.0), int(prebox[1] - prebox[3] / 2.0)
xmax2, ymax2 = int(prebox[0] + prebox[2] / 2.0), int(prebox[1] + prebox[3] / 2.0)
# 获取矩形框交集对应的左上角和右下角的坐标(intersection)
xx1 = np.max([xmin1, xmin2])
yy1 = np.max([ymin1, ymin2])
xx2 = np.min([xmax1, xmax2])
yy2 = np.min([ymax1, ymax2])
# 计算两个矩形框面积
bbox_area = (xmax1 - xmin1) * (ymax1 - ymin1)
prebox_area = (xmax2 - xmin2) * (ymax2 - ymin2)
inter_area = (np.max([0, xx2 - xx1])) * (np.max([0, yy2 - yy1])) # 计算交集面积
iou = inter_area / (bbox_area + prebox_area - inter_area + 1e-6) # 计算交并比
return iou
MAP(mean average precision)指标计算
多标签图像分类任务中图片的标签不止一个,因此评价不能用普通单标签图像分类的标准,即mean accuracy,该任务采用的是和信息检索中类似的方法—mAP,虽然其字面意思和mean average precision看起来差不多,但是计算方法要繁琐得多,mAP 会统计所有 Confidence 值下的 PR值,而实际使用时,会设定一个 Confidence 阈值,低于该阈值的目标会被丢弃,这部分目标在统计 mAP 时也会有一定的贡献。
混淆矩阵(Confusion Matrix)相关
- 首先得了解下面4个参数
- TP(True Postives): 分类器把正例正确的分类/预测为正例
- FN(False Negatives):分类器把正例错误的分类/预测为负例
- TN(True Negatives):分类器把负例正确的分类/预测为负例
- FP(False Postives):分类器把负例错误的分类/预测为正例
- 混淆矩阵要表达的含义: | |Positive | Negative| |---| ---| ---| |Postive | True Postive| False Negative | | Negative | False Postive | True Negative|
- 混淆矩阵的每一列代表了预测类别,每一列的总数表示预测为该类别的数据的数目;
- 每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的数据实例的数目;每一列中的数值表示真实数据被预测为该类的数目
- 样例总数 = TP + FP + TN + FN
案例
已知条件:班级总人数100人,其中男生80人,女生20人。
目标:找出所有的女生。
结果:从班级中选择了50人,其中20人是女生,还错误的把30名男生挑选出来了。
求:计算 TP,FP,FN,TN?
P:预测为正例 N:预测为负例
TP = 20,FP = 30,FN = 0,TN = 50
Precision
Precision =
在分类算法中,将分类正确的样本在所有样本中的数量比例称之为准确率。一般来说,对于数据分布均衡的样本,该指标能够正确地评估分类算法的分类效果,但是,当数据分布不均衡时,该指标便不能客观的反映分类算法的分类效果了。
举个简单的例子,假设,某专业有100个学生,其中有90个男生,10个女生。此时,数据分布是极不均衡的,如果分类算法预测该专业学生全为男生,即可达到90%的准确率,显然此分类算法明显是有极大缺陷的。故,当数据集的分布未知或分布不均衡时,请不要使用这个指标来评估分类算法的准确性。
Recall
Recall =
在分类算法中,分类器认为是正确并且确实是正确的部分占所有确实是正类的比例,但是如果召回率是100%,就代表所有的正类都被分类器分为正类。如果召回率是0%,就代表没一个正类被分为正类。
AP 与 MAP
- AP(Average Percision):AP为平均精度,指的是所有图片内的具体某一类的PR曲线下的面积(横轴为Recall,纵轴为Precision)。
- MAP: 是指所有图片内的所有类别的AP的平均值
- AP衡量的是对一个类检测好坏,mAP就是对多个类的检测好坏。在多类多目标检测中,计算出每个类别的AP后,再除于类别总数,即所有类别AP的平均值,比如有两类,类A的AP值是0.5,类B的AP值是0.2,那么mAP=(0.5+0.2)/2=0.35。
- mAP@0.5 & mAP@0.5:0.95:就是mAP是用Precision和Recall作为两轴作图后围成的面积,m表示平均,@后面的数表示判定iou为正负样本的阈值,@0.5:0.95表示阈值取0.5:0.05:0.95后取均值。
看到这,,,好人顺便帮忙点赞关注哈。感谢!