MS COCO数据集输出数据的结果格式(result format)和如何参加比赛(participate)(来自官网)

COCO系列文章:

MS COCO数据集目标检测评估(Detection Evaluation)(来自官网)

MS COCO数据集人体关键点评估(Keypoint Evaluation)(来自官网)

MS COCO数据集输出数据的结果格式(result format)和如何参加比赛(participate)(来自官网)

MS COCO官网数据集(百度云)下载,COCO API、MASK API和Annotation format介绍(来自官网)

一,Results Format

本页面描述了COCO使用的结果格式。结果格式的一般结构类似于所有的注解类型砂(annotation type sand),它们与下载页面上描述的基本事实的格式非常相似。我们建议在继续之前查看实际真值(ground truth)的格式。

每个算法生成的结果(如对象边界框,对象片段或图像标题)都会分别存储在自己的结果结构中。这个单例结果结构必须包含从中产生结果的图像的id(注意单个图像通常会有多个关联的结果)。整个数据集的结果汇总在一个这样的结果数组中。最后,整个结果数组作为单个JSON文件存储到磁盘(通过Matlab中的gason或Python中的json.dump 保存)。

示例结果JSON文件在coco/results/中,作为github包的一部分提供。因为结果格式类似于实际真值注释格式,所以用于访问实际真值的CocoApi也可以用来可视化和浏览算法结果。有关详细信息,请参阅evalDemo(demo)以及CocoApi中的loadRes()。

下面介绍每个结果类型的数据结构。下面的各个字段的格式(category_id,bbox,分段等)与基本事实相同 (详情请看MS COCO官网数据集下载以及API和Format介绍(来自官网)).

 

1. Object detection (bounding boxes)

[{

    "image_id": int,

    "category_id": int,

    "bbox": [x,y,width,height],

    "score": float,

}]

注意:框坐标是从左上角的图像角度测量的浮点数(并且是0索引的)。我们建议将坐标舍入到最接近的十分之一像素,以减少生成的JSON文件大小。

2. Object detection (segmentation)

[{

    "image_id": int,

    "category_id": int,

    "segmentation": RLE,

    "score": float,

}]

注意:包含对象段的二进制掩码应该使用MaskApi函数encode()编码为RLE。有关更多详细信息,请参阅MaskApi.mmask.py.请注意,核心RLE代码是用c编写的(参见maskApi.h),因此可以在不使用Matlab或Python的情况下执行编码,但是我们不支持这种情况。

3. Keypoint detection

[{

    "image_id": int,

    "category_id": int,

    "keypoints": [x1,y1,v1,...,xk,yk,vk],

    "score": float,

}]

注意:关键点坐标是从左上角图像角度测量的浮点数(并且是0索引的)。我们建议将坐标舍入到最近的像素以减小文件大小。还要注意,当前并没有使用可见性标志vi(除了控制可视化),我们建议简单地设置vi = 1。

4. Stuff segmentation

[{

    "image_id": int,

    "category_id": int,

    "segmentation": RLE,

}]

物体分割格式与对象分割格式相同,除了分数字段(score field)是不必要的。注意:我们建议使用单个二进制掩码对图像中出现的每个标签进行编码。二进制掩码应使用MaskApi函数encode()通过RLE进行编码。有关示例,请参阅cocostuffhelper.py.中的segmentationToCocoResult()。为方便起见,我们还提供了JSON和png格式之间的转换脚本

5. Caption generation

[{

    "image_id": int,

    "caption": str,

}]

二、Test Guidelines

COCO数据可以从download page.获得。每个挑战有不同的培训/验证/测试集,详细信息在下载页面上提供,并在这里总结:

 

2014 Train/Val        Detection 2015, Captioning 2015, Detection 2016, Keypoints 2016

2014 Testing          Captioning 2015

2015 Testing          Detection 2015, Detection 2016, Keypoints 2016

2017 Train/Val        Detection 2017, Keypoints 2017, Stuff 2017

2017 Testing          Detection 2017, Keypoints 2017, Stuff 2017

2017 Unlabeled    [optional data for any competition]

参与任何COCO挑战的推荐训练数据由相应的COCO训练集组成。验证数据也可用于在测试集上提交结果时进行训练(尽管从2017年开始,验证集只有5K图像,所以这样做的好处是最小化的)。请注意,2017年的train / val数据包含与2014年的train / val数据相同的图像,因此2017年的比赛使用2014年的训练数据没有任何好处。

 

任何形式的外部数据都是允许的。将结果上传到服务器时,必须在“方法说明(method description)”中指定用于训练的所有外部数据。我们强调,严格禁止任何形式的COCO测试集注释或使用的监督或无监督的培训。注意:将结果上传到评估服务器时,请在“方法描述”中明确指定用于培训的所有外部数据。

测试集拆分

