1. 程式人生 > >3000 fps程式碼執行步驟詳解(C++)

3000 fps程式碼執行步驟詳解(C++)

環境依賴:

opencv2413  由於隨時間的變化,提供的opencv2413檔案可能失效,請自行搜尋此檔案下載並安裝
opencv安裝和配置:參考之前發表的一篇文章:opencv安裝和配置 http://blog.csdn.net/SalterDucky/article/details/77819410

開始:

1  準備資料庫(參見工程檔案中的LBF.cpp)
        //trainDataName.push_back("afw");
        //trainDataName.push_back("helen");
        //trainDataName.push_back("lfpw");      
        //testDataName.push_back("ibug");
下載這四個資料庫(地址:https://ibug.doc.ic.ac.uk/resources/facial-point-annotations/)到某個目錄下,各自解壓到自己的目錄(如:./datasets/afw/*.jpg等)
四個資料庫下載完畢以後,當前目錄應該是
    ./datasets/afw/*
    ./datasets/helen/*
    ./datasets/lfpw/*
    ./datasets/ibug/*
然後返回桌面,按win+R,輸入 cmd 開啟控制檯,改變當前工作目錄為datasets所在資料夾,假設是d盤,則步驟為:
    D: <點選回車>
    cd D:/你/的/datasets/所/在/的/文/件/夾/ <點選回車>
    <開始生成這四個資料夾下的所有檔案路徑到當前資料集的 Path_Images.txt 下>
    cd afw <點選回車>
    dir /b/s/p/w *.jpg>Path_Images.txt <點選回車>
    cd ../lfpw/testset <點選回車>
    dir /b/s/p/w *.png>Path_Images.txt <點選回車>
    cd ../trainset <點選回車>
    dir /b/s/p/w *.png>Path_Images.txt <點選回車>
    
    注意:以上這些命令只是生成了afw資料庫和lfpw資料集的必備的路徑檔案,如果你需要用到其他的資料集(helen、ibug等)就需要自己生成相應的Path_Images.txt並在LBF.cpp中標出其位置。由於我僅用了這兩個資料集,其他的沒有使用。

2  配置vs2013環境

2.1  下載vs2013工程檔案(http://pan.baidu.com/s/1o8OFU0E),放到某個盤下並解壓,待用    
  2.2  配置opencv的環境

        開啟工程檔案的sln,(如出現載入工程失敗的情況,請自己檢視錯誤原因是有幾項配置打不開,此時開啟工程配置檔案3000_test.vcxproj,找到並刪除打不開的那幾項並重新載入即可),右擊工程名稱,選擇當前工程設定,配置opencv(參見我之前發表的
指導文章
http://blog.csdn.net/SalterDucky/article/details/77819410 ,重複操作一遍opencv配置的步驟2.4即可)
    2.3  修改工程中的LBF.cpp檔案 
        2.3.1  修改除錯引數:開啟工程設定(<右擊>專案 -> 屬性)找到 通用屬性-> 除錯,裡面有個命令引數的輸入框,輸入命令引數即可
            解釋:類似於控制檯執行的時候,輸入的引數,如果輸入的是:<空格>TrainModel 則相當於在控制檯中輸入:test_3000.exe TrainModel
        2.3.2  修改視訊幀數
            這個我已經修改好了,引數為Demo的時候可以直接實時顯示臉部的配準情況

3  執行

    執行的引數共有三個,訓練、測試和Demo
    我現在進行在這個階段,目前並沒有發現速度有多塊,效果有多好,正在進一步測試和修改,歡迎交流

4  注意

    參考了大量的資料、文獻,少數記不清楚到底在哪了,我儘量將所有都用過的資料全部放在這裡
    

參考資料:

論文原文:
    Face Alignment at 3000 FPS via Regressing Local Binary Features
        http://7xrqgw.com1.z0.glb.clouddn.com/3000fps.pdf
    
資源綜合:
    3000fps face alignment資源彙總
        http://blog.wangcaiyong.com/2016/03/19/face-alignment/

原理解析:
    C++實現和解讀Face Alignment at 3000fps via Local Binary Feature
        https://freesouls.github.io/2015/06/07/face-alignment-local-binary-feature/#4-__u6548_u679C_u5982_u56FE_uFF1A_u8FD8_u662F_u5F88_u4E0D_u9519_u7684
    Face Alignment at 3000 FPS via Regressing Local Binary Features(CVPR2014)讀後感(first pass)
        http://blog.h5min.cn/real_myth/article/details/52188444
    論文閱讀“Face Alignment at 3000 FPS via Regressing Local Binary Features”  
        http://blog.csdn.net/ubunfans/article/details/51475603

程式碼執行:
    原始碼:face-alignment-at-3000fps
        https://github.com/luoyetx/face-alignment-at-3000fps
    配置選項:Face Alignment at 3000FPS(C++版)工程配置(非Cmake)  
        http://blog.csdn.net/duan19920101/article/details/50582249
    將人臉資料庫生成為.txt檔案
        http://blog.csdn.net/duan19920101/article/details/50585454