Как добавить кодировки фотографий в БД с Django, используя Face_recognition API? - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь, но это не работает ... Моя модель:

class Staff(models.Model):

    photo = models.FileField()
    encodings = models.TextField()

    def get_encodings(self):
        enc = face_recognition.face_encodings(self.photo)
        return enc

    def save(self, *args, **kwargs):
        self.encodings = self.get_encodings()
        super(Staff, self).save(*args, **kwargs)

Ошибка, возникающая при попытке добавить новый объект

__call__(): incompatible function arguments. The following argument types 
are supported:
1. (self: dlib.fhog_object_detector, image: array, upsample_num_times: 
int=0) -> dlib.rectangles

Invoked with: <dlib.fhog_object_detector object at 0x0000023D8CD9E570>, 
<FieldFile: photo_2018-12-05_23-09-20.jpg>, 1

1 Ответ

0 голосов
/ 14 декабря 2018

Необходимо преобразовать файл в файл изображения с помощью библиотеки PIL.face_recognition.face_encodings ожидание массива numpy в качестве входных данных

 import PIL.Image

class Staff(models.Model):

    photo = models.FileField()
    encodings = models.TextField()

    def get_encodings(self):
        enc = face_recognition.face_encodings(self.read_image_from_file(self.photo))
        return enc

    def save(self, *args, **kwargs):
        self.encodings = self.get_encodings()
        super(Staff, self).save(*args, **kwargs)

   def read_image_from_file(file):
       return np.array(PIL.Image.open(file))

Не забудьте использовать try и catch, когда пытаетесь прочитать / открыть файл / изображение.Мой код только для демонстрации, поэтому вы должны дополнить его необходимыми проверками!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...