[Read Paper] MaxpoolNMS: Getting Rid of NMS Bottlenecks in Two-Stage Object Detectors
MaxpoolNMS: Getting Rid of NMS Bottlenecks in Two-Stage Object Detectors
MaxpoolNMS, a parallelizable alternative to the NMS algorithm, which is based on max-pooling classification score maps.
NMS
NMS is an essential block as it removes duplicate detections, hence reducing false positives. Both the region proposal network and object detection network employ NMS as a post-processing step.
When applied in region proposal network, it first sorts all the candidate detection boxes according to their objectness scores, followed by two nested loops to greedily select high score boxes and delete other boxes that overlap significantly with the selected ones. The inner loop is parallelizable, but the outer loop is sequential in nature.
Multi-scale max-pooling
As score maps are generated by multi-scale anchors, it is natural to use multi-scale kernel sizes for different score maps when conducting max-pooling. The size of the anchor is $h \times w$.
$ksize_x, stride_x = max(1, round(\frac{\alpha w}{s}))$
$ksize_y, stride_t = max(1, round(\frac{\alpha h}{s}))$
Multi-channel max-pooling
An object can produce multiple peaks on neighboring score maps.