-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Why normalize the bounding box targets ? #365
Comments
Good question. I would also like the answer to that... |
The reason I got a wrong result is that I used the defalut caffe snapshot instead of the snapshot function implemented in train.py while still i cannot understand why we nomalize the bounding box target and unnormalize the **weight of layer bbox_pred works. |
Question 2: does it mean that if mean is not (0,0,0,0) , the code in snapshot() cannot work well ? |
@FangShancheng Good question, have you figured out why? |
If I understand correctly, in Fast R-CNN paper (Page 3, RHS) the authors mention that they're normalizing the bounding boxes, I think it helps with setting the lambda parameter to 1 when we use multi-class loss. |
(Resolved) Faster RCNN works well on my own dataset using the following config :
Actually it can still get a slightly worse result with False BBOX_NORMALIZE_TARGETS_PRECOMPUTED.
But when I even did a little modification on the network(such as the shape of the anchors or the architecture of the detection network), I got a wrong result. If I set BBOX_NORMALIZE_TARGETS_PRECOMPUTED = False i can get a right result but not pretty good. And I also tried the BBOX_NORMALIZE_STDS that fit my dataset.
Answer: The reason I got a wrong result is that I used the defalut caffe snapshot instead of the snapshot function implemented in train.py(There are many similar issues, such as strange detection result depend on bbox_pred #186 )
(Unresolved)I do not understand why Faster RCNN normalizes the bounding box targets? how it works and how should i do to use it correctly ?
in proposal_target_layer.py we nomalize the bounding box target
while in train.py snapshot(), we unnormalize the weights of layer bbox_pred .
Why does it work? Could someone give the explanations or the related papers of the theory?
Thanks for any help
The text was updated successfully, but these errors were encountered: