-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
[Feature] Support BiSeNetV1 #851
Conversation
Codecov Report
@@ Coverage Diff @@
## master #851 +/- ##
==========================================
+ Coverage 89.62% 89.77% +0.15%
==========================================
Files 113 114 +1
Lines 6263 6356 +93
Branches 989 995 +6
==========================================
+ Hits 5613 5706 +93
Misses 452 452
Partials 198 198
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
This PR is still experimental so I can't answer you. If you have achieved your FPS please leave out your result here, that must be very valuable. |
We use the Tesla P40 with fp32 to compute inference time. For the inference size of 640360, the FPS is 51.23; for the inference size of 1280720, the FPS is 30.96; for the inference size of 1920*1080, the FPS is 19.48. In the paper, the results based on Titan X are 129.4, 47.9 and 23 respectively. I am not sure if it is because the inference speed of P40 is significantly lower than that of Titan X. Similarly, P40-based speed is still incomparable compared to the results from CoinCheung. |
FYI.
|
Task linked: CU-1f0zyk7 bisenet v1 |
Hello, thanks for your great work. I have a question about BN and SyncBN. Why do you choose SyncBN for Backbone and FCN head and BN for other parts? |
It should be SyncBN by default. You can find |
Our But we would support fair and accurate FPS performance especially with TensorRT(for real-time segmentation) in the near future. |
Thanks for your reply. I have some confusion. Although SyncBN is imported from config in BiseNet v1, when Context Path (line 310) and ffm (313) are defined, the corresponding SyncBN is not passed in, where the BN in the corresponding function is still used. I found this problem when I checked the logs, even though I got the result of 74.95 with both SyncBN in ResNet/FCN and BN in other parts. I want to know what went wrong. By the way, did you train with batch-size 4 with 4 gpus? Do I need to adjust lr when I use batch-size 8? |
They both inherit from Learning rate could be larger if batch size become 2 times, but it is flexible I think, afterall we would better compare different settings. |
I use the old version of mmsegmentation, so I modify some parts of your code (such as BaseModule). Now I will modify it carefully, thank you for your help. |
Hi @MengzhangLI |
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.
LGTM
* First Commit * fix typos * fix typos * Fix assertion bug * Adding Assert * Adding Unittest * Fixing typo * Uploading models & logs * Fixing unittest error * changing README.md * changing README.md
Implementation of BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentationn.
Modified from the BiSeNetV1 PyTorch repository.
Future Works:
Results on more dataset, i.e., CamVid or COCO-Stuff.
Results on more backbones, i.e., Xception39, ResNet101_v1c.
Results on Non-real-time V.S. Real-time, i.e., different resized images as inputs.
Notice:
(1) This version of implementation is a little bit different from original version.
(2) Original paper has a dispute about effect of training tricks on numerical results. Here is diss and diss back.