1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2020 Arm Ltd and Contributors. All rights reserved. 3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT 4*89c4ff92SAndroid Build Coastguard Worker // 5*89c4ff92SAndroid Build Coastguard Worker #pragma once 6*89c4ff92SAndroid Build Coastguard Worker 7*89c4ff92SAndroid Build Coastguard Worker #include "DetectedObject.hpp" 8*89c4ff92SAndroid Build Coastguard Worker 9*89c4ff92SAndroid Build Coastguard Worker #include <numeric> 10*89c4ff92SAndroid Build Coastguard Worker #include <vector> 11*89c4ff92SAndroid Build Coastguard Worker 12*89c4ff92SAndroid Build Coastguard Worker namespace od 13*89c4ff92SAndroid Build Coastguard Worker { 14*89c4ff92SAndroid Build Coastguard Worker 15*89c4ff92SAndroid Build Coastguard Worker /** 16*89c4ff92SAndroid Build Coastguard Worker * @brief Returns a vector of indices corresponding to input detections kept after NMS. 17*89c4ff92SAndroid Build Coastguard Worker * 18*89c4ff92SAndroid Build Coastguard Worker * Perform non max suppression on input detections. Any detections with iou greater than 19*89c4ff92SAndroid Build Coastguard Worker * given threshold are suppressed. Different detection labels are considered independently. 20*89c4ff92SAndroid Build Coastguard Worker * 21*89c4ff92SAndroid Build Coastguard Worker * @param[in] Vector of decoded detections. 22*89c4ff92SAndroid Build Coastguard Worker * @param[in] Detects with IOU larger than this threshold are suppressed. 23*89c4ff92SAndroid Build Coastguard Worker * @return Vector of indices corresponding to input detections kept after NMS. 24*89c4ff92SAndroid Build Coastguard Worker * 25*89c4ff92SAndroid Build Coastguard Worker */ 26*89c4ff92SAndroid Build Coastguard Worker std::vector<int> NonMaxSuppression(DetectedObjects& inputDetections, float iouThresh); 27*89c4ff92SAndroid Build Coastguard Worker 28*89c4ff92SAndroid Build Coastguard Worker }// namespace od