masahi edited a comment on pull request #7796:
URL: https://github.com/apache/tvm/pull/7796#issuecomment-814840398


   ok I see roughly three categories of NMS used in frameworks:
   
   1. MXNet and TVM 
https://mxnet.apache.org/versions/1.7.0/api/python/docs/api/ndarray/contrib/index.html#mxnet.ndarray.contrib.box_nms
 This is what MXNet calls `box_nms`, this API is highly non-standard but 
unfortunately this is what we inherited from for topi/relay. It supports 
multiclass NMS but a single box is associated with only one class, unlike the 
third category below.
   
   2. PT `torchvision.ops.nms`  and TF `non_max_suppression`, this is the 
standard, **single** class NMS.
       https://pytorch.org/vision/stable/ops.html#torchvision.ops.nms
       https://www.tensorflow.org/api_docs/python/tf/image/non_max_suppression
   
   3. ONNX `NonMaxSuppression`, TF `combined_non_max_suppression`, and TensorRT 
`batchedNMSPlugin` (the implementation calls it `allClassNMS`) This is the 
variant of **multi** class NMS where a single box can be selected multiple 
times per different classes.  
       
https://github.com/onnx/onnx/blob/master/docs/Operators.md#NonMaxSuppression
       
https://www.tensorflow.org/api_docs/python/tf/image/combined_non_max_suppression
       https://github.com/NVIDIA/TensorRT/tree/master/plugin/batchedNMSPlugin, 
https://github.com/NVIDIA/TensorRT/blob/master/plugin/common/kernels/allClassNMS.cu
   
   
   So the bottom line is, I think it is reasonable to say that NMS, without 
adjectives, should refer to the single class variant (category 2 above), but 
there isn't a consensus on what to call the third category one which this PR is 
about.
   
   I think `all_class_non_maximum_surpression` or 
`per_class_non_maximum_surpression` are the most descriptive of what it does. 
Either one is fine for me and I'm open for other suggestions @mbrookhart 
@jwfromm 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to