我用自己的数据训练了我的 Mask R-CNN 网络,我将其转换为 COCO Style 用于我的论文,现在我想评估我的结果。我找到了两种方法来做到这一点。一种方法是来自 COCO 本身的评估。Mask R-CNN 本身在他们的 coco.py 文件中展示了如何使用 COCO Metric 进行评估: https ://github.com/matterport/Mask_RCNN/blob/master/samples/coco/coco.py
我基本上使用第evaluate_coco(...)
342 行中的函数。结果,我从 COCO 指标中获得了不同指标的平均精度和平均召回率的结果,请参见下图。对于参数 eval_type 我使用eval_type="segm"
.
对我来说,mAP 很有趣。我知道 mAP50 使用 0.5 作为 IuO(联合交叉点),它们的标准 mAP 是从 IuO = 0.5 到 0.95,步长为 0.05。
第二种方法来自 Mask R-CNN 本身在他们的 utils.py 中: https ://github.com/matterport/Mask_RCNN/blob/master/mrcnn/utils.py
函数的名称compute_ap(...)
在第 715 行,上面写着 IoU 是 0.5。该函数返回一个 mAP 值。
这就提出了compute_ap()
评估什么类型的问题。使用 COCO,您可以在“bbox”和“segm”之间进行选择。
我还想知道compute_ap(...)
函数的 mAP 值和 COCO 的 mAP50 之间的区别,因为使用相同的数据我得到不同的结果。不幸的是我现在不能上传更好的图片,因为我只能在周一到周五去我的大学,周五我很匆忙,没有检查就拍照,但是所有 AP 的平均值compute_ap()
是 0.91,我我很确定 COCO 的 AP50 是 0.81。
是不是因为maxDets=100这个参数?: 了解COCO评价“最大检测数” 我的图片只有4个类别,每张图片最多4个实例。
还是计算mAP的方式不同?
编辑:现在我对“Segm”类型和“BBox”类型的整个 COCO 度量有一个更好的图像,并将它与来自的结果进行compute_ap()
比较,即“mAP:0,41416 ...”顺便说一句,如果有COCO 结果中的“-1”,这是否意味着该类型没有?