今天試著用了一下SDM的C++11實現,本來以為挺簡單的,可是配置環境還是花了一些時間。為了給自己留下一些記憶,特把配置過程記錄下來。
這個實現是C++11的版本,是一個通用版本,里面包含了很多的功能,比如函數的最優化,人臉對齊,頭部姿勢估計,而且代碼使用了現代C++的編寫風格,含有了boost的一些語法,非常新穎,適合學習。
下面列出具體的配置:
依賴的工具
依賴的工具:Opencv(>=2.4.3以上),Eigen (>=3.2),boost(1.58.0),vs2013,cmake(>=2.8.11)
安裝工具:
1.Opencv安裝 :http://blog.csdn.net/poem_qianmo/article/details/19809337
2. Eigen:http://blog.csdn.net/abcjennifer/article/details/7781936,
3. boost: 下載預編譯版https://sourceforge.net/projects/boost/files/boost-binaries/1.58.0/
下載boost_1_58_0-msvc-12.0-64.exe,然后打開,編譯下去。(需要注意的是我下載后總是立即被刪除了,后來我關閉了360,文件就留下來)使用時,將包含文件、庫文件加到你的項目目錄中,同時在path中加上D:\local\boost_1_58_0\lib64-msvc-12.0。
同時在環境變量增加如下變量:
BOOST_ROOT: D:\local\boost_1_58_0
(不加的話會出錯)
也可參考這篇文章,不同的是這篇文章下載的是源碼,但是使用方法一樣
需要安裝Doxygen。(可選)
可參考:
http://blog.csdn.net/xiamentingtao/article/details/49722007
最后安裝cmake,我使用的是2.8.12,但里面沒有包含boost1.58.0,所以需要加上,方法是打開cmake目錄下的FindBoost.cmake文件,里面添加1.58.0,具體如下示意圖:
cmake
在superviseddescent-master下設立build文件夾,然后
打開cmake gui,如下配置:
cmake先是Configure,提示選擇vs2013 win64,然后Generate。Generate一次后可以接著點擊剩下的幾個選項,他們是生成doxygen說明文件的。再次Generate.
注意:由于我這里使用的boost是64位的,所以cmake的時候選擇vs2013 win64,否則后面再vs2013中編譯失敗,出現x86與64位沖突的錯誤。
測試
我們以人臉對齊為例:
將源代碼改變如下:
即可運行。