SkipOlderThanDays
This commit is contained in:
parent
4484345d9f
commit
d38c558128
@ -473,13 +473,15 @@ public partial class E_Distance
|
||||
return faceDistanceEncodings;
|
||||
}
|
||||
|
||||
public static FaceDistanceContainer[] FilteredFaceDistanceContainers(Map.Models.MapLogic mapLogic, FaceDistanceContainer[] faceDistanceContainers, DistanceLimits distanceLimits)
|
||||
public static FaceDistanceContainer[] FilteredFaceDistanceContainers(Map.Models.MapLogic mapLogic, FaceDistanceContainer[] faceDistanceContainers, long? skipOlderThan, DistanceLimits distanceLimits)
|
||||
{
|
||||
List<FaceDistanceContainer> results = new();
|
||||
foreach (FaceDistanceContainer faceDistanceContainer in faceDistanceContainers)
|
||||
{
|
||||
if (faceDistanceContainer.FaceDistance is null || faceDistanceContainer.Face.Mapping?.MappingFromLocation is null)
|
||||
throw new NotSupportedException();
|
||||
if (skipOlderThan is not null && (faceDistanceContainer.FaceDistance.MinimumDateTime is null || faceDistanceContainer.FaceDistance.MinimumDateTime.Value.Ticks < skipOlderThan.Value))
|
||||
continue;
|
||||
if (faceDistanceContainer.Face.Mapping.MappingFromLocation.ConfidencePercent < distanceLimits.FaceConfidencePercent)
|
||||
continue;
|
||||
if (faceDistanceContainer.Face.Mapping.MappingFromLocation.AreaPermyriad < distanceLimits.FaceAreaPermyriad)
|
||||
|
@ -732,8 +732,9 @@ public partial class DlibDotNet
|
||||
int? useFiltersCounter = null;
|
||||
SortingContainer[] sortingContainers;
|
||||
FaceDistanceContainer[] filteredFaceDistanceContainers;
|
||||
long? skipOlderThan = _Configuration.SkipOlderThanDays is null ? null : new DateTime(ticks).AddDays(-_Configuration.SkipOlderThanDays.Value).Ticks;
|
||||
distanceLimits = new(_Configuration.FaceAreaPermyriad, _Configuration.FaceConfidencePercent, _Configuration.FaceDistancePermyriad, _Configuration.RangeDaysDeltaTolerance, _Configuration.RangeDistanceTolerance, _Configuration.RangeFaceAreaTolerance, _Configuration.RangeFaceConfidence, _Configuration.SortingMaximumPerFaceShouldBeHigh);
|
||||
filteredFaceDistanceContainers = E_Distance.FilteredFaceDistanceContainers(mapLogic, faceDistanceContainers, distanceLimits);
|
||||
filteredFaceDistanceContainers = E_Distance.FilteredFaceDistanceContainers(mapLogic, faceDistanceContainers, skipOlderThan, distanceLimits);
|
||||
if (!filteredFaceDistanceContainers.Any())
|
||||
_Log.Information("All images have been filtered!");
|
||||
else
|
||||
@ -744,7 +745,7 @@ public partial class DlibDotNet
|
||||
for (useFiltersCounter = 1; useFiltersCounter < _Configuration.UseFilterTries; useFiltersCounter++)
|
||||
{
|
||||
distanceLimits = new(_Configuration.FaceAreaPermyriad, _Configuration.FaceConfidencePercent, _Configuration.FaceDistancePermyriad, _Configuration.RangeDaysDeltaTolerance, _Configuration.RangeDistanceTolerance, _Configuration.RangeFaceAreaTolerance, _Configuration.RangeFaceConfidence, _Configuration.SortingMaximumPerFaceShouldBeHigh, useFiltersCounter);
|
||||
filteredFaceDistanceContainers = E_Distance.FilteredFaceDistanceContainers(mapLogic, faceDistanceContainers, distanceLimits);
|
||||
filteredFaceDistanceContainers = E_Distance.FilteredFaceDistanceContainers(mapLogic, faceDistanceContainers, skipOlderThan, distanceLimits);
|
||||
if (filteredFaceDistanceContainers.Any())
|
||||
_Log.Information("All images have been filtered!");
|
||||
else
|
||||
|
@ -75,6 +75,7 @@ public class Configuration
|
||||
[Display(Name = "Save Shortcuts"), Required] public string[] SaveShortcutsForOutputResolutions { get; set; }
|
||||
[Display(Name = "Save Sorting Without Person"), Required] public bool? SaveSortingWithoutPerson { get; set; }
|
||||
[Display(Name = "Skip Not Skip Directories"), Required] public string[] SkipNotSkipDirectories { get; set; }
|
||||
[Display(Name = "Skip Older Than Days"), Required] public int? SkipOlderThanDays { get; set; }
|
||||
[Display(Name = "Skip Search"), Required] public bool? SkipSearch { get; set; }
|
||||
[Display(Name = "SortingMaximumPerFaceShould be High"), Required] public int? SortingMaximumPerFaceShouldBeHigh { get; set; }
|
||||
[Display(Name = "Sorting Maximum Per Key"), Required] public int? SortingMaximumPerKey { get; set; }
|
||||
@ -284,6 +285,7 @@ public class Configuration
|
||||
configuration.SaveShortcutsForOutputResolutions,
|
||||
configuration.SaveSortingWithoutPerson.Value,
|
||||
configuration.SkipNotSkipDirectories,
|
||||
configuration.SkipOlderThanDays,
|
||||
configuration.SkipSearch.Value,
|
||||
configuration.SortingMaximumPerFaceShouldBeHigh.Value,
|
||||
configuration.SortingMaximumPerKey.Value,
|
||||
|
@ -72,6 +72,7 @@ public class Configuration
|
||||
public bool SaveSortingWithoutPerson { init; get; }
|
||||
public string[] SkipNotSkipDirectories { init; get; }
|
||||
public bool SkipSearch { init; get; }
|
||||
public int? SkipOlderThanDays { init; get; }
|
||||
public int SortingMaximumPerFaceShouldBeHigh { init; get; }
|
||||
public int SortingMaximumPerKey { init; get; }
|
||||
public int SortingMinimumToUseSigma { init; get; }
|
||||
@ -143,6 +144,7 @@ public class Configuration
|
||||
string[] saveShortcutsForOutputResolutions,
|
||||
bool saveSortingWithoutPerson,
|
||||
string[] skipNotSkipDirectories,
|
||||
int? skipOlderThanDays,
|
||||
bool skipSearch,
|
||||
int sortingMaximumPerFaceShouldBeHigh,
|
||||
int sortingMaximumPerKey,
|
||||
@ -214,6 +216,7 @@ public class Configuration
|
||||
SaveShortcutsForOutputResolutions = saveShortcutsForOutputResolutions;
|
||||
SaveSortingWithoutPerson = saveSortingWithoutPerson;
|
||||
SkipNotSkipDirectories = skipNotSkipDirectories;
|
||||
SkipOlderThanDays = skipOlderThanDays;
|
||||
SkipSearch = skipSearch;
|
||||
SortingMaximumPerFaceShouldBeHigh = sortingMaximumPerFaceShouldBeHigh;
|
||||
SortingMaximumPerKey = sortingMaximumPerKey;
|
||||
|
@ -19,7 +19,7 @@
|
||||
"FocusDirectory": "",
|
||||
"xFocusDirectory": "/Hawaii 2022",
|
||||
"FocusModel": "",
|
||||
"xxFocusModel": "NIKON D3400",
|
||||
"xFocusModel": "NIKON D3400",
|
||||
"PersonCharactersCopyCount": 0,
|
||||
"xPersonCharactersCopyCount": 2,
|
||||
"xRootDirectory": "D:/Tmp/phares/Pictures",
|
||||
@ -28,6 +28,8 @@
|
||||
"RootDirectory": "D:/1) Images A/Images-45f4401",
|
||||
"xxxxxRootDirectory": "D:/1) Images A/Images-45f4401/Facebook/=2022.3 Facebook",
|
||||
"SaveSortingWithoutPerson": true,
|
||||
"xSkipOlderThanDays": null,
|
||||
"SkipOlderThanDays": 1800,
|
||||
"JLinks": [
|
||||
"Julie"
|
||||
],
|
||||
@ -48,7 +50,7 @@
|
||||
],
|
||||
"RangeDistanceTolerance": [
|
||||
0,
|
||||
0.65,
|
||||
0.98,
|
||||
1.8
|
||||
],
|
||||
"RangeFaceAreaTolerance": [
|
||||
@ -58,7 +60,7 @@
|
||||
],
|
||||
"RangeFaceConfidence": [
|
||||
0,
|
||||
0.8,
|
||||
0.5,
|
||||
1.6
|
||||
],
|
||||
"SaveFaceDistancesForOutputResolutions": [
|
||||
|
@ -108,6 +108,7 @@
|
||||
"SaveFullYearOfRandomFiles": true,
|
||||
"SaveResizedSubFiles": true,
|
||||
"SaveSortingWithoutPerson": false,
|
||||
"SkipOlderThanDays": null,
|
||||
"SkipSearch": false,
|
||||
"SortingMaximumPerFaceShouldBeHigh": 3000,
|
||||
"SortingMaximumPerKey": 7,
|
||||
|
Loading…
x
Reference in New Issue
Block a user