1. 程式人生 > >【Linux】Face Recognition的封裝

【Linux】Face Recognition的封裝

寫了一個linux下的Face Recognition的封裝,當作是練習。

C++的封裝,結合opencv,使用方便。
https://github.com/zacario-li/FaceRecognition-with-ArcSoftLib

整體來說,ArcSoft的提供的FaceEngine已經很好用了,介面非常簡潔,不過對於一個不熟悉的使用者來說,還是會對ArcSoft那些介面的引數型別感到頭暈,至少我一開始就是這樣的。
基於這樣的想法,我才有了對該FaceEngine封裝的想法。

封裝的思路如下:

  1. 基於C++,避免不必要的記憶體洩漏
  2. 基於OpenCV,但凡跟影象扯上關係,難免用上通用型的計算機視覺庫,所以選擇OpenCV
  3. 基於最簡單的使用邏輯,整個封裝一共4個主要函式: Start(), Stop(), BuildFeatureList(), GetFaceIDScore();
    當然還配套了一些附加功能的函式,這個主要是為了自己使用方便。上述public函式設計,使用極其簡單,但凡有點軟體基礎的都能輕鬆使用。

P.S. 給AcrSoft的FaceEngine一點建議:
1.文件中,對於LPAFD_FSDK_FACERES, AFR_FSDK_FACEMODEL 兩個型別定義的解釋很少,很容易讓使用者產生誤解。
2.在我看來,像AFR_FSDK_FACEMODEL.pbFeature 這個指標,從介面中帶出來Feature資料,看起來像是儲存在arcsoft庫中的某個全域性變數中的,這個就要求使用者獲取到feature後,必須立馬copy到其它記憶體區域。這一點,文件中並沒有提及。

summary:

  1. 優化介面使用方式,用盡量簡便的介面提供給使用者。
  2. 新增程式碼註釋,對於sample程式碼的設計給出詳細的解釋,並標註上一般使用可能會遇到的問題

ArcSoft的FaceEngine免費給大家用,真的是佛心,希望ArcSoft越來越好。