Python 运行Dlib人脸检测时指令非法(内核转储)

Python 运行Dlib人脸检测时指令非法(内核转储),python,face-detection,coredump,dlib,Python,Face Detection,Coredump,Dlib,我正在尝试运行由Dlib库提供的face\u landmark\u detection.py示例示例 win=dlib.image_window() 但是当我试图通过ubuntu终端运行命令时,我得到了错误: Illegal instruction (core dumped) win=dlib.image_window() 我调试了它,所以我知道这是因为这行代码: win=dlib.image_window() 我想这条线有问题 win=dlib.image_window() 我通过以

我正在尝试运行由
Dlib
库提供的face\u landmark\u detection.py示例示例

win=dlib.image_window()
但是当我试图通过ubuntu终端运行命令时,我得到了错误:

Illegal instruction (core dumped)
win=dlib.image_window()
我调试了它,所以我知道这是因为这行代码:

win=dlib.image_window()
我想这条线有问题

win=dlib.image_window()
我通过以下命令运行代码:

win=dlib.image_window()
./face_landmarks_detection.py/home/abhishek/openCV/shape_predictor_68_face_landmarks.dat../examples/faces

win=dlib.image_window()
如示例代码中所述。 我的代码

win=dlib.image_window()

看起来dlib无法在您的情况下创建图像窗口。可能的原因-dlib安装不正确。正如Dlib的文档(readme.txt)所述,您应该通过运行setup.py来安装它:

win=dlib.image_window()
COMPILING DLIB Python API
   Before you can run the Python example programs you must compile dlib. Type:
       python setup.py install
   or type
       python setup.py install --yes USE_AVX_INSTRUCTIONS
   if you have a CPU that supports AVX instructions, since this makes some
   things run faster.  
在运行setup.py之前,还需要安装libx11 dev(sudo apt get install libx11 dev)

win=dlib.image_window()

检查安装脚本消息以查看任何可能的错误,如果您看到了,请更新您的问题以描述情况

我刚才遇到了这个问题,这是因为python模块使用SSE4指令编译,但我的CPU只支持SSE2。打开tools/python/CMakeLists.txt并编辑该行

win=dlib.image_window()
set(USE_SSE4_INSTRUCTIONS ON CACHE BOOL "Use SSE4 instructions")
就我而言,我把它改成了

win=dlib.image_window()
set(USE_SSE2_INSTRUCTIONS ON CACHE BOOL "Use SSE2 instructions")

非法指令有许多常见的原因。该文件可以作为文本而不是二进制文件下载,或者有人将文本编辑器带到可执行文件并将其保存为文本。可能是您正在使用不兼容的字长运行,例如64位python和32位模块(反之亦然)。或者,您可以从不同的体系结构运行可执行文件,例如UNIX平台上的Windows二进制文件,或Intel上的Solaris(RISC)。请检查您的安装。至少对于可执行文件,如果您尝试为不同的体系结构运行二进制文件,您更希望出现
exec格式错误<代码>非法指令
也可能来自更为次要的部分,例如使用二进制编译,以便在不支持此功能的较旧处理器上使用较新一代处理器(例如AVX)的指令(例如,旧于Sandy Bridge的AVX)。@cdarke,我已经检查了安装,并再次进行了安装。我不认为存在任何安装错误。我可能认为,从终端运行可能会导致错误,因为它不支持GUI。你能告诉我如何支持GUI吗。有些代码无法处理。