为啥 dlib 面部地标检测器会抛出 RuntimeError?
Posted
技术标签:
【中文标题】为啥 dlib 面部地标检测器会抛出 RuntimeError?【英文标题】:Why dlib facial landmark detector throws RuntimeError?为什么 dlib 面部地标检测器会抛出 RuntimeError? 【发布时间】:2017-07-31 18:14:52 【问题描述】:我对 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
有人知道如何解决吗?
【问题讨论】:
仅查看错误非常困难。为什么不贴出相关代码? 你解压了它试图加载的模型文件吗? 【参考方案1】:dlib 的形状预测器缺失:
下载并提取模型进行形状预测(约 60 MB):
wget http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2
bzip2 -dk shape_predictor_68_face_landmarks.dat.bz2
将预测器文件路径作为第一个参数传递给您的 Python 脚本:
python facial_landmarks.py shape_predictor_68_face_landmarks.dat faces/*.jpg
可以在此处找到有关如何使用 dlib 进行面部标志检测的精彩演练:http://www.learnopencv.com/facial-landmark-detection/
【讨论】:
【参考方案2】:此消息将由以下原因之一引起:
predictor_path 指向的文件损坏或丢失 您忘记解压缩 predictor_path 指向的文件 底层文件系统的一些其他问题无法将数据正确传送到 dlib.shape_predictor(例如磁盘损坏、文件权限、符号链接问题)更详细地看一下 dlib 示例本身: http://dlib.net/face_landmark_detection.py.html
【讨论】:
以上是关于为啥 dlib 面部地标检测器会抛出 RuntimeError?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法在使用 dlib 检测面部标志后选择面部的特定点?