2016-05-12 33 views
1

我正在編譯dlib 18.18在Windows 10上QT 5.6MinGW 4.9.2dlib與QT MinGW緩慢即使在發佈模式

我已閱讀所有建議(http://dlib.net/faq.html#Whyisdlibslow):AVX或SSE4指令,發行模式。

示例「webcam_face_pose_ex.exe」就像一個魅力和非常快

問題:

但是,當我使用frontal_face_detector QT下的幀率爲真的很低

  • 640×480〜170毫秒

  • 1920×1080〜1100毫秒

系統配置:視窗10(64),英特爾Core i5-3550,QT 5.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 

回答

0

DLIB面部檢測器是標頭爲基礎的,並且不依賴於用於編譯dlib.lib本身編譯器標記。

DLIB有文件選項「-DUSE_AVX_INSTRUCTIONS = ON」,但如果你不與CMake的構建和包括DLIB/cmake的文件到您的CMakeLists.txt

您應該添加AVX實現爲標誌,它不會工作編譯到您的項目,使工作快速

的解決方案是一個明確的參數添加到您的.pro文件:

QMAKE_CXXFLAGS_RELEASE + = -mavx

當您在Qt Creator中編譯項目時,您可以看到它如何調用編譯器以及使用哪些標誌。確保你有-mavx標誌。 -msse2將以低於20%的速度工作

+0

是的!輝煌! 1920x1080分辨率爲400 ms,640x480 - 60 ms –