Drag Drop Form and Copy Not Mapped Faces
This commit is contained in:
parent
c6757ad332
commit
cfeeb0eb95
1
.vscode/launch.json
vendored
1
.vscode/launch.json
vendored
@ -12,6 +12,7 @@
|
|||||||
// If you have changed target frameworks, make sure to update the program path.
|
// If you have changed target frameworks, make sure to update the program path.
|
||||||
"programC": "${workspaceFolder}/Compare/bin/Debug/net6.0/win-x64/Compare.dll",
|
"programC": "${workspaceFolder}/Compare/bin/Debug/net6.0/win-x64/Compare.dll",
|
||||||
"programD": "${workspaceFolder}/Date-Group/bin/Debug/net6.0/win-x64/Date-Group.dll",
|
"programD": "${workspaceFolder}/Date-Group/bin/Debug/net6.0/win-x64/Date-Group.dll",
|
||||||
|
"programDD": "${workspaceFolder}/Drag-Drop/bin/Debug/net6.0-windows/win-x64/Drag-Drop.dll",
|
||||||
"program": "${workspaceFolder}/Instance/bin/Debug/net6.0/win-x64/Instance.dll",
|
"program": "${workspaceFolder}/Instance/bin/Debug/net6.0/win-x64/Instance.dll",
|
||||||
"programN": "${workspaceFolder}/Not-Copy-Copy/bin/Debug/net6.0/win-x64/Not-Copy-Copy.dll",
|
"programN": "${workspaceFolder}/Not-Copy-Copy/bin/Debug/net6.0/win-x64/Not-Copy-Copy.dll",
|
||||||
"programP": "${workspaceFolder}/PrepareForOld/bin/Debug/net6.0/win-x64/PrepareForOld.dll",
|
"programP": "${workspaceFolder}/PrepareForOld/bin/Debug/net6.0/win-x64/PrepareForOld.dll",
|
||||||
|
@ -80,7 +80,7 @@ public partial class Form : System.Windows.Forms.Form
|
|||||||
DragEnter += new DragEventHandler(Form1_DragEnter);
|
DragEnter += new DragEventHandler(Form1_DragEnter);
|
||||||
Property.Models.A_Property propertyLogic = new(_AppSettings.MaxDegreeOfParallelism, _Configuration.PropertyConfiguration, _ResizeFileNameExtension, _Configuration.Reverse);
|
Property.Models.A_Property propertyLogic = new(_AppSettings.MaxDegreeOfParallelism, _Configuration.PropertyConfiguration, _ResizeFileNameExtension, _Configuration.Reverse);
|
||||||
(j, f, t, containers) = Property.Models.Stateless.Container.GetContainers(_Configuration.PropertyConfiguration, firstRun, propertyLogic);
|
(j, f, t, containers) = Property.Models.Stateless.Container.GetContainers(_Configuration.PropertyConfiguration, firstRun, propertyLogic);
|
||||||
List<MappingFromItem> collection = Program.GetCollection(_Configuration, containers);
|
List<MappingFromItem> collection = Program.GetMappingFromItemCollection(_Configuration, containers);
|
||||||
foreach (MappingFromItem mappingFromItem in collection)
|
foreach (MappingFromItem mappingFromItem in collection)
|
||||||
{
|
{
|
||||||
if (_IdToMappingFromItem.ContainsKey(mappingFromItem.Id))
|
if (_IdToMappingFromItem.ContainsKey(mappingFromItem.Id))
|
||||||
|
@ -47,7 +47,7 @@ static class Program
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<MappingFromItem> GetCollection(Models.Configuration configuration, Container[] containers)
|
public static List<MappingFromItem> GetMappingFromItemCollection(Models.Configuration configuration, Container[] containers)
|
||||||
{
|
{
|
||||||
List<MappingFromItem> results = new();
|
List<MappingFromItem> results = new();
|
||||||
bool? isWrongYear;
|
bool? isWrongYear;
|
||||||
@ -75,4 +75,5 @@ static class Program
|
|||||||
}
|
}
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -36,8 +36,6 @@ public partial class DlibDotNet
|
|||||||
private readonly Models.Configuration _Configuration;
|
private readonly Models.Configuration _Configuration;
|
||||||
private readonly bool _ArgZeroIsConfigurationRootDirectory;
|
private readonly bool _ArgZeroIsConfigurationRootDirectory;
|
||||||
private readonly Map.Models.Configuration _MapConfiguration;
|
private readonly Map.Models.Configuration _MapConfiguration;
|
||||||
private readonly List<KeyValuePair<string, string>> _FileKeyValuePairs;
|
|
||||||
private readonly Dictionary<string, List<Tuple<string, Shared.Models.Property>>> _FilePropertiesKeyValuePairs;
|
|
||||||
|
|
||||||
public DlibDotNet(
|
public DlibDotNet(
|
||||||
List<string> args,
|
List<string> args,
|
||||||
@ -57,8 +55,6 @@ public partial class DlibDotNet
|
|||||||
_Exceptions = new List<string>();
|
_Exceptions = new List<string>();
|
||||||
PersonContainer[] personContainers;
|
PersonContainer[] personContainers;
|
||||||
_Log = Serilog.Log.ForContext<DlibDotNet>();
|
_Log = Serilog.Log.ForContext<DlibDotNet>();
|
||||||
_FileKeyValuePairs = new List<KeyValuePair<string, string>>();
|
|
||||||
_FilePropertiesKeyValuePairs = new Dictionary<string, List<Tuple<string, Shared.Models.Property>>>();
|
|
||||||
Property.Models.Configuration propertyConfiguration = Property.Models.Binder.Configuration.Get(isEnvironment, configurationRoot);
|
Property.Models.Configuration propertyConfiguration = Property.Models.Binder.Configuration.Get(isEnvironment, configurationRoot);
|
||||||
_Log.Information(propertyConfiguration.RootDirectory);
|
_Log.Information(propertyConfiguration.RootDirectory);
|
||||||
Property.Models.Configuration.Verify(propertyConfiguration, requireExist: false);
|
Property.Models.Configuration.Verify(propertyConfiguration, requireExist: false);
|
||||||
@ -504,8 +500,6 @@ public partial class DlibDotNet
|
|||||||
string json;
|
string json;
|
||||||
string checkFile;
|
string checkFile;
|
||||||
int sourceDirectoryLength = container.SourceDirectory.Length;
|
int sourceDirectoryLength = container.SourceDirectory.Length;
|
||||||
if (_ArgZeroIsConfigurationRootDirectory && outputResolution == _Configuration.OutputResolutions[0])
|
|
||||||
_FilePropertiesKeyValuePairs.Add(container.SourceDirectory, new List<Tuple<string, Shared.Models.Property>>());
|
|
||||||
JsonSerializerOptions writeIndentedJsonSerializerOptions = new() { WriteIndented = false };
|
JsonSerializerOptions writeIndentedJsonSerializerOptions = new() { WriteIndented = false };
|
||||||
if (!(from l in propertyCollection where l?.Width is null select true).Any())
|
if (!(from l in propertyCollection where l?.Width is null select true).Any())
|
||||||
{
|
{
|
||||||
@ -526,11 +520,6 @@ public partial class DlibDotNet
|
|||||||
if (item.ImageFileHolder is null)
|
if (item.ImageFileHolder is null)
|
||||||
continue;
|
continue;
|
||||||
key = Shared.Models.Stateless.Methods.IPath.GetRelativePath(item.ImageFileHolder.FullName, sourceDirectoryLength);
|
key = Shared.Models.Stateless.Methods.IPath.GetRelativePath(item.ImageFileHolder.FullName, sourceDirectoryLength);
|
||||||
if (_ArgZeroIsConfigurationRootDirectory && outputResolution == _Configuration.OutputResolutions[0])
|
|
||||||
{
|
|
||||||
_FileKeyValuePairs.Add(new KeyValuePair<string, string>(container.SourceDirectory, key));
|
|
||||||
_FilePropertiesKeyValuePairs[container.SourceDirectory].Add(new Tuple<string, Shared.Models.Property>(key, propertyCollection[i]));
|
|
||||||
}
|
|
||||||
propertyCollectionKeyValuePairs.Add(new KeyValuePair<string, Shared.Models.Property>(key, propertyCollection[i]));
|
propertyCollectionKeyValuePairs.Add(new KeyValuePair<string, Shared.Models.Property>(key, propertyCollection[i]));
|
||||||
resizeKeyValuePairsCollections.Add(new KeyValuePair<string, Dictionary<string, int[]>>(key, resizeKeyValuePairs[i]));
|
resizeKeyValuePairsCollections.Add(new KeyValuePair<string, Dictionary<string, int[]>>(key, resizeKeyValuePairs[i]));
|
||||||
imageFaceCollectionsKeyValuePairs.Add(new KeyValuePair<string, List<Shared.Models.Face>?>(key, imageFaceCollections[i]));
|
imageFaceCollectionsKeyValuePairs.Add(new KeyValuePair<string, List<Shared.Models.Face>?>(key, imageFaceCollections[i]));
|
||||||
@ -693,8 +682,6 @@ public partial class DlibDotNet
|
|||||||
foreach (string outputResolution in _Configuration.OutputResolutions)
|
foreach (string outputResolution in _Configuration.OutputResolutions)
|
||||||
{
|
{
|
||||||
total = 0;
|
total = 0;
|
||||||
_FileKeyValuePairs.Clear();
|
|
||||||
_FilePropertiesKeyValuePairs.Clear();
|
|
||||||
(aResultsFullGroupDirectory, bResultsFullGroupDirectory, cResultsFullGroupDirectory, dResultsFullGroupDirectory) = GetResultsFullGroupDirectories(outputResolution);
|
(aResultsFullGroupDirectory, bResultsFullGroupDirectory, cResultsFullGroupDirectory, dResultsFullGroupDirectory) = GetResultsFullGroupDirectories(outputResolution);
|
||||||
for (int i = 0; i < containers.Length; i++)
|
for (int i = 0; i < containers.Length; i++)
|
||||||
{
|
{
|
||||||
@ -872,10 +859,11 @@ public partial class DlibDotNet
|
|||||||
mapLogicSupport);
|
mapLogicSupport);
|
||||||
Dictionary<int, Dictionary<int, Mapping>> idToNormalizedPixelPercentageToMapping = MapLogicSupport.GetIdToNormalizedPixelPercentageToFace(mappingCollection);
|
Dictionary<int, Dictionary<int, Mapping>> idToNormalizedPixelPercentageToMapping = MapLogicSupport.GetIdToNormalizedPixelPercentageToFace(mappingCollection);
|
||||||
mapLogic.CopyManualFiles(dFacesContentDirectory, idToNormalizedPixelPercentageToMapping);
|
mapLogic.CopyManualFiles(dFacesContentDirectory, idToNormalizedPixelPercentageToMapping);
|
||||||
|
mapLogic.CopyNotMappedFaces(_Configuration.FaceDistanceAreaPermilleTolerance, dFacesContentDirectory, idToNormalizedPixelPercentageToMapping);
|
||||||
(Dictionary<long, int> personKeyToCount, int totalNotMapped) = mapLogic.AddToMapping(mappingCollection);
|
(Dictionary<long, int> personKeyToCount, int totalNotMapped) = mapLogic.AddToMapping(mappingCollection);
|
||||||
if (_Configuration.MappingSaveMapped)
|
if (_Configuration.SaveMappedForOutputResolutions.Contains(outputResolution))
|
||||||
mapLogic.SaveMapped(dFacesContentDirectory, d2FacePartsContentDirectory, mappingCollection, idToNormalizedPixelPercentageToMapping, personKeyToCount, totalNotMapped);
|
mapLogic.SaveMapped(dFacesContentDirectory, d2FacePartsContentDirectory, mappingCollection, idToNormalizedPixelPercentageToMapping, personKeyToCount, totalNotMapped);
|
||||||
if (_Configuration.MappingSaveNotMapped)
|
if (_Configuration.SaveNotMappedForOutputResolutions.Contains(outputResolution))
|
||||||
mapLogic.SaveNotMappedTicks();
|
mapLogic.SaveNotMappedTicks();
|
||||||
if (_Configuration.SaveShortcutsForOutputResolutions.Contains(outputResolution))
|
if (_Configuration.SaveShortcutsForOutputResolutions.Contains(outputResolution))
|
||||||
mapLogic.SaveShortcuts(a2PeopleSingletonDirectory, personContainers, filteredItems, mappingCollection, personKeyToCount);
|
mapLogic.SaveShortcuts(a2PeopleSingletonDirectory, personContainers, filteredItems, mappingCollection, personKeyToCount);
|
||||||
@ -963,6 +951,35 @@ public partial class DlibDotNet
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<MappingFromItem> GetMappingFromItemCollection(Container[] containers)
|
||||||
|
{
|
||||||
|
List<MappingFromItem> results = new();
|
||||||
|
bool? isWrongYear;
|
||||||
|
Item[] filteredItems;
|
||||||
|
DateTime minimumDateTime;
|
||||||
|
MappingFromItem mappingFromItem;
|
||||||
|
foreach (Container container in containers)
|
||||||
|
{
|
||||||
|
if (!container.Items.Any())
|
||||||
|
continue;
|
||||||
|
if (_Configuration.IgnoreRelativePaths.Any(l => container.SourceDirectory.Contains(l)) && IsIgnoreRelativePath(container.SourceDirectory))
|
||||||
|
continue;
|
||||||
|
filteredItems = GetFilterItems(container);
|
||||||
|
if (!filteredItems.Any())
|
||||||
|
continue;
|
||||||
|
foreach (Item item in filteredItems)
|
||||||
|
{
|
||||||
|
if (item.Property?.Id is null || item.ImageFileHolder is null)
|
||||||
|
continue;
|
||||||
|
minimumDateTime = Shared.Models.Stateless.Methods.IProperty.GetMinimumDateTime(item.Property);
|
||||||
|
(isWrongYear, _) = item.Property.IsWrongYear(item.ImageFileHolder.FullName, minimumDateTime);
|
||||||
|
mappingFromItem = new(item.Property.Id.Value, item.ImageFileHolder, isWrongYear, minimumDateTime, item.RelativePath, item.ImageFileHolder);
|
||||||
|
results.Add(mappingFromItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
private void Search(long ticks, string argZero, string propertyRoot, PersonContainer[] personContainers)
|
private void Search(long ticks, string argZero, string propertyRoot, PersonContainer[] personContainers)
|
||||||
{
|
{
|
||||||
int j;
|
int j;
|
||||||
@ -1024,13 +1041,13 @@ public partial class DlibDotNet
|
|||||||
MapLogic(argZero, ticks, personContainers, containers, a2PeopleSingletonDirectory, dResultsFullGroupDirectory, d2FacePartsContentDirectory, eDistanceContentDirectory, outputResolution);
|
MapLogic(argZero, ticks, personContainers, containers, a2PeopleSingletonDirectory, dResultsFullGroupDirectory, d2FacePartsContentDirectory, eDistanceContentDirectory, outputResolution);
|
||||||
if (_IsEnvironment.Development)
|
if (_IsEnvironment.Development)
|
||||||
continue;
|
continue;
|
||||||
if (_FileKeyValuePairs.Any())
|
List<MappingFromItem> mappingFromItemCollection = GetMappingFromItemCollection(containers);
|
||||||
_Random.Random(_Configuration.PropertyConfiguration, _Configuration.OutputResolutions[0], _FileKeyValuePairs);
|
_Random.Random(_Configuration.PropertyConfiguration, _Configuration.OutputResolutions[0], mappingFromItemCollection);
|
||||||
G2_Identify identify = new(_Configuration);
|
G2_Identify identify = new(_Configuration);
|
||||||
List<G2_Identify> identifiedCollection = identify.GetIdentifiedCollection(_IsEnvironment, _Configuration.PropertyConfiguration, _Faces.FileNameExtension);
|
List<G2_Identify> identifiedCollection = identify.GetIdentifiedCollection(_IsEnvironment, _Configuration.PropertyConfiguration, _Faces.FileNameExtension);
|
||||||
identify.WriteAllText(_Configuration.PropertyConfiguration, _Configuration.OutputResolutions[0], identifiedCollection);
|
identify.WriteAllText(_Configuration.PropertyConfiguration, _Configuration.OutputResolutions[0], identifiedCollection);
|
||||||
if (_Configuration.LoadOrCreateThenSaveIndex && _FilePropertiesKeyValuePairs.Any())
|
if (_Configuration.LoadOrCreateThenSaveIndex)
|
||||||
_Index.SetIndex(_Configuration.PropertyConfiguration, _Configuration.OutputResolutions[0], _FilePropertiesKeyValuePairs);
|
_Index.SetIndex(_Configuration.PropertyConfiguration, _Configuration.OutputResolutions[0]);
|
||||||
}
|
}
|
||||||
if (!_IsEnvironment.Development)
|
if (!_IsEnvironment.Development)
|
||||||
{
|
{
|
||||||
|
@ -36,8 +36,6 @@ public class Configuration
|
|||||||
[Display(Name = "Location Factor"), Required] public int? LocationFactor { get; set; }
|
[Display(Name = "Location Factor"), Required] public int? LocationFactor { get; set; }
|
||||||
[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 Default Name"), Required] public string MappingDefaultName { get; set; }
|
[Display(Name = "Mapping Default Name"), Required] public string MappingDefaultName { 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; }
|
||||||
@ -67,9 +65,11 @@ public class Configuration
|
|||||||
[Display(Name = "Reverse"), Required] public bool? Reverse { get; set; }
|
[Display(Name = "Reverse"), Required] public bool? Reverse { get; set; }
|
||||||
[Display(Name = "Save Face Landmark For Output Resolutions"), Required] public string[] SaveFaceLandmarkForOutputResolutions { get; set; }
|
[Display(Name = "Save Face Landmark For Output Resolutions"), Required] public string[] SaveFaceLandmarkForOutputResolutions { get; set; }
|
||||||
[Display(Name = "Save Full Year Of Random Files"), Required] public bool? SaveFullYearOfRandomFiles { get; set; }
|
[Display(Name = "Save Full Year Of Random Files"), Required] public bool? SaveFullYearOfRandomFiles { get; set; }
|
||||||
|
[Display(Name = "Save Mapped"), Required] public string[] SaveMappedForOutputResolutions { get; set; }
|
||||||
|
[Display(Name = "Save Not Mapped"), Required] public string[] SaveNotMappedForOutputResolutions { get; set; }
|
||||||
[Display(Name = "Save Resized Images by Person Key Formatted"), Required] public string[] SaveResizedImagesByPersonKeyFormattedForOutputResolutions { get; set; }
|
[Display(Name = "Save Resized Images by Person Key Formatted"), Required] public string[] SaveResizedImagesByPersonKeyFormattedForOutputResolutions { get; set; }
|
||||||
[Display(Name = "Save Shortcuts"), Required] public string[] SaveShortcutsForOutputResolutions { get; set; }
|
|
||||||
[Display(Name = "Save Resized Subfiles"), Required] public bool? SaveResizedSubfiles { get; set; }
|
[Display(Name = "Save Resized Subfiles"), Required] public bool? SaveResizedSubfiles { get; set; }
|
||||||
|
[Display(Name = "Save Shortcuts"), Required] public string[] SaveShortcutsForOutputResolutions { get; set; }
|
||||||
[Display(Name = "Skip Search"), Required] public bool? SkipSearch { get; set; }
|
[Display(Name = "Skip Search"), Required] public bool? SkipSearch { get; set; }
|
||||||
[Display(Name = "Sorting Days Delta Tolerance"), Required] public int? SortingDaysDeltaTolerance { get; set; }
|
[Display(Name = "Sorting Days Delta Tolerance"), Required] public int? SortingDaysDeltaTolerance { get; set; }
|
||||||
[Display(Name = "SortingMaximumPerFaceShould be High"), Required] public int? SortingMaximumPerFaceShouldBeHigh { get; set; }
|
[Display(Name = "SortingMaximumPerFaceShould be High"), Required] public int? SortingMaximumPerFaceShouldBeHigh { get; set; }
|
||||||
@ -137,10 +137,6 @@ public class Configuration
|
|||||||
throw new NullReferenceException(nameof(configuration.LocationFactor));
|
throw new NullReferenceException(nameof(configuration.LocationFactor));
|
||||||
if (configuration.MappingDefaultName is null)
|
if (configuration.MappingDefaultName is null)
|
||||||
throw new NullReferenceException(nameof(configuration.MappingDefaultName));
|
throw new NullReferenceException(nameof(configuration.MappingDefaultName));
|
||||||
if (configuration.MappingSaveMapped is null)
|
|
||||||
throw new NullReferenceException(nameof(configuration.MappingSaveMapped));
|
|
||||||
if (configuration.MappingSaveNotMapped is null)
|
|
||||||
throw new NullReferenceException(nameof(configuration.MappingSaveNotMapped));
|
|
||||||
if (configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping is null)
|
if (configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping is null)
|
||||||
throw new NullReferenceException(nameof(configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping));
|
throw new NullReferenceException(nameof(configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping));
|
||||||
if (configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping is null)
|
if (configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping is null)
|
||||||
@ -187,6 +183,10 @@ public class Configuration
|
|||||||
throw new NullReferenceException(nameof(configuration.Reverse));
|
throw new NullReferenceException(nameof(configuration.Reverse));
|
||||||
if (configuration.SaveFaceLandmarkForOutputResolutions is null)
|
if (configuration.SaveFaceLandmarkForOutputResolutions is null)
|
||||||
configuration.SaveFaceLandmarkForOutputResolutions = Array.Empty<string>();
|
configuration.SaveFaceLandmarkForOutputResolutions = Array.Empty<string>();
|
||||||
|
if (configuration.SaveMappedForOutputResolutions is null)
|
||||||
|
configuration.SaveMappedForOutputResolutions = Array.Empty<string>();
|
||||||
|
if (configuration.SaveNotMappedForOutputResolutions is null)
|
||||||
|
configuration.SaveNotMappedForOutputResolutions = Array.Empty<string>();
|
||||||
if (configuration.SaveFullYearOfRandomFiles is null)
|
if (configuration.SaveFullYearOfRandomFiles is null)
|
||||||
throw new NullReferenceException(nameof(configuration.SaveFullYearOfRandomFiles));
|
throw new NullReferenceException(nameof(configuration.SaveFullYearOfRandomFiles));
|
||||||
if (configuration.SaveResizedImagesByPersonKeyFormattedForOutputResolutions is null)
|
if (configuration.SaveResizedImagesByPersonKeyFormattedForOutputResolutions is null)
|
||||||
@ -239,8 +239,6 @@ public class Configuration
|
|||||||
configuration.LocationFactor.Value,
|
configuration.LocationFactor.Value,
|
||||||
configuration.MappedMaxIndex,
|
configuration.MappedMaxIndex,
|
||||||
configuration.MappingDefaultName,
|
configuration.MappingDefaultName,
|
||||||
configuration.MappingSaveNotMapped.Value,
|
|
||||||
configuration.MappingSaveMapped.Value,
|
|
||||||
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping.Value,
|
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping.Value,
|
||||||
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping.Value,
|
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping.Value,
|
||||||
configuration.MaxItemsInDistanceCollection.Value,
|
configuration.MaxItemsInDistanceCollection.Value,
|
||||||
@ -269,9 +267,11 @@ public class Configuration
|
|||||||
configuration.Reverse.Value,
|
configuration.Reverse.Value,
|
||||||
configuration.SaveFaceLandmarkForOutputResolutions,
|
configuration.SaveFaceLandmarkForOutputResolutions,
|
||||||
configuration.SaveFullYearOfRandomFiles.Value,
|
configuration.SaveFullYearOfRandomFiles.Value,
|
||||||
|
configuration.SaveMappedForOutputResolutions,
|
||||||
|
configuration.SaveNotMappedForOutputResolutions,
|
||||||
configuration.SaveResizedImagesByPersonKeyFormattedForOutputResolutions,
|
configuration.SaveResizedImagesByPersonKeyFormattedForOutputResolutions,
|
||||||
configuration.SaveShortcutsForOutputResolutions,
|
|
||||||
configuration.SaveResizedSubfiles.Value,
|
configuration.SaveResizedSubfiles.Value,
|
||||||
|
configuration.SaveShortcutsForOutputResolutions,
|
||||||
configuration.SkipSearch.Value,
|
configuration.SkipSearch.Value,
|
||||||
configuration.SortingDaysDeltaTolerance.Value,
|
configuration.SortingDaysDeltaTolerance.Value,
|
||||||
configuration.SortingMaximumPerFaceShouldBeHigh.Value,
|
configuration.SortingMaximumPerFaceShouldBeHigh.Value,
|
||||||
|
@ -35,8 +35,6 @@ public class Configuration
|
|||||||
public int LocationFactor { init; get; }
|
public int LocationFactor { init; get; }
|
||||||
public int? MappedMaxIndex { init; get; }
|
public int? MappedMaxIndex { init; get; }
|
||||||
public string MappingDefaultName { init; get; }
|
public string MappingDefaultName { init; get; }
|
||||||
public bool MappingSaveNotMapped { 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; }
|
||||||
public int MaxItemsInDistanceCollection { init; get; }
|
public int MaxItemsInDistanceCollection { init; get; }
|
||||||
@ -65,9 +63,11 @@ public class Configuration
|
|||||||
public bool Reverse { init; get; }
|
public bool Reverse { init; get; }
|
||||||
public string[] SaveFaceLandmarkForOutputResolutions { init; get; }
|
public string[] SaveFaceLandmarkForOutputResolutions { init; get; }
|
||||||
public bool SaveFullYearOfRandomFiles { init; get; }
|
public bool SaveFullYearOfRandomFiles { init; get; }
|
||||||
|
public string[] SaveMappedForOutputResolutions { init; get; }
|
||||||
|
public string[] SaveNotMappedForOutputResolutions { init; get; }
|
||||||
public string[] SaveResizedImagesByPersonKeyFormattedForOutputResolutions { init; get; }
|
public string[] SaveResizedImagesByPersonKeyFormattedForOutputResolutions { init; get; }
|
||||||
public string[] SaveShortcutsForOutputResolutions { init; get; }
|
|
||||||
public bool SaveResizedSubfiles { init; get; }
|
public bool SaveResizedSubfiles { init; get; }
|
||||||
|
public string[] SaveShortcutsForOutputResolutions { init; get; }
|
||||||
public bool SkipSearch { init; get; }
|
public bool SkipSearch { init; get; }
|
||||||
public int SortingDaysDeltaTolerance { init; get; }
|
public int SortingDaysDeltaTolerance { init; get; }
|
||||||
public int SortingMaximumPerFaceShouldBeHigh { init; get; }
|
public int SortingMaximumPerFaceShouldBeHigh { init; get; }
|
||||||
@ -104,8 +104,6 @@ public class Configuration
|
|||||||
int locationFactor,
|
int locationFactor,
|
||||||
int? mappedMaxIndex,
|
int? mappedMaxIndex,
|
||||||
string mappingDefaultName,
|
string mappingDefaultName,
|
||||||
bool mappingSaveNotMapped,
|
|
||||||
bool mappingSaveMapped,
|
|
||||||
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping,
|
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping,
|
||||||
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping,
|
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping,
|
||||||
int maxItemsInDistanceCollection,
|
int maxItemsInDistanceCollection,
|
||||||
@ -134,9 +132,11 @@ public class Configuration
|
|||||||
bool reverse,
|
bool reverse,
|
||||||
string[] saveFaceLandmarkForOutputResolutions,
|
string[] saveFaceLandmarkForOutputResolutions,
|
||||||
bool saveFullYearOfRandomFiles,
|
bool saveFullYearOfRandomFiles,
|
||||||
|
string[] saveMappedForOutputResolutions,
|
||||||
|
string[] saveNotMappedForOutputResolutions,
|
||||||
string[] saveResizedImagesByPersonKeyFormattedForOutputResolutions,
|
string[] saveResizedImagesByPersonKeyFormattedForOutputResolutions,
|
||||||
string[] saveShortcutsForOutputResolutions,
|
|
||||||
bool saveResizedSubfiles,
|
bool saveResizedSubfiles,
|
||||||
|
string[] saveShortcutsForOutputResolutions,
|
||||||
bool skipSearch,
|
bool skipSearch,
|
||||||
int sortingDaysDeltaTolerance,
|
int sortingDaysDeltaTolerance,
|
||||||
int sortingMaximumPerFaceShouldBeHigh,
|
int sortingMaximumPerFaceShouldBeHigh,
|
||||||
@ -172,8 +172,6 @@ public class Configuration
|
|||||||
LocationFactor = locationFactor;
|
LocationFactor = locationFactor;
|
||||||
MappedMaxIndex = mappedMaxIndex;
|
MappedMaxIndex = mappedMaxIndex;
|
||||||
MappingDefaultName = mappingDefaultName;
|
MappingDefaultName = mappingDefaultName;
|
||||||
MappingSaveNotMapped = mappingSaveNotMapped;
|
|
||||||
MappingSaveMapped = mappingSaveMapped;
|
|
||||||
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping;
|
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping;
|
||||||
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping;
|
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping;
|
||||||
MaxItemsInDistanceCollection = maxItemsInDistanceCollection;
|
MaxItemsInDistanceCollection = maxItemsInDistanceCollection;
|
||||||
@ -202,9 +200,11 @@ public class Configuration
|
|||||||
Reverse = reverse;
|
Reverse = reverse;
|
||||||
SaveFaceLandmarkForOutputResolutions = saveFaceLandmarkForOutputResolutions;
|
SaveFaceLandmarkForOutputResolutions = saveFaceLandmarkForOutputResolutions;
|
||||||
SaveFullYearOfRandomFiles = saveFullYearOfRandomFiles;
|
SaveFullYearOfRandomFiles = saveFullYearOfRandomFiles;
|
||||||
|
SaveMappedForOutputResolutions = saveMappedForOutputResolutions;
|
||||||
|
SaveNotMappedForOutputResolutions = saveNotMappedForOutputResolutions;
|
||||||
SaveResizedImagesByPersonKeyFormattedForOutputResolutions = saveResizedImagesByPersonKeyFormattedForOutputResolutions;
|
SaveResizedImagesByPersonKeyFormattedForOutputResolutions = saveResizedImagesByPersonKeyFormattedForOutputResolutions;
|
||||||
SaveShortcutsForOutputResolutions = saveShortcutsForOutputResolutions;
|
|
||||||
SaveResizedSubfiles = saveResizedSubfiles;
|
SaveResizedSubfiles = saveResizedSubfiles;
|
||||||
|
SaveShortcutsForOutputResolutions = saveShortcutsForOutputResolutions;
|
||||||
SkipSearch = skipSearch;
|
SkipSearch = skipSearch;
|
||||||
SortingDaysDeltaTolerance = sortingDaysDeltaTolerance;
|
SortingDaysDeltaTolerance = sortingDaysDeltaTolerance;
|
||||||
SortingMaximumPerFaceShouldBeHigh = sortingMaximumPerFaceShouldBeHigh;
|
SortingMaximumPerFaceShouldBeHigh = sortingMaximumPerFaceShouldBeHigh;
|
||||||
|
@ -43,7 +43,7 @@ internal class F_Random
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void Random(Property.Models.Configuration configuration, string outputResolution, List<KeyValuePair<string, string>> fileKeyValuePairs)
|
internal void Random(Property.Models.Configuration configuration, string outputResolution, List<Shared.Models.MappingFromItem> mappingFromItemCollection)
|
||||||
{
|
{
|
||||||
string json;
|
string json;
|
||||||
string jsonFile;
|
string jsonFile;
|
||||||
@ -55,12 +55,14 @@ internal class F_Random
|
|||||||
string[] files = Directory.GetFiles(fRandomCollectionDirectory, "*", SearchOption.TopDirectoryOnly);
|
string[] files = Directory.GetFiles(fRandomCollectionDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||||
foreach (string file in files)
|
foreach (string file in files)
|
||||||
File.Delete(file);
|
File.Delete(file);
|
||||||
foreach (KeyValuePair<string, string> keyValuePair in fileKeyValuePairs)
|
foreach (Shared.Models.MappingFromItem mappingFromItem in mappingFromItemCollection)
|
||||||
{
|
{
|
||||||
if (!_Configuration.IgnoreRelativePaths.Any(l => keyValuePair.Key.Contains(l)) || !IsIgnoreRelativePath(keyValuePair.Key))
|
if (mappingFromItem.ImageFileHolder.DirectoryName is null)
|
||||||
relativePaths.Add(keyValuePair.Value);
|
continue;
|
||||||
|
if (!_Configuration.IgnoreRelativePaths.Any(l => mappingFromItem.ImageFileHolder.DirectoryName.Contains(l)) || !IsIgnoreRelativePath(mappingFromItem.ImageFileHolder.DirectoryName))
|
||||||
|
relativePaths.Add(mappingFromItem.RelativePath);
|
||||||
else
|
else
|
||||||
ignoreRelativePaths.Add(keyValuePair.Value);
|
ignoreRelativePaths.Add(mappingFromItem.RelativePath);
|
||||||
}
|
}
|
||||||
if (relativePaths.Any())
|
if (relativePaths.Any())
|
||||||
{
|
{
|
||||||
|
@ -140,8 +140,9 @@ public class G_Index : Shared.Models.Properties.IIndex, IIndex
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void SetIndex(Property.Models.Configuration configuration, string outputResolution, Dictionary<string, List<Tuple<string, Shared.Models.Property>>> filePropertiesKeyValuePairs)
|
internal void SetIndex(Property.Models.Configuration configuration, string outputResolution)
|
||||||
{
|
{
|
||||||
|
Dictionary<string, List<Tuple<string, Shared.Models.Property>>> filePropertiesKeyValuePairs = new();
|
||||||
FileInfo fileInfo;
|
FileInfo fileInfo;
|
||||||
G_Index indexInfo;
|
G_Index indexInfo;
|
||||||
string parentCheck;
|
string parentCheck;
|
||||||
|
@ -75,8 +75,6 @@
|
|||||||
"MappedMaxIndex": 1034720,
|
"MappedMaxIndex": 1034720,
|
||||||
"MappingDefaultName": "John Doe~25",
|
"MappingDefaultName": "John Doe~25",
|
||||||
"MappingSaveFaceEncoding": false,
|
"MappingSaveFaceEncoding": false,
|
||||||
"MappingSaveMapped": false,
|
|
||||||
"MappingSaveNotMapped": false,
|
|
||||||
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping": false,
|
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping": false,
|
||||||
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping": false,
|
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping": false,
|
||||||
"MaxImagesInDirectoryForTopLevelFirstPass": 10,
|
"MaxImagesInDirectoryForTopLevelFirstPass": 10,
|
||||||
@ -146,8 +144,12 @@
|
|||||||
"176 x 176",
|
"176 x 176",
|
||||||
"256 x 256"
|
"256 x 256"
|
||||||
],
|
],
|
||||||
|
"SaveMappedForOutputResolutions": [],
|
||||||
|
"SaveNotMappedForOutputResolutions": [],
|
||||||
"SaveResizedImagesByPersonKeyFormattedForOutputResolutions": [],
|
"SaveResizedImagesByPersonKeyFormattedForOutputResolutions": [],
|
||||||
"SaveShortcutsForOutputResolutions": [],
|
"SaveShortcutsForOutputResolutions": [
|
||||||
|
"7680 x 4320"
|
||||||
|
],
|
||||||
"ValidImageFormatExtensions": [
|
"ValidImageFormatExtensions": [
|
||||||
".bmp",
|
".bmp",
|
||||||
".BMP",
|
".BMP",
|
||||||
|
@ -75,8 +75,6 @@
|
|||||||
"MappedMaxIndex": 1034720,
|
"MappedMaxIndex": 1034720,
|
||||||
"MappingDefaultName": "John Doe~25",
|
"MappingDefaultName": "John Doe~25",
|
||||||
"MappingSaveFaceEncoding": false,
|
"MappingSaveFaceEncoding": false,
|
||||||
"MappingSaveMapped": false,
|
|
||||||
"MappingSaveNotMapped": false,
|
|
||||||
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping": false,
|
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping": false,
|
||||||
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping": false,
|
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping": false,
|
||||||
"MaxImagesInDirectoryForTopLevelFirstPass": 10,
|
"MaxImagesInDirectoryForTopLevelFirstPass": 10,
|
||||||
@ -136,6 +134,8 @@
|
|||||||
"176 x 176",
|
"176 x 176",
|
||||||
"256 x 256"
|
"256 x 256"
|
||||||
],
|
],
|
||||||
|
"SaveMappedForOutputResolutions": [],
|
||||||
|
"SaveNotMappedForOutputResolutions": [],
|
||||||
"SaveResizedImagesByPersonKeyFormattedForOutputResolutions": [
|
"SaveResizedImagesByPersonKeyFormattedForOutputResolutions": [
|
||||||
"1920 x 1080"
|
"1920 x 1080"
|
||||||
],
|
],
|
||||||
|
@ -75,8 +75,6 @@
|
|||||||
"MappedMaxIndex": 1034720,
|
"MappedMaxIndex": 1034720,
|
||||||
"MappingDefaultName": "John Doe~25",
|
"MappingDefaultName": "John Doe~25",
|
||||||
"MappingSaveFaceEncoding": false,
|
"MappingSaveFaceEncoding": false,
|
||||||
"MappingSaveMapped": false,
|
|
||||||
"MappingSaveNotMapped": false,
|
|
||||||
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping": false,
|
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping": false,
|
||||||
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping": false,
|
"MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping": false,
|
||||||
"MaxImagesInDirectoryForTopLevelFirstPass": 10,
|
"MaxImagesInDirectoryForTopLevelFirstPass": 10,
|
||||||
@ -145,6 +143,8 @@
|
|||||||
"176 x 176",
|
"176 x 176",
|
||||||
"256 x 256"
|
"256 x 256"
|
||||||
],
|
],
|
||||||
|
"SaveMappedForOutputResolutions": [],
|
||||||
|
"SaveNotMappedForOutputResolutions": [],
|
||||||
"SaveResizedImagesByPersonKeyFormattedForOutputResolutions": [
|
"SaveResizedImagesByPersonKeyFormattedForOutputResolutions": [
|
||||||
"1920 x 1080"
|
"1920 x 1080"
|
||||||
],
|
],
|
||||||
|
@ -968,4 +968,65 @@ public class MapLogic
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<(string, FileHolder, string)> GetCollection(int faceDistanceAreaPermilleTolerance, string dFacesContentDirectory, Dictionary<int, Dictionary<int, Mapping>> idToNormalizedPixelPercentageToMapping)
|
||||||
|
{
|
||||||
|
if (_Configuration is null)
|
||||||
|
throw new NullReferenceException(nameof(_Configuration));
|
||||||
|
List<(string, FileHolder, string)> results = new();
|
||||||
|
Mapping mapping;
|
||||||
|
string checkFile;
|
||||||
|
string directory;
|
||||||
|
string facesDirectory;
|
||||||
|
string? directoryName;
|
||||||
|
FileHolder faceFileHolder;
|
||||||
|
List<int>? normalizedPixelPercentages;
|
||||||
|
string by = nameof(IMapLogic.CopyNotMappedFaces);
|
||||||
|
Dictionary<int, PersonContainer[]>? normalizedPixelPercentageToPersonContainers;
|
||||||
|
foreach (KeyValuePair<int, Dictionary<int, Mapping>> keyValuePair in idToNormalizedPixelPercentageToMapping)
|
||||||
|
{
|
||||||
|
_ = _IdThenNormalizedPixelPercentageToPersonContainers.TryGetValue(keyValuePair.Key, out normalizedPixelPercentageToPersonContainers);
|
||||||
|
foreach (KeyValuePair<int, Mapping> normalizedPixelPercentageAndMapping in keyValuePair.Value)
|
||||||
|
{
|
||||||
|
mapping = normalizedPixelPercentageAndMapping.Value;
|
||||||
|
if (mapping.MappingFromLocation.AreaPermille < faceDistanceAreaPermilleTolerance)
|
||||||
|
continue;
|
||||||
|
if (normalizedPixelPercentageToPersonContainers is not null && normalizedPixelPercentageToPersonContainers.ContainsKey(mapping.MappingFromLocation.NormalizedPixelPercentage))
|
||||||
|
continue;
|
||||||
|
_ = _SkipCollection.TryGetValue(keyValuePair.Key, out normalizedPixelPercentages);
|
||||||
|
if (normalizedPixelPercentages is not null && normalizedPixelPercentages.Contains(mapping.MappingFromLocation.NormalizedPixelPercentage))
|
||||||
|
continue;
|
||||||
|
directoryName = Path.GetDirectoryName(mapping.MappingFromItem.RelativePath);
|
||||||
|
facesDirectory = Path.Combine($"{dFacesContentDirectory}{directoryName}", mapping.MappingFromItem.ImageFileHolder.NameWithoutExtension);
|
||||||
|
faceFileHolder = new(Path.Combine(facesDirectory, $"{mapping.MappingFromLocation.DeterministicHashCodeKey}{mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}{_Configuration.FacesFileNameExtension}"));
|
||||||
|
if (directoryName is null || !faceFileHolder.Exists)
|
||||||
|
continue;
|
||||||
|
directory = Path.Combine(_EDistanceContentTicksDirectory, by, $"{mapping.MappingFromItem.MinimumDateTime.ToString("yyyy")[..3]}#A{mapping.MappingFromLocation.AreaPermille:0000}");
|
||||||
|
checkFile = Path.Combine(directory, $"{mapping.MappingFromLocation.DeterministicHashCodeKey}{mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}{_Configuration.FacesFileNameExtension}");
|
||||||
|
results.Add(new(directory, faceFileHolder, checkFile));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CopyNotMappedFaces(int faceDistanceAreaPermilleTolerance, string dFacesContentDirectory, Dictionary<int, Dictionary<int, Mapping>> idToNormalizedPixelPercentageToMapping)
|
||||||
|
{
|
||||||
|
if (_Configuration is null)
|
||||||
|
throw new NullReferenceException(nameof(_Configuration));
|
||||||
|
List<(string Directory, FileHolder FaceFileHolder, string CheckFile)> collection = GetCollection(faceDistanceAreaPermilleTolerance, dFacesContentDirectory, idToNormalizedPixelPercentageToMapping);
|
||||||
|
string[] directories = (from l in collection select l.Directory).Distinct().ToArray();
|
||||||
|
foreach (string directory in directories)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(directory))
|
||||||
|
continue;
|
||||||
|
if (!Directory.Exists(directory))
|
||||||
|
_ = Directory.CreateDirectory(directory);
|
||||||
|
}
|
||||||
|
foreach ((string directory, FileHolder faceFileHolder, string checkFile) in collection)
|
||||||
|
{
|
||||||
|
if (File.Exists(checkFile))
|
||||||
|
continue;
|
||||||
|
File.Copy(faceFileHolder.FullName, checkFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -3,6 +3,7 @@ namespace View_by_Distance.Map.Models.Stateless;
|
|||||||
public interface IMapLogic
|
public interface IMapLogic
|
||||||
{ // ...
|
{ // ...
|
||||||
|
|
||||||
|
const int CopyNotMappedFaces = 5;
|
||||||
const int ForceSingleImage = 3;
|
const int ForceSingleImage = 3;
|
||||||
const int ManualCopy = 4;
|
const int ManualCopy = 4;
|
||||||
const int Mapping = 1;
|
const int Mapping = 1;
|
||||||
|
@ -461,7 +461,7 @@ public class UnitTestCalculations
|
|||||||
x2 = x.Value;
|
x2 = x.Value;
|
||||||
y2 = y.Value;
|
y2 = y.Value;
|
||||||
double distance = Math.Sqrt(Math.Pow(x1 - x2, 2) + Math.Pow(y1 - y2, 2));
|
double distance = Math.Sqrt(Math.Pow(x1 - x2, 2) + Math.Pow(y1 - y2, 2));
|
||||||
Assert.IsTrue(distance == 3);
|
Assert.IsTrue(distance == 2163.2958651095323);
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
@ -490,6 +490,7 @@ public class UnitTestCalculations
|
|||||||
public void TestMoveToVerify()
|
public void TestMoveToVerify()
|
||||||
{
|
{
|
||||||
string http;
|
string http;
|
||||||
|
string[] lines;
|
||||||
string? minusOne;
|
string? minusOne;
|
||||||
string? minusTwo;
|
string? minusTwo;
|
||||||
string[] segments;
|
string[] segments;
|
||||||
@ -503,8 +504,9 @@ public class UnitTestCalculations
|
|||||||
string sourceDirectory = @"";
|
string sourceDirectory = @"";
|
||||||
string sourceFile = @"\People - C.tsv";
|
string sourceFile = @"\People - C.tsv";
|
||||||
if (!File.Exists(sourceFile))
|
if (!File.Exists(sourceFile))
|
||||||
throw new Exception();
|
lines = Array.Empty<string>();
|
||||||
string[] lines = File.ReadAllLines(sourceFile);
|
else
|
||||||
|
lines = File.ReadAllLines(sourceFile);
|
||||||
for (int i = 0; i < lines.Length; i++)
|
for (int i = 0; i < lines.Length; i++)
|
||||||
{
|
{
|
||||||
if (!lines[i].Contains("https://"))
|
if (!lines[i].Contains("https://"))
|
||||||
@ -536,7 +538,7 @@ public class UnitTestCalculations
|
|||||||
_ = Directory.CreateDirectory(personKeyFormattedDirectoryNew);
|
_ = Directory.CreateDirectory(personKeyFormattedDirectoryNew);
|
||||||
File.WriteAllText(Path.Combine(personKeyFormattedDirectoryNew, "Facebook.txt"), http);
|
File.WriteAllText(Path.Combine(personKeyFormattedDirectoryNew, "Facebook.txt"), http);
|
||||||
}
|
}
|
||||||
Assert.IsTrue(lines.Any());
|
Assert.IsNotNull(lines);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -88,8 +88,14 @@ public class UnitTestResize
|
|||||||
// string sourceDirectoryName = "Mackenzie Prom 2017";
|
// string sourceDirectoryName = "Mackenzie Prom 2017";
|
||||||
// string sourceFileName = "Fall 2005 (113).jpg";
|
// string sourceFileName = "Fall 2005 (113).jpg";
|
||||||
// string sourceDirectoryName = "=2005.3 Fall";
|
// string sourceDirectoryName = "=2005.3 Fall";
|
||||||
string sourceFileName = "12314542_10208270578946392_3555034423896018896_o.jpg";
|
// string sourceFileName = "DSCN0534.jpg";
|
||||||
string sourceDirectoryName = "Other";
|
// string sourceDirectoryName = "Logan Swimming Lessons 2013";
|
||||||
|
// string sourceFileName = "DSC_4913.jpg";
|
||||||
|
// string sourceDirectoryName = "Disneyland 2014";
|
||||||
|
// string sourceFileName = "Logan Michael Sept 08 (193).jpg";
|
||||||
|
// string sourceDirectoryName = "=2008.2 Summer Logan Michael";
|
||||||
|
string sourceFileName = "Halloween 2006 (112).jpg";
|
||||||
|
string sourceDirectoryName = "Halloween 2006";
|
||||||
Item item;
|
Item item;
|
||||||
bool reverse = false;
|
bool reverse = false;
|
||||||
string original = "Original";
|
string original = "Original";
|
||||||
|
@ -36,8 +36,6 @@ public class Configuration
|
|||||||
[Display(Name = "Location Factor"), Required] public int? LocationFactor { get; set; }
|
[Display(Name = "Location Factor"), Required] public int? LocationFactor { get; set; }
|
||||||
[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 Default Name"), Required] public string MappingDefaultName { get; set; }
|
[Display(Name = "Mapping Default Name"), Required] public string MappingDefaultName { 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; }
|
||||||
@ -67,9 +65,11 @@ public class Configuration
|
|||||||
[Display(Name = "Reverse"), Required] public bool? Reverse { get; set; }
|
[Display(Name = "Reverse"), Required] public bool? Reverse { get; set; }
|
||||||
[Display(Name = "Save Face Landmark For Output Resolutions"), Required] public string[] SaveFaceLandmarkForOutputResolutions { get; set; }
|
[Display(Name = "Save Face Landmark For Output Resolutions"), Required] public string[] SaveFaceLandmarkForOutputResolutions { get; set; }
|
||||||
[Display(Name = "Save Full Year Of Random Files"), Required] public bool? SaveFullYearOfRandomFiles { get; set; }
|
[Display(Name = "Save Full Year Of Random Files"), Required] public bool? SaveFullYearOfRandomFiles { get; set; }
|
||||||
|
[Display(Name = "Save Mapped"), Required] public string[] SaveMappedForOutputResolutions { get; set; }
|
||||||
|
[Display(Name = "Save Not Mapped"), Required] public string[] SaveNotMappedForOutputResolutions { get; set; }
|
||||||
[Display(Name = "Save Resized Images by Person Key Formatted"), Required] public string[] SaveResizedImagesByPersonKeyFormattedForOutputResolutions { get; set; }
|
[Display(Name = "Save Resized Images by Person Key Formatted"), Required] public string[] SaveResizedImagesByPersonKeyFormattedForOutputResolutions { get; set; }
|
||||||
[Display(Name = "Save Shortcuts"), Required] public string[] SaveShortcutsForOutputResolutions { get; set; }
|
|
||||||
[Display(Name = "Save Resized Subfiles"), Required] public bool? SaveResizedSubfiles { get; set; }
|
[Display(Name = "Save Resized Subfiles"), Required] public bool? SaveResizedSubfiles { get; set; }
|
||||||
|
[Display(Name = "Save Shortcuts"), Required] public string[] SaveShortcutsForOutputResolutions { get; set; }
|
||||||
[Display(Name = "Skip Search"), Required] public bool? SkipSearch { get; set; }
|
[Display(Name = "Skip Search"), Required] public bool? SkipSearch { get; set; }
|
||||||
[Display(Name = "Sorting Days Delta Tolerance"), Required] public int? SortingDaysDeltaTolerance { get; set; }
|
[Display(Name = "Sorting Days Delta Tolerance"), Required] public int? SortingDaysDeltaTolerance { get; set; }
|
||||||
[Display(Name = "SortingMaximumPerFaceShould be High"), Required] public int? SortingMaximumPerFaceShouldBeHigh { get; set; }
|
[Display(Name = "SortingMaximumPerFaceShould be High"), Required] public int? SortingMaximumPerFaceShouldBeHigh { get; set; }
|
||||||
@ -137,10 +137,6 @@ public class Configuration
|
|||||||
throw new NullReferenceException(nameof(configuration.LocationFactor));
|
throw new NullReferenceException(nameof(configuration.LocationFactor));
|
||||||
if (configuration.MappingDefaultName is null)
|
if (configuration.MappingDefaultName is null)
|
||||||
throw new NullReferenceException(nameof(configuration.MappingDefaultName));
|
throw new NullReferenceException(nameof(configuration.MappingDefaultName));
|
||||||
if (configuration.MappingSaveMapped is null)
|
|
||||||
throw new NullReferenceException(nameof(configuration.MappingSaveMapped));
|
|
||||||
if (configuration.MappingSaveNotMapped is null)
|
|
||||||
throw new NullReferenceException(nameof(configuration.MappingSaveNotMapped));
|
|
||||||
if (configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping is null)
|
if (configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping is null)
|
||||||
throw new NullReferenceException(nameof(configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping));
|
throw new NullReferenceException(nameof(configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping));
|
||||||
if (configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping is null)
|
if (configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping is null)
|
||||||
@ -187,6 +183,10 @@ public class Configuration
|
|||||||
throw new NullReferenceException(nameof(configuration.Reverse));
|
throw new NullReferenceException(nameof(configuration.Reverse));
|
||||||
if (configuration.SaveFaceLandmarkForOutputResolutions is null)
|
if (configuration.SaveFaceLandmarkForOutputResolutions is null)
|
||||||
configuration.SaveFaceLandmarkForOutputResolutions = Array.Empty<string>();
|
configuration.SaveFaceLandmarkForOutputResolutions = Array.Empty<string>();
|
||||||
|
if (configuration.SaveMappedForOutputResolutions is null)
|
||||||
|
configuration.SaveMappedForOutputResolutions = Array.Empty<string>();
|
||||||
|
if (configuration.SaveNotMappedForOutputResolutions is null)
|
||||||
|
configuration.SaveNotMappedForOutputResolutions = Array.Empty<string>();
|
||||||
if (configuration.SaveFullYearOfRandomFiles is null)
|
if (configuration.SaveFullYearOfRandomFiles is null)
|
||||||
throw new NullReferenceException(nameof(configuration.SaveFullYearOfRandomFiles));
|
throw new NullReferenceException(nameof(configuration.SaveFullYearOfRandomFiles));
|
||||||
if (configuration.SaveResizedImagesByPersonKeyFormattedForOutputResolutions is null)
|
if (configuration.SaveResizedImagesByPersonKeyFormattedForOutputResolutions is null)
|
||||||
@ -237,8 +237,6 @@ public class Configuration
|
|||||||
configuration.LocationFactor.Value,
|
configuration.LocationFactor.Value,
|
||||||
configuration.MappedMaxIndex,
|
configuration.MappedMaxIndex,
|
||||||
configuration.MappingDefaultName,
|
configuration.MappingDefaultName,
|
||||||
configuration.MappingSaveNotMapped.Value,
|
|
||||||
configuration.MappingSaveMapped.Value,
|
|
||||||
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping.Value,
|
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping.Value,
|
||||||
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping.Value,
|
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping.Value,
|
||||||
configuration.MaxItemsInDistanceCollection.Value,
|
configuration.MaxItemsInDistanceCollection.Value,
|
||||||
@ -267,9 +265,11 @@ public class Configuration
|
|||||||
configuration.Reverse.Value,
|
configuration.Reverse.Value,
|
||||||
configuration.SaveFaceLandmarkForOutputResolutions,
|
configuration.SaveFaceLandmarkForOutputResolutions,
|
||||||
configuration.SaveFullYearOfRandomFiles.Value,
|
configuration.SaveFullYearOfRandomFiles.Value,
|
||||||
|
configuration.SaveMappedForOutputResolutions,
|
||||||
|
configuration.SaveNotMappedForOutputResolutions,
|
||||||
configuration.SaveResizedImagesByPersonKeyFormattedForOutputResolutions,
|
configuration.SaveResizedImagesByPersonKeyFormattedForOutputResolutions,
|
||||||
configuration.SaveShortcutsForOutputResolutions,
|
|
||||||
configuration.SaveResizedSubfiles.Value,
|
configuration.SaveResizedSubfiles.Value,
|
||||||
|
configuration.SaveShortcutsForOutputResolutions,
|
||||||
configuration.SkipSearch.Value,
|
configuration.SkipSearch.Value,
|
||||||
configuration.SortingDaysDeltaTolerance.Value,
|
configuration.SortingDaysDeltaTolerance.Value,
|
||||||
configuration.SortingMaximumPerFaceShouldBeHigh.Value,
|
configuration.SortingMaximumPerFaceShouldBeHigh.Value,
|
||||||
|
@ -35,8 +35,6 @@ public class Configuration
|
|||||||
public int LocationFactor { init; get; }
|
public int LocationFactor { init; get; }
|
||||||
public int? MappedMaxIndex { init; get; }
|
public int? MappedMaxIndex { init; get; }
|
||||||
public string MappingDefaultName { init; get; }
|
public string MappingDefaultName { init; get; }
|
||||||
public bool MappingSaveNotMapped { 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; }
|
||||||
public int MaxItemsInDistanceCollection { init; get; }
|
public int MaxItemsInDistanceCollection { init; get; }
|
||||||
@ -65,9 +63,11 @@ public class Configuration
|
|||||||
public bool Reverse { init; get; }
|
public bool Reverse { init; get; }
|
||||||
public string[] SaveFaceLandmarkForOutputResolutions { init; get; }
|
public string[] SaveFaceLandmarkForOutputResolutions { init; get; }
|
||||||
public bool SaveFullYearOfRandomFiles { init; get; }
|
public bool SaveFullYearOfRandomFiles { init; get; }
|
||||||
|
public string[] SaveMappedForOutputResolutions { init; get; }
|
||||||
|
public string[] SaveNotMappedForOutputResolutions { init; get; }
|
||||||
public string[] SaveResizedImagesByPersonKeyFormattedForOutputResolutions { init; get; }
|
public string[] SaveResizedImagesByPersonKeyFormattedForOutputResolutions { init; get; }
|
||||||
public string[] SaveShortcutsForOutputResolutions { init; get; }
|
|
||||||
public bool SaveResizedSubfiles { init; get; }
|
public bool SaveResizedSubfiles { init; get; }
|
||||||
|
public string[] SaveShortcutsForOutputResolutions { init; get; }
|
||||||
public bool SkipSearch { init; get; }
|
public bool SkipSearch { init; get; }
|
||||||
public int SortingDaysDeltaTolerance { init; get; }
|
public int SortingDaysDeltaTolerance { init; get; }
|
||||||
public int SortingMaximumPerFaceShouldBeHigh { init; get; }
|
public int SortingMaximumPerFaceShouldBeHigh { init; get; }
|
||||||
@ -104,8 +104,6 @@ public class Configuration
|
|||||||
int locationFactor,
|
int locationFactor,
|
||||||
int? mappedMaxIndex,
|
int? mappedMaxIndex,
|
||||||
string mappingDefaultName,
|
string mappingDefaultName,
|
||||||
bool mappingSaveNotMapped,
|
|
||||||
bool mappingSaveMapped,
|
|
||||||
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping,
|
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping,
|
||||||
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping,
|
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping,
|
||||||
int maxItemsInDistanceCollection,
|
int maxItemsInDistanceCollection,
|
||||||
@ -134,9 +132,11 @@ public class Configuration
|
|||||||
bool reverse,
|
bool reverse,
|
||||||
string[] saveFaceLandmarkForOutputResolutions,
|
string[] saveFaceLandmarkForOutputResolutions,
|
||||||
bool saveFullYearOfRandomFiles,
|
bool saveFullYearOfRandomFiles,
|
||||||
|
string[] saveMappedForOutputResolutions,
|
||||||
|
string[] saveNotMappedForOutputResolutions,
|
||||||
string[] saveResizedImagesByPersonKeyFormattedForOutputResolutions,
|
string[] saveResizedImagesByPersonKeyFormattedForOutputResolutions,
|
||||||
string[] saveShortcutsForOutputResolutions,
|
|
||||||
bool saveResizedSubfiles,
|
bool saveResizedSubfiles,
|
||||||
|
string[] saveShortcutsForOutputResolutions,
|
||||||
bool skipSearch,
|
bool skipSearch,
|
||||||
int sortingDaysDeltaTolerance,
|
int sortingDaysDeltaTolerance,
|
||||||
int sortingMaximumPerFaceShouldBeHigh,
|
int sortingMaximumPerFaceShouldBeHigh,
|
||||||
@ -172,8 +172,6 @@ public class Configuration
|
|||||||
LocationFactor = locationFactor;
|
LocationFactor = locationFactor;
|
||||||
MappedMaxIndex = mappedMaxIndex;
|
MappedMaxIndex = mappedMaxIndex;
|
||||||
MappingDefaultName = mappingDefaultName;
|
MappingDefaultName = mappingDefaultName;
|
||||||
MappingSaveNotMapped = mappingSaveNotMapped;
|
|
||||||
MappingSaveMapped = mappingSaveMapped;
|
|
||||||
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping;
|
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping;
|
||||||
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping;
|
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping;
|
||||||
MaxItemsInDistanceCollection = maxItemsInDistanceCollection;
|
MaxItemsInDistanceCollection = maxItemsInDistanceCollection;
|
||||||
@ -202,9 +200,11 @@ public class Configuration
|
|||||||
Reverse = reverse;
|
Reverse = reverse;
|
||||||
SaveFaceLandmarkForOutputResolutions = saveFaceLandmarkForOutputResolutions;
|
SaveFaceLandmarkForOutputResolutions = saveFaceLandmarkForOutputResolutions;
|
||||||
SaveFullYearOfRandomFiles = saveFullYearOfRandomFiles;
|
SaveFullYearOfRandomFiles = saveFullYearOfRandomFiles;
|
||||||
|
SaveMappedForOutputResolutions = saveMappedForOutputResolutions;
|
||||||
|
SaveNotMappedForOutputResolutions = saveNotMappedForOutputResolutions;
|
||||||
SaveResizedImagesByPersonKeyFormattedForOutputResolutions = saveResizedImagesByPersonKeyFormattedForOutputResolutions;
|
SaveResizedImagesByPersonKeyFormattedForOutputResolutions = saveResizedImagesByPersonKeyFormattedForOutputResolutions;
|
||||||
SaveShortcutsForOutputResolutions = saveShortcutsForOutputResolutions;
|
|
||||||
SaveResizedSubfiles = saveResizedSubfiles;
|
SaveResizedSubfiles = saveResizedSubfiles;
|
||||||
|
SaveShortcutsForOutputResolutions = saveShortcutsForOutputResolutions;
|
||||||
SkipSearch = skipSearch;
|
SkipSearch = skipSearch;
|
||||||
SortingDaysDeltaTolerance = sortingDaysDeltaTolerance;
|
SortingDaysDeltaTolerance = sortingDaysDeltaTolerance;
|
||||||
SortingMaximumPerFaceShouldBeHigh = sortingMaximumPerFaceShouldBeHigh;
|
SortingMaximumPerFaceShouldBeHigh = sortingMaximumPerFaceShouldBeHigh;
|
||||||
|
@ -145,10 +145,10 @@ public class UnitTestFace
|
|||||||
Assert.IsTrue(ToleranceAfterFactor == 600);
|
Assert.IsTrue(ToleranceAfterFactor == 600);
|
||||||
double valueA = 0.00001d;
|
double valueA = 0.00001d;
|
||||||
int checkA = (int)(Math.Round(valueA, _Configuration.LocationDigits) * _Configuration.LocationFactor);
|
int checkA = (int)(Math.Round(valueA, _Configuration.LocationDigits) * _Configuration.LocationFactor);
|
||||||
Assert.IsTrue(checkA == 10);
|
Assert.IsTrue(checkA == 0);
|
||||||
double valueB = 0.01d;
|
double valueB = 0.01d;
|
||||||
int checkB = (int)(Math.Round(valueB, _Configuration.LocationDigits) * _Configuration.LocationFactor);
|
int checkB = (int)(Math.Round(valueB, _Configuration.LocationDigits) * _Configuration.LocationFactor);
|
||||||
Assert.IsTrue(checkB == 10000);
|
Assert.IsTrue(checkB == 100);
|
||||||
Assert.IsTrue(checkB > checkA);
|
Assert.IsTrue(checkB > checkA);
|
||||||
int checkC = (int)(_Configuration.FaceDistanceTolerance * DistanceFactor);
|
int checkC = (int)(_Configuration.FaceDistanceTolerance * DistanceFactor);
|
||||||
Assert.IsTrue(checkC == ToleranceAfterFactor);
|
Assert.IsTrue(checkC == ToleranceAfterFactor);
|
||||||
@ -185,7 +185,6 @@ public class UnitTestFace
|
|||||||
string outputResolution = _Configuration.OutputResolutions[0];
|
string outputResolution = _Configuration.OutputResolutions[0];
|
||||||
Property.Models.A_Property propertyLogic = GetPropertyLogic(reverse);
|
Property.Models.A_Property propertyLogic = GetPropertyLogic(reverse);
|
||||||
string sourceDirectory = Path.Combine(_PropertyConfiguration.RootDirectory, sourceDirectoryName);
|
string sourceDirectory = Path.Combine(_PropertyConfiguration.RootDirectory, sourceDirectoryName);
|
||||||
(Model model, PredictorModel predictorModel, ModelParameter modelParameter) = GetModel(_Configuration);
|
|
||||||
_Logger.Information(_Configuration.ModelDirectory);
|
_Logger.Information(_Configuration.ModelDirectory);
|
||||||
aResultsFullGroupDirectory = Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(
|
aResultsFullGroupDirectory = Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(
|
||||||
_PropertyConfiguration, nameof(Property.Models.A_Property), outputResolution, includeResizeGroup: false, includeModel: false, includePredictorModel: false);
|
_PropertyConfiguration, nameof(Property.Models.A_Property), outputResolution, includeResizeGroup: false, includeModel: false, includePredictorModel: false);
|
||||||
@ -240,6 +239,7 @@ public class UnitTestFace
|
|||||||
resize.SaveResizedSubfile(outputResolution, cResultsFullGroupDirectory, subFileTuples, item, original, imageResizeKeyValuePairs);
|
resize.SaveResizedSubfile(outputResolution, cResultsFullGroupDirectory, subFileTuples, item, original, imageResizeKeyValuePairs);
|
||||||
Image image = FaceRecognition.LoadImageFile(item.ResizedFileHolder.FullName);
|
Image image = FaceRecognition.LoadImageFile(item.ResizedFileHolder.FullName);
|
||||||
Assert.IsNotNull(image);
|
Assert.IsNotNull(image);
|
||||||
|
(Model model, PredictorModel predictorModel, ModelParameter modelParameter) = GetModel(_Configuration);
|
||||||
FaceRecognition faceRecognition = new(_Configuration.NumberOfTimesToUpsample, _Configuration.NumberOfJitters, predictorModel, model, modelParameter);
|
FaceRecognition faceRecognition = new(_Configuration.NumberOfTimesToUpsample, _Configuration.NumberOfJitters, predictorModel, model, modelParameter);
|
||||||
List<(Location Location, FaceRecognitionDotNet.FaceEncoding? FaceEncoding, Dictionary<FacePart, FacePoint[]>? FaceParts)> collection;
|
List<(Location Location, FaceRecognitionDotNet.FaceEncoding? FaceEncoding, Dictionary<FacePart, FacePoint[]>? FaceParts)> collection;
|
||||||
collection = faceRecognition.GetCollection(image, includeFaceEncoding: true, includeFaceParts: true);
|
collection = faceRecognition.GetCollection(image, includeFaceEncoding: true, includeFaceParts: true);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user