如何从 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 数据集创建掩模图像? 的相关文章

  • 无法使用 beautifulsoup 模块 python 从 HTML 检索温度值

    我正在使用 BeautifulSoup4 来解析此 HTML 查看源代码 https weather com en IN weather today l 17 39 78 49 https weather com en IN weather
  • Flask/Apache 提交按钮用于文件上传

    我有一个在 apache 后面运行的 Flask 应用程序 在我的 index html 页面上有一个文件上传按钮和一个提交按钮 如下所示
  • pandas python 根据一个或多个其他列的子集更新 A 列的子集

    Edit我修改了下面的部分描述 以澄清 功能 和 组 的含义 修复拼写错误 并包含我尝试过的其他代码 我的熊猫df有 450 万行和 23 列 下表显示了几行df2这是从生成的df 它显示了两组 eeskin and hduquant 和三
  • PyQt4 信号和槽

    我正在使用 PyQt4 编写我的第一个 Python 应用程序 我有一个 MainWindow 和一个 Dialog 类 它是 MainWindow 类的一部分 self loginDialog LoginDialog 我使用插槽和信号 这
  • 插入多行并返回主键时 Sqlalchemy 的奇怪行为

    插入多行并返回主键时 我注意到一些奇怪的事情 如果我在 isert 查询中添加使用参数值 我会得到预期的行为 但是当将值传递给游标时 不会返回任何内容 这可能是一个错误还是我误解了什么 我的sqlachemy版本是0 9 4 下面如何重现错
  • 代码 zip( *sorted( zip(units, error) ) ) 的作用是什么?

    对于我的申请units and errors始终是数值列表 我尝试用谷歌搜索每个部分的作用 并找出了 zip 的第一部分 它似乎 ziped list zip units errors 只需将单位和误差配对即可生成一个列表 如下所示 uni
  • 预处理 csv 文件以与 tflearn 一起使用

    我的问题是关于在将 csv 文件输入神经网络之前对其进行预处理 我想使用 python 3 中的 tflearn 为著名的 iris 数据集构建一个深度神经网络 数据集 http archive ics uci edu ml machine
  • 熊猫 style.background_gradient 忽略 NaN

    我有以下代码来转储数据帧results到 HTML 表格中 这样的列TIME FRAMES根据seaborn 的颜色图进行着色 import seaborn as sns TIME FRAMES 24h 7d 30d 1y Set CSS
  • 不使用 graphviz/web 可视化决策树

    由于某些限制 我无法使用 graphviz webgraphviz com 可视化决策树 工作网络与另一个世界是封闭的 问题 是否有一些替代实用程序或一些 Python 代码用于至少非常简单的可视化可能只是决策树的 ASCII 可视化 py
  • 自定义信号的声明

    在 Qt 中 我们可以通过将自定义信号设为静态变量来创建它们 然后我们使用self signame反而classname signame 这样就在类中创建了一个实例变量 我想了解这种模式之外的理论 这是我尝试过的一些伪代码 这些伪代码已记录
  • 使用 shell=True 将 PATH 设置为 bitbake 的“source”在 Python 中没有效果

    下面是shell脚本中的代码 source proj common tools repo etc profile d repo sh repo project init branch repo project sync source pok
  • 使用 Matplotlib、PyQt 和 Threading 进行实时绘图导致 python 崩溃

    我一直在努力研究我的 Python 应用程序 但找不到任何答案 我有 PyQT GUI 应用程序 它使用 Matplotlib 小部件 GUI 启动一个新线程来处理 mpl 小部件的绘图 恐怕我现在通过从另一个线程访问 matplotlib
  • Celery 设计帮助:如何防止并发执行任务

    我对 Celery AMQP 相当陌生 正在尝试提出一个任务 队列 工作人员设计来满足以下要求 我有多种类型的 每用户 任务 例如 TaskA TaskB TaskC 这些 每用户 任务中的每一个都为系统中的一个特定用户读取 写入数据 因此
  • 安装python启动文件

    我如何安装pythonstartup文件 以便它在命令上运行 例如python myfile py 我尝试将其安装到我的 home myuserUbuntu的目录 但它说我没有足够的权限 此外 不同的地方交替说它应该全部大写或全部小写 前面
  • 如何使用 Python Pandas 制作 DataFrame 切片并在特定切片中“fillna”?

    问题 让我们从 Kaggle 获取泰坦尼克号数据集 我有包含 Pclass 性别 和 年龄 列的数据框 我需要用特定组的中位数填充 年龄 列中的 NaN 如果是来自一等的女性 我想用一等女性的中位数填写她的年龄 而不是整个年龄列的中位数 问
  • Python:如何使用生成器来避免 sql 内存问题

    我有以下方法来访问 mysql 数据库 并且查询在服务器中执行 我无权更改有关增加内存的任何内容 我对生成器很陌生 并开始阅读更多有关它的内容 并认为我可以将其转换为使用生成器 def getUNames self globalUserQu
  • 在 Django 中翻译文件时的 Git 命令

    我在 Django 中有一个现有的应用程序 我想在页面上添加翻译 在页面上我有 trans Projects 在 po 文件中我添加了 templates staff site html 200 msgid Projects msgid P
  • Python写入dbf数据时出错

    我得到这个错误 DbfError unable to modify fields individually except in with or Process 如何修复它 这是我的code with dbf Table aa dbf as
  • 在 Mac (Catalina) 上安装 PyGame 时出错 [重复]

    这个问题在这里已经有答案了 我一直在尝试将 PyGame 安装到 Catalina 上的 Mac 上 但不知道如何安装 我收到的错误消息是 SystemExit error command gcc failed with exit stat
  • 使用 Tweepy 获取推文时出错

    我有一个用于获取推文的 Python 脚本 在脚本中我使用该库 Tweepy 我使用有效的身份验证参数 运行此脚本后 一些推文存储在我的 MongoDB 中 有些则被 if 语句拒绝 但我仍然收到错误 requests packages u

随机推荐

  • 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