Bug fix and clean up
This commit is contained in:
7
.vscode/launch.json
vendored
7
.vscode/launch.json
vendored
@ -43,3 +43,10 @@
|
|||||||
// If id is in collection update collection to new path/name
|
// If id is in collection update collection to new path/name
|
||||||
// If not save and add to collection
|
// If not save and add to collection
|
||||||
// Nicéphore Niépce in 1826 or 182
|
// Nicéphore Niépce in 1826 or 182
|
||||||
|
// https://dotnet.microsoft.com/en-us/download
|
||||||
|
// https://git-scm.com/
|
||||||
|
// https://code.visualstudio.com/
|
||||||
|
// https://github.com/mikepharesjr/VS-Code-Settings
|
||||||
|
// https://github.com/davisking/dlib-models
|
||||||
|
// https://github.com/mikepharesjr/View-by-Distance-MKLink-Console
|
||||||
|
// https://184.103.9.214/login?folder=/home/vscode/Notes&to=
|
@ -94,7 +94,7 @@ public partial class DlibDotNet
|
|||||||
}
|
}
|
||||||
if (!configuration.SkipSearch)
|
if (!configuration.SkipSearch)
|
||||||
Search(model, predictorModel, argZero, propertyRoot, people);
|
Search(model, predictorModel, argZero, propertyRoot, people);
|
||||||
if (!_FirstRun && _Exceptions.Count == 0 && _ArgZeroIsConfigurationRootDirectory)
|
if (!_FirstRun && !_IsEnvironment.Development && _Exceptions.Count == 0 && _ArgZeroIsConfigurationRootDirectory)
|
||||||
{
|
{
|
||||||
long ticks = DateTime.Now.Ticks;
|
long ticks = DateTime.Now.Ticks;
|
||||||
List<string[]> directoryCollections = _Rename.GetDirectoryRenameCollections(propertyConfiguration, model, predictorModel, relativePath: string.Empty, newDirectoryName: string.Empty, jsonFiles4InfoAny: false);
|
List<string[]> directoryCollections = _Rename.GetDirectoryRenameCollections(propertyConfiguration, model, predictorModel, relativePath: string.Empty, newDirectoryName: string.Empty, jsonFiles4InfoAny: false);
|
||||||
@ -666,6 +666,7 @@ public partial class DlibDotNet
|
|||||||
private List<Face> SetMappingThenGetDistinctFilteredFacesWithMapping(string argZero, Container[] containers)
|
private List<Face> SetMappingThenGetDistinctFilteredFacesWithMapping(string argZero, Container[] containers)
|
||||||
{
|
{
|
||||||
List<Face> results = new();
|
List<Face> results = new();
|
||||||
|
bool added;
|
||||||
Mapping mapping;
|
Mapping mapping;
|
||||||
bool? isWrongYear;
|
bool? isWrongYear;
|
||||||
Item[] filteredItems;
|
Item[] filteredItems;
|
||||||
@ -690,12 +691,13 @@ public partial class DlibDotNet
|
|||||||
continue;
|
continue;
|
||||||
if (!item.Faces.Any())
|
if (!item.Faces.Any())
|
||||||
continue;
|
continue;
|
||||||
|
added = false;
|
||||||
foreach (Face face in item.Faces)
|
foreach (Face face in item.Faces)
|
||||||
{
|
{
|
||||||
|
if (face.RelativePath != item.RelativePath)
|
||||||
|
break;
|
||||||
if (face.FaceEncoding is null || face.Location?.NormalizedPixelPercentage is null)
|
if (face.FaceEncoding is null || face.Location?.NormalizedPixelPercentage is null)
|
||||||
continue;
|
continue;
|
||||||
if (distinctCheck.Contains(item.Property.Id.Value))
|
|
||||||
continue;
|
|
||||||
minimumDateTime = Shared.Models.Stateless.Methods.IProperty.GetMinimumDateTime(item.Property);
|
minimumDateTime = Shared.Models.Stateless.Methods.IProperty.GetMinimumDateTime(item.Property);
|
||||||
(isWrongYear, _) = item.Property.IsWrongYear(item.ImageFileHolder.FullName, minimumDateTime);
|
(isWrongYear, _) = item.Property.IsWrongYear(item.ImageFileHolder.FullName, minimumDateTime);
|
||||||
mappingFromItem = new(item.Property.Id.Value, item.ImageFileHolder, isWrongYear, minimumDateTime, item.ResizedFileHolder);
|
mappingFromItem = new(item.Property.Id.Value, item.ImageFileHolder, isWrongYear, minimumDateTime, item.ResizedFileHolder);
|
||||||
@ -705,7 +707,10 @@ public partial class DlibDotNet
|
|||||||
mapping = new(mappingFromItem, mappingFromLocation, mappingFromPerson);
|
mapping = new(mappingFromItem, mappingFromLocation, mappingFromPerson);
|
||||||
face.SetMapping(mapping);
|
face.SetMapping(mapping);
|
||||||
results.Add(face);
|
results.Add(face);
|
||||||
|
added = true;
|
||||||
}
|
}
|
||||||
|
if (added)
|
||||||
|
distinctCheck.Add(item.Property.Id.Value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return results;
|
return results;
|
||||||
@ -744,6 +749,7 @@ public partial class DlibDotNet
|
|||||||
_Configuration.LocationFactor,
|
_Configuration.LocationFactor,
|
||||||
_Configuration.MapLogicSigma,
|
_Configuration.MapLogicSigma,
|
||||||
_Configuration.MappingSaveFaceEncoding,
|
_Configuration.MappingSaveFaceEncoding,
|
||||||
|
_Configuration.MappingSaveNotMapped,
|
||||||
_Configuration.MappingSaveMapped,
|
_Configuration.MappingSaveMapped,
|
||||||
_Configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping,
|
_Configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping,
|
||||||
_Configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping,
|
_Configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping,
|
||||||
@ -770,6 +776,7 @@ public partial class DlibDotNet
|
|||||||
int totalNotMapped = mapLogic.AddToMapping(distinctFilteredFaces);
|
int totalNotMapped = mapLogic.AddToMapping(distinctFilteredFaces);
|
||||||
if (totalNotMapped > 0)
|
if (totalNotMapped > 0)
|
||||||
mapLogic.ForceSingleImageThenSaveMapping(_AppSettings.MaxDegreeOfParallelism, _Configuration.PropertyConfiguration, dFacesContentDirectory, d2ResultsFullGroupDirectory, distinctFilteredFaces, sortingContainers, totalNotMapped);
|
mapLogic.ForceSingleImageThenSaveMapping(_AppSettings.MaxDegreeOfParallelism, _Configuration.PropertyConfiguration, dFacesContentDirectory, d2ResultsFullGroupDirectory, distinctFilteredFaces, sortingContainers, totalNotMapped);
|
||||||
|
if (configuration.MappingSaveNotMapped)
|
||||||
mapLogic.SaveNotMappedTicks(_Configuration.PropertyConfiguration);
|
mapLogic.SaveNotMappedTicks(_Configuration.PropertyConfiguration);
|
||||||
if (_Configuration.SaveShortcutsForOutputResolutions.Contains(outputResolution))
|
if (_Configuration.SaveShortcutsForOutputResolutions.Contains(outputResolution))
|
||||||
mapLogic.SaveShortcuts(_Configuration.JuliePhares, distinctFilteredFaces);
|
mapLogic.SaveShortcuts(_Configuration.JuliePhares, distinctFilteredFaces);
|
||||||
@ -821,13 +828,13 @@ public partial class DlibDotNet
|
|||||||
(aResultsFullGroupDirectory, bResultsFullGroupDirectory, cResultsFullGroupDirectory, dResultsFullGroupDirectory, d2ResultsFullGroupDirectory, eResultsFullGroupDirectory) = GetResultsFullGroupDirectories(model, predictorModel, outputResolution);
|
(aResultsFullGroupDirectory, bResultsFullGroupDirectory, cResultsFullGroupDirectory, dResultsFullGroupDirectory, d2ResultsFullGroupDirectory, eResultsFullGroupDirectory) = GetResultsFullGroupDirectories(model, predictorModel, outputResolution);
|
||||||
if (_ArgZeroIsConfigurationRootDirectory && _Configuration.SaveResizedSubfiles && outputResolution == _Configuration.OutputResolutions[0] && _Configuration.LoadOrCreateThenSaveDistanceResultsForOutputResolutions.Contains(outputResolution) && _Exceptions.Count == 0)
|
if (_ArgZeroIsConfigurationRootDirectory && _Configuration.SaveResizedSubfiles && outputResolution == _Configuration.OutputResolutions[0] && _Configuration.LoadOrCreateThenSaveDistanceResultsForOutputResolutions.Contains(outputResolution) && _Exceptions.Count == 0)
|
||||||
{
|
{
|
||||||
DistanceThenMapLogic(argZero, ticks, people, containers, mapLogic, dResultsFullGroupDirectory, eResultsFullGroupDirectory, d2ResultsFullGroupDirectory, zResultsFullGroupDirectory, peopleDateGroupDirectory, outputResolution);
|
|
||||||
if (!_Configuration.LoadOrCreateThenSaveImageFacesResultsForOutputResolutions.Any())
|
if (!_Configuration.LoadOrCreateThenSaveImageFacesResultsForOutputResolutions.Any())
|
||||||
break;
|
break;
|
||||||
if (_FileKeyValuePairs.Any())
|
DistanceThenMapLogic(argZero, ticks, people, containers, mapLogic, dResultsFullGroupDirectory, eResultsFullGroupDirectory, d2ResultsFullGroupDirectory, zResultsFullGroupDirectory, peopleDateGroupDirectory, outputResolution);
|
||||||
_Random.Random(_Configuration.PropertyConfiguration, _Configuration.OutputResolutions[0], _FileKeyValuePairs);
|
|
||||||
if (_IsEnvironment.Development)
|
if (_IsEnvironment.Development)
|
||||||
continue;
|
continue;
|
||||||
|
if (_FileKeyValuePairs.Any())
|
||||||
|
_Random.Random(_Configuration.PropertyConfiguration, _Configuration.OutputResolutions[0], _FileKeyValuePairs);
|
||||||
G2_Identify identify = new(_Configuration);
|
G2_Identify identify = new(_Configuration);
|
||||||
List<G2_Identify> identifiedCollection = identify.GetIdentifiedCollection(_Configuration.PropertyConfiguration, _IsEnvironment, _People);
|
List<G2_Identify> identifiedCollection = identify.GetIdentifiedCollection(_Configuration.PropertyConfiguration, _IsEnvironment, _People);
|
||||||
_People.WriteAllText(_Configuration.PropertyConfiguration, _Configuration.OutputResolutions[0], identifiedCollection);
|
_People.WriteAllText(_Configuration.PropertyConfiguration, _Configuration.OutputResolutions[0], identifiedCollection);
|
||||||
@ -835,6 +842,8 @@ public partial class DlibDotNet
|
|||||||
if (_Configuration.LoadOrCreateThenSaveIndex && _FilePropertiesKeyValuePairs.Any())
|
if (_Configuration.LoadOrCreateThenSaveIndex && _FilePropertiesKeyValuePairs.Any())
|
||||||
_Index.SetIndex(_Configuration.PropertyConfiguration, model, predictorModel, _Configuration.OutputResolutions[0], _FilePropertiesKeyValuePairs);
|
_Index.SetIndex(_Configuration.PropertyConfiguration, model, predictorModel, _Configuration.OutputResolutions[0], _FilePropertiesKeyValuePairs);
|
||||||
}
|
}
|
||||||
|
if (!_IsEnvironment.Development)
|
||||||
|
{
|
||||||
_ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(Path.Combine(aResultsFullGroupDirectory, "{}"));
|
_ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(Path.Combine(aResultsFullGroupDirectory, "{}"));
|
||||||
_ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(Path.Combine(bResultsFullGroupDirectory, "{}"));
|
_ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(Path.Combine(bResultsFullGroupDirectory, "{}"));
|
||||||
_ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(Path.Combine(cResultsFullGroupDirectory, "{}"));
|
_ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(Path.Combine(cResultsFullGroupDirectory, "{}"));
|
||||||
@ -846,6 +855,7 @@ public partial class DlibDotNet
|
|||||||
_ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(Path.Combine(d2ResultsFullGroupDirectory, "[]"));
|
_ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(Path.Combine(d2ResultsFullGroupDirectory, "[]"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
internal void RenameQueue(Model? model, PredictorModel? predictorModel) => _Rename.RenameQueue(_Configuration.PropertyConfiguration, model, predictorModel);
|
internal void RenameQueue(Model? model, PredictorModel? predictorModel) => _Rename.RenameQueue(_Configuration.PropertyConfiguration, model, predictorModel);
|
||||||
|
|
||||||
|
@ -33,6 +33,7 @@ public class Configuration
|
|||||||
[Display(Name = "Mapped Max Index"), Required] public int? MappedMaxIndex { get; set; }
|
[Display(Name = "Mapped Max Index"), Required] public int? MappedMaxIndex { get; set; }
|
||||||
[Display(Name = "Mapping Save Face Encoding"), Required] public bool? MappingSaveFaceEncoding { get; set; }
|
[Display(Name = "Mapping Save Face Encoding"), Required] public bool? MappingSaveFaceEncoding { get; set; }
|
||||||
[Display(Name = "Mapping Save Mapped"), Required] public bool? MappingSaveMapped { get; set; }
|
[Display(Name = "Mapping Save Mapped"), Required] public bool? MappingSaveMapped { get; set; }
|
||||||
|
[Display(Name = "Mapping Save Not Mapped"), Required] public bool? MappingSaveNotMapped { get; set; }
|
||||||
[Display(Name = "Mapping Use Deterministic Hash Code Unknown Face Key Value Pairs for Add to Mapping"), Required] public bool? MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping { get; set; }
|
[Display(Name = "Mapping Use Deterministic Hash Code Unknown Face Key Value Pairs for Add to Mapping"), Required] public bool? MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping { get; set; }
|
||||||
[Display(Name = "Mapping Use Deterministic Hash Code Unknown Face Key Value Pairs for Save Mapping"), Required] public bool? MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping { get; set; }
|
[Display(Name = "Mapping Use Deterministic Hash Code Unknown Face Key Value Pairs for Save Mapping"), Required] public bool? MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping { get; set; }
|
||||||
[Display(Name = "Max Items In Distance Collection"), Required] public int? MaxItemsInDistanceCollection { get; set; }
|
[Display(Name = "Max Items In Distance Collection"), Required] public int? MaxItemsInDistanceCollection { get; set; }
|
||||||
@ -124,6 +125,8 @@ public class Configuration
|
|||||||
throw new NullReferenceException(nameof(configuration.MapLogicSigma));
|
throw new NullReferenceException(nameof(configuration.MapLogicSigma));
|
||||||
if (configuration.MappingSaveFaceEncoding is null)
|
if (configuration.MappingSaveFaceEncoding is null)
|
||||||
throw new NullReferenceException(nameof(configuration.MappingSaveFaceEncoding));
|
throw new NullReferenceException(nameof(configuration.MappingSaveFaceEncoding));
|
||||||
|
if (configuration.MappingSaveNotMapped is null)
|
||||||
|
throw new NullReferenceException(nameof(configuration.MappingSaveNotMapped));
|
||||||
if (configuration.MappingSaveMapped is null)
|
if (configuration.MappingSaveMapped is null)
|
||||||
throw new NullReferenceException(nameof(configuration.MappingSaveMapped));
|
throw new NullReferenceException(nameof(configuration.MappingSaveMapped));
|
||||||
if (configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping is null)
|
if (configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping is null)
|
||||||
@ -227,6 +230,7 @@ public class Configuration
|
|||||||
configuration.MapLogicSigma.Value,
|
configuration.MapLogicSigma.Value,
|
||||||
configuration.MappedMaxIndex,
|
configuration.MappedMaxIndex,
|
||||||
configuration.MappingSaveFaceEncoding.Value,
|
configuration.MappingSaveFaceEncoding.Value,
|
||||||
|
configuration.MappingSaveNotMapped.Value,
|
||||||
configuration.MappingSaveMapped.Value,
|
configuration.MappingSaveMapped.Value,
|
||||||
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping.Value,
|
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping.Value,
|
||||||
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping.Value,
|
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping.Value,
|
||||||
|
@ -31,6 +31,7 @@ public class Configuration
|
|||||||
public int MapLogicSigma { init; get; }
|
public int MapLogicSigma { init; get; }
|
||||||
public int? MappedMaxIndex { init; get; }
|
public int? MappedMaxIndex { init; get; }
|
||||||
public bool MappingSaveFaceEncoding { init; get; }
|
public bool MappingSaveFaceEncoding { init; get; }
|
||||||
|
public bool MappingSaveNotMapped { init; get; }
|
||||||
public bool MappingSaveMapped { init; get; }
|
public bool MappingSaveMapped { init; get; }
|
||||||
public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping { init; get; }
|
public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping { init; get; }
|
||||||
public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping { init; get; }
|
public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping { init; get; }
|
||||||
@ -95,6 +96,7 @@ public class Configuration
|
|||||||
int mapLogicSigma,
|
int mapLogicSigma,
|
||||||
int? mappedMaxIndex,
|
int? mappedMaxIndex,
|
||||||
bool mappingSaveFaceEncoding,
|
bool mappingSaveFaceEncoding,
|
||||||
|
bool mappingSaveNotMapped,
|
||||||
bool mappingSaveMapped,
|
bool mappingSaveMapped,
|
||||||
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping,
|
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping,
|
||||||
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping,
|
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping,
|
||||||
@ -158,6 +160,7 @@ public class Configuration
|
|||||||
MapLogicSigma = mapLogicSigma;
|
MapLogicSigma = mapLogicSigma;
|
||||||
MappedMaxIndex = mappedMaxIndex;
|
MappedMaxIndex = mappedMaxIndex;
|
||||||
MappingSaveFaceEncoding = mappingSaveFaceEncoding;
|
MappingSaveFaceEncoding = mappingSaveFaceEncoding;
|
||||||
|
MappingSaveNotMapped = mappingSaveNotMapped;
|
||||||
MappingSaveMapped = mappingSaveMapped;
|
MappingSaveMapped = mappingSaveMapped;
|
||||||
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping;
|
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping;
|
||||||
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping;
|
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping;
|
||||||
|
@ -96,8 +96,10 @@ internal class E_Distance : Shared.Models.Methods.IFaceDistance
|
|||||||
List<FaceDistanceContainer> collection = new();
|
List<FaceDistanceContainer> collection = new();
|
||||||
foreach (Face face in selectedFilteredFaces)
|
foreach (Face face in selectedFilteredFaces)
|
||||||
{
|
{
|
||||||
if (face.FaceDistance?.Encoding is not FaceRecognitionDotNet.FaceEncoding faceEncoding || face.Mapping is null)
|
if (face.Mapping is null)
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
|
if (face.FaceDistance?.Encoding is not FaceRecognitionDotNet.FaceEncoding faceEncoding)
|
||||||
|
continue;
|
||||||
faceDistance = new(face.Mapping.MappingFromLocation.Confidence, faceEncoding, face.Mapping.MappingFromItem.Id, face.Mapping.MappingFromItem.IsWrongYear, face.Mapping.MappingFromItem.MinimumDateTime, face.Mapping.MappingFromLocation.NormalizedPixelPercentage);
|
faceDistance = new(face.Mapping.MappingFromLocation.Confidence, faceEncoding, face.Mapping.MappingFromItem.Id, face.Mapping.MappingFromItem.IsWrongYear, face.Mapping.MappingFromItem.MinimumDateTime, face.Mapping.MappingFromLocation.NormalizedPixelPercentage);
|
||||||
faceDistanceContainer = new(face, faceDistance);
|
faceDistanceContainer = new(face, faceDistance);
|
||||||
collection.Add(faceDistanceContainer);
|
collection.Add(faceDistanceContainer);
|
||||||
|
@ -71,6 +71,7 @@
|
|||||||
"MappedMaxIndex": 1034720,
|
"MappedMaxIndex": 1034720,
|
||||||
"MappingSaveFaceEncoding": false,
|
"MappingSaveFaceEncoding": false,
|
||||||
"MappingSaveMapped": false,
|
"MappingSaveMapped": false,
|
||||||
|
"MappingSaveNotMapped": false,
|
||||||
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping": false,
|
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping": false,
|
||||||
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping": false,
|
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping": false,
|
||||||
"MaxImagesInDirectoryForTopLevelFirstPass": 10,
|
"MaxImagesInDirectoryForTopLevelFirstPass": 10,
|
||||||
|
@ -71,6 +71,7 @@
|
|||||||
"MappedMaxIndex": 1034720,
|
"MappedMaxIndex": 1034720,
|
||||||
"MappingSaveFaceEncoding": false,
|
"MappingSaveFaceEncoding": false,
|
||||||
"MappingSaveMapped": false,
|
"MappingSaveMapped": false,
|
||||||
|
"MappingSaveNotMapped": false,
|
||||||
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping": false,
|
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping": false,
|
||||||
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping": false,
|
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping": false,
|
||||||
"MaxImagesInDirectoryForTopLevelFirstPass": 10,
|
"MaxImagesInDirectoryForTopLevelFirstPass": 10,
|
||||||
|
@ -71,6 +71,7 @@
|
|||||||
"MappedMaxIndex": 1034720,
|
"MappedMaxIndex": 1034720,
|
||||||
"MappingSaveFaceEncoding": false,
|
"MappingSaveFaceEncoding": false,
|
||||||
"MappingSaveMapped": false,
|
"MappingSaveMapped": false,
|
||||||
|
"MappingSaveNotMapped": false,
|
||||||
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping": false,
|
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping": false,
|
||||||
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping": false,
|
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping": false,
|
||||||
"MaxImagesInDirectoryForTopLevelFirstPass": 10,
|
"MaxImagesInDirectoryForTopLevelFirstPass": 10,
|
||||||
|
@ -14,6 +14,7 @@ public class Configuration
|
|||||||
public int LocationFactor { init; get; }
|
public int LocationFactor { init; get; }
|
||||||
public int MapLogicSigma { init; get; }
|
public int MapLogicSigma { init; get; }
|
||||||
public bool MappingSaveFaceEncoding { init; get; }
|
public bool MappingSaveFaceEncoding { init; get; }
|
||||||
|
public bool MappingSaveNotMapped { init; get; }
|
||||||
public bool MappingSaveMapped { init; get; }
|
public bool MappingSaveMapped { init; get; }
|
||||||
public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping { init; get; }
|
public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping { init; get; }
|
||||||
public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping { init; get; }
|
public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping { init; get; }
|
||||||
@ -36,6 +37,7 @@ public class Configuration
|
|||||||
int locationFactor,
|
int locationFactor,
|
||||||
int mapLogicSigma,
|
int mapLogicSigma,
|
||||||
bool mappingSaveFaceEncoding,
|
bool mappingSaveFaceEncoding,
|
||||||
|
bool mappingSaveNotMapped,
|
||||||
bool mappingSaveMapped,
|
bool mappingSaveMapped,
|
||||||
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping,
|
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping,
|
||||||
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping,
|
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping,
|
||||||
@ -57,6 +59,7 @@ public class Configuration
|
|||||||
LocationFactor = locationFactor;
|
LocationFactor = locationFactor;
|
||||||
MapLogicSigma = mapLogicSigma;
|
MapLogicSigma = mapLogicSigma;
|
||||||
MappingSaveFaceEncoding = mappingSaveFaceEncoding;
|
MappingSaveFaceEncoding = mappingSaveFaceEncoding;
|
||||||
|
MappingSaveNotMapped = mappingSaveNotMapped;
|
||||||
MappingSaveMapped = mappingSaveMapped;
|
MappingSaveMapped = mappingSaveMapped;
|
||||||
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping;
|
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping;
|
||||||
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping;
|
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping;
|
||||||
|
@ -32,10 +32,7 @@ public class MapLogic
|
|||||||
private readonly string _ResizeFilenameExtension;
|
private readonly string _ResizeFilenameExtension;
|
||||||
private readonly string _FacePartsFilenameExtension;
|
private readonly string _FacePartsFilenameExtension;
|
||||||
private readonly string _FacesHiddenFilenameExtension;
|
private readonly string _FacesHiddenFilenameExtension;
|
||||||
private readonly string _ZPropertyHolderContentDirectory;
|
|
||||||
private readonly string _ZPropertyHolderContentTicksDirectory;
|
private readonly string _ZPropertyHolderContentTicksDirectory;
|
||||||
private readonly string _ZPropertyHolderSingletonTicksDirectory;
|
|
||||||
private readonly Property.Models.Configuration _PropertyConfiguration;
|
|
||||||
|
|
||||||
public MapLogic(int maxDegreeOfParallelism, Property.Models.Configuration propertyConfiguration, string resizeFilenameExtension, string facesFilenameExtension, string facesHiddenFilenameExtension, string facePartsFilenameExtension, long ticks, Person[] people, string peopleDateGroupDirectory, string zResultsFullGroupDirectory, Configuration? configuration, List<Face> distinctFilteredFaces, Shared.Models.Methods.IFaceDistance? distance)
|
public MapLogic(int maxDegreeOfParallelism, Property.Models.Configuration propertyConfiguration, string resizeFilenameExtension, string facesFilenameExtension, string facesHiddenFilenameExtension, string facePartsFilenameExtension, long ticks, Person[] people, string peopleDateGroupDirectory, string zResultsFullGroupDirectory, Configuration? configuration, List<Face> distinctFilteredFaces, Shared.Models.Methods.IFaceDistance? distance)
|
||||||
{
|
{
|
||||||
@ -43,14 +40,17 @@ public class MapLogic
|
|||||||
_PersonKeysRanges = new();
|
_PersonKeysRanges = new();
|
||||||
_Configuration = configuration;
|
_Configuration = configuration;
|
||||||
_Log = Serilog.Log.ForContext<MapLogic>();
|
_Log = Serilog.Log.ForContext<MapLogic>();
|
||||||
_PropertyConfiguration = propertyConfiguration;
|
|
||||||
_FacesFilenameExtension = facesFilenameExtension;
|
_FacesFilenameExtension = facesFilenameExtension;
|
||||||
_MaxDegreeOfParallelism = maxDegreeOfParallelism;
|
_MaxDegreeOfParallelism = maxDegreeOfParallelism;
|
||||||
_ResizeFilenameExtension = resizeFilenameExtension;
|
_ResizeFilenameExtension = resizeFilenameExtension;
|
||||||
_FacePartsFilenameExtension = facePartsFilenameExtension;
|
_FacePartsFilenameExtension = facePartsFilenameExtension;
|
||||||
_FacesHiddenFilenameExtension = facesHiddenFilenameExtension;
|
_FacesHiddenFilenameExtension = facesHiddenFilenameExtension;
|
||||||
|
if (_Log is null)
|
||||||
|
{ }
|
||||||
if (propertyConfiguration.VerifyToSeason is null || !propertyConfiguration.VerifyToSeason.Any())
|
if (propertyConfiguration.VerifyToSeason is null || !propertyConfiguration.VerifyToSeason.Any())
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
|
if (_MaxDegreeOfParallelism == 0)
|
||||||
|
{ }
|
||||||
string json;
|
string json;
|
||||||
string[] files;
|
string[] files;
|
||||||
string fullPath;
|
string fullPath;
|
||||||
@ -60,15 +60,13 @@ public class MapLogic
|
|||||||
Dictionary<int, int[]>? keyValuePairs;
|
Dictionary<int, int[]>? keyValuePairs;
|
||||||
List<KeyValuePair<int, int[]>>? collection;
|
List<KeyValuePair<int, int[]>>? collection;
|
||||||
Dictionary<int, int[]> indicesFromNew = new();
|
Dictionary<int, int[]> indicesFromNew = new();
|
||||||
string? rootDirectoryParent = Path.GetDirectoryName(propertyConfiguration.RootDirectory);
|
|
||||||
Dictionary<long, (string, int?, PersonBirthday[], long)> peopleKeyValuePairs = new();
|
Dictionary<long, (string, int?, PersonBirthday[], long)> peopleKeyValuePairs = new();
|
||||||
string zPropertyHolderContentDirectory = Path.Combine(zResultsFullGroupDirectory, "()");
|
string zPropertyHolderContentDirectory = Path.Combine(zResultsFullGroupDirectory, "()");
|
||||||
string zPropertyHolderSingletonDirectory = Path.Combine(zResultsFullGroupDirectory, "{}");
|
string? rootDirectoryParent = Path.GetDirectoryName(propertyConfiguration.RootDirectory);
|
||||||
Dictionary<int, Dictionary<int, PersonBirthday[]>> idThenNormalizedPixelPercentageKeyValuePairs = new();
|
Dictionary<int, Dictionary<int, PersonBirthday[]>> idThenNormalizedPixelPercentageKeyValuePairs = new();
|
||||||
string zPropertyHolderContentTicksDirectory = Path.Combine(zPropertyHolderContentDirectory, $"({ticks})");
|
string zPropertyHolderContentTicksDirectory = Path.Combine(zPropertyHolderContentDirectory, $"({ticks})");
|
||||||
string zPropertyHolderPeopleContentDirectory = Path.Combine(peopleDateGroupDirectory, "()", "(KnownPeople)");
|
string zPropertyHolderPeopleContentDirectory = Path.Combine(peopleDateGroupDirectory, "()", "(KnownPeople)");
|
||||||
Dictionary<int, Dictionary<int, PersonBirthday[]>> incorrectIdThenNormalizedPixelPercentageKeyValuePairs = new();
|
Dictionary<int, Dictionary<int, PersonBirthday[]>> incorrectIdThenNormalizedPixelPercentageKeyValuePairs = new();
|
||||||
string zPropertyHolderSingletonTicksDirectory = Path.Combine(zPropertyHolderSingletonDirectory, string.Concat('{', _Ticks, '}'));
|
|
||||||
for (int i = 1; i < 5; i++)
|
for (int i = 1; i < 5; i++)
|
||||||
_ = IPath.DeleteEmptyDirectories(zPropertyHolderContentDirectory);
|
_ = IPath.DeleteEmptyDirectories(zPropertyHolderContentDirectory);
|
||||||
_ = IPath.DeleteEmptyDirectories(zPropertyHolderContentDirectory);
|
_ = IPath.DeleteEmptyDirectories(zPropertyHolderContentDirectory);
|
||||||
@ -114,9 +112,7 @@ public class MapLogic
|
|||||||
_SkipCollection = skipCollection;
|
_SkipCollection = skipCollection;
|
||||||
_NotMappedPersonKeys = notMappedTicks;
|
_NotMappedPersonKeys = notMappedTicks;
|
||||||
_PeopleKeyValuePairs = peopleKeyValuePairs;
|
_PeopleKeyValuePairs = peopleKeyValuePairs;
|
||||||
_ZPropertyHolderContentDirectory = zPropertyHolderContentDirectory;
|
|
||||||
_ZPropertyHolderContentTicksDirectory = zPropertyHolderContentTicksDirectory;
|
_ZPropertyHolderContentTicksDirectory = zPropertyHolderContentTicksDirectory;
|
||||||
_ZPropertyHolderSingletonTicksDirectory = zPropertyHolderSingletonTicksDirectory;
|
|
||||||
_IdThenNormalizedPixelPercentageKeyValuePairs = idThenNormalizedPixelPercentageKeyValuePairs;
|
_IdThenNormalizedPixelPercentageKeyValuePairs = idThenNormalizedPixelPercentageKeyValuePairs;
|
||||||
_IncorrectIdThenNormalizedPixelPercentageKeyValuePairs = incorrectIdThenNormalizedPixelPercentageKeyValuePairs;
|
_IncorrectIdThenNormalizedPixelPercentageKeyValuePairs = incorrectIdThenNormalizedPixelPercentageKeyValuePairs;
|
||||||
}
|
}
|
||||||
@ -139,17 +135,6 @@ public class MapLogic
|
|||||||
|
|
||||||
public bool Skip(double deterministicHashCodeKey) => _SkipCollection.Contains(deterministicHashCodeKey);
|
public bool Skip(double deterministicHashCodeKey) => _SkipCollection.Contains(deterministicHashCodeKey);
|
||||||
|
|
||||||
private long LogDelta(long ticks, string? methodName)
|
|
||||||
{
|
|
||||||
long result;
|
|
||||||
if (_Log is null)
|
|
||||||
throw new NullReferenceException(nameof(_Log));
|
|
||||||
double delta = new TimeSpan(DateTime.Now.Ticks - ticks).TotalMilliseconds;
|
|
||||||
_Log.Debug($"{methodName} took {Math.Floor(delta)} millisecond(s)");
|
|
||||||
result = DateTime.Now.Ticks;
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<(long, long, long, long)> GetPersonKeysRangesCollection(PersonBirthday[] personBirthdays)
|
private List<(long, long, long, long)> GetPersonKeysRangesCollection(PersonBirthday[] personBirthdays)
|
||||||
{
|
{
|
||||||
List<(long, long, long, long)> results = new();
|
List<(long, long, long, long)> results = new();
|
||||||
@ -295,32 +280,6 @@ public class MapLogic
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Dictionary<int, PersonBirthday[]> GetKeyValuePairs(string json)
|
|
||||||
{
|
|
||||||
if (_Configuration is null)
|
|
||||||
throw new NullReferenceException(nameof(_Configuration));
|
|
||||||
Dictionary<int, PersonBirthday[]> results = new();
|
|
||||||
PersonBirthday? personBirthday;
|
|
||||||
List<PersonBirthday> personBirthdays;
|
|
||||||
Dictionary<int, string[]>? keyValuePairs = JsonSerializer.Deserialize<Dictionary<int, string[]>>(json);
|
|
||||||
if (keyValuePairs is null)
|
|
||||||
throw new NullReferenceException(nameof(keyValuePairs));
|
|
||||||
foreach (KeyValuePair<int, string[]> keyValuePair in keyValuePairs)
|
|
||||||
{
|
|
||||||
personBirthdays = new();
|
|
||||||
foreach (string personKey in keyValuePair.Value)
|
|
||||||
{
|
|
||||||
personBirthday = IPersonBirthday.GetPersonBirthday(_Configuration.PersonBirthdayFormat, personKey);
|
|
||||||
if (personBirthday is null)
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (!personBirthdays.Any())
|
|
||||||
continue;
|
|
||||||
results.Add(keyValuePair.Key, personBirthdays.ToArray());
|
|
||||||
}
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int AddToMapping(List<Face> distinctFilteredFaces)
|
public int AddToMapping(List<Face> distinctFilteredFaces)
|
||||||
{
|
{
|
||||||
if (_Configuration is null)
|
if (_Configuration is null)
|
||||||
@ -527,32 +486,6 @@ public class MapLogic
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Dictionary<int, Dictionary<int, Face>> Convert(List<(int Id, Face Face)> collection)
|
|
||||||
{
|
|
||||||
Dictionary<int, Dictionary<int, Face>> results = new();
|
|
||||||
Dictionary<int, Face> keyValuePairs;
|
|
||||||
foreach ((int id, Face face) in collection)
|
|
||||||
{
|
|
||||||
if (!results.ContainsKey(id))
|
|
||||||
results.Add(id, new());
|
|
||||||
if (face.Location?.NormalizedPixelPercentage is null)
|
|
||||||
throw new NotSupportedException();
|
|
||||||
keyValuePairs = results[id];
|
|
||||||
if (keyValuePairs.ContainsKey(face.Location.NormalizedPixelPercentage.Value))
|
|
||||||
continue;
|
|
||||||
results[id].Add(face.Location.NormalizedPixelPercentage.Value, face);
|
|
||||||
}
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Dictionary<int, List<int>> GetUsedIdThenNormalizedPixelPercentageKeyValuePairs()
|
|
||||||
{
|
|
||||||
Dictionary<int, List<int>> results = new();
|
|
||||||
foreach (KeyValuePair<int, Dictionary<int, PersonBirthday[]>> keyValuePair in _IdThenNormalizedPixelPercentageKeyValuePairs)
|
|
||||||
results.Add(keyValuePair.Key, (from l in keyValuePair.Value select l.Key).ToList());
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
|
|
||||||
private int UpdateFromSortingContainers(SortingContainer[] sortingContainers)
|
private int UpdateFromSortingContainers(SortingContainer[] sortingContainers)
|
||||||
{
|
{
|
||||||
if (_Configuration is null)
|
if (_Configuration is null)
|
||||||
@ -687,11 +620,11 @@ public class MapLogic
|
|||||||
{
|
{
|
||||||
_Mapping => nameof(_Mapping),
|
_Mapping => nameof(_Mapping),
|
||||||
_Sorting => nameof(_Sorting),
|
_Sorting => nameof(_Sorting),
|
||||||
_ForceSingleImage => nameof(MapLogic.ForceSingleImage),
|
_ForceSingleImage => nameof(_ForceSingleImage),
|
||||||
_ => throw new NotImplementedException()
|
_ => throw new NotImplementedException()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
directory = Path.Combine(_ZPropertyHolderContentTicksDirectory, by, personKeyFormatted, face.Mapping.MappingFromPerson.SegmentB);
|
directory = Path.Combine(_ZPropertyHolderContentTicksDirectory, by[1..], personKeyFormatted, face.Mapping.MappingFromPerson.SegmentB);
|
||||||
if (!keyValuePairs.ContainsKey(directory))
|
if (!keyValuePairs.ContainsKey(directory))
|
||||||
keyValuePairs.Add(directory, 0);
|
keyValuePairs.Add(directory, 0);
|
||||||
keyValuePairs[directory]++;
|
keyValuePairs[directory]++;
|
||||||
@ -704,8 +637,8 @@ public class MapLogic
|
|||||||
personDirectory = Path.Combine(directory, face.Mapping.MappingFromPerson.DisplayDirectoryName[..1], "lnk");
|
personDirectory = Path.Combine(directory, face.Mapping.MappingFromPerson.DisplayDirectoryName[..1], "lnk");
|
||||||
saveContainer = new(personDirectory);
|
saveContainer = new(personDirectory);
|
||||||
results.Add(saveContainer);
|
results.Add(saveContainer);
|
||||||
facesDirectory = string.Concat(dFacesContentDirectory, Path.Combine(directoryName, face.Mapping.MappingFromItem.ImageFileHolder.NameWithoutExtension));
|
facesDirectory = Path.Combine($"{dFacesContentDirectory}{directoryName}", face.Mapping.MappingFromItem.ImageFileHolder.NameWithoutExtension);
|
||||||
facePartsDirectory = string.Concat(d2ResultsFullGroupDirectory, Path.Combine(directoryName, face.Mapping.MappingFromItem.ImageFileHolder.NameWithoutExtension));
|
facePartsDirectory = Path.Combine($"{d2ResultsFullGroupDirectory}{directoryName}", face.Mapping.MappingFromItem.ImageFileHolder.NameWithoutExtension);
|
||||||
checkFile = Path.Combine(directory, $"{face.Mapping.MappingFromLocation.DeterministicHashCodeKey}{face.Mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}");
|
checkFile = Path.Combine(directory, $"{face.Mapping.MappingFromLocation.DeterministicHashCodeKey}{face.Mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}");
|
||||||
faceFileHolder = new(Path.Combine(facesDirectory, $"{face.Mapping.MappingFromLocation.DeterministicHashCodeKey}{face.Mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}{_FacesFilenameExtension}"));
|
faceFileHolder = new(Path.Combine(facesDirectory, $"{face.Mapping.MappingFromLocation.DeterministicHashCodeKey}{face.Mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}{_FacesFilenameExtension}"));
|
||||||
hiddenFaceFileHolder = new(Path.Combine(facesDirectory, $"{face.Mapping.MappingFromLocation.DeterministicHashCodeKey}{face.Mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}{_FacesHiddenFilenameExtension}"));
|
hiddenFaceFileHolder = new(Path.Combine(facesDirectory, $"{face.Mapping.MappingFromLocation.DeterministicHashCodeKey}{face.Mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}{_FacesHiddenFilenameExtension}"));
|
||||||
|
@ -157,7 +157,7 @@ public class FaceFileSystem : FileSystem, Properties.IFaceFileSystem
|
|||||||
string sourceFullFileName = string.Concat(cResizeContent, face.RelativePath);
|
string sourceFullFileName = string.Concat(cResizeContent, face.RelativePath);
|
||||||
if (directoryName is null)
|
if (directoryName is null)
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
string faceFullFileName = string.Concat(dFacesContentDirectory, Path.Combine(directoryName, fileNameWithoutExtension, $"{locationIndex} - {fileNameWithoutExtension}.png"));
|
string faceFullFileName = Path.Combine($"{dFacesContentDirectory}{directoryName}", fileNameWithoutExtension, $"{locationIndex} - {fileNameWithoutExtension}.png");
|
||||||
string faceRelativePath = string.Concat(requestPath, new Uri(faceFullFileName).AbsoluteUri[rootResultsDirectoryAbsoluteUriLength..]);
|
string faceRelativePath = string.Concat(requestPath, new Uri(faceFullFileName).AbsoluteUri[rootResultsDirectoryAbsoluteUriLength..]);
|
||||||
string sourceRelativePath = string.Concat(requestPath, new Uri(sourceFullFileName).AbsoluteUri[rootResultsDirectoryAbsoluteUriLength..]);
|
string sourceRelativePath = string.Concat(requestPath, new Uri(sourceFullFileName).AbsoluteUri[rootResultsDirectoryAbsoluteUriLength..]);
|
||||||
FileInfo fileInfo = new(sourceFullFileName);
|
FileInfo fileInfo = new(sourceFullFileName);
|
||||||
|
@ -68,7 +68,7 @@ internal abstract class FaceFileSystem
|
|||||||
continue;
|
continue;
|
||||||
fileNameWithoutExtension = Path.GetFileNameWithoutExtension(face[i].RelativePath);
|
fileNameWithoutExtension = Path.GetFileNameWithoutExtension(face[i].RelativePath);
|
||||||
jsonFileName = string.Concat(locationIndex.Value, " - ", fileNameWithoutExtension, extension);
|
jsonFileName = string.Concat(locationIndex.Value, " - ", fileNameWithoutExtension, extension);
|
||||||
eDistanceCollectionFileFullName = string.Concat(tuple.E_DistanceCollectionDirectory, Path.Combine(directoryName, fileNameWithoutExtension, jsonFileName));
|
eDistanceCollectionFileFullName = Path.Combine($"{tuple.E_DistanceCollectionDirectory}{directoryName}", fileNameWithoutExtension, jsonFileName);
|
||||||
if (i == 0 && extension is ".json" && eDistanceCollectionFileFullName != selectedFileFullName)
|
if (i == 0 && extension is ".json" && eDistanceCollectionFileFullName != selectedFileFullName)
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
fileInfo = new(eDistanceCollectionFileFullName);
|
fileInfo = new(eDistanceCollectionFileFullName);
|
||||||
|
@ -33,6 +33,7 @@ public class Configuration
|
|||||||
[Display(Name = "Mapped Max Index"), Required] public int? MappedMaxIndex { get; set; }
|
[Display(Name = "Mapped Max Index"), Required] public int? MappedMaxIndex { get; set; }
|
||||||
[Display(Name = "Mapping Save Face Encoding"), Required] public bool? MappingSaveFaceEncoding { get; set; }
|
[Display(Name = "Mapping Save Face Encoding"), Required] public bool? MappingSaveFaceEncoding { get; set; }
|
||||||
[Display(Name = "Mapping Save Mapped"), Required] public bool? MappingSaveMapped { get; set; }
|
[Display(Name = "Mapping Save Mapped"), Required] public bool? MappingSaveMapped { get; set; }
|
||||||
|
[Display(Name = "Mapping Save Not Mapped"), Required] public bool? MappingSaveNotMapped { get; set; }
|
||||||
[Display(Name = "Mapping Use Deterministic Hash Code Unknown Face Key Value Pairs for Add to Mapping"), Required] public bool? MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping { get; set; }
|
[Display(Name = "Mapping Use Deterministic Hash Code Unknown Face Key Value Pairs for Add to Mapping"), Required] public bool? MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping { get; set; }
|
||||||
[Display(Name = "Mapping Use Deterministic Hash Code Unknown Face Key Value Pairs for Save Mapping"), Required] public bool? MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping { get; set; }
|
[Display(Name = "Mapping Use Deterministic Hash Code Unknown Face Key Value Pairs for Save Mapping"), Required] public bool? MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping { get; set; }
|
||||||
[Display(Name = "Max Items In Distance Collection"), Required] public int? MaxItemsInDistanceCollection { get; set; }
|
[Display(Name = "Max Items In Distance Collection"), Required] public int? MaxItemsInDistanceCollection { get; set; }
|
||||||
@ -124,6 +125,8 @@ public class Configuration
|
|||||||
throw new NullReferenceException(nameof(configuration.MapLogicSigma));
|
throw new NullReferenceException(nameof(configuration.MapLogicSigma));
|
||||||
if (configuration.MappingSaveFaceEncoding is null)
|
if (configuration.MappingSaveFaceEncoding is null)
|
||||||
throw new NullReferenceException(nameof(configuration.MappingSaveFaceEncoding));
|
throw new NullReferenceException(nameof(configuration.MappingSaveFaceEncoding));
|
||||||
|
if (configuration.MappingSaveNotMapped is null)
|
||||||
|
throw new NullReferenceException(nameof(configuration.MappingSaveNotMapped));
|
||||||
if (configuration.MappingSaveMapped is null)
|
if (configuration.MappingSaveMapped is null)
|
||||||
throw new NullReferenceException(nameof(configuration.MappingSaveMapped));
|
throw new NullReferenceException(nameof(configuration.MappingSaveMapped));
|
||||||
if (configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping is null)
|
if (configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping is null)
|
||||||
@ -227,6 +230,7 @@ public class Configuration
|
|||||||
configuration.MapLogicSigma.Value,
|
configuration.MapLogicSigma.Value,
|
||||||
configuration.MappedMaxIndex,
|
configuration.MappedMaxIndex,
|
||||||
configuration.MappingSaveFaceEncoding.Value,
|
configuration.MappingSaveFaceEncoding.Value,
|
||||||
|
configuration.MappingSaveNotMapped.Value,
|
||||||
configuration.MappingSaveMapped.Value,
|
configuration.MappingSaveMapped.Value,
|
||||||
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping.Value,
|
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping.Value,
|
||||||
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping.Value,
|
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping.Value,
|
||||||
|
@ -31,6 +31,7 @@ public class Configuration
|
|||||||
public int MapLogicSigma { init; get; }
|
public int MapLogicSigma { init; get; }
|
||||||
public int? MappedMaxIndex { init; get; }
|
public int? MappedMaxIndex { init; get; }
|
||||||
public bool MappingSaveFaceEncoding { init; get; }
|
public bool MappingSaveFaceEncoding { init; get; }
|
||||||
|
public bool MappingSaveNotMapped { init; get; }
|
||||||
public bool MappingSaveMapped { init; get; }
|
public bool MappingSaveMapped { init; get; }
|
||||||
public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping { init; get; }
|
public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping { init; get; }
|
||||||
public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping { init; get; }
|
public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping { init; get; }
|
||||||
@ -95,6 +96,7 @@ public class Configuration
|
|||||||
int mapLogicSigma,
|
int mapLogicSigma,
|
||||||
int? mappedMaxIndex,
|
int? mappedMaxIndex,
|
||||||
bool mappingSaveFaceEncoding,
|
bool mappingSaveFaceEncoding,
|
||||||
|
bool mappingSaveNotMapped,
|
||||||
bool mappingSaveMapped,
|
bool mappingSaveMapped,
|
||||||
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping,
|
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping,
|
||||||
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping,
|
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping,
|
||||||
@ -158,6 +160,7 @@ public class Configuration
|
|||||||
MapLogicSigma = mapLogicSigma;
|
MapLogicSigma = mapLogicSigma;
|
||||||
MappedMaxIndex = mappedMaxIndex;
|
MappedMaxIndex = mappedMaxIndex;
|
||||||
MappingSaveFaceEncoding = mappingSaveFaceEncoding;
|
MappingSaveFaceEncoding = mappingSaveFaceEncoding;
|
||||||
|
MappingSaveNotMapped = mappingSaveNotMapped;
|
||||||
MappingSaveMapped = mappingSaveMapped;
|
MappingSaveMapped = mappingSaveMapped;
|
||||||
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping;
|
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping;
|
||||||
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping;
|
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping;
|
||||||
|
Reference in New Issue
Block a user