首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >即使在发布模式下QT MinGW都很慢的dlib

即使在发布模式下QT MinGW都很慢的dlib
EN

Stack Overflow用户
提问于 2016-05-12 08:00:05
回答 1查看 389关注 0票数 1

我正在用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时,框架是非常低的。

  • 640x480 ~170 ms
  • 1920x1080 ~1100 ms

系统配置: 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文件转储:

代码语言:javascript
运行
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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%。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37180755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档