使用Dlib进行地标检测时的Boost.Python.ArgumentError

时间:2016-08-18 08:08:57

标签: python-2.7 boost-python dlib

使用shape_predictor使用Dlib进行面部地标检测时遇到问题。

我根据these issuethis one编译了dlib并验证了升级lib路径,但仍然有相同的错误:

 Traceback (most recent call last):
  File "face_landmark_detection.py", line 66, in <module>
    predictor = dlib.shape_predictor(predictor_path)
Boost.Python.ArgumentError: Python argument types in
    shape_predictor.__init__(shape_predictor, str)
did not match C++ signature:
    __init__(boost::python::api::object, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)
    __init__(_object*)

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

在两个完全相同的Ubuntu 16版本中,我遇到了同样的问题。 诀窍是用g ++ - 5.4编译而不是g ++ - 4.9。

{{1}}

你可能也会改变我猜的CMake-Flags。

答案 1 :(得分:0)

我能想到的是你的predictor_path无法转换为std :: string。可以用Unicode吗?你使用的是Python 3。*?