2016-05-12 4 views
1

MinGW 4.9.2のWindows 10でdlib 18.18をコンパイルしています。リリースモードでもQT MinGWが遅いdlib

私はすべての推奨事項(http://dlib.net/faq.html#Whyisdlibslow)を読んでいます:AVXまたはSSE4命令、リリースモード。

"webcam_face_pose_ex.exe"の例は、魅力のように機能し、は本当に速いです。

問題:

しかし、私はQT下frontal_face_detectorを使用する際にフレームレートが本当に低いです。

  • 640×480〜170ミリ秒

  • 1920〜1100ミリ秒

システム構成:Windowsの10(x64)の、インテル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は「ON -DUSE_AVX_INSTRUCTIONS =」文書化オプションを持っていますが、あなたはCMAKEを構築し、

あなたはAVX有効フラグを追加する必要がありますあなたのCMakeLists.txtにDLIB/cmakeのファイルを含めていない場合、それは動作しません。プロジェクトへのコンパイラはそれを動作させるために高速なソリューションがあなたの.PROファイルに明示的なパラメータを追加することです

QMAKE_CXXFLAGS_RELEASE + = -mavx

Qt Creatorでプロジェクトをコンパイルするときに、コンパイラをどのように呼び出すか、どのフラグが使用されているかが分かります。 -mavxフラグを持っていることを確認してください。 -msse2は約20%遅くなります

+0

はい!ブリリアント! 1920x1080は400ミリ秒、640x480 - 60ミリ秒 –

関連する問題