Dlib错误反序列化unsigned long类型的对象,同时反序列化std :: string类型的对象

时间:2018-05-15 12:08:14

标签: python-3.x dlib

我尝试使用Dlib运行用于面部检测的Python代码。但是当我尝试使用以下命令加载文件shape_predictor_68_face_landmarks.datface_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.04Python 3.6

更新1:

如果使用与函数dlib.shape_predictor(shape_predictor_68_face_landmarks.dat)相同的文件,它运行没有任何问题!

似乎功能dlib.cnn_face_detection_model_v1存在问题。如果我错了,请纠正我!

1 个答案:

答案 0 :(得分:0)

我已经在推特上联系了戴维斯·金,他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')