I configured NMS when compiling using the following settings. The “w” and “h” values were copied from the anchor box widths and heights found here:
nms_layer_config = {
"nms_scores_th": 0.001,
"nms_iou_th": 0.5,
"image_dims": [320, 320],
"max_proposals_per_class": 100,
"centers_scale_factor": 1,
"bbox_dimensions_scale_factor": 1,
"classes": 2,
"background_removal": True,
"background_removal_index": 0,
"bbox_decoders": [
{
"w": [0.075, 0.10606602, 0.05303301, 0.09449408, 0.13363481,
0.06681741, 0.11905508, 0.1683693, 0.08418465],
"h": [0.075, 0.05303301, 0.10606602, 0.09449408, 0.06681741,
0.13363481, 0.11905508, 0.08418465, 0.1683693],
"reg_layer": "sprite_cola_model/conv65",
"cls_layer": "sprite_cola_model/conv66"
},
{
"w": [0.15, 0.21213203, 0.10606602, 0.18898816, 0.26726963,
0.13363481, 0.23811015, 0.3367386, 0.1683693],
"h": [0.15, 0.10606602, 0.21213203, 0.18898816, 0.13363481,
0.26726963, 0.23811015, 0.1683693, 0.3367386],
"reg_layer": "sprite_cola_model/conv74",
"cls_layer": "sprite_cola_model/conv75"
},
# More bbox decoders...
]
}
also modified my detection pipeline using GStreamer, as shown below:
class GStreamerDetectionApp(GStreamerApp):
def __init__(self, app_callback, user_data):
parser = get_default_parser()
parser.add_argument(
"--labels-json",
default=None,
help="Path to custom labels JSON file",
)
args = parser.parse_args()
super().__init__(args, user_data)
# Set Hailo model parameters
self.batch_size = 1
self.network_width = 320
self.network_height = 320
self.network_format = "RGB"
nms_score_threshold = 0.001
nms_iou_threshold = 0.5
still not able to see bounding boxes in the output properly. I could see a bounding box very low accurately and not precisely.
Thanks