Skip to content

Conversation

LukeWood
Copy link
Contributor

@LukeWood LukeWood commented Feb 14, 2023

What does this PR do?

Originally, I was planning to migrate COCORecall to PyMetric, but I eventually realized that only MeanAveragePrecision needs to use PyMetric. Recall can get numerical accuracy all within graph. Unfortunately performance is bad, so we will still need to migrate to PyMetric.

This PR makes Recall a functional metric in the OD API and works with dictionary boxes, but performance is bad. After this PR:

Outstanding tasks:

  • make recall performant
  • support metrics in RetinaNet
  • support COCOMeanAveragePrecision
  • support metrics in MaskRCNN

@LukeWood
Copy link
Contributor Author

/gcbrun

@LukeWood LukeWood requested review from ianstenbit and removed request for ianstenbit February 15, 2023 07:44
@LukeWood
Copy link
Contributor Author

ok @ianstenbit I think this is prepared for a review!

@LukeWood LukeWood changed the title [Draft] Prepare COCORecall for use with the new object detection API [OD metrics]: (Step 1/3) Prepare COCORecall for use with the new object detection API Feb 15, 2023
@LukeWood
Copy link
Contributor Author

ok @ianstenbit - the performance of this is quite bad, but I'd like to merge then migrate to PyMetric to improve performance. PTAL when you have time, some of the utilities + the API will remain after the migration to PyMetric so its good to do 2 PRs.

@ianstenbit
Copy link
Contributor

As a reviewer, it's difficult to tell what of these changes are directly related to BoxRecall vs unrelated improvements.

I don't really see the point of this change if we intend to migrate to PyMetric anyway, as this makes a lot of changes to the internals of BoxRecall which is going to change.

Maybe if you separated the utils changes from the BoxRecall changes I would be able to see that more clearly?

@LukeWood LukeWood changed the title [OD metrics]: (Step 1/3) Prepare COCORecall for use with the new object detection API [OD metrics]: (Step 1/3) Align _BoxRecall to the new object detection API Feb 21, 2023
@LukeWood
Copy link
Contributor Author

@ianstenbit updated the PR description, and I believe everything in this PR is now related to getting the API of BoxRecall ironed out. Performance + making the API user facing will be handled in a follow up.

@LukeWood
Copy link
Contributor Author

/gcbrun

@LukeWood LukeWood merged commit 54fcdf2 into master Feb 25, 2023
@LukeWood LukeWood deleted the recallfix branch February 25, 2023 22:04
ghost pushed a commit to y-vectorfield/keras-cv that referenced this pull request Nov 16, 2023
… API (keras-team#1396)

* Rewrite tests and update the docstring

* Rewrite tests and update the docstring

* filter out sentinels

* filter out sentinels

* filter out sentinels

* math.top_k

* Make recall work with dictionary input

* recall unit tests fixed

* Create COCO test, begin fixiing metric evaluation

* Create COCO test, begin fixiing metric evaluation

* Create COCO test, begin fixiing metric evaluation

* Add prediction decoding

* Remove changes to RetinaNet

* Metrics and serialization changes

* Move copy() call to to_dense

* polish 1

* polish round 2

* polish round 3

* polish round 3

* polish round 3

* Rename recall

* Rename recall

* Reformat

* Lint fix

* Lint fix

* Recall test implemented

* Remove unused util

* udpate docstring per francois' comment
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants