MS score threshold is set, but there is no NMS output in this model.

Hi I am using a Hailo-provided model for license plate detection. I followed the recommended workflow:

  1. I obtained the official weights and configuration files from Hailo.
    from here : hailo_model_zoo/hailo_models/license_plate_detection at master · hailo-ai/hailo_model_zoo · GitHub

  2. I converted the model to an ONNX file using Hailo Docker container without training the model just converted to onnx.
    By this tutorial : hailo_model_zoo/hailo_models/license_plate_detection/docs/TRAINING_GUIDE.rst at master · hailo-ai/hailo_model_zoo · GitHub

  3. I then compiled the ONNX model to a .hef file using the Hailo AI Suite, again via Docker.
    as suggested here :
    https://hailo.ai/developer-zone/documentation/hailo-sw-suite-2025-01/?sp_referrer=suite/suite_install.html

This occurs when attempting to perform inference with the model. Notably, when I run the following command to check the FPS, the inference completes successfully, and I get performance numbers:

hailortcli run tiny_yolov4_license_plates.hef
Running streaming inference (tiny_yolov4_license_plates.hef):
  Transform data: true
    Type:      auto
    Quantized: true
Network tiny_yolov4_license_plates/tiny_yolov4_license_plates: 100% | 2372 | FPS: 473.82 | ETA: 00:00:00
> Inference result:
 Network group: tiny_yolov4_license_plates
    Frames count: 2371
    FPS: 473.63
    Send Rate: 1967.13 Mbit/s
    Recv Rate: 153.68 Mbit/s

re there existing documentation or known issues regarding the integration of NMS during model conversion for detection models with Hailo?

and why I even get this error when I am doing it with your model and Docker provided by Hailo ?
I would appreciate any guidance on resolving this issue.
Thanks

The HailoRT CLI run command works be sending random data to the model according to the input shape. So it will work with or without NMS configured.

Use the following command to see whether NMS is part of the model.

hailortcli parse-hef model.hef

If you see multiple outputs the model has no NMS included in the HEF file. Otherwise you will see the NMS information.

NMS is added by a model script command. e.g. for yolov8n

nms_postprocess("../../postprocess_config/yolov8n_nms_config.json", meta_arch=yolov8, engine=cpu)

See the Model Zoo ALLS script for yolov8n

GitHub - Hailo Model Zoo - yolov8n.alls

You must modify the JSON file in the command according to your model. The example file can be found in the Model Zoo.

GitHub - Hailo Model Zoo - yolov8n_nms_config.json

Hi thanks for the quick respond if I am using tiny_yolov4?
I don’t see this file in available architectures.

this is the file i got but there is no nms_postprocess here
Is it possible to add here the NMS layer ? or to run without it ?

Also the file that provided here : Tiny_yolov4_license_plates missing from model zoo - #4 by j.ribeirovega
by @nina-vilela got 2 outputs when running this command : ```
hailortcli parse-hef model.hef

Hi @Andrey
To the best of my knowledge, you need to write your own postprocessor that takes in the 2 output tensors and returns the bbox coords and probabilities. If you are looking for license plate detection/recognition, we published a guide that uses yolov8 based models: A Comprehensive Guide to Building a License Plate Recognition (LPR) Systems. Please see if it helps.

@shashi thanks I will try to do it