[mob][photos] Skip cluster bucket if everything already has a clusterID

This commit is contained in:
laurenspriem 2024-05-28 15:41:20 +05:30
parent 50968fd6a1
commit b64077d5e7
2 changed files with 13 additions and 3 deletions

View File

@ -506,9 +506,7 @@ class FaceClusteringService {
// WARNING: The loop below is now O(n^2) so be very careful with anything you put in there!
for (int j = i - 1; j >= 0; j--) {
final double distance = 1 -
sortedFaceInfos[i]
.vEmbedding!
.dot(sortedFaceInfos[j].vEmbedding!);
sortedFaceInfos[i].vEmbedding!.dot(sortedFaceInfos[j].vEmbedding!);
if (distance < closestDistance) {
if (sortedFaceInfos[j].badFace! &&
distance > conservativeDistanceThreshold) {

View File

@ -651,6 +651,18 @@ class FaceMlService {
min(offset + bucketSize, allFaceInfoForClustering.length),
);
if (faceInfoForClustering.every((face) => face.clusterId != null)) {
_logger.info('Everything in bucket $bucket is already clustered');
if (offset + bucketSize >= totalFaces) {
_logger.info('All faces clustered');
break;
} else {
_logger.info('Skipping to next bucket');
offset += offsetIncrement;
bucket++;
}
}
final clusteringResult =
await FaceClusteringService.instance.predictLinear(
faceInfoForClustering.toSet(),