tianzhi0549 / FCOS

FCOS: Fully Convolutional One-Stage Object Detection (ICCV'19)
https://arxiv.org/abs/1904.01355
Other
3.28k stars 630 forks source link

About Multi-Label NMS #175

Closed stigma0617 closed 5 years ago

stigma0617 commented 5 years ago

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?

tianzhi0549 commented 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.

stigma0617 commented 5 years ago

@tianzhi0549 Thanks for your reply :)

glenn-jocher commented 4 years ago

@tianzhi0549 does multi-label NMS provide a mAP increase compared to single-label NMS, and if so how much? Thank you.

Auth0rM0rgan commented 4 years ago

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,

glenn-jocher commented 4 years ago

@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
Auth0rM0rgan commented 4 years ago

@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!

glenn-jocher commented 4 years ago

@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.