全景分割

使用 PyTorch 进行图像深度学习

Michal Oleszak

Machine Learning Engineer

全景分割挑战

原始图像

原始图像

语义分割

语义分割

实例分割

实例分割

全景分割

全景分割

使用 PyTorch 进行图像深度学习

全景分割流程

  • 合并语义分割与实例分割可能较复杂:

    • 重叠
    • 确保实例 ID 唯一
  • 我们的流程:

    1. 生成语义掩码
    2. 合并为单一掩码
    3. 用语义掩码初始化全景掩码
    4. 生成实例掩码
    5. 遍历实例掩码,将检测到的目标覆盖到语义掩码上
使用 PyTorch 进行图像深度学习

语义掩码

model = UNet()

with torch.no_grad():
    semantic_masks = model(image_tensor) 
    print(semantic_masks.shape)
torch.Size([1, 3, 427, 640])
semantic_mask = torch.argmax(
  semantic_masks, dim=1
)
  • 实例化模型
  • 为输入图像生成语义掩码
  • 为每个像素选取最高概率类别

语义掩码

使用 PyTorch 进行图像深度学习

实例掩码

model = MaskRCNN()

with torch.no_grad(): instance_masks = model(image_tensor)[0]["masks"] print(instance_masks.shape)
torch.Size([80, 1, 427, 640])
  • 加载实例分割模型
  • 生成实例掩码

实例掩码

使用 PyTorch 进行图像深度学习

全景掩码

panoptic_mask = torch.clone(semantic_mask)

instance_id = 3 for mask in instance_masks:
panoptic_mask[mask > 0.5] = instance_id
instance_id += 1
  • 将全景掩码初始化为 semantic_mask
  • 遍历实例掩码
  • 在 mask > 0.5 处将全景掩码设为实例 ID
  • 递增实例 ID 计数器

全景掩码

使用 PyTorch 进行图像深度学习

Vamos praticar!

使用 PyTorch 进行图像深度学习

Preparing Video For Download...