2017.5.28 發現 caffe官方windows版本已經不提供vs工程文件了,需要用cmake編譯生成sln文件。詳細編譯調試過程如下:
一、開發環境要求:
Windows 7/10,64位系統,Visual Studio 2013以上版本,推薦使用VS2015,安裝anaconda2.4或以上版本。
二、下載caffe windows版本源碼,生成vs工程
項目地址: https://github.com/BVLC/caffe
最好用git clone下載源碼(直接下載的.zip文件不全,有時編譯會出現問題),branch 選擇windows。
用cmake 配置根目錄下的cmakelists.txt,即where is the source code填入cmakelists.txt所在目錄(即caffe根目錄:E:/caffe/windows),where to build the binaries填入根目錄下的一個新建目錄,比如E:/caffe/windows/windows。
然後configure, 提示要下載libraries_v140_x64_py27_1.1.0.tar.bz2,根據vs版本不同,文件名可能不同。下載通常很慢,建議用下載工具直接下載。在caffe根目錄下用notepad搜索下載的提示(在caffe/cmake/WindowsDownloadPrebuiltDependencies.cmake中),找到下載地址,https://github.com/willyd/caffe-
builder/releases/download/v1.1.0/libraries_v120_x64_py27_1.1.0.tar.bz2
https://github.com/willyd/caffe-
builder/releases/download/v1.1.0/libraries_v140_x64_py27_1.1.0.tar.bz2
下載後複製到cmake提示的目錄下,替換裏面相對應的文件,通常是類似這樣的目錄 C:\Users\yourname\ .caffe\dependencies\download 。再點擊configure。
如果提示atlas錯誤,把BLAS 選項改爲Open,意思是用OpenBlas。第一次使用,建議勾選cpu_only。如果有GPU並安裝cuda,則可以不勾選。然後點擊generate,編譯成功。
三、打開生成的caffe.sln文件,編譯工程。
編譯在tools目錄下的某個工程(例如caffe.bin,extract_features等)上右鍵,設置爲啓動項目,編譯Release,Debug版本,然後生成運行(ctrl+f5),如果編譯成功,則工程通過編譯。
需要注意,caffe.bin等工程依賴項包括:caffe,caffeproto,ZERO_CHECK三個依賴項生成的庫,所以在編譯caffe.bin工程的時候會把依賴項也編譯了。
可以運行,則說明已經編譯好了。
四、添加C++版本MTCNN人臉檢測和關鍵點定位工程
項目地址:https://github.com/foreverYoungGitHub/MTCNN
通過觀察我們發現,caffe.bin,extract_features等工程的依賴項都相同,所以我考慮在caffe.bin等工程的基礎上,直接複製原來的工程替換相應的頭文件,源文件,然後編譯。(我自己新建了工程,然後修改裏面的參數,編譯經常出現問題,不如複製解決方案自帶的工程方便)
在caffe/windows/tools/目錄下,複製extract_features.vcxproj工程文件,重命名爲mtcnn2.vcxproj工程,在caffe解決方案中tools裏面右擊添加現有mtcnn2.vcxproj工程項目(在解決方案中工程名可能還沒改,重命名即可),移除原來的源文件,頭文件;添加mtcnn中main.cpp,MTCNN.cpp,MTCNN.h三個文件,編譯Debug或Release版本可以編程成功。修改caffemodel,protobuf文件路徑後就可以進行人臉檢測和關鍵點定位了。
插上攝像頭,運行後效果如下圖所示: