美顏api中2D人臉識別的技術流程

秋2305998853發表於2021-11-25

美顏api介面 這種涉及娛樂的軟體專案接入中,2D人臉識別的應用相對還是比較廣泛的。那麼2D人臉識別一般是怎麼實現的?

2D人臉識別因為研究的時間較長,開源資料集也比較多,因此誕生了一批准確率較高的人臉識別演算法,如deepface、facenet、arcface等,這些演算法的流程基本都可以按照前面說的四個大步驟(影像資料採集、人臉檢測、特徵提取、資訊比對)進行、下面對這些2D人臉識別的實現步驟進行分析。

一、影像資料採集

影像採集主要是獲取目標(這裡主要是人臉)的RGB彩色影像,2D影像的獲取相對簡單,只需要獲取到RGB的影像資訊,不需要深度資訊。獲取影像資料的方式只需要一個普通攝像頭模組即可,簡單方便。

影像採集完畢之後需要對影像進行預處理,如濾波、亮度調整、去噪等,保證輸出圖片的質量達到要求,減少干擾。預處理是比較重要的一個環節,預處理做好了能提高後面識別步驟的準確度。常用的預處理演算法有均值濾波、高斯濾波等線性濾波;中值濾波、雙邊濾波等非線性濾波;腐蝕、膨脹、開運算、閉運算等形態學濾波;還有伽馬矯正、亮度調整、基於直方圖統計的影像增強等。

二、人臉檢測

人臉檢測的目的是找到人臉的區域,並且將人臉的區域輸出給後面的特徵提取模組,完成人臉的特徵提取。人臉檢測步驟是一個很關鍵的步驟,獲取人臉的boundingbox不僅只能包含人臉部分而且還要包含全部的人臉區域。如果boundingbox的大小或者座標不準,就會使後面的特徵提取步驟提取的特徵不準,最後導致識別準確率下降,出現誤識別。

2D人臉檢測研究的時間比較長,所以相對更成熟,檢測方法有傳統的haar方法、還有神經網路實現的方式,而且速度很快。

1、 基於haar特徵

該演算法靈感來源與haar小波變換,捕抓影像中的邊緣、變化等資訊,從而檢測出人臉的位置。其檢測速度及精度都達到了不錯的水平,基本圖片中的正臉都能檢測出來,但是對側臉檢測的精度沒有mtcnn高,該演算法已經在opencv中實現,使用方便。

2、 Face R-CNN

基於Faster R-CNN框架針對人臉檢測做了專門的優化。引入了更好的center loss使得類內的差異性更小,提高了負樣本在特徵空間的差異性從而提高了演算法的效能。

3、MTCNN

多工的人臉檢測方法,將人臉區域的檢測跟人臉的關鍵點檢測放到一起,基於cascade框架,總體上分為PNet、RNet、ONet三部分。MTCNN的準確度很高,側臉、正臉、模糊的臉基本都能檢測的比較準,運算速度都比較快。

三、特徵提取

特徵提取階段是人臉識別最重要的階段,這個階段設計的網路模型的好壞直接決定了人臉識別準確率的高低。2D的人臉資料只有RGB,2D人臉特徵提取的方法就很多了,傳統演算法有SURF、SIFT等,基於神經網路的有Inception、VGG、ResNet、Inception-ResNet等。

基於CNN神經網路的特徵提取模型是目前的主流。CNN神經網路特徵提取的實現分為四個步驟:神經網路設計、損失函式設計、訓練、推理。

以上就是 美顏api 2D人臉識別的技術流程簡介。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69951589/viewspace-2844187/,如需轉載,請註明出處,否則將追究法律責任。

相關文章