coco实例分割mask用于语义分割

coco数据集的mask将每个实例都分离出来了,这通常适用于实例分割或者全景分割
对于语义分割而言,每一个mask包含每个类别的所有实例
所以coco实力分割的mask转语义分割思路很简单,将同一个类别的实例mask直接相加,然后转成布尔类型即可

假设你已经开始训练,训练时获取到了当前batch某个class的标签,那么代码如下:

 # 处理coco实例分割掩码
 # 实例mask累加-->语义mask
 true_masks = torch.stack([tensor.sum(dim=0, keepdim=True) for tensor in masks], dim=0) \
     .bool() \ 			#累加后需要转成二值图
     .squeeze(1) \	    #由于合并后所有的实例都在一张mask上,,实例通道等于1,因此直接丢掉这个通道即可
     .to(device=device, dtype=torch.long)

猜你喜欢

转载自blog.csdn.net/Elm_Forest/article/details/131404065
今日推荐