如何从 COCO 数据集创建掩模图像?

2024-04-07

所以我一直在使用这段代码,。我正在尝试从 COCO 数据集中生成图像的原始蒙版。

dataDir='G:'
dataType='train2014'
annFile='{}/annotations/instances_{}.json'.format(dataDir,dataType)


coco=COCO(annFile)
annFile = '{}/annotations/person_keypoints_{}.json'.format(dataDir,dataType)
coco_kps=COCO(annFile)


catIds = coco.getCatIds(catNms=['person'])
imgIds = coco.getImgIds(catIds=catIds );
imgIds = coco.getImgIds(imgIds = imgIds[0])
img = coco.loadImgs(imgIds[np.random.randint(0,len(imgIds))])[0]
I = io.imread('G:/train2014/'+img['file_name'])

plt.imshow(I); plt.axis('off')
annIds = coco.getAnnIds(imgIds=img['id'], catIds=catIds, iscrowd=None)
anns = coco.loadAnns(annIds)
coco.showAnns(anns)

但我得到的是这样的

但我想要的是这样的

如何获得每个图像的原始蒙版?


完整的代码不在答案中,所以我将其发布在下面。

请安装pycocotools first.

pip install pycocotools

导入所需的模块。我假设您使用的是 jupyter 笔记本。

from pycocotools.coco import COCO
import os
from PIL import Image
import numpy as np
from matplotlib import pyplot as plt
%matplotlib inline

加载 coco 数据集的注释。此处指定 74 图像。

coco = COCO('../datasets/coco/annotations/instances_train2017.json')
img_dir = '../datasets/coco/train2017'
image_id = 74

img = coco.imgs[image_id]
# loading annotations into memory...
# Done (t=12.70s)
# creating index...
# index created!

加载的信息img如下。

img
# {'license': 2,
#  'file_name': '000000000074.jpg',
#  'coco_url': # 'http://images.cocodataset.org/train2017/000000000074.jpg',
#  'height': 426,
#  'width': 640,
#  'date_captured': '2013-11-15 03:08:44',
#  'flickr_url': # 'http://farm5.staticflickr.com/4087/5078192399_aaefdb5074_z.jpg# ',
#  'id': 74}

显示图像如下。

image = np.array(Image.open(os.path.join(img_dir, img['file_name'])))
plt.imshow(image, interpolation='nearest')
plt.show()

如果你想查看叠加结果:

plt.imshow(image)
cat_ids = coco.getCatIds()
anns_ids = coco.getAnnIds(imgIds=img['id'], catIds=cat_ids, iscrowd=None)
anns = coco.loadAnns(anns_ids)
coco.showAnns(anns)

如果您只想查看面具,正如 Farshid Rayhan 回答的那样,请执行以下操作:

mask = coco.annToMask(anns[0])
for i in range(len(anns)):
    mask += coco.annToMask(anns[i])

plt.imshow(mask)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 COCO 数据集创建掩模图像? 的相关文章

