class_docstr: Base Dataset class for Image Segmentation datasets. Sub-classes must define `ignore_label`
  and `background_idx` variable.
  
  Args:
      opts: Command-line arguments
class_docstr_tok: ["Base","Dataset","class","for","Image","Segmentation","datasets",".","Sub-classes","must","define","`","ignore_label","`","and","`","background_idx","`","variable",".","Args",":","opts",":","Command-line","arguments"]
docstr: Reads mask image and returns as a PIL image
docstr_tok: ["Reads","mask","image","and","returns","as","a","PIL","image"]
code: def read_mask_pil(path: str) -> Optional[Image.Image]:
      """Reads mask image and returns as a PIL image"""
      try:
          mask = Image.open(path)
          if mask.mode != "L":
              logger.error(
                  "Mask mode should be L. Got: {}".format(mask.mode)
              )
          return mask
      except:
          return None
  
imports: import argparse
  import os
  from typing import List, Mapping, Optional, Tuple, Union
  import numpy
  import torch
  from PIL import Image
  from torch import Tensor
  from data.datasets.dataset_base import BaseImageDataset
  from data.transforms import image_pil
  from data.transforms.common import Compose
  from utils import logger
  from utils.color_map import Colormap
label_desc: Use image node_id 11 for calling the BaseImageSegmentationDataset obj's underlying member method code with example usage: obj.read_mask_pil(path) and returns: mask, None