  Non-maximum Suppression (NMS) is an essential postprocessing step in modern
convolutional neural networks for object detection. Unlike convolutions which
are inherently parallel, the de-facto standard for NMS, namely GreedyNMS,
cannot be easily parallelized and thus could be the performance bottleneck in
convolutional object detection pipelines. MaxpoolNMS is introduced as a
parallelizable alternative to GreedyNMS, which in turn enables faster speed
than GreedyNMS at comparable accuracy. However, MaxpoolNMS is only capable of
replacing the GreedyNMS at the first stage of two-stage detectors like
Faster-RCNN. There is a significant drop in accuracy when applying MaxpoolNMS
at the final detection stage, due to the fact that MaxpoolNMS fails to
approximate GreedyNMS precisely in terms of bounding box selection. In this
paper, we propose a general, parallelizable and configurable approach
PSRR-MaxpoolNMS, to completely replace GreedyNMS at all stages in all
detectors. By introducing a simple Relationship Recovery module and a Pyramid
Shifted MaxpoolNMS module, our PSRR-MaxpoolNMS is able to approximate GreedyNMS
more precisely than MaxpoolNMS. Comprehensive experiments show that our
approach outperforms MaxpoolNMS by a large margin, and it is proven faster than
GreedyNMS with comparable accuracy. For the first time, PSRR-MaxpoolNMS
provides a fully parallelizable solution for customized hardware design, which
can be reused for accelerating NMS everywhere.
