code: def _update_labels(self, label, crop_box, height, width):
          
          xmin = float(crop_box[0]) / width
          ymin = float(crop_box[1]) / height
          w = float(crop_box[2]) / width
          h = float(crop_box[3]) / height
          out = label.copy()
          out[:, (1, 3)] -= xmin
          out[:, (2, 4)] -= ymin
          out[:, (1, 3)] /= w
          out[:, (2, 4)] /= h
          out[:, 1:5] = np.maximum(0, out[:, 1:5])
          out[:, 1:5] = np.minimum(1, out[:, 1:5])
          coverage = self._calculate_areas(out[:, 1:]) * w * h / self._calculate_areas(label[:, 1:])
          valid = np.logical_and(out[:, 3] > out[:, 1], out[:, 4] > out[:, 2])
          valid = np.logical_and(valid, coverage > self.min_eject_coverage)
          valid = np.where(valid)[0]
          if valid.size < 1:
              return None
          out = out[valid, :]
          return out
docs: Convert labels according to crop box