在2017年之前,测试集有四个拆分(dev / standard / reserve / challenge)。 从2017年开始,我们将测试集简化为只有dev/challenge分裂,其他两个拆分被删除。四个拆分的最初目的是为了保护挑战的完整性,同时让研究人员灵活地测试他们的系统。经过多年的挑战之后,我们没有看到过度适合特定拆分的证据(输出空间的复杂性和测试集的大小可以防止简单的攻击,例如wacky boosting)。因此,我们在2017年简化了参与挑战。

2017测试集拆分

2017年COCO测试集包含〜40K个测试图像。 测试集被分成两个大致相同大小的分割约20K的图像:test-devtest-challenge。每个都在下面详细描述。另外,当上传到评估服务器时,我们现在允许提交5K val分割以调试上传过程。请注意,2017年的测试集指南已更改,您可以查看旧版使用信息的2015年指南。2017年的测试分割如下:

 

split#imgssubmit limitscores availableleaderboard
Val~5Kno limitimmediatenone
Test-Dev~20K5 per dayimmediateyear-round
Test-Challenge~20K5 totalworkshopworkshop

Test-Dev:test-dev split (拆分)是在一般情况下测试的默认测试数据。通常应该在test-dev集中报告论文的结果,以便公正公开比较。每位参与者的提交次数限制为每天上传5次以避免过度配合。请注意,每个参与者只能向公众排行榜发布一次提交(然而,论文可能会报告多个测试开发结果)。测试开发服务器将保持全年开放。

Test-Challenge::test-challenge split被用于每年托管的COCO挑战。结果在相关研讨会(通常是ECCV或ICCV)中公布。每个参与者的提交数量限制在挑战的总长度上最多5次上传。如果您提交多个条目,则基于test-dev AP的最佳结果将被选中作为参赛者的参赛作品。请注意,每个参与者只能向公众排行榜发布一次提交。测试挑战服务器将在每年的比赛前保持一段固定的时间。

属于每个分割的图像在image_info_test-dev2017(用于test-dev)和image_info_test2017(用于test-dev 和test-challenge)中定义。test-challenge 图像的信息没有明确提供。相反,在参与挑战时,必须在完整的测试集(包括test-dev 和test-challenge)上提交结果。这有两个目标。首先,参与者在挑战研讨会之前通过在test-dev中看到评估结果,获得关于他们提交的自动反馈。其次,在挑战研讨会之后,它为未来的参与者提供了一个机会,可以与test-devsplit的挑战条目进行比较。我们强调,当提交到完整的测试集(image_info_test2017)时,必须在所有图像上生成结果而不区分拆分。最后,我们注意到,2017年的dev / challenge分组包含与2015年dev / challenge分组相同的图像,因此跨越多年的结果可以直接进行比较。

为单个项目创建多个帐户来规避提交上传限制是不可接受的。如果一个小组发表两篇描述不相关方法的论文,则可以创建单独的用户账号。对于挑战,只有在提出实质上不同的挑战方法(例如基于不同的论文)时,一个小组才可以创建多个帐户。为了调试上传过程,我们允许参与者在val集上提交无限的评估结果。

 

2015 Test Set Splits

该测试集用于2015年和2016年的检测和关键点挑战。它不再使用,评估服务器关闭。但是,对于历史参考,完整信息如下。

2015年COCO测试集包含〜80K测试图像。为了限制过拟合,同时给研究人员更多的灵活性来测试他们的系统,我们将测试集划分为四个大约相同大小的分割约20K的图像:测试开发,测试标准,测试挑战和测试储备。提交到测试集自动导致提交每个拆分(拆分的身份不公开显示)。另外,为了进行调试和验证实验,我们允许研究人员无限制地提交给test-dev。每个测试分割都起着独特的作用;下面的细节。

 

 

 

split#imgssubmissionscores reported
Test-Dev~20Kunlimitedimmediately
Test-Standard~20Klimitedimmediately
Test-Challenge~20Klimitedchallenge
Test-Reserve~20Klimitednever

Test-Dev:我们没有限制允许测试开发的提交数量。事实上,我们鼓励使用test-dev进行验证实验。在提交到完整的测试集之前,使用test-dev来调试并完成您的方法。
Test-Standard:测试标准分割是检测竞争的默认测试数据。 与现有技术相比,结果应该按照测试标准进行报告。
Test-Challenge::测试挑战分裂用于COCO挑战。 结果将在相关研讨会上公布。
Test-Reserve:测试预留分割用于防止可能的过度配合。 如果一个方法在测试标准和测试储备方面的得分有很大的差异,就会引起一个红旗,并促使进一步的调查。测试储备的结果将不公开。

2014 Test Set Splits

参与者被推荐但不限于在COCO 2014数据集上训练他们的算法。结果应包含每个验证和测试图像的单个标题,并且必须提交并公开发布在CodaLab排行榜上。将结果上传到评估服务器时,请在“方法说明”中指定用于培训的所有外部数据。

