Range
This commit is contained in:
@ -12,15 +12,17 @@ public partial class E_Distance
|
||||
private readonly List<double?> _Debug;
|
||||
private readonly List<string> _Renamed;
|
||||
private readonly Serilog.ILogger? _Log;
|
||||
private readonly int _FaceConfidencePercent;
|
||||
private readonly bool _DistanceRenameToMatch;
|
||||
private readonly double _FaceDistanceTolerance;
|
||||
private readonly double[] _RangeFaceConfidence;
|
||||
private readonly bool _DistanceMoveUnableToMatch;
|
||||
private readonly List<string> _AllMappedFaceFiles;
|
||||
private readonly double[] _RangeDistanceTolerance;
|
||||
private readonly int _DistancePixelDistanceTolerance;
|
||||
private readonly List<string> _AllMappedFaceFileNames;
|
||||
private readonly List<string> _DuplicateMappedFaceFiles;
|
||||
|
||||
public E_Distance(bool distanceMoveUnableToMatch, int distancePixelDistanceTolerance, bool distanceRenameToMatch, double faceDistanceTolerance)
|
||||
public E_Distance(bool distanceMoveUnableToMatch, int distancePixelDistanceTolerance, bool distanceRenameToMatch, int faceConfidencePercent, double[] rangeDistanceTolerance, double[] rangeFaceConfidence)
|
||||
{
|
||||
_Debug = new();
|
||||
_Moved = new();
|
||||
@ -28,9 +30,11 @@ public partial class E_Distance
|
||||
_AllMappedFaceFiles = new();
|
||||
_AllMappedFaceFileNames = new();
|
||||
_DuplicateMappedFaceFiles = new();
|
||||
_RangeFaceConfidence = rangeFaceConfidence;
|
||||
_Log = Serilog.Log.ForContext<E_Distance>();
|
||||
_DistanceRenameToMatch = distanceRenameToMatch;
|
||||
_FaceDistanceTolerance = faceDistanceTolerance;
|
||||
_FaceConfidencePercent = faceConfidencePercent;
|
||||
_RangeDistanceTolerance = rangeDistanceTolerance;
|
||||
_DistanceMoveUnableToMatch = distanceMoveUnableToMatch;
|
||||
_DistancePixelDistanceTolerance = distancePixelDistanceTolerance;
|
||||
}
|
||||
@ -67,7 +71,7 @@ public partial class E_Distance
|
||||
}
|
||||
else
|
||||
{
|
||||
checkDirectoryName = Path.Combine(checkDirectoryName, $"({directoryTicks}{_FaceDistanceTolerance.ToString()[1..]})");
|
||||
checkDirectoryName = Path.Combine(checkDirectoryName, $"({directoryTicks}_{string.Join('-', _RangeDistanceTolerance)})");
|
||||
for (int i = directoryNames.Count - 1 - 1; i > -1; i--)
|
||||
checkDirectoryName = Path.Combine(checkDirectoryName, directoryNames[i]);
|
||||
if (!Directory.Exists(checkDirectoryName))
|
||||
@ -133,9 +137,10 @@ public partial class E_Distance
|
||||
return result;
|
||||
}
|
||||
|
||||
private static FaceDistanceContainer[] GetFaceDistanceContainers(MappingFromItem mappingFromItem, Face[] filteredFaces)
|
||||
private FaceDistanceContainer[] GetFaceDistanceContainers(MappingFromItem mappingFromItem, Face[] filteredFaces)
|
||||
{
|
||||
FaceDistanceContainer[] results;
|
||||
int confidencePercent;
|
||||
FaceDistance faceDistance;
|
||||
int normalizedPixelPercentage;
|
||||
FaceDistanceContainer faceDistanceContainer;
|
||||
@ -144,13 +149,14 @@ public partial class E_Distance
|
||||
{
|
||||
if (face.FaceEncoding is null || face.Location is null || face.OutputResolution is null)
|
||||
throw new NotSupportedException();
|
||||
confidencePercent = Shared.Models.Stateless.Methods.ILocation.GetConfidencePercent(_FaceConfidencePercent, _RangeFaceConfidence, face.Location.Confidence);
|
||||
normalizedPixelPercentage = Shared.Models.Stateless.Methods.ILocation.GetNormalizedPixelPercentage(face.Location, Shared.Models.Stateless.ILocation.Digits, Shared.Models.Stateless.ILocation.Factor, face.OutputResolution);
|
||||
if (face.FaceDistance?.Encoding is not null && face.FaceDistance.Encoding is FaceRecognitionDotNet.FaceEncoding faceEncoding)
|
||||
faceDistance = new(face.Location.Confidence, faceEncoding, mappingFromItem.Id, mappingFromItem.IsWrongYear, mappingFromItem.MinimumDateTime, normalizedPixelPercentage);
|
||||
faceDistance = new(confidencePercent, faceEncoding, mappingFromItem.Id, mappingFromItem.IsWrongYear, mappingFromItem.MinimumDateTime, normalizedPixelPercentage);
|
||||
else
|
||||
{
|
||||
faceEncoding = FaceRecognition.LoadFaceEncoding(face.FaceEncoding.RawEncoding);
|
||||
faceDistance = new(face.Location.Confidence, faceEncoding, mappingFromItem.Id, mappingFromItem.IsWrongYear, mappingFromItem.MinimumDateTime, normalizedPixelPercentage);
|
||||
faceDistance = new(confidencePercent, faceEncoding, mappingFromItem.Id, mappingFromItem.IsWrongYear, mappingFromItem.MinimumDateTime, normalizedPixelPercentage);
|
||||
lock (filteredFaces)
|
||||
face.SetFaceDistance(faceDistance);
|
||||
}
|
||||
@ -173,7 +179,7 @@ public partial class E_Distance
|
||||
return faceDistanceEncodings;
|
||||
}
|
||||
|
||||
private static List<(Face Face, double? Length)> GetValues(MappingFromItem mappingFromItem, Face[] filteredFaces, string json)
|
||||
private List<(Face Face, double? Length)> GetValues(MappingFromItem mappingFromItem, Face[] filteredFaces, string json)
|
||||
{
|
||||
List<(Face Face, double? Length)> results = new();
|
||||
Face face;
|
||||
|
Reference in New Issue
Block a user