elH*_*Ham 1 c++ shared-libraries dlib
根据 Davis Kings 在该问题中的回答:Create a Shared Library for dlib,我为 Dlib 创建了共享库,并将它们链接到一个使用 Dlib 面部检测来检测相机图片中的面部的程序,使用以下命令:
cd dlib-19.0/dlib
mkdir build
cd build
cmake ..
make
sudo make install
Run Code Online (Sandbox Code Playgroud)
还有-ldlib选项。
我可以编译并执行该程序,但是面部检测速度非常慢。
我在 Windows 上使用 Visual Studio 2013 尝试了相同的程序。当我使用调试模式时,面部检测也非常慢,但在发布模式下运行得很好。所以我想,共享库也可能处于调试模式,并尝试使用以下命令强制它们处于发布模式:
cd examples
mkdir build
cd build
cmake ..
cmake --build . --config Release
sudo make install
Run Code Online (Sandbox Code Playgroud)
但结果却和之前一样。
有谁有一个想法,原因可能是什么,它这么慢?
感谢您的帮助。
我想分享我的经验。^^
您应该使用-O3和-mavx选项来加速。
(-O3编译选项对于加速至关重要)
我为 dlib 创建了一个共享库,如上所述。
并使用 dlib 共享库编译了web_face_pose_ex.cpp。
操作系统:Ubuntu 14.04
dlib版本:19.0.0
输入分辨率:640 x 480 网络摄像头 (Logitech C920)
我导出到下面的路径。
$ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
Run Code Online (Sandbox Code Playgroud)没有-O3选项:时间:2674.25 ms
g++ -o my_web_face webcam_face_pose_ex.cpp -lpthread -lX11 -lblas -llapack `pkg-config --cflags --libs opencv dlib-1`
Run Code Online (Sandbox Code Playgroud)使用 -O3 选项:时间:55 ms
g++ -o -O3 my_web_face webcam_face_pose_ex.cpp -lpthread -lX11 -lblas -llapack `pkg-config --cflags --libs opencv dlib-1`
Run Code Online (Sandbox Code Playgroud)同时使用-O3和-mavx(使用 AVX):时间:45 ms
g++ -o -O3 -mavx my_web_face webcam_face_pose_ex.cpp -lpthread -lX11 -lblas -llapack `pkg-config --cflags --libs opencv dlib-1`
Run Code Online (Sandbox Code Playgroud)