| 10759 | return self._encode_bgr_png(crop) |
| 10760 | |
| 10761 | def _detect_faces_cv2(self, bgr): |
| 10762 | import cv2 |
| 10763 | gray = cv2.cvtColor(bgr, cv2.COLOR_BGR2GRAY) |
| 10764 | cascade = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml") |
| 10765 | faces = cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(48, 48)) |
| 10766 | out = [] |
| 10767 | for (x, y, w, h) in faces: |
| 10768 | out.append((int(x), int(y), int(x + w), int(y + h))) |
| 10769 | out.sort(key=lambda bb: (bb[2] - bb[0]) * (bb[3] - bb[1]), reverse=True) |
| 10770 | return out |
| 10771 | |
| 10772 | def _face_embedding_cv2(self, bgr, bbox): |
| 10773 | import cv2 |