move detection classes and other system values from local config to remote

forbid non validators to read from queue
create better visualization in detector control
make colors for detection classes more distinguishable
fix bug with removing detection (probably completely)
This commit is contained in:
Alex Bezdieniezhnykh
2025-04-02 19:53:03 +03:00
parent e182547dc8
commit 83ae6a0ae9
19 changed files with 209 additions and 169 deletions
+6 -2
View File
@@ -38,6 +38,7 @@ public partial class App
private IAuthProvider _authProvider = null!;
private Stream _securedConfig = null!;
private Stream _systemConfig = null!;
private static readonly Guid KeyPressTaskId = Guid.NewGuid();
private void OnDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
@@ -95,7 +96,8 @@ public partial class App
{
credentials.Folder = secureAppConfig.InferenceClientConfig.ResourcesFolder;
_authProvider.Login(credentials);
_securedConfig = _resourceLoader.LoadFile("secured-config.json");
_securedConfig = _resourceLoader.LoadFile("config.secured.json");
_systemConfig = _resourceLoader.LoadFile("config.system.json");
AppDomain.CurrentDomain.AssemblyResolve += (_, a) =>
{
@@ -146,7 +148,8 @@ public partial class App
.ConfigureAppConfiguration((context, config) => config
.AddCommandLine(Environment.GetCommandLineArgs())
.AddJsonFile(SecurityConstants.CONFIG_PATH, optional: true, reloadOnChange: true)
.AddJsonStream(_securedConfig))
.AddJsonStream(_securedConfig)
.AddJsonStream(_systemConfig))
.UseSerilog()
.ConfigureServices((context, services) =>
{
@@ -159,6 +162,7 @@ public partial class App
services.ConfigureSection<AnnotationConfig>(context.Configuration);
services.ConfigureSection<AIRecognitionConfig>(context.Configuration);
services.ConfigureSection<ThumbnailConfig>(context.Configuration);
services.ConfigureSection<UIConfig>(context.Configuration);
#region External Services
+1 -40
View File
@@ -20,47 +20,8 @@
"ResultsDirectory": "E:\\results",
"ThumbnailsDirectory": "E:\\thumbnails"
},
"AnnotationConfig": {
"DetectionClasses": [
{ "Id": 0, "Name": "ArmorVehicle", "ShortName": "Броня", "Color": "#FF0000" },
{ "Id": 1, "Name": "Truck", "ShortName": "Вантаж.", "Color": "#00FF00" },
{ "Id": 2, "Name": "Vehicle", "ShortName": "Машина", "Color": "#0000FF" },
{ "Id": 3, "Name": "Atillery", "ShortName": "Арта", "Color": "#FFFF00" },
{ "Id": 4, "Name": "Shadow", "ShortName": "Тінь", "Color": "#FF00FF" },
{ "Id": 5, "Name": "Trenches", "ShortName": "Окопи", "Color": "#00FFFF" },
{ "Id": 6, "Name": "MilitaryMan", "ShortName": "Військов", "Color": "#188021" },
{ "Id": 7, "Name": "TyreTracks", "ShortName": "Накати", "Color": "#800000" },
{ "Id": 8, "Name": "AdditArmoredTank", "ShortName": "Танк.захист", "Color": "#008000" },
{ "Id": 9, "Name": "Smoke", "ShortName": "Дим", "Color": "#000080" },
{ "Id": 10, "Name": "Plane", "ShortName": "Літак", "Color": "#000080" },
{ "Id": 11, "Name": "Moto", "ShortName": "Мото", "Color": "#808000" },
{ "Id": 12, "Name": "CamouflageNnet", "ShortName": "Сітка", "Color": "#800080" },
{ "Id": 13, "Name": "CamouflageBranches", "ShortName": "Гілки", "Color": "#008080" },
{ "Id": 14, "Name": "Roof", "ShortName": "Дах", "Color": "#0050A0" },
{ "Id": 15, "Name": "Building", "ShortName": "Будівля", "Color": "#008080" }
],
"LastSelectedExplorerClass": null,
"VideoFormats": [ ".mp4", ".mov", ".avi" ],
"ImageFormats": [ ".jpg", ".jpeg", ".png", ".bmp" ],
"AnnotationsDbFile": "annotations.db",
"UIConfig": {
"LeftPanelWidth": 220.0,
"RightPanelWidth": 230.0
},
"AIRecognitionConfig": {
"FramePeriodRecognition": 4,
"FrameRecognitionSeconds": 2.0,
"ProbabilityThreshold": 0.25,
"TrackingDistanceConfidence": 0.15,
"TrackingProbabilityIncrease": 15.0,
"TrackingIntersectionThreshold": 0.8,
"ModelBatchSize": 4
},
"ThumbnailConfig": { "Size": "240,135", "Border": 10 },
"MapConfig":
{
"Service": "",
"ApiKey": ""
}
}
+8 -40
View File
@@ -3,11 +3,13 @@
"ZeroMqHost": "127.0.0.1",
"ZeroMqPort": 5131,
"RetryCount": 25,
"TimeoutSeconds": 5
"TimeoutSeconds": 5,
"ResourcesFolder": ""
},
"GpsDeniedClientConfig": {
"ZeroMqHost": "127.0.0.1",
"ZeroMqPort": 5231,
"ZeroMqPort": 5555,
"ZeroMqReceiverPort": 5556,
"RetryCount": 25,
"TimeoutSeconds": 5
},
@@ -18,42 +20,8 @@
"ResultsDirectory": "results",
"ThumbnailsDirectory": "thumbnails"
},
"AnnotationConfig": {
"DetectionClasses": [
{ "Id": 0, "Name": "ArmorVehicle", "ShortName": "Броня", "Color": "#80FF0000" },
{ "Id": 1, "Name": "Truck", "ShortName": "Вантаж.", "Color": "#8000FF00" },
{ "Id": 2, "Name": "Vehicle", "ShortName": "Машина", "Color": "#800000FF" },
{ "Id": 3, "Name": "Atillery", "ShortName": "Арта", "Color": "#80FFFF00" },
{ "Id": 4, "Name": "Shadow", "ShortName": "Тінь", "Color": "#80FF00FF" },
{ "Id": 5, "Name": "Trenches", "ShortName": "Окопи", "Color": "#8000FFFF" },
{ "Id": 6, "Name": "MilitaryMan", "ShortName": "Військов", "Color": "#80188021" },
{ "Id": 7, "Name": "TyreTracks", "ShortName": "Накати", "Color": "#80800000" },
{ "Id": 8, "Name": "AdditArmoredTank", "ShortName": "Танк.захист", "Color": "#80008000" },
{ "Id": 9, "Name": "Smoke", "ShortName": "Дим", "Color": "#8080000080" },
{ "Id": 10, "Name": "Plane", "ShortName": "Літак", "Color": "#80000080" },
{ "Id": 11, "Name": "Moto", "ShortName": "Мото", "Color": "#80808000" },
{ "Id": 12, "Name": "CamouflageNnet", "ShortName": "Сітка", "Color": "#80800080" },
{ "Id": 13, "Name": "CamouflageBranches", "ShortName": "Гілки", "Color": "#80008080" },
{ "Id": 14, "Name": "Roof", "ShortName": "Дах", "Color": "#800050A0" },
{ "Id": 15, "Name": "Building", "ShortName": "Будівля", "Color": "#80008080" }
],
"LastSelectedExplorerClass": null,
"VideoFormats": [ ".mp4", ".mov", ".avi" ],
"ImageFormats": [ ".jpg", ".jpeg", ".png", ".bmp" ],
"AnnotationsDbFile": "annotations.db",
"LeftPanelWidth": 240.0,
"RightPanelWidth": 240.0
},
"AIRecognitionConfig": {
"FramePeriodRecognition": 6,
"FrameRecognitionSeconds": 2.0,
"ProbabilityThreshold": 0.25,
"TrackingDistanceConfidence": 0.15,
"TrackingProbabilityIncrease": 15.0,
"TrackingIntersectionThreshold": 0.8,
"ModelBatchSize": 2
},
"ThumbnailConfig": { "Size": "240,135", "Border": 10 }
"UIConfig": {
"LeftPanelWidth": 170.0,
"RightPanelWidth": 120.0
}
}
+19
View File
@@ -0,0 +1,19 @@
{
"QueueConfig":
{
"Host": "188.245.120.247",
"Port": 5552,
"CommandsPort": 5672,
"ProducerUsername" : "azaion_producer",
"ProducerPassword" : "Az12onPr00duccewr",
"ConsumerUsername" : "azaion_receiver",
"ConsumerPassword" : "Az1onRecce777ve2r"
},
"MapConfig":
{
"Service": "GoogleMaps",
"ApiKey": "AIzaSyAXRBDBOskC5QOHG6VJWzmVJwYKcu6WH8k"
}
}
+37
View File
@@ -0,0 +1,37 @@
{
"AnnotationConfig": {
"DetectionClasses": [
{ "Id": 0, "Name": "ArmorVehicle", "ShortName": "Броня", "Color": "#FF0000" },
{ "Id": 1, "Name": "Truck", "ShortName": "Вантаж.", "Color": "#00FF00" },
{ "Id": 2, "Name": "Vehicle", "ShortName": "Машина", "Color": "#0000FF" },
{ "Id": 3, "Name": "Atillery", "ShortName": "Арта", "Color": "#FFFF00" },
{ "Id": 4, "Name": "Shadow", "ShortName": "Тінь", "Color": "#FF00FF" },
{ "Id": 5, "Name": "Trenches", "ShortName": "Окопи", "Color": "#00FFFF" },
{ "Id": 6, "Name": "MilitaryMan", "ShortName": "Військов", "Color": "#188021" },
{ "Id": 7, "Name": "TyreTracks", "ShortName": "Накати", "Color": "#800000" },
{ "Id": 8, "Name": "AdditArmoredTank", "ShortName": "Танк.захист", "Color": "#008000" },
{ "Id": 9, "Name": "Smoke", "ShortName": "Дим", "Color": "#000080" },
{ "Id": 10, "Name": "Plane", "ShortName": "Літак", "Color": "#000080" },
{ "Id": 11, "Name": "Moto", "ShortName": "Мото", "Color": "#808000" },
{ "Id": 12, "Name": "CamouflageNnet", "ShortName": "Сітка", "Color": "#800080" },
{ "Id": 13, "Name": "CamouflageBranches", "ShortName": "Гілки", "Color": "#2f4f4f" },
{ "Id": 14, "Name": "Roof", "ShortName": "Дах", "Color": "#1e90ff" },
{ "Id": 15, "Name": "Building", "ShortName": "Будівля", "Color": "#ffb6c1" }
],
"VideoFormats": [ ".mp4", ".mov", ".avi" ],
"ImageFormats": [ ".jpg", ".jpeg", ".png", ".bmp" ],
"AnnotationsDbFile": "annotations.db"
},
"AIRecognitionConfig": {
"FramePeriodRecognition": 4,
"FrameRecognitionSeconds": 2.0,
"ProbabilityThreshold": 0.25,
"TrackingDistanceConfidence": 0.15,
"TrackingProbabilityIncrease": 15.0,
"TrackingIntersectionThreshold": 0.8,
"ModelBatchSize": 4
},
"ThumbnailConfig": { "Size": "240,135", "Border": 10 }
}