voxel51 / fiftyone

Refine high-quality datasets and visual AI models
https://fiftyone.ai
Apache License 2.0
8.93k stars 569 forks source link

[FR] Add mean average recall (mAR) to evaluate_detections #4972

Open NicDionne opened 1 month ago

NicDionne commented 1 month ago

Proposal Summary

In a few sentences, provide a clear, high-level description of the feature request. I propose to add a parameter to evaluate_detections. In the same way we can set compute_mAP=True, we should be able to set compute_mAR = True.

Motivation

What areas of FiftyOne does this feature affect?

Details

Use this section to include any additional information about the feature. If you have a proposal for how to implement this feature, please include it here.

Willingness to contribute

The FiftyOne Community welcomes contributions! Would you or another member of your organization be willing to contribute an implementation of this feature?

brimoor commented 1 month ago

Hi @NicDionne 👋

Adding mAR makes sense to me! A PR that contributes this would be most welcome! 😄

The compute_mAP=True parameter was perhaps an unnecessarily specific naming choice. Functionally it just performs the necessary IoU sweep so that mAP and PR curves can be generated, but it also should provide the necessary data to compute mAR as well.

So, I believe that it would be cleanest to implement mAR by leaving this syntax unchanged:

dataset.evaluate_detections(..., compute_mAP=True)

and then simply adding an mAR() method analogous to the existing mAP() method.