Closed stigma0617 closed 5 years ago
@stigma0617 The previous implementation uses for loop in python to do multi-class NMS. In this PR, NMS for all classes is done together. If two bounding-boxes are with different classes, their overlap is set as 0.
@tianzhi0549 Thanks for your reply :)
@tianzhi0549 does multi-label NMS provide a mAP increase compared to single-label NMS, and if so how much? Thank you.
Hey @tianzhi0549, I couldn't find the implementation of python Multi-Label NMS in your repo. Would you please where is your python Multi-Label NMS implementation?
Thanks,
@Auth0rM0rgan we've implemented this here: https://github.com/ultralytics/yolov3
It lead to a mAP increase during inference on COCO. See https://github.com/ultralytics/yolov3/issues/679
git clone https://github.com/ultralytics/yolov3
cd yolov3
python3 test.py --weights ultralytics68.pt --cfg yolov3-spp.cfg --img 608
Time sec/image |
Time mm:ss |
COCO mAP @0.5...0.95 |
COCO mAP @0.5 |
|
---|---|---|---|---|
'vision_batched', multi_cls=False |
43ms | 3:36 | 40.2 | 60.4 |
'vision_batched', multi_cls=True |
48ms | 4:01 | 40.9 | 61.4 |
'merge', multi_cls=True |
172ms | 14:23 | 41.3 | 61.7 |
@glenn-jocher thanks! Have you compare the performance of multi-label NMS with fast NMS, which introduced in yolact paper (I’m just curious)? thanks!
@Auth0rM0rgan I've not used fast NMS before, but glancing at the arxiv summary of the yolact paper it seems that its a faster implementation with slightly lower mAP, though I don't know if it is primarily aimed at box nms or semantic segmentation nms, or both.
In any case, they are not mutually exclusive. multi-class NMS merely replicates the same box with any class above threshold.
Hi, it is awesome that the speed of FCOS is boosted by Multi-Label NMS.
I want to the details of Multi-Label NMS. Could you explain more details? or Is there any reference?