前言
最近項目涉及到關於face alignment的實現,了解到目前主要的算法有ERT、SDM、LBF等,其中由於dlib開源庫實現了ERT算法,效果也很不錯,故開始研究dlib的使用。而使用的第一步是dlib的安裝與編譯,本文針對這一內容展開。網上有很多資料,不過也遇到了很多問題,走了一些彎路,故記錄下來。
系統環境
1.系統:win7_x64;
2.VS版本:VS2013;
3.dlib版本:19.1;
實現步驟
1.使用dlib的注意事項;
2.dlib的下載與安裝;
3.基於CMake編譯dlib;
實現過程
1.使用dlib的注意事項;
1.1dlib的官網here;
Dlib是一個跨平台的開源庫,可以基於c++和python進行開發,包含了許多機器學習算法,官網上也有幫助文檔和代碼示例。dlib可以應用在Windows、Linux、Mac、embedded devices、mobile phones等,它的License是Boost Software License 1.0,可以商用。
dlib開源庫的編譯過程主要是生成dlib靜態庫,有兩種方法,一種是通過Cmake,一種是通過自己創建的一個空的控制台工程,本文主要介紹第一種方法,之后會介紹第二種方法。
1.2版本的一致性;
dlib的版本與系統、編譯器、VS版本需要具有一致性,通過實踐發現,dlib19.1之后的較新版本適用於VS2015或者newer,同時VS2015只適用於win10或者newer系統,安裝VS2015之后新建項目有如下提示:
根據現有的資源,選擇dlib19.1+VS2013進行實現;
2.dlib的下載與安裝;
2.1下載;
dlib官網的下載鏈接只有最新版本的,但是不適用於現有的資源,故需要下載之前的老版本,這個官網上是沒有的,在此提供兩種方法。
方法一:davisking的github;
方法二:sourceforge網站;
這兩種方法都有各種版本的壓縮包,非常方便,在此就要吐槽一下某度的搜索能力了,但是非常感謝同導師的兩位同學提供的幫助;
2.2安裝;
安裝就非常簡單了,直接解壓就可以啦。。。
3.基於CMake編譯dlib;
3.1CMake的下載安裝;
CMake官網here,在download頁面就有需要的下載鏈接,安裝即可;
3.2dlib的編譯過程;
step1:打開cmake-gui的界面,添加source code和生成文件的路徑;
step2:點擊configure選擇生成器;
step3:點擊generate生成項目文件;
最后的界面如下圖所示:
生成成功之后的生成文件內容如下圖所示:
以上只是將dlib開源庫轉換成一個VS工程,還需要打開、生成該工程;
step4:使用VS2013打開dlib項目的解決方案,方案平台選擇的是x64,分別在Debug和Release模式下生成dlib的靜態庫文件,
保存在生成文件路徑下的debug和release文件夾中;
接下來就是將dlib.lib導入到需要用到的工程中,主要需要修改項目屬性,包括添加附加庫目錄和附加依賴項,關於dlib的使用會在之后做介紹;
注意(20180110):
本人按照以上步驟在筆記本上是可以正常運行生成靜態庫的,但是在boss的電腦上出現了錯誤,錯誤是關於模塊計算機和目標計算機不匹配的問題,這類問題很可能就是編譯器類型和鏈接庫等類型不匹配。此處step2選擇的編譯器修改為win64版本的即可,主要在於當前的生成器都是win64的即可;
參考
1.dlib的編譯;
2.dlib提取特征點的總結;
3.編譯過程;
完