大家在训练完YOLOv5、v8模型时,输出的结果中会有如图1所示。
confusion matrix.png
图1 训练结果中的混淆矩阵
那么这个图应该怎么看呢,请看下面的讲解。希望对你有帮助。
一、混淆矩阵
首先,先介绍一下什么是混淆矩阵。
混淆矩阵是一种将算法性能可视化的表现形式,矩阵的每一行代表一个真实的类别,每一列代表的是预测的类别。其实由上图就可以看出,横坐标是True,纵坐标是Precision。
由图中的每一格数字就能算出TP、FP、FN和TN,然后可以衍生出其他更多的评价指标,如P、R、F1等。
二、TP、FP与FN的回顾
目标检测中的混淆矩阵与分类非常相近,但是区别就在于分类任务是一张张图片,而检测任务是包含定位与分类两个任务,并且检测的对象是图像中目标类别。
图2 类别的判别类型
目前最常用的判断一个检测结果是否正确的方式就是计算检测框与真实框的IOU,然后根据IOU去判别两个框是否匹配。以图2为例,红色的为模型预测的结果,绿色为真实标注框,两个框的IOU大于阈值,就被判定为匹配,同时两个框对应的类别也相同,那么此为正确的检测结果(TP)。
图2中的第二张图虽然IOU大于了阈值,但是由于类别不正确,所以被判定为误检(FP)。第三张图的检测框IOU小于阈值,没有与真实的标注框匹配,所以被判定为背景的误检。第四张图没有检测框,因此属于漏检(FN)。
三、目标检测中的混淆矩阵
图3
以类别pedestrian为例。在图3中,绿框(行)与红框(纵)相交的格子为pedestrian正确检测(TP)的概率0.51。而0.51右侧除了background(背景)外的所有格子都是误检(FP)的概率,根据横坐标可以看出都分别被误检成什么类别,比如pedestrian有0.02的概率被误判成bicycle类别。
从图3中可以知道pedestrian类别有0.22的概率被漏检(FN)。
根据例子就可以得出其他类别的TP、FN及FP的情况啦~
-------------------------------今天不学习,明天变废物!------------------------------------