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
函数来获取地标。
我有一个小应用程序,它使用了 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
函数来获取地标。