我开始使用cocoapi评估使用Object Detection API训练的模型。阅读了解释平均平均精度(mAP)和召回率的各种资料之后,我对可可比中使用的“最大检测”参数感到困惑。
根据我的理解(例如,此处,此处或此处),可以通过计算各种模型得分阈值的精度和召回率来计算mAP。这给出了精确调用曲线,并且mAP被计算为该曲线下面积的近似值。或者,以不同的方式表示为定义的召回范围(0:0.1:1)中最大精度的平均值。
但是,对于给定数量的maxDet具有最高分数的最大检测次数(),cocoapi似乎可以计算精度和召回率。然后从中获得的精确调用曲线maxDets = 1, 10, 100。为什么这是一个好的指标,因为它显然与上述方法不同(它可能不包括数据点)?
在我的示例中,每个图像有〜3000个对象。使用cocoapi评估结果的召回性很差,因为它会将检测到的对象数限制为100。
出于测试目的,我将评估数据集作为基本事实和检测到的对象(带有一些人工得分)提供。我希望精确度和召回率非常好,这实际上是在发生。但是,一旦我提供了100多个对象,精度和查全率就会随着“检测到的对象”数量的增加而下降。即使它们都是“正确的”!这有什么意义?
我正在使用 python coco api 来运行对象检测的评估。我有两个文件,一个ground truth json和一个results json。该COCO笔记本演示仅适用于所有类运行EVAL节目。如何只为一个特定的类或类的子集运行它?目前我正在这样做:
from pycocotools.coco import COCO
from pycocotools.cocoeval import COCOeval
annType = 'bbox'
cocoGt=COCO(gt_json)
cocoDt=cocoGt.loadRes(results_json)
imgIds=sorted(cocoGt.getImgIds())
# running evaluation
cocoEval = COCOeval(cocoGt,cocoDt,annType)
cocoEval.params.imgIds = imgIds
cocoEval.evaluate()
cocoEval.accumulate()
cocoEval.summarize()
Run Code Online (Sandbox Code Playgroud) 如何创建与TensorFlow一起使用的MS COCO样式数据集?有人对此有经验吗?我有图像,注释和地面真相蒙版。我需要将它们转换为与MS COCO兼容,并感谢您的帮助。我找不到任何开源工具来创建COCO风格的JSON注释。
TensorFlow MS COCO读取我不太有经验的JSON文件。
似乎COCO PythonAPI只支持 python2。但是人们确实在 python3 环境中使用它。
我尝试了可能的安装方法,例如
python3 setup.py build_ext --inplace
python3 setup.py install
Run Code Online (Sandbox Code Playgroud)
但python3 setup.py install会因失败coco.py而cocoeval.pycontainning python2打印功能。
更新:通过更新COCO PythonAPI项目解决。把这个问题留给面临同样问题的人。
我想对视频文件中的对象进行语义分割。我更喜欢在 COCO 数据集(或 COCO stuff 数据集)上使用预先训练的模型,并开始使用它对我自己的视频文件进行语义分割和对象检测。我遇到的大多数线程都在谈论 COCO 数据集上的训练算法。我正在寻找一个可以直接用于分割我自己的视频文件的预训练模型(一个冻结的图形文件)。
谁能指导我如何做到这一点?
PS 我可以使用来自 tensorflow model zoo 的预训练模型进行对象检测,但我无法将其扩展为对象分割。
video-processing image-segmentation tensorflow mscoco semantic-segmentation
我只想从 COCO 数据集中下载人员类别和二进制分割。我该怎么做?
现在,我正在复制Mask R-CNN(实例分割任务。)
我不知道如何使用MS COCO测试数据集。
存在带有特定注释的“ instances_train2014”,“ instances_val2014”。
但是在测试数据中,只有image_id,image_url,图像高度和宽度。我完全不知道如何使用它。
有人能弄清楚吗?:(对不起,英语不好