Files
OrpaonVision/OrpaonVision.Model/Training/DatasetModel.cs
2026-04-06 22:04:05 +08:00

240 lines
4.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
namespace OrpaonVision.Model.Training;
/// <summary>
/// 数据集模型。
/// </summary>
public sealed class DatasetModel
{
/// <summary>
/// 数据集ID。
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// 数据集名称。
/// </summary>
public string Name { get; set; } = string.Empty;
/// <summary>
/// 数据集描述。
/// </summary>
public string? Description { get; set; }
/// <summary>
/// 数据集类型。
/// </summary>
public DatasetType Type { get; set; }
/// <summary>
/// 数据集状态。
/// </summary>
public DatasetStatus Status { get; set; }
/// <summary>
/// 数据集路径。
/// </summary>
public string Path { get; set; } = string.Empty;
/// <summary>
/// 数据集格式。
/// </summary>
public string Format { get; set; } = string.Empty;
/// <summary>
/// 总图像数量。
/// </summary>
public int TotalImageCount { get; set; }
/// <summary>
/// 训练图像数量。
/// </summary>
public int TrainImageCount { get; set; }
/// <summary>
/// 验证图像数量。
/// </summary>
public int ValidationImageCount { get; set; }
/// <summary>
/// 测试图像数量。
/// </summary>
public int TestImageCount { get; set; }
/// <summary>
/// 总标注数量。
/// </summary>
public int TotalAnnotationCount { get; set; }
/// <summary>
/// 类别数量。
/// </summary>
public int ClassCount { get; set; }
/// <summary>
/// 类别列表JSON。
/// </summary>
public string ClassListJson { get; set; } = string.Empty;
/// <summary>
/// 训练集比例。
/// </summary>
public double TrainRatio { get; set; }
/// <summary>
/// 验证集比例。
/// </summary>
public double ValidationRatio { get; set; }
/// <summary>
/// 测试集比例。
/// </summary>
public double TestRatio { get; set; }
/// <summary>
/// 数据增强配置JSON。
/// </summary>
public string? DataAugmentationJson { get; set; }
/// <summary>
/// 统计信息JSON。
/// </summary>
public string? StatisticsJson { get; set; }
/// <summary>
/// 版本号。
/// </summary>
public string Version { get; set; } = "1.0.0";
/// <summary>
/// 标签文件路径。
/// </summary>
public string? LabelsFilePath { get; set; }
/// <summary>
/// 配置文件路径。
/// </summary>
public string? ConfigFilePath { get; set; }
/// <summary>
/// 是否已验证。
/// </summary>
public bool IsValidated { get; set; }
/// <summary>
/// 验证时间UTC
/// </summary>
public DateTime? ValidatedAtUtc { get; set; }
/// <summary>
/// 验证人。
/// </summary>
public string? ValidatedBy { get; set; }
/// <summary>
/// 创建人ID。
/// </summary>
public Guid CreatedById { get; set; }
/// <summary>
/// 创建人姓名。
/// </summary>
public string CreatedByName { get; set; } = string.Empty;
/// <summary>
/// 创建时间UTC
/// </summary>
public DateTime CreatedAtUtc { get; set; }
/// <summary>
/// 更新时间UTC
/// </summary>
public DateTime UpdatedAtUtc { get; set; }
/// <summary>
/// 创建人。
/// </summary>
public string CreatedBy { get; set; } = string.Empty;
/// <summary>
/// 更新人。
/// </summary>
public string UpdatedBy { get; set; } = string.Empty;
/// <summary>
/// 备注。
/// </summary>
public string? Remark { get; set; }
}
/// <summary>
/// 数据集类型枚举。
/// </summary>
public enum DatasetType
{
/// <summary>
/// 目标检测。
/// </summary>
ObjectDetection = 0,
/// <summary>
/// 图像分类。
/// </summary>
ImageClassification = 1,
/// <summary>
/// 语义分割。
/// </summary>
SemanticSegmentation = 2,
/// <summary>
/// 实例分割。
/// </summary>
InstanceSegmentation = 3
}
/// <summary>
/// 数据集状态枚举。
/// </summary>
public enum DatasetStatus
{
/// <summary>
/// 草稿。
/// </summary>
Draft = 0,
/// <summary>
/// 准备中。
/// </summary>
Preparing = 1,
/// <summary>
/// 已准备。
/// </summary>
Ready = 2,
/// <summary>
/// 验证中。
/// </summary>
Validating = 3,
/// <summary>
/// 已验证。
/// </summary>
Validated = 4,
/// <summary>
/// 验证失败。
/// </summary>
ValidationFailed = 5,
/// <summary>
/// 已发布。
/// </summary>
Published = 6,
/// <summary>
/// 已停用。
/// </summary>
Disabled = 7
}