PyInstaller:如何使用 dlib.shape_predictor 调用 "shape_predictor_68_face_landmarks.dat" 文件,同时使用 'binaries' 导入文件?

PyInstaller: How to call "shape_predictor_68_face_landmarks.dat" file with dlib.shape_predictor, while imported it with 'binaries'?

我有一个小应用程序,它使用了 face_recognition 库。 我已经用

导入了它
face_models = [
('.//face_recognition_models//models//dlib_face_recognition_resnet_model_v1.dat', 
'./face_recognition_models/models'),
('.//face_recognition_models//models//mmod_human_face_detector.dat', 
'./face_recognition_models/models'),
('.//face_recognition_models//models//shape_predictor_5_face_landmarks.dat', 
'./face_recognition_models/models'),
('.//face_recognition_models//models//shape_predictor_68_face_landmarks.dat', 
'./face_recognition_models/models'),
]

 a = Analysis(['logic.py'],
         pathex=[],
         binaries=face_models,
         ...

logic.spec 文件中。这意味着我的 .exe 已经包含 shape_predictor_68_face_landmarks.dat 文件。 (我用 --onefile 参数构建它并且它工作得很好)。但是当我尝试使用 dlib.shape_predictor 导入相同的 shape_predictor_68_face_landmarks 文件时,我得到了 RuntimeError: Unable to open models/shape_predictor_68_face_landmarks.dat.

所以,我的问题是如何使用 dlib.shape_predictor 导入 shape_predictor_68_face_landmarks.dat 文件? (应该已经包含在exe..)

代码和平:

import dlib

predictor = dlib.shape_predictor('shape_predictor_68_face_landmarks. dat')

解决方案尽可能简单:

我们可以使用 face_recognition.face_landmarks 函数来获取地标。