精品国产av一区二区三区,国产av一区二区三区,丰满少妇大乳高潮在线,9lporm自拍视频区九色

當前位置:首頁 > 最新資訊 > 行業資訊

人臉識別算法是怎樣工作的?

過去十年,深度學習(DL)領域出現了許多先進的新算法和突破性的研究,并且引入了新的計算機視覺算法。

這一切始于2012年的AlexNet。AlexNet是一個深度(卷積)神經網絡,它在ImageNet數據集(擁有超過1400萬張圖片的數據集)上取得了很高的準確率。

人類是怎樣識別面部的?

或許,人類大腦中的神經元首先識別場景中的人臉(從人的體形和背景),再提取面部特征,并通過這些特征對人進行分類。我們已經在一個無限大的數據集和神經網絡上進行了訓練。

機器中的面部識別是以同樣的方式實現的。首先,我們采用面部檢測算法來檢測場景中的人臉,然后從檢測到的人臉中提取面部特征,最后使用算法對人進行分類。

面部識別系統的工作流

1.人臉檢測

人臉檢測是物體檢測的一個特化版本,特別之處在于,它只檢測一種物體,即人臉。就像計算機科學里需要權衡時間和空間,ML算法也需要在推理速度和準確性之間進行權衡。現在有很多物體檢測算法,不同算法對速度和準確性的取舍有所不同。

本文評估了如下幾個最先進的物體檢測算法:

  • OpenCV(Haar-Cascade)
  • MTCNN
  • YoloV3和Yolo-Tiny
  • SSD
  • BlazeFace
  • ShuffleNet和Faceboxes

為了構建一個強大的人臉檢測系統,我們需要準確且快速的算法,以滿足在GPU以及移動設備上實時運行的需要。

準確度

在流媒體視頻的實時推理中,人們的面部可能有不同的姿勢、遮擋和照明效果。故此,算法能在不同的光照條件和不同姿態下精確檢測人臉非常重要。

在不同的姿態和光照條件下的人臉檢測

OpenCV(Haar-ascade)

我們從OpenCV的Haar-cascade實現開始,它是一個用C語言編寫的開源圖像處理庫。

優點:由于這個庫是用C語言編寫的,所以它在實時系統中的推理速度非常快。

缺點:這個實現的問題是它無法檢測側臉,而且在不同姿態和光照條件下表現欠佳。

MTCNN

這種算法基于深度學習方法。它使用深度級聯卷積神經網絡(Deep Cascaded Convolutional Neural Networks)來檢測人臉。

優點:它比OpenCV的Haar-Cascade方法準確性更高

缺點:運行時間較長。

YOLOV3

YOLO(“You only look once”)是用于物體檢測的最先進的深度學習算法。它由許多卷積神經網絡組成,形成一個深度CNN模型(深度意味著模型架構復雜性很高)。

原始的YOLO模型可以檢測80個不同的物體類別,而且檢測精度很高,而我們只需要用該模型檢測一個物體——人臉。我們在WiderFace(包含393,703個面部標簽的圖像數據集)數據集上訓練了這個算法。

YOLO算法還有一個微型版本,即Yolo-Tiny。Yolo-Tiny需要的計算時間比較少,但卻犧牲了一些準確性。我們用相同的數據集訓練了一個Yolo-Tiny模型,其邊界框(boundary box)結果并不一致。

優點:非常準確,沒有任何缺陷。比MTCNN更快。

缺點:由于具有巨大的深度神經網絡層,它需要的計算資源更多。故此,該算法在CPU或移動設備上運行地很慢。在GPU上,它的大型架構也需要耗費更多的VRAM。

SSD

SSD(Single Shot Detector)也是一個類似YOLO的深度卷積神經網絡模型。

優點:良好的準確性。它可以檢測各種姿勢、光照和遮擋。良好的推理速度。

缺點:比YOLO模型差。雖然推理速度較好,但仍不能滿足在CPU、低端GPU或移動設備上運行的要求。

BlazeFace

就像它的名字一樣,它是由谷歌發布的速度極快的人臉檢測算法。它接受128x128維的圖像輸入,推理時間是亞毫秒級,已優化到可以在手機中使用。它速度這么快的原因是:

  • YOLO和SSD用來檢測大量的類別,而BlazeFace不同,是一個專門的人臉檢測器模型。故此BlazeFace的深度卷積神經網絡架構比YOLO和SSD的架構小。
  • 它采用的是深度可分離卷積層(Depthwise Separable Convolution),而不是標準的卷積層,這樣就降低了計算量。

優點:非常好的推理速度,且人臉檢測的準確率高。

缺點:這個模型的優化目標是對手機攝像頭獲取的圖像進行人臉檢測,故此它預期人臉會覆蓋圖像中的大部分區域,而當人臉尺寸較小時,它的識別效果就是很好。所以,當對閉路電視攝像機獲取的(CCTV,Closed Circuit Tele Vision)圖像進行人臉檢測時,它表現得并不理想。

Faceboxes

Faceboxes是我們使用的最新的人臉檢測算法。與BlazeFace類似,它是一個小型的深度卷積神經網絡,只為檢測一種類別——人臉而設計。它的推理時間可滿足CPU上的實時檢測需求。它的準確度可以與Yolo人臉檢測算法相媲美,而且,不管圖像中的人臉較大還是較小,它都可以精確地檢測。

優點:推理速度快,準確性好。

缺點:評估仍在進行中。

2.特征提取

在檢測到圖像中的人臉后,我們對人臉進行裁剪,并將其送入特征提取算法,該算法創建面部嵌入(face-embeddings)——一個代表人臉特征的多維(主要是128或512維)向量。我們使用FaceNet算法來創建面部嵌入。

嵌入向量代表一個人的面部特征。故此,同一個人的兩個不同圖像的嵌入向量之間的距離比較接近,而不同人的嵌入向量之間的距離比較遠。其中,兩個向量之間的距離采用的是歐氏距離。

3.面部分類

在得到面部嵌入向量后,我們訓練了一種分類算法,即K-近鄰(K-nearest neighbor,KNN)算法,根據一個人的嵌入向量對其進行分類。

假設在一個組織中,有1000名員工。我們創建了所有員工的面部嵌入,并使用嵌入向量訓練分類算法。該算法以面部嵌入向量作為輸入,以人的名字作為輸出返回。

在把圖片放到網上前,用戶可以采用過濾器修改圖片中的特定像素。人眼無法察覺這些變化,但它會讓面部識別算法覺得很困惑。——ThalesGroup

眼下,面部識別算法已經取得了巨大的進步。但這僅僅是技術革命的開始。可以想象一下,未來面部識別算法和聊天機器人技術的聯合起來是多么強大。

猜你喜歡