在挑战截止日期前,验证和测试集的结果都必须提交给评估服务器。验证结果将公开并用于性能诊断和可视化。竞争对手的算法将根据评委的反馈进行评估,最佳表现奖将获得奖项。还将邀请2-3支队伍参加LSUN研讨会。

请按照下载,格式,指南,上传和评估页面中的说明进行操作。COCO Caption Evaluation Toolkit也可用。takelit提供标题分析常用指标的评估代码,包括BLEU,METEOR,ROUGE-L和CIDEr指标。请注意,对于竞争而言,人为评判者将会评估算法结果,而不是自动衡量标准。

三、Upload Results to Evaluation Server

此页面描述了将结果提交给评估服务器的COCO检测,关键点和材料挑战的上传说明(字幕质询具有单独的上传说明)。提交结果可让您参与挑战,并将结果与公共排行榜上的最新技术进行比较。请注意,您可以通过在本地运行COCO API中的评估代码来获取val的结果;提交给评估服务器在测试集上提供结果。我们现在给出提交给评估服务器的详细说明:

(1)在CodaLab上创建一个帐户。这将使您可以参与所有COCO挑战。

(2)仔细查看进入COCO挑战和使用测试集的guidelines

(3)准备一个包含结果的JSON文件,以正确的结果格式输入您想要输入的问题。

(4)文件命名:JSON文件应该命名为“[type] _ [testset] _ [alg] _results.json”。用挑战类型替换[type],用你正在使用的测试拆分替换[testset],用算法名替换[alg]。最后将JSON文件放入名为“[type] _ [testset] _ [alg] _results.zip”的zip文件中。概要:

 

Filename: [type]_[testset]_[alg]_results.json

 

[type]                     challenge type: "detections", "person_keypoints", or "stuff"

[testset]                test split: "val2017", "test-dev2017", or "test-challenge2017"

[alg]                       your algorithm name

(5)要将您的压缩结果文件提交至COCO挑战,请单击适当的CodaLab评估服务器上的“Participate参与”选项卡。选择测试分割并仅用于检测测试类型(bbox或segm)。当您选择““Submit / View Results提交/查看结果”时,您将可以选择提交新的结果。请填写必填字段并点击“Submit提交”。弹出窗口会提示您选择要上传的结果zip文件。文件上传后,评估服务器将开始处理。要查看您的提交状态,请选择“Refresh Status刷新状态”。请耐心等待,评估可能需要一段时间才能完成(从20米到几个小时)。如果您的提交状态为“Failed失败”,请检查您的文件是否正确命名并且格式正确。评估服务器的链接如下所示:

 

 

detection server:https://competitions.codalab.org/competitions/5181

keypoints server:https://competitions.codalab.org/competitions/12061

stuff server:https://competitions.codalab.org/competitions/17443

(6)请将提交信息输入Codalab。最重要的字段是“Team name"团队名称”,“Method description方法说明”和“Publication URL发布URL”,用于填充COCO排行榜。另外,在右上角的“user setting用户设置”下,请添加“Team members团队成员”。“方法说明”Method Description存在问题,如有必要,我们可能会通过电子邮件收集这些问题。这些设置不直观,但我们没有控制的Codalab网站。对于“Method Description方法描述”,特别是对于COCO挑战条目,我们鼓励参与者提供详细的方法信息,这将有助于评委会以最具创新性的方法邀请参与者。列出使用的外部数据是必需的。您也可以考虑在测试开发(例如,单一模型与整体结果),运行时或您认为可能与突出您的方法的新颖性或功效有关的任何其他信息上给出一些基本的性能细分。

 

(7)将结果提交给test-dev评估服务器后,您可以控制是否将结果公开发布到CodaLab排行榜。要切换结果的公开可见度,请选择“post to leaderboard发布到排行榜”或“remove from leaderboard从排行榜中删除”。只有一个结果可以随时发布到排行榜。除了CodaLab排行榜之外,我们还提供我们自己的更详细的检测排行榜,关键点以及其他结果和方法信息(如纸质参考资料)。请注意,CodaLab排行榜可能包含尚未迁移到我们自己的排行榜的结果。一旦结果迁移到我们的公共排行榜,他们不能被删除(但他们可以更新)。对于挑战排行榜,只有在挑战获胜者宣布时才会填充。

(8)评估完成后,服务器显示“Finished完成”状态,您可以通过选择“Download evaluation output from scoring step从评分步骤下载评估输出”下载评估结果。zip文件将包含三个文件:

 

eval.json          %测试汇总评估
metadata         %自动生成的(安全忽略)
scores.txt         %自动生成的(安全忽略)

json eval输出文件的格式在相关的评估页面中描述。

 

 

 

 

  • 12
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值