本文直接跳过前面若干基础概念,前提需弄懂TP,FP,FN,TN,精确率,召回率,IOU等,具体可以参照文后Reference,下面进入正题,边讲述边实现,拒绝只谈不做和只做不谈。相比前人代码,本实现思路简洁,通用有效,最后根据官方现成函数计算AP进行对比。
一、引言案例
加载groundTruth数据和某算法预测的目标检测框
load calmAP.mat % 包含检测值和groundTruth
显示groundTruth,即真值,在图中标注为tennis、tennisRacket两类。
gTruth
gTruth = 3×3 table
表格中第一列为图片路径名字,第二列为“tennis”的ROI,第三列为“tennisRacket”的ROI,M*4大小,每行为[x,y,width,height].
从表格中可以看出这里只用了3张照片,为简便起见,下面3张图只标注了有限数量的网球和网球拍两种目标。
某目标检测算法对上面3张图像的检测结果统计如下:
detectionResults
detectionResults = 3×3 table
现把其中一幅图像检测结果(predictTennis、predictRacket)和真值(tennis、tennisRacket)画到一张图中如下:
groundTruthData = gTruth(:,2:end)
groundTruthData = 3×2 table