class_docstr: Encode bounding boxes training target with normalized center offsets using numpy.
  
  Input bounding boxes are using corner type: `x_{min}, y_{min}, x_{max}, y_{max}`.
  
  Parameters
  ----------
  stds : array-like of size 4
      Std value to be divided from encoded values, default is (0.1, 0.1, 0.2, 0.2).
  means : array-like of size 4
      Mean value to be subtracted from encoded values, default is (0., 0., 0., 0.).
class_docstr_tok: ["Encode","bounding","boxes","training","target","with","normalized","center","offsets","using","numpy",".","Input","bounding","boxes","are","using","corner","type",":","`","x_","{","min","}",",","y_","{","min","}",",","x_","{","max","}",",","y_","{","max","}","`",".","Parameters","--","--","--","--","--","stds",":","array-like","of","size","4","Std","value","to","be","divided","from","encoded","values",",","default","is","(","0.1",",","0.1",",","0.2",",","0.2",")",".","means",":","array-like","of","size","4","Mean","value","to","be","subtracted","from","encoded","values",",","default","is","(","0.",",","0.",",","0.",",","0",".",")","."]
docstr: Not HybridBlock due to use of matches.shape
  
  Parameters
  ----------
  samples: (B, N) value +1 (positive), -1 (negative), 0 (ignore)
  matches: (B, N) value range [0, M)
  anchors: (B, N, 4) encoded in corner
  refs: (B, M, 4) encoded in corner
  
  Returns
  -------
  targets: (B, N, 4) transform anchors to refs picked according to matches
  masks: (B, N, 4) only positive anchors has targets
docstr_tok: ["Not","HybridBlock","due","to","use","of","matches.shape","Parameters","--","--","--","--","--","samples",":","(","B",",","N",")","value","+1","(","positive",")",",","-1","(","negative",")",",","0","(","ignore",")","matches",":","(","B",",","N",")","value","range","[","0",",","M",")","anchors",":","(","B",",","N",",","4",")","encoded","in","corner","refs",":","(","B",",","M",",","4",")","encoded","in","corner","Returns","--","--","--","-","targets",":","(","B",",","N",",","4",")","transform","anchors","to","refs","picked","according","to","matches","masks",":","(","B",",","N",",","4",")","only","positive","anchors","has","targets"]
code: def __call__(self, samples, matches, anchors, refs):
      """Not HybridBlock due to use of matches.shape
  
      Parameters
      ----------
      samples: (B, N) value +1 (positive), -1 (negative), 0 (ignore)
      matches: (B, N) value range [0, M)
      anchors: (B, N, 4) encoded in corner
      refs: (B, M, 4) encoded in corner
  
      Returns
      -------
      targets: (B, N, 4) transform anchors to refs picked according to matches
      masks: (B, N, 4) only positive anchors has targets
  
      """
      if cython_bbox is not None:
          return cython_bbox.np_normalized_box_encoder(
              samples,
              matches,
              anchors,
              refs,
              np.array(self._means, dtype=np.float32),
              np.array(self._stds, dtype=np.float32),
          )
      # refs [B, M, 4], anchors [B, N, 4], samples [B, N], matches [B, N]
      ref_boxes = np.repeat(
          refs.reshape((refs.shape[0], 1, -1, 4)),
          axis=1,
          repeats=matches.shape[1],
      )
      # refs [B, N, M, 4] -> [B, N, 4]
      ref_boxes = ref_boxes[
          :, range(matches.shape[1]), matches, :
      ].reshape(matches.shape[0], -1, 4)
      # g [B, N, 4], a [B, N, 4] -> codecs [B, N, 4]
      g = self.corner_to_center(ref_boxes)
      a = self.corner_to_center(anchors)
      t0 = ((g[0] - a[0]) / a[2] - self._means[0]) / self._stds[0]
      t1 = ((g[1] - a[1]) / a[3] - self._means[1]) / self._stds[1]
      t2 = (np.log(g[2] / a[2]) - self._means[2]) / self._stds[2]
      t3 = (np.log(g[3] / a[3]) - self._means[3]) / self._stds[3]
      codecs = np.concatenate((t0, t1, t2, t3), axis=2)
      # samples [B, N] -> [B, N, 1] -> [B, N, 4] -> boolean
      temp = (
          np.tile(
              samples.reshape((samples.shape[0], -1, 1)), reps=(1, 1, 4)
          )
          > 0.5
      )
      # fill targets and masks [B, N, 4]
      targets = np.where(temp, codecs, 0.0)
      masks = np.where(temp, 1.0, 0.0)
      return targets, masks
  
imports: from __future__ import absolute_import
  import numpy
  from mxnet import gluon
  from mxnet import nd
  from .bbox import BBoxCornerToCenter, NumPyBBoxCornerToCenter
label_desc: Use image node_id 2 for calling the NumPyNormalizedBoxCenterEncoder obj's underlying member method code with example usage: obj.__call__(samples, matches, anchors, refs) and returns: targets,  masks, cython_bbox