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;
}
}