马春杰杰博客
致力于深度学习经验分享!

修改pycocotools以输出每一类的AP值

文章目录
[隐藏]

pycocotools的使用非常广泛,但是貌似并不支持输出每一类的AP值,尤其是AP50,但是在很多数据集上每一类的指标是必须的,所以修改了一些现有的pycocotools,方便使用。

用法:

在所有的安装流程结束,并且你的算法已经测试可以用之后,卸载自动安装的pycocotools,重新安装:

可以完全替代原有pycocotools,其他功能都没动,只是增加了类别的显示。

结果大概长这个样:

目前还没有做美化的事,欢迎提PR

一些有用的COCOAPI:

首先需要引入这个包,然后创建一个 coco 对象,创建时要将 annotation 的路径传进去

如果直接运行的话就会输出以下 log

创建好了 coco 对象后就可以使用他的一些 API 了,下面列举一些常用的,后续有用到其他的话也会继续更新

getImgIds

coco.getImgIds(imgIds=[], catIds=[]) 可以获取到 coco 所有图片对应的 id 号,以便后续处理,另外,传入 catIds 参数的话也可以只返回特定的类别的图片对应的 id 号,但是 catIds 需要通过其他方式获得,假设我们知道狗的 catId18,我们就可以通过下面代码得到所有有狗的图片的 id

[98304, 204800, 524291, 311301, 491525, 147471, 131087, 278550, 581654, 253981, 450590, 106525, 368676, 253988, …]

getCatIds

getCatIds(catNms=[], supNms=[], catIds=[]) 可以获取到 coco 类别对应的 label 号,因为 coco80 类,所以如果不传入其他参数的话返回的就是一个拥有 80 个元素的列表(不是连续的数字,中间会跳过几个数字

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, …]

当然也可以传入类别名字,筛选出特定类别代表的 label ,如下说明 dog标签18

[18]

getAnnIds

getAnnIds(imgIds=[], catIds=[], areaRng=[], iscrowd=None) 获取某图像对应的 annotationid 号,即 groundtruth,以下说明了该图有 4 个 标注

[151091, 202758, 1260346, 1766676]

loadImgs

loadImgs(ids=[]) 用的时候会在里面加上图片对应的 id 号返回某张图片的信息

[{‘coco_url’: ‘http://images.cocoda…391895.jpg’, ‘date_captured’: ‘2013-11-14 11:18:45’, ‘file_name’: ‘000000391895.jpg’, ‘flickr_url’: ‘http://farm9.staticf…8349_z.jpg’, ‘height’: 360, ‘id’: 391895, ‘license’: 3, ‘width’: 640}]

loadCats

loadCats(ids=[]) 用法和上面差不多,是通过类别的 label 来返回className

[{‘id’: 18, ‘name’: ‘dog’, ‘supercategory’: ‘animal’}]

loadAnns

loadAnns(ids=[]) 用来加载特定 annotation id 号的标注

[{‘area’: 14107.271300000002, ‘bbox’: […], ‘category_id’: 1, ‘id’: 202758, ‘image_id’: 391895, ‘iscrowd’: 0, ‘segmentation’: […]}]

showAnns

showAnns(anns, draw_bbox=False) 同上,如果获取到了 Anno 信息之后,可以用这个函数直接将 Anno 信息给可视化出来,挺有意思的

修改pycocotools以输出每一类的AP值

还可以在 showAnns 中将 draw_bbox 参数变成 True 来画出 bbox

修改pycocotools以输出每一类的AP值

其他

类别统计,检测coco类型的数据集

cocoAPI进行maprecall计算

 

本文最后更新于2023年1月13日,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
1 2

如果你对这篇文章有什么疑问或建议,欢迎下面留言提出,我看到会立刻回复!

打赏
未经允许不得转载:马春杰杰 » 修改pycocotools以输出每一类的AP值

留个评论吧~ 抢沙发 评论前登陆可免验证码!

私密评论
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址(选填,便于回访^_^)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

登录

忘记密码 ?

切换登录

注册