《SeetaFace開源人臉識別引擎介紹》讀書筆記

2021-07-25 20:35:02 字數 2406 閱讀 1091

結合經典級聯結構和多層神經網路的人臉檢測方法,採用的是漏斗型級聯結構(funnel-structured cascade,fust)專門針對多姿態人臉檢測設計,引入由粗到細的設計理念,兼顧了速度與精度的平衡。如下圖所示,fust級聯結構在頂部由多個針對不同姿態的快速lab級聯分類器構成,緊接著是若干個基於surf特徵的多層感知機(mlp),最後由乙個統一的mlp級聯結構(同樣基於surf特徵)來處理所有姿態的候選視窗,整體上呈現出上寬下窄的漏斗形狀。從上往下,各個層次上的分類器及其所採用的特徵逐步變得複雜,從而可以保留人臉視窗並排除越來越難與人臉區分的非人臉候選視窗。

使用了月20萬人臉影象訓練,可實現準確正面人臉的準確檢測(旋轉角度約45度以內,但對於姿態偏轉較大的人臉也具備一定的檢測能力)。

可在單個i7 cpu上實時處理vga解析度的影象。對於640x480大小的vga影象,檢測速度的對比情況如下表所示。其中,seetaface的速度在單個3.40ghz的i7-3770 cpu上測得,cascade cnn在cpu上的速度在2.0ghz的cpu上測得。而各方法在gpu上的速度在nvida titan black gpu上測得。

fddb上,在輸出100個誤檢時(fppi=0.035)召回率達到了84.4%,輸出1000個誤檢時召回率達到88.0% 。

採用一種由粗到精的自編碼器網路(coarse-to-fine auto-encoder networks,cfan)求解從人臉表觀到人臉形狀的複雜非線性對映過程。如圖下圖所示,cfan級聯了多級棧式自編碼器網路,其中的每一級都刻畫從人臉到人臉形狀的部分非線性對映。輸入乙個人臉區域(由人臉檢測模組得到),第一級自編碼器網路直接從該人臉的低解析度版本中快速估計大致的人臉形狀s0。然後,提高輸入人臉影象的解析度,並抽取當前人臉形狀s0(相應提公升解析度)各特徵點位置的區域性特徵,輸入到下一級自編碼器網路來進一步優化人臉對齊結果。以此類推,通過級聯多個棧式自編碼器網路,在越來越高畫質解析度的人臉影象上逐步優化人臉對齊結果。

訓練集包括23000餘幅人臉影象(標註了5個點)。

為了加速的目的,在基本不損失精度的情況下,開源實現中將cfan級聯的數目減少到了2級,從而可在單顆intel i7-3770(3.4 ghz cpu)上達到每個人臉5ms的處理速度(不包括人臉檢測時間)。

通過級聯多個深度模型(棧式自編碼網路)來回歸5個關鍵特徵點(兩眼中心,鼻尖和兩個嘴角)的位置,在aflw資料庫上達到state-of-the-art的精度,其中平均定位誤差根據兩眼中心距離做了歸一化,定位速度在單個i7 cpu上超過200fps。

seetaface alignment在aflw資料集上的定位誤差及對比情況,其中le:左眼,re:右眼,n:鼻尖,lm:左嘴角,rm:右嘴角

乙個包含7個卷積層與2個全連線層的dcnn。修改在alexnet。如下表所示,與alexnet相比,viplface將5x5的卷積核拆分為兩層3x3的卷積核,從而增加了網路的深度,而並沒有增加計算量;viplface還減少了每個卷積層的kernal數目以及fc2層的節點數。同時,通過引入fast normalization layer(fnl),加速了viplfacenet的收斂速度,並在一定程度上提公升了模型的泛華能力。測試表明,在相同訓練集情況下,viplfacenet在lfw測試集上識別錯誤率比alexnet降低了40%,而訓練和測試時間分別為alexnet的20%和60%。

使用了140萬人臉影象訓練出來的,這些訓練影象來自於約1.6萬人,其中既有東方人也有西方人。人臉特徵直接採用viplfacenet fc2層的2048個節點的輸出,特徵比對可簡單採用cosine計算相似度,然後進行閾值比較(驗證應用)或排序(識別應用)即可。

速度方面,在單顆intel i7-3770 cpu上,開源**提取一張人臉之特徵的時間約為120ms(不含人臉檢測和特徵點定位時間)。

在lfw standard image-restricted測試協議下,使用seetaface detector與seetaface alignment檢測並對齊人臉,採用seetaface identification進行特徵提取和比對,可以達到97.1%的識別正確率(請注意:這是系統全自動執行的結果,對少量不能檢到人臉的影象,擷取中間區域輸入人臉對齊模組即可)。

seetaface開源人臉識別引擎

seetaface開源人臉識別引擎介紹

開源人臉識別seetaface入門教程 一

簡述 seetaface由中科院計算所山世光研究員帶領的人臉識別研究組研發。基於c 實現,不依賴第三方庫。然而,目前開源的 是在windows vs上編譯的,對於我們這幫mac linux使用者來說,用起來還是挺麻煩的。經過這幾天的學習,對seetaface總算有了全面的了解。下面,聽我娓娓道來。注...

人臉識別SeetaFace6編譯

編譯生成的結果 git clone recursive 需要先編譯三個基礎庫 openrolezoo seetaauthorize tennis。先是openrolezoo,這個庫需要修改一下源 才能成功編譯 修改 openrolezoo include orz mem pot.h,在第9行 inc...

seetaface人臉匹配(VS2015)

參考 1.seetaface學習之二 2.seetaface教程 一 在 vs 中的編譯安裝和環境配置 3.seetaface原始碼中的word文件 儘管現在大家都開始用seetaface22 以後再研究 總結下自己踩過的坑 因為自己師c 新手 針對上述 seetaface教程 一 仔細寫了修改內容...