DetectionEngine.report

DetectionEngine.report(model_name=None, split='validation')

Everything a detection table is read off, from one pass over the split.

Public because evaluate and evaluate_classes are both views over it, and a caller that wants both - which the example does - would otherwise run the model over the split twice. No caching: a cache would be stale the moment the model trained another epoch, and the honest alternative is to hand back the thing and let the caller hold it.

Parameters

Name Type Description Default
model_name str | None Which detector. Defaults to the first. None

Returns

Name Type Description
DetectionReport A DetectionReport: the anchors, their coverage, the target survey - how many
DetectionReport boxes were placed, how many could not be, how many were dropped - and the split
DetectionReport sizes. What to read before trusting a score, because a box that cannot be
DetectionReport placed is a box the model is never asked to find.

BCCD carries one annotation of zero extent in each split, which comes out one pixel across under Pascal VOC’s inclusive convention, so dropped is 1 and has been all along.