class_docstr: texture_atlas: An image, size 6N * 4N, with N * N squares for each of the 24 body parts.
          It must follow the grid found at https://github.com/facebookresearch/DensePose/blob/master/DensePoseData/demo_data/texture_atlas_200.png  # noqa
          For each body part, U is proportional to the x coordinate, and (1 - V) to y
code: def __init__(self, texture_atlas, **kwargs):
      self.texture_atlas = texture_atlas
      self.body_part_size = texture_atlas.shape[0] // 6
      assert self.body_part_size == texture_atlas.shape[1] // 4
  
file_path: detectron2/projects/DensePose/densepose/vis/densepose_results_textures.py
imports: import numpy
  from typing import List, Optional, Tuple
  import torch
  from detectron2.data.detection_utils import read_image
  from ..structures import DensePoseChartResult
  from .base import Boxes, Image
  from .densepose_results import DensePoseResultsVisualizer
label_desc: Use image node_id 1 to create a new DensePoseResultsVisualizerWithTexture object from inherited base classes: DensePoseResultsVisualizer with example: obj = DensePoseResultsVisualizerWithTexture(texture_atlas)