传统目标检测
这里仅作简要分析,源码地址(代码有些许改变)https://github.com/Cartucho/mAP/blob/master/main.py
1.文件夹分为两个,真实标签及检测标签
两个文件夹中的文件均为txt文件,每张图片对应一个txt文件,其中真值标签,每一行一个目标,类别名+坐标值
其中检测标签,每一行一个目标,类别名+置信度+坐标值
mAP计算步骤:
1.将所有真值标签读取并保存json文件,字典数据有以下3个,
按图片名划分文件夹保存
2.遍历所有文件,按照类别名保存bounding_boxes,并按照置信度进行排序,并保存json文件,字典数据有以下3个
按照置信度排序,按类别名划分文件夹保存
3.遍历检测到的每一类bounding_boxes(顺序遍历,即按照置信度读取当前类的框)
(1)获取当前框所属的图片名,调取对应图片的真值标签
(2)计算真值标签与识别标签的IOU,取最高IOU(ovmax)对应的两个框(检测框及其对应的真值框)
(3)若ovmax大于最小阈值,一般为0.5,且真值框未被使用过,则为TP,使用过为FP
(4)ovmax小于阈值,则为FP
(5)根据当前类得到的所有框的tp和fp序列,按序列顺序计算召回率rec和精确度prec
(6)得到的rec和prec输入给voc_ap计算当前类别ap值,召回率及精确度
4.计算出各类别AP后平均即是mAP
旋转检测IOU
旋转检测的mAP评估仅改变IOU计算方式,传统目标检测的IOU计算如下所示