Distance bug fix
This commit is contained in:
@ -71,10 +71,10 @@ public partial class DlibDotNet
|
||||
_Index = new(configuration);
|
||||
_Random = new(configuration);
|
||||
_Rename = new(configuration);
|
||||
_MapConfiguration = Get(configuration);
|
||||
_Distance = new(
|
||||
configuration.DistanceMoveUnableToMatch,
|
||||
configuration.DistancePixelDistanceTolerance,
|
||||
configuration.DistanceRenameToMatch,
|
||||
configuration.FaceDistanceAreaPermilleTolerance,
|
||||
configuration.FaceDistanceMinimumConfidence,
|
||||
configuration.FaceDistancePermyriad,
|
||||
@ -116,6 +116,11 @@ public partial class DlibDotNet
|
||||
predictorModel,
|
||||
configuration.PropertiesChangedForFaces);
|
||||
}
|
||||
{
|
||||
(ImageCodecInfo imageCodecInfo, EncoderParameters encoderParameters, string filenameExtension) = C_Resize.GetGifLowQuality();
|
||||
_FaceParts = new D2_FaceParts(imageCodecInfo, encoderParameters, filenameExtension, configuration.CheckDFaceAndUpWriteDates, configuration.OverrideForFaceLandmarkImages);
|
||||
}
|
||||
_MapConfiguration = Get(configuration, _Faces.FileNameExtension, _Faces.HiddenFileNameExtension, _FaceParts.FileNameExtension);
|
||||
if (_FirstRun || !_ArgZeroIsConfigurationRootDirectory)
|
||||
personContainers = Array.Empty<PersonContainer>();
|
||||
else
|
||||
@ -139,10 +144,6 @@ public partial class DlibDotNet
|
||||
e2Navigate.Navigate(propertyConfiguration, model, predictorModel, configuration.OutputResolutions[0]);
|
||||
_Log.Information(propertyConfiguration.RootDirectory);
|
||||
}
|
||||
{
|
||||
(ImageCodecInfo imageCodecInfo, EncoderParameters encoderParameters, string filenameExtension) = C_Resize.GetGifLowQuality();
|
||||
_FaceParts = new D2_FaceParts(imageCodecInfo, encoderParameters, filenameExtension, configuration.CheckDFaceAndUpWriteDates, configuration.OverrideForFaceLandmarkImages);
|
||||
}
|
||||
{
|
||||
(ImageCodecInfo imageCodecInfo, EncoderParameters encoderParameters, string filenameExtension) = C_Resize.GetTuple(
|
||||
configuration.OutputExtension,
|
||||
@ -323,28 +324,18 @@ public partial class DlibDotNet
|
||||
throw new Exception("Configuration has to match interface!");
|
||||
}
|
||||
|
||||
private static Map.Models.Configuration Get(Models.Configuration configuration)
|
||||
private static Map.Models.Configuration Get(Models.Configuration configuration, string facesFileNameExtension, string facesHiddenFileNameExtension, string facePartsFileNameExtension)
|
||||
{
|
||||
Map.Models.Configuration result = new(
|
||||
configuration.FaceDistanceAreaPermilleTolerance,
|
||||
configuration.FaceDistanceHiddenImageFactor,
|
||||
configuration.FaceDistancePermyriad,
|
||||
configuration.FaceDistanceMinimumConfidence,
|
||||
configuration.FaceDistanceTolerance,
|
||||
configuration.MapLogicSigma,
|
||||
configuration.MappingDefaultName,
|
||||
configuration.DistanceMoveUnableToMatch,
|
||||
configuration.MappingSaveNotMapped,
|
||||
configuration.MappingSaveMapped,
|
||||
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping,
|
||||
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping,
|
||||
configuration.PersonBirthdayFirstYear,
|
||||
configuration.PersonBirthdayFormat,
|
||||
configuration.PersonKeyFormat,
|
||||
configuration.SortingDaysDeltaTolerance,
|
||||
configuration.SortingMaximumPerFaceShouldBeHigh,
|
||||
configuration.SortingMaximumPerKey,
|
||||
configuration.SortingSigma);
|
||||
facesFileNameExtension,
|
||||
facesHiddenFileNameExtension,
|
||||
facePartsFileNameExtension);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -431,7 +422,7 @@ public partial class DlibDotNet
|
||||
if (item.Property?.Id is not null
|
||||
&& faces.Any(l => l.FaceEncoding is not null && l.Location is not null && l.OutputResolution is not null)
|
||||
&& idToMappedFaceFilesCollection.TryGetValue(item.Property.Id.Value, out List<(string, int)>? collection))
|
||||
_ = _Distance.GetUnableToMatchCountAndRenameMatches(_Faces.FileNameExtension, eDistanceContentDirectory, mappingFromItem, faces, collection);
|
||||
_Distance.LookForMatchFacesAndPossiblyRename(_Faces.FileNameExtension, eDistanceContentDirectory, mappingFromItem, faces, collection);
|
||||
if (_Configuration.SaveFaceLandmarkForOutputResolutions.Contains(outputResolution))
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
@ -905,15 +896,16 @@ public partial class DlibDotNet
|
||||
_AppSettings.MaxDegreeOfParallelism,
|
||||
_Configuration.PropertyConfiguration,
|
||||
_MapConfiguration,
|
||||
_Faces.FileNameExtension,
|
||||
_Faces.HiddenFileNameExtension,
|
||||
_FaceParts.FileNameExtension,
|
||||
ticks,
|
||||
personContainers,
|
||||
a2PeopleSingletonDirectory,
|
||||
eDistanceContentDirectory,
|
||||
distinctFilteredFaces,
|
||||
_Distance);
|
||||
mapLogic.CopyManualFiles(dFacesContentDirectory, distinctFilteredFaces);
|
||||
int totalNotMapped = mapLogic.AddToMapping(distinctFilteredFaces);
|
||||
if (_Configuration.MappingSaveMapped)
|
||||
mapLogic.SaveMapped(dFacesContentDirectory, d2FacePartsContentDirectory, distinctFilteredFaces, totalNotMapped);
|
||||
sortingContainers = _Distance.SetFaceMappingSortingCollectionThenGetSortingContainers(_AppSettings.MaxDegreeOfParallelism, ticks, mapLogic, selectedFilteredFaces, useFiltersCounter);
|
||||
if (!sortingContainers.Any())
|
||||
{
|
||||
@ -925,11 +917,9 @@ public partial class DlibDotNet
|
||||
}
|
||||
}
|
||||
E_Distance.SaveFaceDistances(_Configuration.PropertyConfiguration, sortingContainers);
|
||||
int totalNotMapped = mapLogic.AddToMapping(distinctFilteredFaces);
|
||||
if (totalNotMapped > 0)
|
||||
mapLogic.ForceSingleImageThenSaveMapping(dFacesContentDirectory, d2FacePartsContentDirectory, distinctFilteredFaces, sortingContainers, useFiltersCounter, totalNotMapped);
|
||||
mapLogic.CopyManualFiles(dFacesContentDirectory, distinctFilteredFaces);
|
||||
if (_MapConfiguration.MappingSaveNotMapped)
|
||||
mapLogic.ForceSingleImageThenSaveSorting(dFacesContentDirectory, d2FacePartsContentDirectory, distinctFilteredFaces, sortingContainers, useFiltersCounter, totalNotMapped);
|
||||
if (_Configuration.MappingSaveNotMapped)
|
||||
mapLogic.SaveNotMappedTicks();
|
||||
if (_Configuration.SaveShortcutsForOutputResolutions.Contains(outputResolution))
|
||||
mapLogic.SaveShortcuts(_Configuration.JuliePhares, distinctFilteredFaces);
|
||||
@ -1042,8 +1032,9 @@ public partial class DlibDotNet
|
||||
propertyRoot = Property.Models.Stateless.IResult.GetResultsGroupDirectory(_Configuration.PropertyConfiguration, nameof(A_Property), create: false);
|
||||
propertyLogic = new(_AppSettings.MaxDegreeOfParallelism, _Configuration.PropertyConfiguration, _Resize.FileNameExtension, _Configuration.Reverse, model, predictorModel);
|
||||
}
|
||||
Dictionary<int, List<(string, int)>> idToMappedFaceFilesCollection = Map.Models.Stateless.Methods.IMapLogic.DeleteEmptyDirectoriesAndGetMappedFaceFiles(_MapConfiguration, _Faces.FileNameExtension, ticks, a2PeopleContentDirectory, eDistanceContentDirectory, personContainers);
|
||||
Dictionary<int, List<(string, int)>> idToMappedFaceFilesCollection = Map.Models.Stateless.Methods.IMapLogic.DeleteEmptyDirectoriesAndGetMappedFaceFiles(_MapConfiguration, ticks, a2PeopleContentDirectory, eDistanceContentDirectory, personContainers);
|
||||
FullDoWork(argZero, model, predictorModel, propertyRoot, ticks, propertyLogic, t, containers, eDistanceContentDirectory, idToMappedFaceFilesCollection);
|
||||
_Distance.Clear();
|
||||
foreach (string outputResolution in _Configuration.OutputResolutions)
|
||||
{
|
||||
if (_FirstRun || container is not null)
|
||||
|
@ -16,6 +16,7 @@ public class Configuration
|
||||
[Display(Name = "Distance Factor"), Required] public int? DistanceFactor { get; set; }
|
||||
[Display(Name = "Distance Move Unable to Match by 1 Tick"), Required] public bool? DistanceMoveUnableToMatch { get; set; }
|
||||
[Display(Name = "Distance Pixel Distance Tolerance"), Required] public int? DistancePixelDistanceTolerance { get; set; }
|
||||
[Display(Name = "Distance Rename to Match"), Required] public bool? DistanceRenameToMatch { get; set; }
|
||||
[Display(Name = "Face Area Permille Tolerance"), Required] public int? FaceDistanceAreaPermilleTolerance { get; set; }
|
||||
[Display(Name = "Face Distance Hidden Image Factor"), Required] public int? FaceDistanceHiddenImageFactor { get; set; }
|
||||
[Display(Name = "Location Minimum Confidence"), Required] public double? FaceDistanceMinimumConfidence { get; set; }
|
||||
@ -33,7 +34,6 @@ public class Configuration
|
||||
[Display(Name = "Location Confidence Factor"), Required] public int? LocationConfidenceFactor { get; set; }
|
||||
[Display(Name = "Location Digits"), Required] public int? LocationDigits { get; set; }
|
||||
[Display(Name = "Location Factor"), Required] public int? LocationFactor { get; set; }
|
||||
[Display(Name = "Map Logic Sigma"), Required] public int? MapLogicSigma { 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 Save Mapped"), Required] public bool? MappingSaveMapped { get; set; }
|
||||
@ -100,6 +100,8 @@ public class Configuration
|
||||
throw new NullReferenceException(nameof(configuration.DistanceMoveUnableToMatch));
|
||||
if (configuration.DistancePixelDistanceTolerance is null)
|
||||
throw new NullReferenceException(nameof(configuration.DistancePixelDistanceTolerance));
|
||||
if (configuration.DistanceRenameToMatch is null)
|
||||
throw new NullReferenceException(nameof(configuration.DistanceRenameToMatch));
|
||||
if (configuration.FaceDistanceAreaPermilleTolerance is null)
|
||||
throw new NullReferenceException(nameof(configuration.FaceDistanceAreaPermilleTolerance));
|
||||
if (configuration.FaceDistanceHiddenImageFactor is null)
|
||||
@ -132,8 +134,6 @@ public class Configuration
|
||||
throw new NullReferenceException(nameof(configuration.LocationDigits));
|
||||
if (configuration.LocationFactor is null)
|
||||
throw new NullReferenceException(nameof(configuration.LocationFactor));
|
||||
if (configuration.MapLogicSigma is null)
|
||||
throw new NullReferenceException(nameof(configuration.MapLogicSigma));
|
||||
if (configuration.MappingDefaultName is null)
|
||||
throw new NullReferenceException(nameof(configuration.MappingDefaultName));
|
||||
if (configuration.MappingSaveNotMapped is null)
|
||||
@ -223,6 +223,7 @@ public class Configuration
|
||||
configuration.DistanceFactor.Value,
|
||||
configuration.DistanceMoveUnableToMatch.Value,
|
||||
configuration.DistancePixelDistanceTolerance.Value,
|
||||
configuration.DistanceRenameToMatch.Value,
|
||||
configuration.FaceDistanceAreaPermilleTolerance.Value,
|
||||
configuration.FaceDistanceHiddenImageFactor.Value,
|
||||
configuration.FaceDistanceMinimumConfidence.Value,
|
||||
@ -240,7 +241,6 @@ public class Configuration
|
||||
configuration.LocationConfidenceFactor.Value,
|
||||
configuration.LocationDigits.Value,
|
||||
configuration.LocationFactor.Value,
|
||||
configuration.MapLogicSigma.Value,
|
||||
configuration.MappedMaxIndex,
|
||||
configuration.MappingDefaultName,
|
||||
configuration.MappingSaveNotMapped.Value,
|
||||
|
@ -15,6 +15,7 @@ public class Configuration
|
||||
public int DistanceFactor { init; get; }
|
||||
public bool DistanceMoveUnableToMatch { init; get; }
|
||||
public int DistancePixelDistanceTolerance { init; get; }
|
||||
public bool DistanceRenameToMatch { init; get; }
|
||||
public int FaceDistanceAreaPermilleTolerance { init; get; }
|
||||
public int FaceDistanceHiddenImageFactor { init; get; }
|
||||
public double FaceDistanceMinimumConfidence { init; get; }
|
||||
@ -32,7 +33,6 @@ public class Configuration
|
||||
public int LocationConfidenceFactor { init; get; }
|
||||
public int LocationDigits { init; get; }
|
||||
public int LocationFactor { init; get; }
|
||||
public int MapLogicSigma { init; get; }
|
||||
public int? MappedMaxIndex { init; get; }
|
||||
public string MappingDefaultName { init; get; }
|
||||
public bool MappingSaveNotMapped { init; get; }
|
||||
@ -83,6 +83,7 @@ public class Configuration
|
||||
int distanceFactor,
|
||||
bool distanceMoveUnableToMatch,
|
||||
int distancePixelDistanceTolerance,
|
||||
bool distanceRenameToMatch,
|
||||
int faceDistanceAreaPermilleTolerance,
|
||||
int faceDistanceHiddenImageFactor,
|
||||
double faceDistanceMinimumConfidence,
|
||||
@ -100,7 +101,6 @@ public class Configuration
|
||||
int locationConfidenceFactor,
|
||||
int locationDigits,
|
||||
int locationFactor,
|
||||
int mapLogicSigma,
|
||||
int? mappedMaxIndex,
|
||||
string mappingDefaultName,
|
||||
bool mappingSaveNotMapped,
|
||||
@ -150,6 +150,7 @@ public class Configuration
|
||||
DistanceFactor = distanceFactor;
|
||||
DistanceMoveUnableToMatch = distanceMoveUnableToMatch;
|
||||
DistancePixelDistanceTolerance = distancePixelDistanceTolerance;
|
||||
DistanceRenameToMatch = distanceRenameToMatch;
|
||||
FaceDistanceAreaPermilleTolerance = faceDistanceAreaPermilleTolerance;
|
||||
FaceDistanceHiddenImageFactor = faceDistanceHiddenImageFactor;
|
||||
FaceDistanceMinimumConfidence = faceDistanceMinimumConfidence;
|
||||
@ -167,7 +168,6 @@ public class Configuration
|
||||
LocationConfidenceFactor = locationConfidenceFactor;
|
||||
LocationDigits = locationDigits;
|
||||
LocationFactor = locationFactor;
|
||||
MapLogicSigma = mapLogicSigma;
|
||||
MappedMaxIndex = mappedMaxIndex;
|
||||
MappingDefaultName = mappingDefaultName;
|
||||
MappingSaveNotMapped = mappingSaveNotMapped;
|
||||
|
@ -57,7 +57,8 @@
|
||||
"DistanceFactor": 8,
|
||||
"DistanceMoveUnableToMatch": false,
|
||||
"DistancePixelDistanceTolerance": 1,
|
||||
"FaceDistanceAreaPermilleTolerance": 250,
|
||||
"DistanceRenameToMatch": false,
|
||||
"FaceDistanceAreaPermilleTolerance": 7,
|
||||
"FaceDistanceHiddenImageFactor": 2,
|
||||
"FaceDistanceMinimumConfidence": 0.8,
|
||||
"FaceDistancePermyriad": 10000,
|
||||
@ -71,7 +72,6 @@
|
||||
"LocationConfidenceFactor": 2,
|
||||
"LocationDigits": 9,
|
||||
"LocationFactor": 10000,
|
||||
"MapLogicSigma": 3,
|
||||
"MappedMaxIndex": 1034720,
|
||||
"MappingDefaultName": "John Doe~25",
|
||||
"MappingSaveFaceEncoding": false,
|
||||
@ -118,7 +118,7 @@
|
||||
"SkipSearch": false,
|
||||
"SortingDaysDeltaTolerance": 700,
|
||||
"SortingMaximumPerFaceShouldBeHigh": 1000,
|
||||
"SortingMaximumPerKey": 27,
|
||||
"SortingMaximumPerKey": 7,
|
||||
"SortingSigma": 3,
|
||||
"TestDistanceResults": true,
|
||||
"WriteBitmapDataBytes": false,
|
||||
|
@ -57,6 +57,7 @@
|
||||
"DistanceFactor": 8,
|
||||
"DistanceMoveUnableToMatch": false,
|
||||
"DistancePixelDistanceTolerance": 1,
|
||||
"DistanceRenameToMatch": false,
|
||||
"FaceDistanceAreaPermilleTolerance": 250,
|
||||
"FaceDistanceHiddenImageFactor": 2,
|
||||
"FaceDistanceMinimumConfidence": 0.8,
|
||||
@ -71,7 +72,6 @@
|
||||
"LocationConfidenceFactor": 2,
|
||||
"LocationDigits": 9,
|
||||
"LocationFactor": 10000,
|
||||
"MapLogicSigma": 3,
|
||||
"MappedMaxIndex": 1034720,
|
||||
"MappingDefaultName": "John Doe~25",
|
||||
"MappingSaveFaceEncoding": false,
|
||||
@ -116,7 +116,7 @@
|
||||
"SkipSearch": false,
|
||||
"SortingDaysDeltaTolerance": 700,
|
||||
"SortingMaximumPerFaceShouldBeHigh": 1000,
|
||||
"SortingMaximumPerKey": 27,
|
||||
"SortingMaximumPerKey": 7,
|
||||
"SortingSigma": 3,
|
||||
"TestDistanceResults": true,
|
||||
"WriteBitmapDataBytes": false,
|
||||
|
@ -57,6 +57,7 @@
|
||||
"DistanceFactor": 8,
|
||||
"DistanceMoveUnableToMatch": false,
|
||||
"DistancePixelDistanceTolerance": 1,
|
||||
"DistanceRenameToMatch": false,
|
||||
"FaceDistanceAreaPermilleTolerance": 250,
|
||||
"FaceDistanceHiddenImageFactor": 2,
|
||||
"FaceDistanceMinimumConfidence": 0.8,
|
||||
@ -71,7 +72,6 @@
|
||||
"LocationConfidenceFactor": 2,
|
||||
"LocationDigits": 9,
|
||||
"LocationFactor": 10000,
|
||||
"MapLogicSigma": 3,
|
||||
"MappedMaxIndex": 1034720,
|
||||
"MappingDefaultName": "John Doe~25",
|
||||
"MappingSaveFaceEncoding": false,
|
||||
@ -116,7 +116,7 @@
|
||||
"SkipSearch": false,
|
||||
"SortingDaysDeltaTolerance": 700,
|
||||
"SortingMaximumPerFaceShouldBeHigh": 1000,
|
||||
"SortingMaximumPerKey": 27,
|
||||
"SortingMaximumPerKey": 7,
|
||||
"SortingSigma": 3,
|
||||
"TestDistanceResults": true,
|
||||
"WriteBitmapDataBytes": false,
|
||||
|
Reference in New Issue
Block a user