FCN/UNET/deeplabv3 语义分割 标注 重叠/重复/覆盖 的处理方案,以及自定义覆盖优先级

在对FCN/UNET/deeplabv3等语义分割时,标准的要求是对每一个像素点分开标记,即不允许出现重叠覆盖的情形:如下图所示

在这里插入图片描述
在这里插入图片描述

  1. 但不可避免的人工标注时会出现一定的标注重叠/重复/覆盖
  2. 甚至有的时候需要标注就是重复的,例如需要识别面板上赃物的情形,标记了面板和脏污,标注是重叠的,但是实际存在固定的上下覆盖叠加关系.可以通过一定的方法处理出这种关系.

下面以pytorch官方的实例代码为例

github链接: pytorch-segmentation
与之相关的就是transforms处理这一段:完整的处理流程如下

coco_utils.FilterAndRemapCocoCategories -> 过滤不要的标签,以及重新标记
coco_utils.ConvertCocoPolysToMask -> 多边形标记转mask标记,以及合标记,处理覆盖关系
presets.SegmentationPresetTrain -> 其他常见的预处理,数组增强等
    transforms.RandomResize ->
    transforms.RandomHorizontalFlip ->
    transforms.RandomCrop ->
    transforms.PILToTensor ->
    transforms.ToDtype ->
    transforms.Normalize ->

处理不忽略重复

有关重叠的就是ConvertCocoPolysToMask
有关重复的核心代码如下:

#将每个掩码与其对应的类别ID相乘,以便将类别信息合并到掩码中。
posted @ 2024-06-28 11:18  tomcat4014  阅读(9)  评论(0)    收藏  举报  来源