class_docstr: VisDrone2019-DET Dataset.
  
  Parameters
  ----------
  root : str, default '~/mxnet/datasets/visdrone'
      Path to folder storing the dataset.
  splits : list of str, default ['train']
      Candidates can be: train, val.
  transform : callable, default None
      A function that takes data and label and transforms them. Refer to
      :doc:`./transforms` for examples.
  
      A transform function for object detection should take label into consideration,
      because any geometric modification will require label to be modified.
class_docstr_tok: ["VisDrone2019-DET","Dataset",".","Parameters","--","--","--","--","--","root",":","str",",","default","'~\/mxnet\/datasets\/visdrone'","Path","to","folder","storing","the","dataset",".","splits",":","list","of","str",",","default","[","'train","'","]","Candidates","can","be",":","train",",","val",".","transform",":","callable",",","default","None","A","function","that","takes","data","and","label","and","transforms","them",".","Refer","to",":","doc",":","`",".\/transforms","`","for","examples",".","A","transform","function","for","object","detection","should","take","label","into","consideration",",","because","any","geometric","modification","will","require","label","to","be","modified","."]
docstr: Parse csv file and return labels.
docstr_tok: ["Parse","csv","file","and","return","labels","."]
code: def _load_label(self, idx, height=None, width=None):
      """Parse csv file and return labels."""
      img_id = self._items[idx]
      anno_path = self._anno_path.format(*img_id)
      height = float(height) if height else None
      width = float(width) if width else None
      if idx not in self._im_shapes:
          # store the shapes for later usage
          self._im_shapes[idx] = (width, height)
      with open(anno_path, "r") as f:
          annotations = f.read().splitlines()
      label = []
      for ann_line in annotations:
          ann_info = ann_line.split(",")
          xmin, ymin = float(ann_info[0]), float(ann_info[1])
          w, h = float(ann_info[2]), float(ann_info[3])
          xmax, ymax = xmin + w, ymin + h
          cls_id = int(ann_info[5]) - 1
          try:
              if not height and not width:
                  self._validate_label(
                      xmin, ymin, xmax, ymax, width, height
                  )
          except AssertionError as e:
              raise RuntimeError(
                  "Invalid label at {}, {}".format(anno_path, e)
              )
          label.append([xmin, ymin, xmax, ymax, cls_id])
      return np.array(label)
  
file_path: gluon-cv/gluoncv/data/visdrone/detection.py
imports: from __future__ import absolute_import
  from __future__ import division
  import os
  import logging
  import numpy
  import mxnet
  from ..base import VisionDataset
label_desc: Use image node_id 7 for calling the VisDroneDetection obj's underlying member method code with example usage: obj._load_label(idx, height, width) and returns: np