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

Performance in correct Mask R-CNN implementation #3

Open
wondervictor opened this issue Aug 19, 2019 · 3 comments
Open

Performance in correct Mask R-CNN implementation #3

wondervictor opened this issue Aug 19, 2019 · 3 comments
Labels
question Further information is requested

Comments

@wondervictor
Copy link

Hi, thanks for your nice work and I appreciate it much.
I have some questions about your implementation. Your implementation is based on Mask_RCNN but I found this implementation might exist many problems which led to much lower performance than the official implementation(Detectron, maskrcnn-benchmark).
I'm interested in your work and try to implement your proposed method in maskrcnn-benchmark. The only difference between my implementation and yours is that I use abs() instead of sqrt() to aggregate edges detected from X-direction and Y-direction because sqrt will result in numerical problems. sqrt and abs is nearly the same in the theory.
And I obtained results below and my implementation is consistent with the official implementation.

model loss box AP mask AP
MaskR-CNN-ResNet50(baseline) - 36.5 33.2
MaskR-CNN-ResNet50(EdgeAgreementLoss) L1 Loss 36.8 33.6
MaskR-CNN-ResNet50(EdgeAgreementLoss) L2 Loss 35.6 33.6

And I wonder why I can't obtain the performance gain in your paper. Can you provide results obtained from more accurate implementations?

@wondervictor
Copy link
Author

@flashtek Hi, waiting for your response.

@zimmerrol
Copy link
Owner

Hi @wondervictor,
we are aware that the M-RCNN implementation by matterport does not yield the same (SOTA) results as other implementations. Nevertheless, we did not consider this to be a problem, as there are papers that have already used the idea of the Edge Detection Head to improve their instance segmentation accuracy in different domains and using different models (e.g. here). Therefore, we are fairly sure that this is a general property of instance segmentation networks and is not just restricted to the implementation done by matterport.

Furthermore, we are not sure what you mean when you're talking about the sqrt/abs problem. Do mean that you combined the contributions in the x- and y-direction and only used the magnitude? If this is the case, please take a look at the section in our paper which describes failed experiments - there is a statement about this, which basically says exactly the same as you are: only using the magnitude does not bring a strong improvement compared to a baseline.

Otherwise, please noticed also that we have shown in the paper that the performance-gain is very sensitive to the exponent p used in the L-p norm. Also, please be aware that we did not use the L-p norm but the L-p norm to the power of p, (cf. eq. 5) - we are sorry if this has caused any confusion on your side.

Lastly, please send us a complete overview of your configuration (of the base M-RCNN and the newly added Edge Agreement Head) as well as a figure containing the loss curves (edge agreement loss, mark loss) and some samples of the predicted masks w/ and w/o the Edge Agreement Head so that we can better understand your problem.

@zimmerrol zimmerrol added the question Further information is requested label Aug 19, 2019
@wondervictor
Copy link
Author

Thanks for your reply. I have a new understanding of your method after your explanation. I ignore the detail that magnitude is not adopted in your method. I've rechecked your code and grasped more details already. I'll fix bugs in my implementation and continue some experiments.
Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants