Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add elliptical rotation option to RotationTransform #1752

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

mxbi
Copy link

@mxbi mxbi commented Jul 13, 2022

This PR adds a small extension to the RotationTransform transform for object detection; the user can choose to rotate bounding boxes by approximating the underlying object as an ellipsis rather than a rectangle. This solves a common problem with using rotations, where the bounding boxes are enlarged (this can significantly hurt performance).

In the below image, the original bounding box is shown in red, the "normal" way of rotating the bounding box (current behaviour) is shown in blue. The elliptical method added by this PR is shown in green. As you can see, the rectangular boxes are significantly larger than the objects which the boxes are for.
Source code for the below image

image

This PR adds this feature by overloading RotationTransform.apply_box and adding a new parameter box_method. The default behaviour is unchanged, but if the user sets box_method='ellipsis' they will get the tighter elliptical boxes. This also passes the linter :)

For reference: [Paper showing significant performance improvements] [Same feature in albumentations]

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.

1 participant