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