随机推荐

  • PHP:如何在字符串中的随机位置添加随机字符

    如何在字符串中的随机位置添加单个随机字符 0 9 或 a z 或 或 我可以通过以下方式获得随机位置 random position rand 0 5 现在我怎样才能得到一个随机数 0到9 OR随机字符 a 到 z OR OR 最后 我如何
  • 如何在 Xamarin for Android 中压缩文件?

    我有一个函数可以创建一个 zip 文件和传递的文件字符串数组 该函数确实成功创建了 zip 文件及其内部的 zip 条目文件 但这些 zip 条目文件是空的 我尝试了几种不同的方法 下面的函数代码是我最接近的工作代码 public stat
  • miniconda 和 miniforge 之间有什么区别?

    The 小型锻造厂 https github com conda forge miniforgeinstaller 是一个相对较新的 社区主导的 最小的 conda 安装程序 正如其自述文件中所述 可以直接与 Miniconda 进行比较
  • 如何在 Q/KDB 中生成格式化的日期字符串?

    如何从 Q 日期类型生成 ISO 日期字符串 yyyy MM dd 我考虑过连接各个部分 但我什至无法获取日期 月份 例如d 2015 12 01 d month prints 2015 12 即不仅仅是月份 如果您计划大规模执行此操作 即
  • pip、代理身份验证和“不支持代理方案”

    尝试在新的 python 安装上安装 pip 我遇到了代理错误 看起来像一个错误get pip or urllib3 问题是我是否必须经历设置的痛苦CNTLM 如此处所述 https stackoverflow com questions
  • 如何从控制台输入填充整数数组

    假设我知道用户将输入多少个数字 我有一个 int 数组 我想用用户输入的按特定字符 例如空格 分隔的整数来填充它 我设法用这种方法解决了它 int numbers new int 5 string input Console ReadLin
  • SciPy:半圆上的冯米塞斯分布?

    我试图找出定义包裹在半圆上的冯米塞斯分布的最佳方法 我用它来绘制不同浓度的无方向线 我目前正在使用 SciPy 的 vonmises rvs 本质上 我希望能够输入 pi 2 的平均方向 并将分布截断到两侧不超过 pi 2 我可以使用截断的
  • BeautifulSoup:抓取 HTML 仅在单击同一 URL 中的“接受”后才能访问

    我正在尝试从某个 URL 中抓取一些信息 我们称其为 www foo bar baz 当您使用网络浏览器访问该 URL 时 通常会出现 我已年满 18 岁 按钮 URL 不会改变 只有当您手动单击该按钮时才会加载实际内容 我想 模拟 单击
  • 如何在Python中对西班牙语进行编码和解码

    我用 python 2 7 编写了以下代码 coding utf 8 import sys string a os luz detr s print string encode utf 8 这会引发以下错误 print string enc
  • Xcode 6.1:加载插件失败

    我从 AppStore 更新了 Xcode 但由于以下错误消息而无法打开它 加载插件失败该插件或其必备插件之一可能丢失或损坏 可能需要重新安装 我尝试通过从应用程序文件夹中删除 Xcode 来卸载它并重新安装它 但问题仍然相同 谁能弄清楚出
  • 如何用不连续性数据绘制折线图?

    我在 R 中使用 ggplot2 库绘制图表时遇到问题 我有一个 日期 变量 其中包含 3 个 品牌 品牌中每个品牌的披露值 评级 的日期 问题是 一场活动结束后 市场就只剩下两个品牌了 因此 我想在同一图中分别绘制此事件之前和之后的线条
  • 从三个单独的列表创建嵌套字典

    我编写了一些代码来生成三个围绕项目的单独列表 第一个列表是 ID 列表 第二个列表是开始日期列表 第三个列表是结束日期列表 我想将这些列表合并到一个嵌套字典中 item 0 from start date and item 0 从 end
  • JavaScript 函数拒绝在生产服务器上工作,但在本地服务器上工作

    我正在使用从 Macromedia Dreamweaver 借用的 MM goToURL 函数将 HTTP 请求发送到服务器上的特定 URL 下面是该函数的代码 它在外部 JavaScript 文件中声明 function MM goToU
  • HTML 或 JavaScript 是否有建议的最大行长度? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 大多数编程语言的大多数样式指南都建议最大行长度 通常为 80 个字符 对于 HTML 和 JavaScript 当它嵌入到 HTML 中时 来说
  • 请求在此上下文中不可用 -> 在 Global.asax 中 -> 替换什么

    为什么下面的行在 global asax 中有错误 string RelativeFilePath AbsoluteFilePath Replace Request ServerVariables APPL PHYSICAL PATH St
  • 对象不支持属性或方法“有效”

    我的代码抛出以下错误 对象不支持属性或方法 有效 这是因为当前表单没有验证 那没问题 我只想提前检查一下我是否可以应用该方法valid到当前表单以避免烦人的 JavaScript 错误 这就是我想要的 例如 if form isValida
  • Pandas read_csv 转换器 – 如何处理异常(literal_eval SyntaxError)

    在 Pandas DataFrame 中 我正在读取一个 csv 文件 如下所示 A B 0 t1 t2 1 t3 t4 其中两个单元格中有文字元组 其中两个单元格为空 df pd read csv my file csv dtype st
  • 这是 Linux 内核代码中的任何类型的宏吗?

    我在linux内核代码中找到了这个http gitorious org pandroid kernel omap blobs 5ed7607d45b300a37dd13ad1c79adea56f6687ce arch arm mach om
  • 在 R 中有效地插值网格中的值

    我有一个按位置排列的海洋深度数据网格 并且正在尝试为选定的 GPS 点插入深度值 我们一直在使用 RSAGA pick from points 它对于小数据集效果很好 require RSAGA depthdata lt cbind dat
  • 如何从 COCO 数据集创建掩模图像?

    所以我一直在使用这段代码 我正在尝试从 COCO 数据集中生成图像的原始蒙版 dataDir G dataType train2014 annFile annotations instances json format dataDir da