class_docstr: DatasetBuilder for MOVi-A dataset.
class_docstr_tok: ["DatasetBuilder","for","MOVi-A","dataset","."]
docstr: Returns the dataset metadata.
docstr_tok: ["Returns","the","dataset","metadata","."]
code: def _info(self) -> tfds.core.DatasetInfo:
      """Returns the dataset metadata."""
  
      h = self.builder_config.height
      w = self.builder_config.width
      s = self.builder_config.num_frames
  
      def get_movi_a_instance_features(seq_length: int):
          features = get_instance_features(seq_length)
          features.update(
              {
                  "shape_label": tfds.features.ClassLabel(
                      names=["cube", "cylinder", "sphere"]
                  ),
                  "size_label": tfds.features.ClassLabel(
                      names=["small", "large"]
                  ),
                  "color": tfds.features.Tensor(
                      shape=(3,), dtype=tf.float32
                  ),
                  "color_label": tfds.features.ClassLabel(
                      names=[
                          "blue",
                          "brown",
                          "cyan",
                          "gray",
                          "green",
                          "purple",
                          "red",
                          "yellow",
                      ]
                  ),
                  "material_label": tfds.features.ClassLabel(
                      names=["metal", "rubber"]
                  ),
              }
          )
          return features
  
      return tfds.core.DatasetInfo(
          builder=self,
          description=_DESCRIPTION,
          features=tfds.features.FeaturesDict(
              {
                  "metadata": {
                      "video_name": tfds.features.Text(),
                      "width": tf.int32,
                      "height": tf.int32,
                      "num_frames": tf.int32,
                      "num_instances": tf.uint16,
                      "depth_range": tfds.features.Tensor(
                          shape=(2,), dtype=tf.float32
                      ),
                      "forward_flow_range": tfds.features.Tensor(
                          shape=(2,), dtype=tf.float32
                      ),
                      "backward_flow_range": tfds.features.Tensor(
                          shape=(2,), dtype=tf.float32
                      ),
                  },
                  "instances": tfds.features.Sequence(
                      feature=get_movi_a_instance_features(seq_length=s)
                  ),
                  "camera": get_camera_features(s),
                  "events": get_events_features(),
                  # -----
                  "video": tfds.features.Video(shape=(s, h, w, 3)),
                  "segmentations": tfds.features.Sequence(
                      tfds.features.Image(
                          shape=(h, w, 1), dtype=tf.uint8
                      ),
                      length=s,
                  ),
                  "forward_flow": tfds.features.Sequence(
                      tfds.features.Tensor(
                          shape=(h, w, 2), dtype=tf.uint16
                      ),
                      length=s,
                  ),
                  "backward_flow": tfds.features.Sequence(
                      tfds.features.Tensor(
                          shape=(h, w, 2), dtype=tf.uint16
                      ),
                      length=s,
                  ),
                  "depth": tfds.features.Sequence(
                      tfds.features.Image(
                          shape=(h, w, 1), dtype=tf.uint16
                      ),
                      length=s,
                  ),
                  "normal": tfds.features.Video(
                      shape=(s, h, w, 3), dtype=tf.uint16
                  ),
                  "object_coordinates": tfds.features.Video(
                      shape=(s, h, w, 3), dtype=tf.uint16
                  ),
              }
          ),
          supervised_keys=None,
          homepage="https://github.com/google-research/kubric",
          citation=_CITATION,
      )
  
imports: import dataclasses
  import json
  import logging
  import imageio
  import numpy
  import png
  import tensorflow
  import tensorflow_datasets.public_api
  from typing import List, Dict, Union
label_desc: Use image node_id 1 for calling the MoviA obj's underlying member method code with example usage: obj._info() and returns: tfds, features