using OpenCvSharp; namespace AIFotoONLUS.Core { /// /// Configuration options that control model file locations, input sizes /// and runtime thresholds used by . /// public class ModelConfiguration { /// /// Path to the Darknet configuration (.cfg) file for the detection network. /// public string DetectionCfg { get; set; } = "models/detection.cfg"; /// /// Path to the Darknet weights (.weights) file for the detection network. /// public string DetectionWeights { get; set; } = "models/detection.weights"; /// /// Path to the Darknet configuration (.cfg) file for the recognition network. /// public string RecognitionCfg { get; set; } = "models/recognition.cfg"; /// /// Path to the Darknet weights (.weights) file for the recognition network. /// public string RecognitionWeights { get; set; } = "models/recognition.weights"; /// /// Confidence threshold used to filter out low-probability detections. /// public double ConfidenceThreshold { get; set; } = 0.5; /// /// Non-maximum suppression (NMS) IoU threshold used to remove overlapping /// detection boxes. /// public double NmsThreshold { get; set; } = 0.4; /// /// Input size used when preparing the blob for the detection network. /// public Size DetectionInputSize { get; set; } = new Size(416, 416); /// /// Input size used when preparing the blob for the recognition network. /// public Size RecognitionInputSize { get; set; } = new Size(140, 120); /// /// Labels representing digit classes in the recognition model. The order /// must match the class ordering used by the trained recognition network. /// public string[] NumberClasses { get; set; } = new[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }; /// /// When enabled, recognition crops will be saved to disk under /// "logs/crops" for diagnostic inspection. Disabled by default. /// public bool EnableCropSaving { get; set; } = false; } }