consnet.api.evaluation

consnet.api.evaluation.hico_det_eval(blob, anno, split='test', mode=['def', 'ko'], zero_shot=None, logger=None)[source]

Perform standard evaluation on HICO-DET dataset using mean average precision (mAP) as introduced in [1].

Parameters
  • blob (list[Tensor[N, 10]]) – Human-object pairs and their detection scores to be evaluated. The length of the list should be 600 and each item should be an N * 10 tensor in (batch_id, x1, y1, x2, y2, ..., score) format.

  • anno (torch.Tensor or str) – The annotations object or path to the anno_bbox.mat file.

  • split (str, optional) – The dataset split to be evaluated. Expected values are 'train' and 'test'.

  • mode (list[str] or str, optional) – Mode of evaluation. Expected values are 'def', 'ko' or a list containing these terms, denoting the default mode and known-object mode introduced in [1].

  • zero_shot (dict or None, optional) –

    Configurations for zero-shot settings. It should contain the following fields:

    • type (str): Expected values include 'uc', 'ub' and 'ua', representing unseen action-object combination, unseen object and unseen action scenarios introduced in [2].

    • id (int, optional): Only valid when type='uc'. Expected values are in the range of 0 ~ 4, indicating the 5 groups of unseen action-object combination settings in [2, 3].

  • logger (logging.Logger or str or None, optional) – The potential logger or name of the logger to be used.

Returns

Evaluation results including mean average precision (mAP) and mean recall (mRec) values of multiple dataset splits under different evaluation modes.

Return type

dict

Example

>>> results = hico_det_eval(blob, '<path-to-anno_bbox.mat>')
>>> print(results)
... {'def_mAP': xxx, 'def_mRec': xxx, ... }

References

  1. Chao et al. (https://arxiv.org/abs/1702.05448)

  2. Liu et al. (https://arxiv.org/abs/2008.06254)

  3. Bansal et al. (https://arxiv.org/abs/1904.03181)