首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何保存和重用语义分割结果?

问如何保存和重用语义分割结果?
EN

Stack Overflow用户
提问于 2020-02-10 01:51:40
回答 1查看 3.5K关注 0票数 2

我使用detectron2对图像进行语义分割。Detectron2有一个预构建的函数来可视化结果。我感兴趣的是保存分段的结果,并在需要时解析它们。因此,我回溯了代码,并发现instances_to_coco_json函数是输出分段结果的函数。我试着保存结果。

结果采用以下格式:

代码语言:javascript
复制
 {
        "image_id": 1, 
        "segmentation": {
            "counts": "R[W<=Sf0001O000000000000000000000000000000000000000^_\\?", 
            "size": [
                720, 
                1280
            ]
        }, 
        "category_id": 1, 
        "score": 0.992115
    }, 

我希望得到分割结果作为分割点的坐标,如下所示:

代码语言:javascript
复制
 "segmentation": [
            [
                662.1764705882352, 
                387, 
                686, 
                386.5882352941176, 
                686, 
                398, 
                662.7647058823529, 
                399
            ]

如果输出是coco格式的,我如何理解它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-07 01:06:40

要理解这个问题,您需要知道COCO协议中有两种不同的存储掩码格式。一个是使用多边形,例如第二个例子,另一个是使用名为雷尔的二进制数据压缩格式,这是您的第一个示例。

在COCO中,如果以RLE格式存储掩码,则分割将是一个具有"counts"和"size"键的对象。如果您检查探测2/检测2/utils/visualizer.py alizer.py,您将在class GenericMask的构造函数中找到处理不同掩码格式的代码。

您可以轻松地将RLE格式转换为二进制掩码或多边形,并且您还会发现位于results.py的可视化脚本非常有用。

TLDR:

简而言之,要将RLE分段转换为二进制掩码,只需运行以下脚本(假设您已经安装了COCO,这是detection2的先决条件):

代码语言:javascript
复制
import pycocotools.mask as mask_util

# Using the segment provided by your first example
segment = {'counts': 'R[W<=Sf0001O000000000000000000000000000000000000000^_\\?',
 'size': [720, 1280]}
# Decode a binary mask of shape (720, 1280) from segment
mask = mask_util.decode(segment)[:, :]

如果您对将二进制掩码转换为多边形感兴趣,那么还有一个名为荒诞的包可以帮助您实现这一点:

代码语言:javascript
复制
import numpy as np
from imantics import Polygons, Mask

# This can be any array
array = np.ones((100, 100))

polygons = Mask(array).polygons()

print(polygons.points)
print(polygons.segmentation)

希望这能有所帮助。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60143143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档