Dlib Ошибка десериализации объекта типа unsigned long при десериализации объекта типа std :: string - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь запустить код Python для распознавания лиц с помощью Dlib. Но когда я пытаюсь загрузить файл shape_predictor_68_face_landmarks.dat, используя следующую команду face_detector =dlib.cnn_face_detection_model_v1('shape_predictor_68_face_landmarks.dat') Я получаю следующую ошибку:

    Traceback (most recent call last):
  File "face_detector.py", line 6, in <module>
    face_detector = dlib.cnn_face_detection_model_v1('shape_predictor_68_face_landmarks.dat')
RuntimeError: An error occurred while trying to read the first object from the file shape_predictor_68_face_landmarks.dat.
ERROR: Error deserializing object of type unsigned long
   while deserializing object of type std::string

Я скачал файл предиктора формы с github: https://github.com/davisking/dlib-models

Это мой код Python

import dlib
import cv2


face_detector = dlib.cnn_face_detection_model_v1('shape_predictor_68_face_landmarks.dat')

Остальная часть кода опущена, потому что в этом нет необходимости

Я использую: Ubuntu 18.04 и Python 3.6

ОБНОВЛЕНИЕ 1:

Если использовать тот же файл с функцией dlib.shape_predictor(shape_predictor_68_face_landmarks.dat), он работает без проблем!

Похоже, проблема с функцией dlib.cnn_face_detection_model_v1. Пожалуйста, поправьте меня, если я ошибаюсь!

1 Ответ

0 голосов
/ 16 мая 2018

Я связался с Дэвисом Кингом в твиттере, и он shape_predictor_68_face_landmarks.dat не правильный файл.Я должен загрузить mmod_human_face_detector.dat файл для функции dlib.cnn_face_detection_model_v1()

Он должен называться так

face_detector = dlib.cnn_face_detection_model_v1('mmod_human_face_detector.dat')
...