Work-Efficient Parallel Non-Maximum Suppression Kernels
David Oro, Carles Fernández, Xavier Martorell, Javier Hernando
TL;DR
The paper addresses the bottleneck of non-maximum suppression (NMS) in real-time object detection on embedded GPUs by introducing a work-efficient, GPU-native parallel NMS. It leverages a map/reduce design that builds a boolean adjacency matrix to encode pairwise detection relationships and uses a partitioned AND-reduction to yield the surviving detections, all without requiring input sorting. Empirical results show sub-2 ms latency for thousands of detections on embedded Tegra GPUs and substantial speedups over CNN-based NMS approaches on both embedded and discrete GPUs. The method preserves accuracy comparable to greedy NMS while offering orders-of-magnitude reductions in latency, enabling GPU-only pipelines for scalable real-time inference. Future directions include fine-tuning reduction synchronization on newer architectures and extending applicability to related NMS variants.
Abstract
In the context of object detection, sliding-window classifiers and single-shot Convolutional Neural Network (CNN) meta-architectures typically yield multiple overlapping candidate windows with similar high scores around the true location of a particular object. Non-Maximum Suppression (NMS) is the process of selecting a single representative candidate within this cluster of detections, so as to obtain a unique detection per object appearing on a given picture. In this paper, we present a highly scalable NMS algorithm for embedded GPU architectures that is designed from scratch to handle workloads featuring thousands of simultaneous detections on a given picture. Our kernels are directly applicable to other sequential NMS algorithms such as FeatureNMS, Soft-NMS or AdaptiveNMS that share the inner workings of the classic greedy NMS method. The obtained performance results show that our parallel NMS algorithm is capable of clustering 1024 simultaneous detected objects per frame in roughly 1 ms on both NVIDIA Tegra X1 and NVIDIA Tegra X2 on-die GPUs, while taking 2 ms on NVIDIA Tegra K1. Furthermore, our proposed parallel greedy NMS algorithm yields a 14x-40x speed up when compared to state-of-the-art NMS methods that require learning a CNN from annotated data.
