如果科研工作做的是MSCOCO数据集,有实验效果了,一般都需要在test-dev数据集上进行测试,这样才能说明问题(val有标注数据,万一有人投机取巧在val验证集上效果贼高,然后就说明他的是SOTA,这显然是说服不了的)。最近在搞论文的时候,才发现自己跑的SOTA实验都是在val验证集上跑的,所以后面就改在test-dev上跑了。
如何在MSCOCO服务器上提交自己的测试结果呢???以test-dev2017为例,我来手把手走一遍,做个记录。
MS COCO数据集输出数据的结果格式(result format)和如何参加比赛(participate)在配置文件的test dict中,修改图片的路径和标注文件的路径,比如下图我的配置文件修改的例子。官网下下来的标注文件有两个,一个是 image_info_test-dev2017.json另一个是image_info_test2017.json,选择前一个标注文件。 这个标注文件里面并没有标注框,只是test图片的一些信息,比如宽高啊,id啊等。
旧版mmdetection 1.0的(看一下test.py文件,如果里面有json_out参数,就用下面的命令进行测试),以retinanet为例
python tools/test.py configs/retinanet_r101_fpn_1x.py work_dirs/retinanet_r101_fpn_1x/epoch_12.pth --json_out retinanet_r101.json如果是新版的mmdetection 2.+,就用下面的命令(看一下test.py文件,如果里面没有json_out参数,就说明被替代了,用下面的命令进行测试)
python tools/test.py configs/retinanet_r101_fpn_1x.py work_dirs/retinanet_r101_fpn_1x/epoch_12.pth --format-only --options "jsonfile_prefix=./retinanet_r101_results"