| gt-file | Default ground-truth file or directory for all models (format auto-detected: KITTI dir, NVSchema JSONL, COCO JSON, or TAO JSON); per-model overrides go in the config-file [model-<name>] sections; leave empty to run in no-GT relative-comparison mode | String | gt-file=/path/to/gt |
| config-file | Path to a GKeyFile INI config (see configs/config_nvinfereval.txt); keys in the file override the corresponding GObject properties, and per-model [model-<name>] sections set model-specific GT files, KPI thresholds, and promotion margins; leave empty to use GObject properties only | String | config-file=config_nvinfereval.txt |
| eval-interval | Number of Primary frames per evaluation epoch, counted independently per model_name; shadow frames are excluded from the count so the epoch always spans exactly this many Primary frames regardless of whether a shadow model is present | Integer, 1 to 4,294,967,295 | eval-interval=1000 |
| iou-threshold | Minimum IoU for a prediction to count as a true positive in precision/recall/F1 computation; AP@0.5 and AP@0.5:0.95 always use their fixed standard thresholds | Float, 0.0 to 1.0 | iou-threshold=0.5 |
| min-ap-margin | Default margin by which the shadow’s AP@0.5 must exceed the primary’s AP@0.5 to trigger promotion; per-model override available in config-file | Float, 0.0 to 1.0 | min-ap-margin=0.02 |
| kpi-ap50 | Default minimum AP@0.5 the shadow must reach for promotion (0.0 = disabled); per-model override available in config-file | Float, 0.0 to 1.0 | kpi-ap50=0.0 |
| kpi-precision | Default minimum mean precision the shadow must reach (0.0 = disabled); per-model override available in config-file | Float, 0.0 to 1.0 | kpi-precision=0.0 |
| kpi-recall | Default minimum mean recall the shadow must reach (0.0 = disabled); per-model override available in config-file | Float, 0.0 to 1.0 | kpi-recall=0.0 |
| promotion-mode | Action taken when the shadow wins an epoch (Mode B only): 0 (promote) shadow becomes primary and A/B ends; 1 (swap) shadow becomes primary, old primary becomes shadow, A/B continues; 2 (report-only) metrics reported, no REST call, pure monitoring | Integer, 0 to 2 | promotion-mode=0 |
| report-file | Optional path to write JSON epoch reports (appended); leave empty to disable file output (a GstMessage is always posted) | String | report-file=/tmp/eval_report.jsonl |
| show-gt-overlay | Draws ground-truth bounding boxes as green rectangles via nvosd; useful for debugging GT alignment | Boolean | show-gt-overlay=0 |
| show-ap-table | Prints the per-class AP/precision/recall table to the console at each epoch boundary | Boolean | show-ap-table=0 |
| exclude-classes | Comma-separated list of class labels to exclude from mean AP/P/R; excluded classes are still shown per-class with an [EXCLUDED] note | String | exclude-classes=unknown,Box |
| exclude-undetected | Automatically excludes from mean AP/P/R any class for which the model produced zero detections (TP=0, FP=0); such classes appear in the per-class table with [UNDETECTED] | Boolean | exclude-undetected=1 |
| cumulative | When TRUE, metrics are computed over all frames since pipeline start (accumulator never resets); when FALSE, each epoch is an independent tumbling window of eval-interval Primary frames | Boolean | cumulative=1 |