1. 程式人生 > >C++版 Face Alignment at 3000FPS(一)TrainModel執行

C++版 Face Alignment at 3000FPS(一)TrainModel執行

Face Alignment at 3000 FPS via Regressing Local Binary Features 這篇論文實現了對人臉關鍵點的高速檢測,預測精度高。

實現步驟:

一、下載原始碼、檢視工程相關檔案。

圖一Face Alignment at 3000FPS工程

當然,現在直接執行會有錯誤。需要進行相關配置。

二、配置OpenCV路徑。

此時執行,會報錯無法開啟包括的OpenCV的檔案。配置方式可以看我之前的博文

裡面有關於OpenCV的配置方式。此工程自帶的是2410版的OpenCV庫,路徑也跟我的不一樣。所以需要重新配置一下。並且在工程資料夾下加入opencv_imgproc249.dll

opencv_highgui249.dllopencv_core249.dllopencv_objdetect249.dll

三、配置執行引數

配置好OpenCV,執行之後出來結果提示

圖二執行成功但缺少引數

查詢這個提示,是在LBF.cpp中的PrintHelp函式中的提示。檢視此函式呼叫,是在LBF.cppmain函式中。粗讀程式碼,是因為缺少相關的配置,所以直接呼叫了PrintHelp()。

圖三缺少引數的原始碼

根據提示可以知道,在專案屬性/配置屬性/除錯/命令引數中輸入必要的引數。

圖四缺少引數的配置方法

此處輸入可以是TrainModel:訓練模式,此篇分析當為TrainModel

時,如何配置相關引數。

TestModel:測試模式

Demo

Demo XX.jpg( Demo1.jpg)

Demo Img_Path.txt

四、下載必要的人臉資料庫,生成Path_Images.txt

參照一篇博文獲取了4個人臉資料庫,下載的時候挺麻煩的,連結到一個網站,還需要有賬號,然後再跳轉到百度雲盤

下載好之後,發現裡面都是人臉圖片以及相應的pts檔案。現在需要做的是將這些照片的路徑集合起來生成一個檔案。如圖

圖五Path_Images.txt的路徑示意

有的說下載的人臉資料庫中自帶這個路徑檔案,不過我沒有。生成也很簡單。如下圖命令:可對訓練集的圖片進行路徑彙總。生成的

Path_Images.txt檔案也在trainset資料夾下。

圖六Path_Images.txt的路徑生成命令

五、修改工程中一些檔案的位置

LBP.cpp中的路徑需要修改為自己的路徑。由於此次是TrainModel,所以根據人臉資料庫會生成新的模型檔案。

modelPath就是指這個模型檔案的路徑。自己指定一個資料夾就行。

dataPath是人臉資料庫中圖片路徑的集合,也就是Path_Images.txt的路徑。這裡寫的Q4資料夾是因為在TrainModel讀取的時候的方式是path = dataPath +trainDataName[i] + "/trainset/Path_Images.txt"

其實這個路徑問題可以自行靈活解決,科協相對路徑,也可完全寫死。It’s up toyou!

                            

圖七LBP.cpp中路徑設定

圖八TrainModel.cpp中路徑設定

六、執行成功

執行過程中會有提示說明生成的隨機森林到了多少層,每一層的landmark引數等等資訊。這次不關心這些資料,幾分鐘之後程式執行完成,在我們指定的模型檔案目錄下,可以看到生成的模型檔案。TrainModel的程式試執行就完美結束啦!有問題可以留言!

              

圖九訓練生成的模型檔案