-
Notifications
You must be signed in to change notification settings - Fork 242
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
[RetinaNet] Image Converter and ObjectDetector #1906
base: master
Are you sure you want to change the base?
Conversation
…neeli/keras-hub into sineeli/add-retinanet-phase-2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR @sineeli!! Looks generally good!! I have left a few comments.
Also, I want to make sure the -The code usage is updated to reflect the correct implementation - https://docs.google.com/document/d/15FUEP_vNehwLWJLragXhPFkYcbmmpbo0NYh5vL6q1xA/edit?tab=t.0
Kept some layers |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @sineeli. I left a few comments.
"max_level": 7, | ||
"num_scales": 3, | ||
"aspect_ratios": [0.5, 1.0, 2.0], | ||
"anchor_size": 8, | ||
}, | ||
input_data={ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
define input_data also in setup()
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
input_data varies in each test_case so kept it separately also how we assert changes
- Correct test cases.
…et format from preprocessor
… can effect the bounding boxes and the ops i backend framework dependent
- Add required docstrings - Use `center_xywh` encoding for retinanet as per torch weights
… arg for prediction head configuration
…e extraction from image encoder
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the updates @sineeli. Left a few comments! This is looking good!
Args: | ||
anchors: `Tensors`. Anchor boxes with shape of `(N, 4)` where N is the | ||
number of anchors. | ||
boxes: `Tensors` Bounding boxes to encode. Boxes can be of be shape |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
with shape (B, N, 4) for batched boxes or (N, 4) for a single set of boxes. N
should match the number of anchors.
|
||
@keras_hub_export("keras_hub.layers.RetinaNetImageConverter") | ||
class RetinaNetImageConverter(ImageConverter): | ||
backbone_cls = RetinaNetBackbone |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The converter has no resizing option, this is something we need to support for vision models. The backbone is taking image_shape as an input. This means we have to support image resizing in preprocessor.
positive_threshold=0.5, | ||
negative_threshold=0.4, | ||
box_variance=[0.1, 0.1, 0.2, 0.2], | ||
box_variance=[1.0, 1.0, 1.0, 1.0], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you please explain why this update?
anchors=anchor_boxes, | ||
boxes=matched_gt_boxes, | ||
anchor_format=self.bounding_box_format, | ||
box_format=self.bounding_box_format, | ||
encoding_format=self.encoding_format, | ||
variance=self.box_variance, | ||
image_shape=image_shape, | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
for the return statement of this method. assign the value to box_targets
and class_targets
and then return them for clarity
keras_hub/src/models/retinanet/retinanet_object_detector_test.py
Outdated
Show resolved
Hide resolved
Weights Transfer Check:
|
Trained on |
…kend cause some gpu misplacement
This PR covers preprocessor for RetinaNet object detector and RetinaNet model itself. #1756
ImageObjectDetector
ImageObjectDetectorPreprocessor
RetinaNetObjectDetector
RetinaNetObjectDetectorPreprocessor
RetinaNetImageConverter