Improvements to face recognition (#15854)

* Do not add margin to face images

* remove margin

* Correctly clear
This commit is contained in:
Nicolas Mowen 2025-01-06 09:18:25 -06:00 committed by Blake Blackshear
parent a6ae208fe7
commit 4f85b18b08
2 changed files with 5 additions and 16 deletions

View File

@ -456,14 +456,9 @@ class EmbeddingMaintainer(threading.Thread):
logger.debug("Detected no faces for person object.")
return False
margin = int((face_box[2] - face_box[0]) * 0.25)
face_frame = person[
max(0, face_box[1] - margin) : min(
frame.shape[0], face_box[3] + margin
),
max(0, face_box[0] - margin) : min(
frame.shape[1], face_box[2] + margin
),
max(0, face_box[1]) : min(frame.shape[0], face_box[3]),
max(0, face_box[0]) : min(frame.shape[1], face_box[2]),
]
face_frame = cv2.cvtColor(face_frame, cv2.COLOR_RGB2BGR)
else:
@ -492,15 +487,10 @@ class EmbeddingMaintainer(threading.Thread):
return False
face_frame = cv2.cvtColor(frame, cv2.COLOR_YUV2BGR_I420)
margin = int((face_box[2] - face_box[0]) * 0.25)
face_frame = face_frame[
max(0, face_box[1] - margin) : min(
frame.shape[0], face_box[3] + margin
),
max(0, face_box[0] - margin) : min(
frame.shape[1], face_box[2] + margin
),
max(0, face_box[1]) : min(frame.shape[0], face_box[3]),
max(0, face_box[0]) : min(frame.shape[1], face_box[2]),
]
res = self.face_classifier.classify_face(face_frame)

View File

@ -309,8 +309,7 @@ class FaceClassificationModel:
)
def clear_classifier(self) -> None:
self.classifier = None
self.labeler = None
self.face_recognizer = None
self.label_map = {}
def detect_faces(self, input: np.ndarray) -> tuple[int, cv2.typing.MatLike] | None: