创建MS COCO样式数据集

use*_*015 6 python json annotations tensorflow mscoco

如何创建与TensorFlow一起使用的MS COCO样式数据集?有人对此有经验吗?我有图像,注释和地面真相蒙版。我需要将它们转换为与MS COCO兼容,并感谢您的帮助。我找不到任何开源工具来创建COCO风格的JSON注释。

TensorFlow MS COCO读取我不太有经验的JSON文件。

jsb*_*oks 7

I'm working on a python library which has many useful classes and functions for doing this. It's called Image Semantics.

Here is an example of adding masks and exporting them in COCO format:

from imantics import Mask, Image, Category

image = Image.from_path('path/to/image.png')
mask = Mask(mask_array)
image.add(mask, category=Category("Category Name"))

# dict of coco
coco_json = image.export(style='coco')
# Saves to file
image.save('coco/annotation.json', style='coco')
Run Code Online (Sandbox Code Playgroud)


was*_*tor 5

您可以尝试使用 pycococreator,其中包含一组工具,可将二进制掩码转换为 COCO 使用的多边形和 RLE 格式。

https://github.com/waspinator/pycococreator/

以下是如何使用它从二进制掩码创建注释信息的示例:

annotation_info = pycococreatortools.create_annotation_info(
                    segmentation_id, image_id, category_info, binary_mask,
                    image.size, tolerance=2)
Run Code Online (Sandbox Code Playgroud)

您可以在此处阅读有关如何使用 pycococreator 的更多详细信息:https ://patrickwasp.com/create-your-own-coco-style-dataset/


Han*_*kar 4

为了将 0 和 1 的掩码数组转换为类似于 COCO 样式数据集的多边形,请使用skimage.measure.find_contours,这要归功于waleedka的代码。

import numpy
from skimage.measure import find_contours 

mask = numpy.zeros(width, height) # Mask
mask_polygons = [] # Mask Polygons

# Pad to ensure proper polygons for masks that touch image edges.
padded_mask = np.zeros(
(mask.shape[0] + 2, mask.shape[1] + 2), dtype=np.uint8)
padded_mask[1:-1, 1:-1] = mask
contours = find_contours(padded_mask, 0.5)
for verts in contours:
    # Subtract the padding and flip (y, x) to (x, y)
    verts = np.fliplr(verts) - 1
    pat = PatchCollection([Polygon(verts, closed=True)], facecolor='green', linewidths=0, alpha=0.6)
    mask_polygons.append(pat) 
Run Code Online (Sandbox Code Playgroud)

要为 COCO 样式数据集生成 JSON 文件,您应该查看Python 的 JSON API。除此之外,它只是简单地匹配 COCO 数据集的 JSON 文件使用的格式。

你应该看看我的COCO 风格数据集生成器 GUI 存储库。我构建了一个非常简单的工具来创建 COCO 风格的数据集。

您感兴趣的特定文件是create_json_file.py,它为每个多边形注释采用 (x1, y1, x2, y2 ...) 形式的 matplotlib 多边形坐标,并将其转换为与默认值非常相似的 JSON 注释文件COCO 格式。