# Smart-NMS user-config file Use the Smart-NMS user-config file to specify your model architecture, I/O configuration, and threshold parameters. The file is required. The following example is a user-config file for resnet34-ssd. A description of the parameters in each section of the code follows the example. ################################################################### # Architecture Parameters ################################################################## model-architecture : "resnet34ssd" # Options for model architecture : # "resnet34ssd" # "mv1ssd" # "retinanet" # "yolov3" # "yolov4" # "yolov5" # "resnet18ssd" # "retinaface" num-classes : 81 num-landmark : 0 layout : "NCD" # Input information input-info: # Model input image's layout information input-layout : "NCHW" # Options for layout : # "NCD" # "NDC" # "NHWC" # "NCHW" # "NAWHC" bbox-output-list : ["325"] score-output-list : ["329"] landmark-output-list : [] do-class-specific-nms : True do-softmax : False background-class-idx : 0 map-classes-coco-81-to-91 : False ################################################################## # I/O Configuration ################################################################## model-output-dir : "./r34-aimet-model/onnx_output" model-output-extension : ".bin" model-num-outputs : 1 abp-output-dir : "./r34-new-output" prior-filepath : "./data/resnet34ssd/priors_r34.bin" # CPU or AIC model-run-time : "AIC" # Required if model-run-time is AIC aic-model-info: model-binary-dir: "./r34-aimet-model/r34-binaries" # 1 = "On", # 2 = "Quantize", # 3 = "Transpose", # 4 = "Convert", # 5 = "Off", # Others : "Invalid" skip-transform-value : 1 model-output-suffix : "-activation-0-inf-" # Required if model-run-time is CPU cpu-model-info: model-output-suffix : "" model-outputs : # Array of names names : ["329" , "325" ] # 2D Array of shapes shapes : - [1, 81, 15130] - [1, 4, 15130] # Supported types "float", "float16", "int8Q", "uint8Q", "int16Q", "int32Q", "int32I", "int64I", "bool" types : ["float","float"] # offsets and scales are required for ["int8Q", "uint8Q", "int16Q", "int32Q"] types. # array of offsets offsets : [0,0] # array of scales scales : [1,1] # Model input config # All are parallel arrays of input config model-inputs: # array of names names : ["input_1"] # 2D Array of shapes shapes : - [1, 3, 1200, 1200] ################################################################## # Thresholding Parameters ################################################################## score-threshold : 0.05 # score threshold to be used in classwise and classagnostic abp-nms nms-threshold : 0.5 # iou threshold to used in nms max-detections-image : 600 # overall threshold on one data point/ image max-boxes-class : 100 # maxBoxesPerClass may be limited to be used with class specific abp-nms Copy to clipboard ## Model architecture parameters The model architecture parameters in the Smart-NMS user-config file are: - modelname: modelname is used to choose the decode the subroutine required for smart-nms. String options (“resnet34ssd”, “mv1ssd”, “retinanet”, “yolov3”. “yolov4”, “yolov5”, “resnet18ssd”, “retinaface”) > > > - Required > - Type: String - `num-classes`: Denotes the number of classes in the object-detection model. > > > - Required > - Type: Int - `num-landmark`: Denotes the number of landmark datapoints present in each branch of landmark output specified in the landmark-output-list. > > > - Optional. Default: 0 > - Type: Int - `layout`: Specifies the layout of output files. String options (“NAWHC”, “NCHW”, “NHWC”, “NCD”, “NDC”) > > > - Required > - Type: String - `input-info` > > > - `input-layout`: Input image layout. Options for layout (“NCD”,”NDC”,”NHWC”,”NCHW”,”NAWHC”). > > > > > > > > > > - Optional > > - Type: String - `bbox-output-list`: List of names of output nodes that contain box features. > > > - Required > - Type: List - `scores-output-list`: List of names of output nodes that contain score/logits features. > > > - Required > - Type: List - `landmark-output-list`: Required if num-landmark > 0, otherwise ignored. List of names of output nodes that contain score/logits features. > > > - Optional. Default: [] > - Type: List - `do-class-specific-nms`: Specify True if class-specific NMS is required. > > > - Optional. Default: False > - Type: Boolean - `do-softmax`: Specify True if softmax needs to be performed on outputs from scores-output-list. > > > - Optional. Default: False > - Type: Boolean - `background-class-idx`: Specify index of class which contains background. > > > - Optional. Default: 0 > - Type: Int - `map-classes-coco-81-to-91`: Specify `True` if required to convert class IDs from coco 81 class data set to coco 91 class data set. > > > - Optional. Default: False > - Type: Boolean - `profiling-per-iter`: This field enables the profiling of time and memory for each time client call anchor box processing handle. Otherwise, the summary of all the runs will be profiled. > > > - Optional. Default: False > - Type: Boolean ## I/O configuration The following information is required by the qaic-smart-nms tools for processing the I/O files. The `qaic-smart-nms` tools read the AIC hardware output files from `aic-output-dir`. The I/O configuration parameters in the Smart-NMS user-config file are: - `model-output-dir`: Specify the directory to look for object detection model outputs from AIC/CPU runtime. > > > - Required > - Type: PATH - `model-output-extension`: Looks for these extension files while reading inference output files from model-output-dir. > > > - Optional. Default: “.bin” > - Type: String - `model-num-outputs`: Process that many numbers of boxes, scores, landmarks from model-output-dir. > > > - Optional. Default: 1 > - Type: Int - `abp-output-dir`: Specify the directory to store smart-nms outputs. > > > - Required > - Type: PATH - `prior-filepath`: Prior refers to a predefined collection of boxes with encoded widths and heights chosen to match the widths and heights of objects in a data set. With respect to prior information all the final predicted boxes are adjusted. The Yolo family doesn’t require the prior files. In that case, an empty path can be provided. > > > - PATH - `model-run-time`: “AIC” / “CPU” > > > - Required > - Type: String - `aic-model-info` > > > - `model-binary-dir`: Path of binary directory file generated after compilation of object-detection model. > > - Required. If `model-run-time: "AIC"` > - Type: PATH > - `skip-transform-value`: Specify the value for different transformation from LRT. Skip Transform Supported Types: > > > > > > > > > - 1 = On (initial) > > - 2 = Quantize > > - 3 = Transpose > > - 4 = Convert > > - 5 = Off (Transformed) Required. If `model-run-time: "AIC"`. Default: 5 > > > - Type: Int > - `model-output-suffix`: Append this value to output node names while reading output files from `model-output-dir` if `model-run-time: "AIC".` > > - Optional. Default: “-activation-0-inf-” > - Type: String - `cpu-model-info` > > > - `model-output-suffix`: Append this value to output node names while reading output files from `model-output-dir` if `model-run-time: "CPU"`. > > - Optional. Default: “” > - Type: String > - `model-outputs` > > - `names`: Names of all output nodes in the model > > > > > > > > > > - Required. If `model-run-time: "CPU"` > > - Type: List of String > > > - `shapes`: Respectively, shapes as a list for each model output, the shape for next model output should be provided in the next line. > > > > > > > > > > - Required. If `model-run-time: "CPU"` > > - Type: List of lists > > > - `types`: List of type model output nodes specified in names, respectively. Supported types “float”, “float16”, “int8Q”, “uint8Q”,”int16Q”, “int32Q”, “int32I”, “int64I”, “bool”. > > > > > > > > > > - Required. If `model-run-time: "CPU"` > > - Type: List of String > > > - `offsets`: List of offsets for model output nodes specified in names, respectively. Offsets and scales are required for [“int8Q”,”uint8Q”, “int16Q”, “int32Q”] types. > > > > > > > > > > - Required. If `model-run-time: "CPU"` and types is quantized the value will be ignored. > > - Type: List > > > - `scales`: List of scales for model output nodes specified in names, respectively. Offsets and scales are required for [“int8Q”,”uint8Q”, “int16Q”, “int32Q”] types. > > > > > > > > > > - Required. If `model-run-time: "CPU"` and types is quantized else the value will be ignored. > > - Type: List > - `model-inputs` > > - `names`: Names of all input nodes in the model. > > > > > > > > > > - Required. > > - Type: List > > > - `shapes`: Respectively, shapes as a list for each model input, the shape for next model input should be provided in the next line. > > > > > > > > > > - Required. If `model-run-time: "CPU"` > > - Type: List of List ## Thresholding parameters The `Thresholding Parameters` section of the user-config file contains information about various thresholds required by Smart-NMS. The threshold parameters in the Smart-NMS user config file are: - `score-threshold`: Filters boxes with specified score-threshold. > > > - Optional. Default: 0.05 > - Type: Float - `nms-threshold`: Filters boxes with specified threshold on IoU across various boxes. > > > - Optional. Default: 0.45 > - Type: Float - `max-detections-image`: Limits the maximum detection per batch to specified number. > > > - Optional. Default: 100 > - Type: Int - `max-boxes-class`: Limits the maximum filtered out boxes to specified number per class. This field will be used when do-class-specific is set to True, otherwise ignored. > > > - Optional. Default: 100 > - Type: Int Last Published: Aug 25, 2026 [Previous Topic Usage](https://docs.qualcomm.com/bundle/publicresource/80-99100-3/topics/qaic-smart-nms-usage.md) [Next Topic Configuration files provided with the SDK](https://docs.qualcomm.com/bundle/publicresource/80-99100-3/topics/qaic-smart-nms-provided-config-files.md)