File size: 632 Bytes
721508a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from facenet_pytorch import MTCNN
import torch
from PIL import Image
import numpy as np


class FaceDetector:
    def __init__(self):
        device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
        self.model = MTCNN(keep_all=True, post_process=False, device=device)

    def detect_bboxes(self, img: Image.Image) -> np.ndarray:
        boxes, probs = self.model.detect(img)
        return boxes
    
    def extract_faces(self, img: Image.Image, bboxes) -> torch.Tensor:
        face_images_tensors = self.model.extract(img, bboxes, save_path='dev/extracted/extracted.jpg')
        return face_images_tensors