過(guò)去十年,深度學(xué)習(xí)領(lǐng)域出現(xiàn)了許多先進(jìn)的新算法和突破性的研究,并且引入了新的計(jì)算機(jī)視覺(jué)算法。
這一切始于 2012 年的 AlexNet。AlexNet 是一個(gè)深度(卷積)神經(jīng)網(wǎng)絡(luò),它在 ImageNet 數(shù)據(jù)集(擁有超過(guò) 1400 萬(wàn)張圖片的數(shù)據(jù)集)上取得了很高的準(zhǔn)確率。
人類(lèi)是如何識(shí)別人臉的?
也許,人類(lèi)大腦中的神經(jīng)元首先識(shí)別場(chǎng)景中的人臉(從人的體形和背景),然后提取面部特征,并通過(guò)這些特征對(duì)人進(jìn)行分類(lèi)。我們已經(jīng)在一個(gè)無(wú)限大的數(shù)據(jù)集和神經(jīng)網(wǎng)絡(luò)上進(jìn)行了訓(xùn)練。
機(jī)器中的面部識(shí)別是以同樣的方式實(shí)現(xiàn)的。首先,我們采用面部檢測(cè)算法來(lái)檢測(cè)場(chǎng)景中的人臉,然后從檢測(cè)到的人臉中提取面部特征,最后使用算法對(duì)人進(jìn)行分類(lèi)。
面部識(shí)別系統(tǒng)的工作流
1. 人臉檢測(cè)
人臉檢測(cè)是物體檢測(cè)的一個(gè)特化版本,特別之處在于,它只檢測(cè)一種物體,即人臉。就像計(jì)算機(jī)科學(xué)里需要權(quán)衡時(shí)間和空間,機(jī)器學(xué)習(xí)算法也需要在推理速度和準(zhǔn)確性之間進(jìn)行權(quán)衡?,F(xiàn)在有很多物體檢測(cè)算法,不同算法對(duì)速度和準(zhǔn)確性的取舍有所不同。
本文評(píng)估了如下幾個(gè)最先進(jìn)的物體檢測(cè)算法:
OpenCV(Haar-Cascade)
MTCNN
YoloV3 和 Yolo-Tiny
SSD
BlazeFace
ShuffleNet 和 Faceboxes
為了構(gòu)建一個(gè)強(qiáng)大的人臉檢測(cè)系統(tǒng),我們需要準(zhǔn)確且快速的算法,以滿足在 GPU 以及移動(dòng)設(shè)備上實(shí)時(shí)運(yùn)行的需要。
準(zhǔn)確度
在流媒體視頻的實(shí)時(shí)推理中,人們的面部可能有不同的姿勢(shì)、遮擋和照明效果。因此,算法能在不同的光照條件和不同姿態(tài)下精確檢測(cè)人臉?lè)浅V匾?/p>
在不同的姿態(tài)和光照條件下的人臉檢測(cè)
OpenCV(Haar-ascade)
我們從 OpenCV 的 Haar-cascade 實(shí)現(xiàn)開(kāi)始,它是一個(gè)用 C 語(yǔ)言編寫(xiě)的開(kāi)源圖像處理庫(kù)。
優(yōu)點(diǎn): 由于這個(gè)庫(kù)是用 C 語(yǔ)言編寫(xiě)的,所以它在實(shí)時(shí)系統(tǒng)中的推理速度非??臁?/p>
缺點(diǎn): 這個(gè)實(shí)現(xiàn)的問(wèn)題是它無(wú)法檢測(cè)側(cè)臉,而且在不同姿態(tài)和光照條件下表現(xiàn)欠佳。
MTCNN
這種算法基于深度學(xué)習(xí)方法。它使用深度級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)(Deep Cascaded Convolutional Neural Networks)來(lái)檢測(cè)人臉。
優(yōu)點(diǎn): 它比 OpenCV 的 Haar-Cascade 方法準(zhǔn)確性更高
缺點(diǎn): 運(yùn)行時(shí)間較長(zhǎng)。
YOLOV3
YOLO(“You only look once”)是用于物體檢測(cè)的最先進(jìn)的深度學(xué)習(xí)算法。它由許多卷積神經(jīng)網(wǎng)絡(luò)組成,形成一個(gè)深度 CNN 模型 (深度意味著模型架構(gòu)復(fù)雜性很高)。
原始的 YOLO 模型可以檢測(cè) 80 個(gè)不同的物體類(lèi)別,而且檢測(cè)精度很高,而我們只需要用該模型檢測(cè)一個(gè)物體——人臉。我們?cè)?WiderFace(包含 393,703 個(gè)面部標(biāo)簽 的圖像數(shù)據(jù)集)數(shù)據(jù)集上訓(xùn)練了這個(gè)算法。
YOLO 算法還有一個(gè)微型版本,即 Yolo-Tiny。Yolo-Tiny 需要的計(jì)算時(shí)間比較少,但卻犧牲了一些準(zhǔn)確性。我們用相同的數(shù)據(jù)集訓(xùn)練了一個(gè) Yolo-Tiny 模型,其邊界框(boundary box)結(jié)果并不一致。
優(yōu)點(diǎn): 非常準(zhǔn)確,沒(méi)有任何缺陷。比 MTCNN 更快。
缺點(diǎn): 由于具有巨大的深度神經(jīng)網(wǎng)絡(luò)層,它需要的計(jì)算資源更多。因此,該算法在 CPU 或移動(dòng)設(shè)備上運(yùn)行地很慢。在 GPU 上,它的大型架構(gòu)也需要耗費(fèi)更多的 VRAM。
SSD
SSD(Single Shot Detector)也是一個(gè)類(lèi)似 YOLO 的深度卷積神經(jīng)網(wǎng)絡(luò)模型。
優(yōu)點(diǎn): 良好的準(zhǔn)確性。它可以檢測(cè)各種姿勢(shì)、光照和遮擋。良好的推理速度。
缺點(diǎn): 比 YOLO 模型差。雖然推理速度較好,但仍不能滿足在 CPU、低端 GPU 或移動(dòng)設(shè)備上運(yùn)行的要求。
BlazeFace
就像它的名字一樣,它是由谷歌發(fā)布的速度極快的人臉檢測(cè)算法。它接受 128x128 維的圖像輸入,推理時(shí)間是亞毫秒級(jí),已優(yōu)化到可以在手機(jī)中使用。它速度這么快的原因是:
YOLO 和 SSD 用來(lái)檢測(cè)大量的類(lèi)別,而 BlazeFace 不同,是一個(gè)專(zhuān)門(mén)的人臉檢測(cè)器模型。因此 BlazeFace 的深度卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)比 YOLO 和 SSD 的架構(gòu)小。
它采用的是深度可分離卷積層(Depthwise Separable Convolution),而不是標(biāo)準(zhǔn)的卷積層,這樣就降低了計(jì)算量。
優(yōu)點(diǎn): 非常好的推理速度,且人臉檢測(cè)的準(zhǔn)確率高。
缺點(diǎn): 這個(gè)模型的優(yōu)化目標(biāo)是對(duì)手機(jī)攝像頭獲取的圖像進(jìn)行人臉檢測(cè),因此它預(yù)期人臉會(huì)覆蓋圖像中的大部分區(qū)域,而當(dāng)人臉尺寸較小時(shí),它的識(shí)別效果就是很好。所以,當(dāng)對(duì)閉路電視攝像機(jī)獲取的(CCTV ,Closed Circuit Tele Vision)圖像進(jìn)行人臉檢測(cè)時(shí),它表現(xiàn)得并不理想。
Faceboxes
Faceboxes 是我們使用的最新的人臉檢測(cè)算法。與 BlazeFace 類(lèi)似,它是一個(gè)小型的深度卷積神經(jīng)網(wǎng)絡(luò),只為檢測(cè)一種類(lèi)別——人臉而設(shè)計(jì)。它的推理時(shí)間可滿足 CPU 上的實(shí)時(shí)檢測(cè)需求。它的準(zhǔn)確度可以與 Yolo 人臉檢測(cè)算法相媲美,而且,不管圖像中的人臉較大還是較小,它都可以精確地檢測(cè)。
優(yōu)點(diǎn): 推理速度快,準(zhǔn)確性好。
缺點(diǎn): 評(píng)估仍在進(jìn)行中。
2. 特征提取
在檢測(cè)到圖像中的人臉后,我們對(duì)人臉進(jìn)行裁剪,并將其送入特征提取算法,該算法創(chuàng)建面部嵌入(face-embeddings)——一個(gè)代表人臉特征的多維(主要是 128 或 512 維)向量。我們使用 FaceNet 算法來(lái)創(chuàng)建面部嵌入。
嵌入向量代表一個(gè)人的面部特征。因此,同一個(gè)人的兩個(gè)不同圖像的嵌入向量之間的距離比較接近,而不同人的嵌入向量之間的距離比較遠(yuǎn)。其中,兩個(gè)向量之間的距離采用的是歐氏距離。
3. 面部分類(lèi)
在得到面部嵌入向量后,我們訓(xùn)練了一種分類(lèi)算法,即 K- 近鄰(K-nearest neighbor,KNN)算法,根據(jù)一個(gè)人的嵌入向量對(duì)其進(jìn)行分類(lèi)。
假設(shè)在一個(gè)組織中,有 1000 名員工。我們創(chuàng)建了所有員工的面部嵌入,并使用嵌入向量訓(xùn)練分類(lèi)算法。該算法以面部嵌入向量作為輸入,以人的名字作為輸出返回。
在把圖片放到網(wǎng)上前,用戶(hù)可以采用過(guò)濾器修改圖片中的特定像素。人眼無(wú)法察覺(jué)這些變化,但它會(huì)讓面部識(shí)別算法覺(jué)得很困惑。
當(dāng)前,面部識(shí)別算法已經(jīng)取得了巨大的進(jìn)步。但這僅僅是技術(shù)革命的開(kāi)始。可以想象一下,未來(lái)面部識(shí)別算法和聊天機(jī)器人技術(shù)的聯(lián)合起來(lái)是多么強(qiáng)大。而南京漢榮視覺(jué)AI,場(chǎng)景算法首選品牌。
聯(lián)系我們
您好,我們隨時(shí)為您提供服務(wù)
全國(guó)統(tǒng)一服務(wù)熱線:4008081607
銷(xiāo)售熱線:13912903125