之前我们介绍了:
- 理论部分:【行人检测】miss rate versus false positives per image (FPPI) 前世今生(理论篇)
- 源码解读部分:【行人检测】miss rate versus false positives per image (FPPI) 前世今生(实战篇-上)
今天我们来用自己的数据,绘制一下FPPI图
(第一到六都在前面文章中,所以这篇文章直接从七开始)
七、准备gt和dt
在原作者的代码中,annotations的格式是vbb的,实在是太不友好了。。。不过所幸的事情,通过源码的解决,我们已经找到突破口了!
我们只要知道dts
和gts
的格式,然后通过load(matfile)
的形式替代loadDt
和loadGt
即可
1. 分析dts
dts
是一个1*N的元胞,N表示算法的种类。例如下图表示有6种算法。
每个元胞中又包含了一个1*M的元胞,M表示图片的数量。例如上图表示有4024张图。
下图表示dts
的第二个元胞内容(即第2中算法的检测结果)
每一列的数据维度不相同,因为对于每一张图片检测的结果也是不一样的。例如,3x5 double表示检测出该图片有3个行人,4x5 double表示检测出该图片有4个行人
我们再随便点开一个看,每一行就是表示一个行人的标注,每一列则表示[x y w h score]
:左上角的x坐标、左上角的y坐标、框的宽度、框的高度、置信度
由于算法不同,所以不同算法的score范围可能会不一样,有一些会大于1,甚至会出现负数,但是这个不会有影响
注意!这个dts
相当于是可视化时的输出!
回经过非极大值抑制处理
可视化时置信度的阈值为
2. 分析gts
由于我们只用到一个数据集,所以gts
是一个1*1的元胞。每个元胞中又包含了一个1*M的元胞,M表示图片的数量。例如下图表示有4024张图。这和dts
套路是一样的,但需要注意的是,这4024张图的顺序要和dts
对应上。
点开元胞继续看,表示的是每张图片的ground truth,有一些图片里面没有标注行人,所以会出现空的情况
随便点开一张图继续看,结构也和dts
非常相似,每一行是一个检测框,每一列则表示[x y w h score]
:左上角的x坐标、左上角的y坐标、框的宽度、框的高度、置信度
【我们只需要gts、dts换成自己的结果就好,后面待写】