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

- 什么是IOU:
 https://blog.csdn.net/qq_51831335/article/details/125719420
  
  
mAP计算方法:

 假设针对某一类别的AP情况
 TP:预测正确的边界框个数。预测边界框与GT-box的IOU>0.5
 FP:假阳性
 (
 FN就是 把检测对象检测为背景的 那些检测框 的数量,也就是一些被检测错误(F)为负样本(N)的样本,它们本来应该被检测为正样本。
 )
 FN:漏检
 
 ↑只检测出了一个目标:
 TP=1
 FP=0
 Precision=1/(1+0)=1
 所以仅通过Precision无法判断模型好坏
  ↑假设有5个目标,网络预测出了50个目标(包括需要检测的这5个目标)。
↑假设有5个目标,网络预测出了50个目标(包括需要检测的这5个目标)。
 TP=真实目标的个数
 FN=0,因为没有漏检
 召回率Recall = TP/(TP+FN) =100%
 所以单靠召回率也不行
引入AP,进一步求mAP。
 因为是针对每一个类别去分别求的AP值。一个类别对应一个AP值。但是在目标检测中有多个类别,所以对多个类别取平均值,就得到了mAP

 累加训练集中的目标个数(2)
 通过列表表示检测到的目标信息(按照Confidence降序排列表格)
 Confidence:预测这个目标的概率
 OB:是否是TP(是否是想要检测的目标)
 (弹幕:
 若一个 GT 有多个预测边框,则认为 IOU 最大且大于等于 0.5 的预测框标记为 TP,其他的标记为 FP,即一个 GT 只能有一个预测框标记为 TP
 )
 (
 因为预测的两个边界框预测的目标都是第一只猫,所以ID都是1,预测给出的数值是置信度,不是IOU,IOU是预测框与真实框的交并比
 )

 针对confidence取不同阈值所得到的Precision和Recall的信息。
 1.将Confidence设置到0.98,大于等于0.98的目标才算正确匹配。
 2.只检测到了一个目标(绿色,TP=1),所以不存在假阳性(FP=0)。总目标个数是7,所以漏检了6个(FN=6)。
 Precision=1/(1+0)=1
 Recall=1/(1+6)=1/7
将Confidence阈值调低:
 
 FN=7-2=5

 False:并不是想要检测的目标。FP=1。
 FN=7-4=3.
不断调整阈值(因为这样可以使得recall值一定是逐渐增大的),得到↓
 
 可以以Recall为横坐标,Precision为纵坐标,得到P-R曲线。
 对于横坐标Recall,需要滤除一些重复信息(保存Precision最大的那个)。
 
 具体方法见视频。(目的就是求面积,就算不规则的也是类似画梯形去近似)
 最后求得的0.6694就是对应猫这个类别的AP值。可以用同样的方法求得别的类别是AP值,最终一起求均值得到mAP。
coco评价标准:
使用目标检测网络训练后,在验证集中得到的coco评价列表
 
 比较常见的两个目标检测数据集:pascal voc、coco
 
 上面COCO评价标准中每一条数据的含义:
 AP:
 
 AP Across Scales:
 针对小面积、中面积、大面积的AP
 可以了解到目标检测网络对不同尺度目标的检测效果。
 
 AR: recall查全率
 
 第三个:
 最多预测100个目标(检测框)。通过限定预测的值,可以从下图看出,大约64%的目标被检测出来。
 
 AR Across Scales:
 对应不同目标尺度的AR值。
 
 建议看的:
 
 如果对目标准确率较高就看IoU=0.75的哪个。
 对小目标检测要求较高:
 
 如果这两个差距很小的话,可以减少检测的目标个数,可以提高一些目标检测的效率。
 



















