10分鐘用C++實現人臉識別系統,C++成為人工智慧演算法核心?

image
使用決策樹和NN自動編碼器進行實時面部標記。
下面是小編整理好的一套C/C++資料,加小編C/C++學習群825414254獲取系統性學習C/C++的學習資料

image
該軟體(主要)是用C ++編寫的(其中一些ML部分用Python編寫)。對於視訊捕獲和處理,它使用OpenCV(OpenCV也用於初始面部檢測)。
在該專案中,面部標記是一個迭代過程,它使用簡單的過濾器和決策樹更新每個幀的關鍵面部點的位置。同時NN自動編碼器確保面部的整體形狀保持正確。
這只是我的一個寵物專案,所以它仍然需要一些工作。特別是我沒有那麼多時間(也不會:D)進行擴充套件實驗。大多數引數(如濾波器的形狀和數量,NN的大小等)都是受過礦山教育的猜測。
此repo包含從資料集中提取要素,生成ML模型和使用面部標記所需的所有程式碼。缺少的是:依賴(如必須單獨安裝的OpenCV)和學習資料。
第一:在克隆回購的主目錄下建立一個Data具有以下子目錄目錄:annotation,images,haar,mask,autoencoder,features和regressors。
必須將所有註釋檔案(1.txtto 2330.txt)提取到annotation目錄中,並將所有影象(232194_1.jpgto 3266693323_1.jpg)提取到imagesdir中。
要從資料集中提取要素,必須使用-type features標誌執行已編譯的程式。此過程將在兩個目錄中建立包含學習示例的檔案:autoencoder和features。maks/avg-face.mask還將生成包含基於整個資料集計算的平均面部形狀的檔案。
確保在執行此步驟(或以下任何其他步驟)./../Data時,程式可以看到目錄。這是VS專案的預設配置。
這個過程可能需要一些時間。
要生成決策樹和NN自動編碼器,必須執行dir autoencoder.py和regressor.py指令碼中的指令碼FaceLandmarking.LearningProcess。
這個過程填充了regressorsdir。
如果前面的所有步驟都已成功完成,則該軟體應該可以使用了。
測試它的最好方法是使用-type example標誌執行程式。它將從資料集中載入示例(逐個)並顯示它們。在每個空格鍵上點選程式將執行掩碼調整的一個步驟。任何其他鍵擊都會將影象更改為下一個。
最後,-type video可以使用標誌載入檔案的視訊(帶有-video [path]標誌)。不幸的是,我沒有時間玩視訊設定,因此程式不會讀取有關視訊方向的資訊。它(以及視訊的大小)可能必須手動調節(使用-transform,-transform-rotate,-transform-width和-transform-height標誌-看到main.cpp他們的預設值)。要初始化面部標記過程只需命中空間 - 它將在給定幀上執行haar過濾器以檢測面部的初始位置。

image

image

image