dlib.shape_predictor报deserializing object of type int错误如何解决
错误产生原因
dlib.shape_predictor() 仅支持加载dlib官方序列化导出的人脸特征点预测模型文件,你代码中传入的icudtl.dat是ICU字符编码组件的支持数据文件,完全不匹配dlib模型的格式规范,程序尝试反序列化读取模型中int类型数据时无法匹配格式,触发该报错。
修复方案
- 首先获取dlib官方发布的预训练特征点预测模型,常用的是68点人脸特征点模型
shape_predictor_68_face_landmarks.dat,也可按需选择5点等其他规格的合法模型。 - 将代码里
predictor_path的取值替换为你本地存放的合法dlib模型文件路径,修改后参考代码如下:
import dlib import cv2 import numpy as np # 需替换为你自己的模型文件实际存储路径 predictor_path = r'C:\Users\susi\Downloads\shape_predictor_68_face_landmarks.dat' predictor = dlib.shape_predictor(predictor_path)
- 加载前确认模型文件下载完整无损坏,路径无中文、特殊空格等非法字符,即可正常完成初始化。
内容的提问来源于stack exchange,提问作者THIRUNAVUKKARASU P
相关产品推荐
相关产品推荐

