怎样才算正确检测到一个目标?

pytorch cnn 模型预测 pytorch模型评估_人工智能

  • 什么是IOU:

mAP计算方法:

pytorch cnn 模型预测 pytorch模型评估_pytorch cnn 模型预测_02


假设针对某一类别的AP情况

TP:预测正确的边界框个数。预测边界框与GT-box的IOU>0.5

FP:假阳性


FN就是 把检测对象检测为背景的 那些检测框 的数量,也就是一些被检测错误(F)为负样本(N)的样本,它们本来应该被检测为正样本。


FN:漏检

pytorch cnn 模型预测 pytorch模型评估_人工智能_03


↑只检测出了一个目标:

TP=1

FP=0

Precisinotallow=1/(1+0)=1

所以仅通过Precision无法判断模型好坏

pytorch cnn 模型预测 pytorch模型评估_学习_04

↑假设有5个目标,网络预测出了50个目标(包括需要检测的这5个目标)。

TP=真实目标的个数

FN=0,因为没有漏检

召回率Recall = TP/(TP+FN) =100%

所以单靠召回率也不行

引入AP,进一步求mAP。
因为是针对每一个类别去分别求的AP值。一个类别对应一个AP值。但是在目标检测中有多个类别,所以对多个类别取平均值,就得到了mAP

pytorch cnn 模型预测 pytorch模型评估_pytorch cnn 模型预测_05


累加训练集中的目标个数(2)

通过列表表示检测到的目标信息(按照Confidence降序排列表格)

Confidence:预测这个目标的概率

OB:是否是TP(是否是想要检测的目标)

(弹幕:

若一个 GT 有多个预测边框,则认为 IOU 最大且大于等于 0.5 的预测框标记为 TP,其他的标记为 FP,即一个 GT 只能有一个预测框标记为 TP



因为预测的两个边界框预测的目标都是第一只猫,所以ID都是1,预测给出的数值是置信度,不是IOU,IOU是预测框与真实框的交并比


pytorch cnn 模型预测 pytorch模型评估_学习_06


针对confidence取不同阈值所得到的Precision和Recall的信息。

1.将Confidence设置到0.98,大于等于0.98的目标才算正确匹配。

2.只检测到了一个目标(绿色,TP=1),所以不存在假阳性(FP=0)。总目标个数是7,所以漏检了6个(FN=6)。

Precisinotallow=1/(1+0)=1

Recall=1/(1+6)=1/7将Confidence阈值调低:

pytorch cnn 模型预测 pytorch模型评估_pytorch cnn 模型预测_07


FN=7-2=5

pytorch cnn 模型预测 pytorch模型评估_人工智能_08


False:并不是想要检测的目标。FP=1。

FN=7-4=3.不断调整阈值(因为这样可以使得recall值一定是逐渐增大的),得到↓

pytorch cnn 模型预测 pytorch模型评估_ide_09


可以以Recall为横坐标,Precision为纵坐标,得到P-R曲线。

对于横坐标Recall,需要滤除一些重复信息(保存Precision最大的那个)。

pytorch cnn 模型预测 pytorch模型评估_学习_10


具体方法见视频。(目的就是求面积,就算不规则的也是类似画梯形去近似)

最后求得的0.6694就是对应猫这个类别的AP值。可以用同样的方法求得别的类别是AP值,最终一起求均值得到mAP。

coco评价标准:

使用目标检测网络训练后,在验证集中得到的coco评价列表

pytorch cnn 模型预测 pytorch模型评估_人工智能_11


比较常见的两个目标检测数据集:pascal voc、coco

pytorch cnn 模型预测 pytorch模型评估_人工智能_12


上面COCO评价标准中每一条数据的含义:

IOU=0.5:

pytorch cnn 模型预测 pytorch模型评估_人工智能_13


pytorch cnn 模型预测 pytorch模型评估_目标检测_14


AP:

pytorch cnn 模型预测 pytorch模型评估_pytorch cnn 模型预测_15


AP Across Scales:

针对小面积、中面积、大面积的AP

可以了解到目标检测网络对不同尺度目标的检测效果。

pytorch cnn 模型预测 pytorch模型评估_ide_16


AR: recall查全率

pytorch cnn 模型预测 pytorch模型评估_ide_17


第三个:

最多预测100个目标(检测框)。通过限定预测的值,可以从下图看出,大约64%的目标被检测出来。

pytorch cnn 模型预测 pytorch模型评估_ide_18


AR Across Scales:

对应不同目标尺度的AR值。

pytorch cnn 模型预测 pytorch模型评估_人工智能_19


建议看的:

pytorch cnn 模型预测 pytorch模型评估_目标检测_20


如果对目标准确率较高就看IoU=0.75的哪个。

对小目标检测要求较高:

pytorch cnn 模型预测 pytorch模型评估_人工智能_21


如果这两个差距很小的话,可以减少检测的目标个数,可以提高一些目标检测的效率。

pytorch cnn 模型预测 pytorch模型评估_目标检测_22