diff options
author | Giuseppe Rossini <giuseppe.rossini@arm.com> | 2019-10-25 11:11:44 +0100 |
---|---|---|
committer | Giuseppe Rossini <giuseppe.rossini@arm.com> | 2019-10-26 00:46:43 +0000 |
commit | d985378af0c9a4db6a483634dd40526cd4031dee (patch) | |
tree | 241ccb49da6b1908ec82138ab7e683d91e5908d8 /arm_compute/core | |
parent | 279814bfdc3e2ec3ed6c4e248356b4e0b2b2abc0 (diff) | |
download | ComputeLibrary-d985378af0c9a4db6a483634dd40526cd4031dee.tar.gz |
COMPMID-2588: Optimize the output detection kernel required by MobileNet-SSD (~27% improvement)
Change-Id: Ic6ce570af3878a0666ec680e0efabba3fcfd1222
Signed-off-by: Giuseppe Rossini <giuseppe.rossini@arm.com>
Reviewed-on: https://review.mlplatform.org/c/2160
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'arm_compute/core')
-rw-r--r-- | arm_compute/core/Types.h | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/arm_compute/core/Types.h b/arm_compute/core/Types.h index d7b47ac512..0a25277b57 100644 --- a/arm_compute/core/Types.h +++ b/arm_compute/core/Types.h @@ -1099,7 +1099,8 @@ public: _num_classes(), _scales_values(), _use_regular_nms(), - _detection_per_class() + _detection_per_class(), + _dequantize_scores() { } /** Constructor @@ -1110,11 +1111,12 @@ public: * @param[in] iou_threshold Threshold to be used during the intersection over union. * @param[in] num_classes Number of classes. * @param[in] scales_values Scales values used for decode center size boxes. - * @param[in] use_regular_nms (Optional) Boolean to determinate if use regular or fast nms. - * @param[in] detection_per_class (Optional) Number of detection per class. Used in the Regular Non-Max-Suppression + * @param[in] use_regular_nms (Optional) Boolean to determinate if use regular or fast nms. Defaults to false. + * @param[in] detection_per_class (Optional) Number of detection per class. Used in the Regular Non-Max-Suppression. Defaults to 100. + * @param[in] dequantize_scores (Optional) If the scores need to be dequantized. Defaults to true. */ DetectionPostProcessLayerInfo(unsigned int max_detections, unsigned int max_classes_per_detection, float nms_score_threshold, float iou_threshold, unsigned int num_classes, - std::array<float, 4> scales_values, bool use_regular_nms = false, unsigned int detection_per_class = 100) + std::array<float, 4> scales_values, bool use_regular_nms = false, unsigned int detection_per_class = 100, bool dequantize_scores = true) : _max_detections(max_detections), _max_classes_per_detection(max_classes_per_detection), _nms_score_threshold(nms_score_threshold), @@ -1122,7 +1124,8 @@ public: _num_classes(num_classes), _scales_values(scales_values), _use_regular_nms(use_regular_nms), - _detection_per_class(detection_per_class) + _detection_per_class(detection_per_class), + _dequantize_scores(dequantize_scores) { } /** Get max detections. */ @@ -1184,6 +1187,11 @@ public: // Saved as [y,x,h,w] return _scales_values[3]; } + /** Get dequantize_scores value. */ + bool dequantize_scores() const + { + return _dequantize_scores; + } private: unsigned int _max_detections; @@ -1194,6 +1202,7 @@ private: std::array<float, 4> _scales_values; bool _use_regular_nms; unsigned int _detection_per_class; + bool _dequantize_scores; }; /** Pooling Layer Information class */ |