using System.Windows; using System.Windows.Media; using Azaion.Common.Database; using Azaion.Common.DTO; using Azaion.Common.DTO.Config; using Azaion.Common.Extensions; namespace Azaion.Common; public class Constants { public const string JPG_EXT = ".jpg"; #region DirectoriesConfig public const string DEFAULT_VIDEO_DIR = "video"; public const string DEFAULT_LABELS_DIR = "labels"; public const string DEFAULT_IMAGES_DIR = "images"; public const string DEFAULT_RESULTS_DIR = "results"; public const string DEFAULT_THUMBNAILS_DIR = "thumbnails"; public const string DEFAULT_GPS_SAT_DIRECTORY = "satellitesDir"; public const string DEFAULT_GPS_ROUTE_DIRECTORY = "routeDir"; #endregion #region AnnotatorConfig public static readonly AnnotationConfig DefaultAnnotationConfig = new() { DetectionClasses = DefaultAnnotationClasses, VideoFormats = DefaultVideoFormats, ImageFormats = DefaultImageFormats, AnnotationsDbFile = DEFAULT_ANNOTATIONS_DB_FILE }; public static readonly List DefaultAnnotationClasses = [ new() { Id = 0, Name = "ArmorVehicle", ShortName = "Броня", Color = "#FF0000".ToColor() }, new() { Id = 1, Name = "Truck", ShortName = "Вантаж.", Color = "#00FF00".ToColor() }, new() { Id = 2, Name = "Vehicle", ShortName = "Машина", Color = "#0000FF".ToColor() }, new() { Id = 3, Name = "Atillery", ShortName = "Арта", Color = "#FFFF00".ToColor() }, new() { Id = 4, Name = "Shadow", ShortName = "Тінь", Color = "#FF00FF".ToColor() }, new() { Id = 5, Name = "Trenches", ShortName = "Окопи", Color = "#00FFFF".ToColor() }, new() { Id = 6, Name = "MilitaryMan", ShortName = "Військов", Color = "#188021".ToColor() }, new() { Id = 7, Name = "TyreTracks", ShortName = "Накати", Color = "#800000".ToColor() }, new() { Id = 8, Name = "AdditArmoredTank", ShortName = "Танк.захист", Color = "#008000".ToColor() }, new() { Id = 9, Name = "Smoke", ShortName = "Дим", Color = "#000080".ToColor() }, new() { Id = 10, Name = "Plane", ShortName = "Літак", Color = "#000080".ToColor() }, new() { Id = 11, Name = "Moto", ShortName = "Мото", Color = "#808000".ToColor() }, new() { Id = 12, Name = "CamouflageNet", ShortName = "Сітка", Color = "#800080".ToColor() }, new() { Id = 13, Name = "CamouflageBranches", ShortName = "Гілки", Color = "#2f4f4f".ToColor() }, new() { Id = 14, Name = "Roof", ShortName = "Дах", Color = "#1e90ff".ToColor() }, new() { Id = 15, Name = "Building", ShortName = "Будівля", Color = "#ffb6c1".ToColor() } ]; public static readonly List DefaultVideoFormats = ["mp4", "mov", "avi"]; public static readonly List DefaultImageFormats = ["jpg", "jpeg", "png", "bmp"]; public static int DEFAULT_LEFT_PANEL_WIDTH = 250; public static int DEFAULT_RIGHT_PANEL_WIDTH = 250; public const string DEFAULT_ANNOTATIONS_DB_FILE = "annotations.db"; # endregion AnnotatorConfig # region AIRecognitionConfig public static readonly AIRecognitionConfig DefaultAIRecognitionConfig = new() { FrameRecognitionSeconds = DEFAULT_FRAME_RECOGNITION_SECONDS, TrackingDistanceConfidence = TRACKING_DISTANCE_CONFIDENCE, TrackingProbabilityIncrease = TRACKING_PROBABILITY_INCREASE, TrackingIntersectionThreshold = TRACKING_INTERSECTION_THRESHOLD, FramePeriodRecognition = DEFAULT_FRAME_PERIOD_RECOGNITION }; public const double DEFAULT_FRAME_RECOGNITION_SECONDS = 2; public const double TRACKING_DISTANCE_CONFIDENCE = 0.15; public const double TRACKING_PROBABILITY_INCREASE = 15; public const double TRACKING_INTERSECTION_THRESHOLD = 0.8; public const int DEFAULT_FRAME_PERIOD_RECOGNITION = 4; public const int DETECTION_BATCH_SIZE = 4; # endregion AIRecognitionConfig #region Thumbnails public static readonly ThumbnailConfig DefaultThumbnailConfig = new() { Size = DefaultThumbnailSize, Border = DEFAULT_THUMBNAIL_BORDER }; public static readonly Size DefaultThumbnailSize = new(240, 135); public const int DEFAULT_THUMBNAIL_BORDER = 10; public const string THUMBNAIL_PREFIX = "_thumb"; public const string RESULT_PREFIX = "_result"; #endregion #region Queue public const string MQ_ANNOTATIONS_QUEUE = "azaion-annotations"; public const string MQ_ANNOTATIONS_CONFIRM_QUEUE = "azaion-annotations-confirm"; #endregion #region Database public const string ANNOTATIONS_TABLENAME = "annotations"; public const string ANNOTATIONS_QUEUE_TABLENAME = "annotations_queue"; public const string ADMIN_EMAIL = "admin@azaion.com"; public const string DETECTIONS_TABLENAME = "detections"; #endregion #region Mode Captions public const string REGULAR_MODE_CAPTION = "Норма"; public const string WINTER_MODE_CAPTION = "Зима"; public const string NIGHT_MODE_CAPTION = "Ніч"; #endregion public const string CSV_PATH = "matches.csv"; }