为什么dlib面部标志检测器抛出RuntimeError?

时间:2017-03-10 11:50:09

标签: python opencv dlib

我是python编程的新手。我正在尝试运行dlib面部标志检测器的示例代码。不幸的是我收到了以下错误:

Traceback (most recent call last):
  File "facial_landmarks.py", line 109, in <module>
    predictor = dlib.shape_predictor(predictor_path)
RuntimeError: Error deserializing object of type long
   while deserializing a dlib::matrix

有没有人知道如何解决它?

2 个答案:

答案 0 :(得分:1)

此消息将由以下之一引起:

  • predictor_path指向的文件已损坏或丢失
  • 您忘记解压缩predictor_path指向的文件
  • 基础文件系统无法正确向dlib.shape_predictor提供数据的其他问题(例如磁盘损坏,文件权限,符号链接问题)

更详细地了解dlib示例本身: http://dlib.net/face_landmark_detection.py.html

答案 1 :(得分:0)

缺少dlib的形状预测器:

  1. 下载并提取形状预测模型(约60 MB):

    wget http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2
    bzip2 -dk shape_predictor_68_face_landmarks.dat.bz2
    
  2. 将预测变量文件路径作为第一个参数传递给Python脚本:

    python facial_landmarks.py shape_predictor_68_face_landmarks.dat faces/*.jpg
    
  3. 有关如何使用dlib进行面部地标检测的精彩演练,请访问:http://www.learnopencv.com/facial-landmark-detection/