diff --git a/mobile/lib/services/machine_learning/face_ml/face_filtering/face_filtering_constants.dart b/mobile/lib/services/machine_learning/face_ml/face_filtering/face_filtering_constants.dart index 6606e858e..2ba6fbe47 100644 --- a/mobile/lib/services/machine_learning/face_ml/face_filtering/face_filtering_constants.dart +++ b/mobile/lib/services/machine_learning/face_ml/face_filtering/face_filtering_constants.dart @@ -7,7 +7,7 @@ const kLaplacianThreshold = 15; const kLapacianDefault = 10000.0; /// The minimum score for a face to be considered a high quality face for clustering and person detection -const kMinHighQualityFaceScore = 0.78; +const kMinHighQualityFaceScore = 0.80; /// The minimum score for a face to be detected, regardless of quality. Use [kMinHighQualityFaceScore] for high quality faces. const kMinFaceDetectionScore = YoloOnnxFaceDetection.kMinScoreSigmoidThreshold; diff --git a/mobile/lib/ui/settings/debug/face_debug_section_widget.dart b/mobile/lib/ui/settings/debug/face_debug_section_widget.dart index 937201be9..e09574356 100644 --- a/mobile/lib/ui/settings/debug/face_debug_section_widget.dart +++ b/mobile/lib/ui/settings/debug/face_debug_section_widget.dart @@ -159,7 +159,7 @@ class _FaceDebugSectionWidgetState extends State { trailingIconIsMuted: true, onTap: () async { await FaceMlService.instance - .clusterAllImages(minFaceScore: 0.75, clusterInBuckets: true); + .clusterAllImages(clusterInBuckets: true); Bus.instance.fire(PeopleChangedEvent()); showShortToast(context, "Done"); }, diff --git a/mobile/lib/ui/viewer/file_details/faces_item_widget.dart b/mobile/lib/ui/viewer/file_details/faces_item_widget.dart index 68de105c7..608c426c9 100644 --- a/mobile/lib/ui/viewer/file_details/faces_item_widget.dart +++ b/mobile/lib/ui/viewer/file_details/faces_item_widget.dart @@ -60,7 +60,7 @@ class FacesItemWidget extends StatelessWidget { faces.sort((Face a, Face b) => b.score.compareTo(a.score)); // Remove faces with low scores and blurry faces - faces.removeWhere((face) => face.isHighQuality == false); + faces.removeWhere((face) => (face.isBlurry || face.score < 0.75)); // TODO: add deduplication of faces of same person final faceIdsToClusterIds = await FaceMLDataDB.instance