我正在用dlib 18.18
在Windows 10上为QT 5.6
编译MinGW 4.9.2
。
我已经阅读了所有的建议(http://dlib.net/faq.html#Whyisdlibslow):AVX或SSE4指令,发布模式。
"webcam_face_pose_ex.exe“这个例子很有魅力,而且速度很快。
问题:
但是当我在QT下使用frontal_face_detector时,框架是非常低的。
系统配置: Windows 10 (x64)、Intel i5-3550、Qt5.6、OpenCV 3.1.0、MinGW 4.9.2
尝试了在dlib和opencv中使用AVX/SSE4指令的所有变体。但我认为这是另一回事--因为这个例子很快。QT中使用的代码也是从示例中复制粘贴的,即使没有GUI。
在调试模式640x480帧需要6-7秒的处理。
.pro文件转储:
DIR_DLIB = "$${LIBSDIR}dlib/dlib18.18/"
DEFINES += DLIB_ENABLE_ASSERTS
LIBS += -luser32 -lws2_32 -lgdi32 -lcomctl32 -limm32 -lwinmm
INCLUDEPATH += "$${DIR_DLIB}include"
DEPENDPATH += "$${DIR_DLIB}include"
LIBS += -L"$${DIR_DLIB}lib"
LIBS += -ldlib
发布于 2016-05-13 06:29:08
Dlib面检测器是基于头的,不依赖于编译dlib.lib本身的编译器标志。
Dlib有一个有文档的选项"-DUSE_AVX_INSTRUCTIONS=ON",但是如果您不使用CMAKE构建并将dlib/cmake文件包含到您的CMakeLists.txt中,它将无法工作。
您应该在项目中添加用于编译器的AVX启用标志,以使其快速工作。
解决方案是向.pro文件中添加一个显式参数:
QMAKE_CXXFLAGS_RELEASE += -mavx
在Qt中编译项目时,您可以看到它如何调用编译器以及使用了哪些标志。确保您有-mavx标志。-msse2的工作速度将慢20%。
https://stackoverflow.com/questions/37180755
复制相似问题