Overview of Matrix NMS
Matrix NMS, also known as Matrix Non-Maximum Suppression, is a method that uses parallel matrix operations to perform non-maximum suppression in one shot. It is an improvement on Soft-NMS, which recursively decays detection scores based on their overlaps. Unlike Soft-NMS, Matrix NMS performs suppression simultaneously in parallel, eliminating the need for the sequential processing used by traditional Greedy NMS.
The main idea behind Matrix NMS is taking a different view on the suppression process. Instead of focusing on how to decay the detection scores based on their overlaps, Matrix NMS considers how a predicted mask is suppressed. The decay factor of a predicted mask depends on two things:
- The penalty of each prediction on the predicted mask, where penalty is determined by the overlap of the predicted masks
- The probability of each prediction being suppressed, which Matrix NMS approximates based on its overlap with the most overlapped prediction on the predicted mask
Using these two factors, Matrix NMS computes the decay factor for each predicted mask, which is then used to update the detection score. Two decay functions are considered: linear and Gaussian, with the choice between these functions depending on the specific application in question.
Overall, Matrix NMS offers a faster and more efficient way of performing non-maximum suppression compared to Soft-NMS and traditional Greedy NMS. It has already proven to be effective in several computer vision applications, including object detection and segmentation.