Skip to content

Commit 6318980

Browse files
Enable NMS in BoxesLabelsScoresConverter (#672)
* Enable NMS in BoxesLabelsScoresConverter * Fix header * Fix NMS and add IOU threshold to bbox converter * Fix code style --------- Co-authored-by: Tomasz Bujewski <tomasz.bujewski@intel.com>
1 parent dec0bc9 commit 6318980

File tree

5 files changed

+21
-15
lines changed

5 files changed

+21
-15
lines changed

src/monolithic/gst/inference_elements/common/post_processor/converters/to_roi/blob_to_roi_converter.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,14 @@ BlobToMetaConverter::Ptr BlobToROIConverter::create(BlobToMetaConverter::Initial
5757
else if (converter_name == DetectionOutputConverter::getName())
5858
return BlobToMetaConverter::Ptr(new DetectionOutputConverter(std::move(initializer), confidence_threshold));
5959
else if (converter_name == BoxesLabelsConverter::getName())
60-
return BlobToMetaConverter::Ptr(new BoxesLabelsConverter(std::move(initializer), confidence_threshold));
60+
return BlobToMetaConverter::Ptr(
61+
new BoxesLabelsConverter(std::move(initializer), confidence_threshold, iou_threshold));
6162
else if (converter_name == BoxesScoresConverter::getName())
62-
return BlobToMetaConverter::Ptr(new BoxesScoresConverter(std::move(initializer), confidence_threshold));
63+
return BlobToMetaConverter::Ptr(
64+
new BoxesScoresConverter(std::move(initializer), confidence_threshold, iou_threshold));
6365
else if (converter_name == BoxesConverter::getName())
64-
return BlobToMetaConverter::Ptr(new BoxesConverter(std::move(initializer), confidence_threshold));
66+
return BlobToMetaConverter::Ptr(
67+
new BoxesConverter(std::move(initializer), confidence_threshold, iou_threshold));
6568
else if (converter_name == YOLOv2Converter::getName() || converter_name == YOLOv3Converter::getName() ||
6669
converter_name == YOLOv4Converter::getName() || converter_name == YOLOv5Converter::getName())
6770
return YOLOBaseConverter::create(std::move(initializer), converter_name, confidence_threshold);

src/monolithic/gst/inference_elements/common/post_processor/converters/to_roi/boxes.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (C) 2021 Intel Corporation
2+
* Copyright (C) 2021-2026 Intel Corporation
33
*
44
* SPDX-License-Identifier: MIT
55
******************************************************************************/
@@ -30,8 +30,8 @@ class BoxesConverter : public BoxesLabelsScoresConverter {
3030
}
3131

3232
public:
33-
BoxesConverter(BlobToMetaConverter::Initializer initializer, double confidence_threshold)
34-
: BoxesLabelsScoresConverter(std::move(initializer), confidence_threshold) {
33+
BoxesConverter(BlobToMetaConverter::Initializer initializer, double confidence_threshold, double iou_threshold)
34+
: BoxesLabelsScoresConverter(std::move(initializer), confidence_threshold, iou_threshold) {
3535
}
3636

3737
static bool isValidModelOutputs(const std::map<std::string, std::vector<size_t>> &model_outputs_info) {

src/monolithic/gst/inference_elements/common/post_processor/converters/to_roi/boxes_labels.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (C) 2021-2025 Intel Corporation
2+
* Copyright (C) 2021-2026 Intel Corporation
33
*
44
* SPDX-License-Identifier: MIT
55
******************************************************************************/
@@ -28,8 +28,9 @@ class BoxesLabelsConverter : public BoxesLabelsScoresConverter {
2828
std::pair<size_t, float> getLabelIdConfidence(const InferenceBackend::OutputBlob::Ptr &, size_t, float) const final;
2929

3030
public:
31-
BoxesLabelsConverter(BlobToMetaConverter::Initializer initializer, double confidence_threshold)
32-
: BoxesLabelsScoresConverter(std::move(initializer), confidence_threshold) {
31+
BoxesLabelsConverter(BlobToMetaConverter::Initializer initializer, double confidence_threshold,
32+
double iou_threshold)
33+
: BoxesLabelsScoresConverter(std::move(initializer), confidence_threshold, iou_threshold) {
3334
}
3435

3536
static bool isValidModelOutputs(const std::map<std::string, std::vector<size_t>> &model_outputs_info);

src/monolithic/gst/inference_elements/common/post_processor/converters/to_roi/boxes_labels_scores_base.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (C) 2021-2025 Intel Corporation
2+
* Copyright (C) 2021-2026 Intel Corporation
33
*
44
* SPDX-License-Identifier: MIT
55
******************************************************************************/
@@ -39,8 +39,9 @@ class BoxesLabelsScoresConverter : public BlobToROIConverter {
3939
size_t height) const;
4040

4141
public:
42-
BoxesLabelsScoresConverter(BlobToMetaConverter::Initializer initializer, double confidence_threshold)
43-
: BlobToROIConverter(std::move(initializer), confidence_threshold, false, 0.0) {
42+
BoxesLabelsScoresConverter(BlobToMetaConverter::Initializer initializer, double confidence_threshold,
43+
double iou_threshold)
44+
: BlobToROIConverter(std::move(initializer), confidence_threshold, true, iou_threshold) {
4445
}
4546

4647
TensorsTable convert(const OutputBlobs &output_blobs) override;

src/monolithic/gst/inference_elements/common/post_processor/converters/to_roi/boxes_scores.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (C) 2021-2022 Intel Corporation
2+
* Copyright (C) 2021-2026 Intel Corporation
33
*
44
* SPDX-License-Identifier: MIT
55
******************************************************************************/
@@ -31,8 +31,9 @@ class BoxesScoresConverter : public BoxesLabelsScoresConverter {
3131
size_t height) const override final;
3232

3333
public:
34-
BoxesScoresConverter(BlobToMetaConverter::Initializer initializer, double confidence_threshold)
35-
: BoxesLabelsScoresConverter(std::move(initializer), confidence_threshold) {
34+
BoxesScoresConverter(BlobToMetaConverter::Initializer initializer, double confidence_threshold,
35+
double iou_threshold)
36+
: BoxesLabelsScoresConverter(std::move(initializer), confidence_threshold, iou_threshold) {
3637
const GstStructure *s = getModelProcOutputInfo().get();
3738
gboolean do_cls_sftm = FALSE;
3839
if (gst_structure_has_field(s, "do_cls_softmax")) {

0 commit comments

Comments
 (0)