coco格式数据集中area的计算

假如你有RLE的分割标注,如下图

要计算annotation中的area

coco的api可以计算,但官方给出的例程,完全是坑,会让你怀疑人生。

把segmentation放进pycocotools.mask.area,会出各种各样的错误。后来才在其他工具包里看到,要先将上面的segmentation编码,在放进area函数里面计算。代码如下

import pycocotools.mask as maskUtils

def annToRLE(ann, i_w, i_h):
    h, w = i_h, i_w
    segm = ann['segmentation']
    if type(segm) == list:
        # polygon -- a single object might consist of multiple parts
        # we merge all parts into one mask rle code
        rles = maskUtils.frPyObjects(segm, h, w)
  
### 创建裂缝检测COCO格式数据集 对于计算机视觉中的裂缝检测任务,采用COCO(Common Objects in Context)格式数据集有助于提高模型训练的一致性和效率。COCO格式是一种广泛使用的标注标准,适用于对象检测、分割等多种任务。 #### 数据集结构 COCO格式数据集通常由图像文件和JSON格式的注解文件组成。注解文件包含了关于每张图片的信息以及其中目标的位置和类别标签。具体来说: - 图像存储在一个指定目录下; - JSON文件则记录了整个数据集中所有图像的相关信息及其对应的标注详情[^1]。 #### 注解文件的内容 为了构建一个用于裂缝检测的COCO格式数据集,注解文件应至少包含以下几个部分: - **info**: 描述该数据集基本信息的对象。 - **licenses**: 记录版权许可信息列表。 - **images**: 列表形式保存着有关各幅图的基本元数据(id, width, height, file_name等)。 - **annotations**: 关键区域,提供每个实例的具体位置与分类标记;对于裂缝而言,则需精确描绘出裂纹轮廓并赋予相应类别的ID编号。 - **categories**: 定义不同类型的缺陷或损伤模式所对应的名字及唯一标识符(ID)。 ```json { "info": {}, "licenses": [], "images": [ { "id": 0, "width": 800, "height": 600, "file_name": "image_0.jpg" } ], "annotations": [ { "id": 0, "image_id": 0, "category_id": 1, "segmentation": [[...]], // 裂缝多边形坐标点序列 "area": ..., // 分割面积大小 "bbox": [...], // 边界框[x,y,w,h] "iscrowd": 0 // 是否为拥挤人群标志位(这里设为0) } ], "categories": [ {"supercategory":"defect","id":1,"name":"crack"} ] } ``` #### 工具支持 考虑到手动创建如此复杂的JSON文档既耗时又容易出错,可以利用一些开源工具来辅助完成这项工作。例如`labelme`是一个图形界面的应用程序,允许用户通过鼠标绘制边界线来自动生成所需的annotation条目,并能导出成兼容coco格式的结果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值