python:反序列化dlib :: shape_predictor时发现意外的版本

时间:2018-04-02 15:55:28

标签: python face-recognition dlib

我试图使用python27(IDLE)从图像中获取面部标志。当我运行代码时,我得到输出:

追踪(最近一次通话):   文件" C:\ Users \ matth \ Desktop \ testmctest.py",第11行,在     predictor = dlib.shape_predictor(PREDICTOR_PATH) RuntimeError:反序列化dlib :: shape_predictor时发现意外版本。

使用dlib版本19.10(存储在我的桌面上) 使用http://dlib.net/files/中的shape_predictor_68_face_landmarks.dat.bz2文件(存储在我的python文件夹中的c驱动器上)

import numpy 
import cv2
import dlib

 PREDICTOR_PATH = "C:/Python27/shape_predictor_68_face_landmarks.dat.bz2"
 predictor = dlib.shape_predictor(PREDICTOR_PATH)
 cascade_path='haarcascade_frontalface_default.xml'
 cascade = cv2.CascadeClassifier(cascade_path)


def get_landmarks(im):
  rects = cascade.detectMultiScale(im, 1.3,5)
 x,y,w,h =rects[0]
 rect=dlib.rectangle(x,y,x+w,y+h)
return numpy.matrix([[p.x, p.y] for p in predictor(im, rect).parts()])

def annotate_landmarks(im, landmarks):
im = im.copy()
for idx, point in enumerate(landmarks):
    pos = (point[0, 0], point[0, 1])
    cv2.putText(im, str(idx), pos,
                fontFace=cv2.FONT_HERSHEY_SCRIPT_SIMPLEX,
                fontScale=0.4,
                color=(0, 0, 255))
    cv2.circle(im, pos, 3, color=(0, 255, 255))
return im

im=cv2.imread('face_leo1.jpg')
cv2.imshow('Result',annotate_landmarks(im,get_landmarks(im)))
cv2.waitKey(0)
cv2.destroyAllWindows()

1 个答案:

答案 0 :(得分:0)

dlib和shape_predictor_68_face_landmarks.dat.bz2超出' sync' 使用from The github page

修复