人臉識(shí)別之人臉關(guān)鍵特征識(shí)別
編輯導(dǎo)語(yǔ):當(dāng)下人臉識(shí)別在生活中被應(yīng)用得愈加廣泛。那么,人臉識(shí)別是如何對(duì)人臉關(guān)鍵特征進(jìn)行識(shí)別的?在前面文章里,作者對(duì)人臉識(shí)別的圖像預(yù)處理進(jìn)行了介紹。本篇文章中,作者則介紹了人臉識(shí)別的關(guān)鍵特征識(shí)別,讓我們一起來(lái)看一下。
在上次人臉識(shí)別之圖像預(yù)處理中,我們?cè)黾恿祟A(yù)處理環(huán)節(jié)、排除環(huán)境和其他因素的干擾,將注意力集中在人臉上,提升識(shí)別效果。
人臉比對(duì)是通過(guò)計(jì)算兩張照片灰度值矩陣的距離來(lái)實(shí)現(xiàn)的,圖像預(yù)處理通過(guò)各種手段拉近了兩個(gè)矩陣間的距離,從而讓計(jì)算出來(lái)的結(jié)果更精準(zhǔn)。
但這樣就夠了嗎?我們的計(jì)算是基于像素點(diǎn)的灰度值開(kāi)展的,在計(jì)算中,各個(gè)像素點(diǎn)都參與運(yùn)算,具有同等的重要性,對(duì)結(jié)果的貢獻(xiàn)度也是一樣的。這種設(shè)計(jì)是否合理,計(jì)算的粒度是否太細(xì)而影響結(jié)果的可靠性?
從直覺(jué)上判斷,圖像中像素的重要性程度肯定不一樣,比如眼睛、鼻子、嘴巴等部位的像素重要性應(yīng)該更高,對(duì)結(jié)果有更大的影響。而臉部中間部位的像素重要性比較低,甚至都沒(méi)有參與運(yùn)算的必要性。
研究表明,確實(shí)有很多像素沒(méi)有參與運(yùn)算的必要,這些像素被去除后不影響識(shí)別結(jié)果,還可以加快識(shí)別速度,并提升模型魯棒性。比如,在基于像素級(jí)別的人臉對(duì)比中,通過(guò)在圖像中加入一些噪聲,衍生出對(duì)抗攻擊,從而讓識(shí)別出現(xiàn)錯(cuò)誤。
一、人臉特征
不管是傳統(tǒng)的機(jī)器識(shí)別,還是近幾年大火的深度學(xué)習(xí),都是將人類的學(xué)習(xí)能力通過(guò)計(jì)算機(jī)的計(jì)算能力得到表達(dá)和遷移。仔細(xì)想想,當(dāng)我們將注意力集中在臉部,會(huì)怎么樣描述一個(gè)人??赡艿拿枋鰰?huì)是:
人天生就有很強(qiáng)的抽象和學(xué)習(xí)能力。當(dāng)我們面對(duì)一張人臉照片時(shí),會(huì)自動(dòng)進(jìn)行特征處理和變換。當(dāng)再次面對(duì)這張照片時(shí),即使臉部特征有所變形或者缺失,也不影響我們的識(shí)別。
人的這種抽象、變換及補(bǔ)全能力卻是計(jì)算機(jī)所缺少的,我們可以模仿人眼的這種識(shí)別手段,讓計(jì)算機(jī)將注意力轉(zhuǎn)移到鼻子、嘴巴等重要特征上,從而擁有部分程度的智能。
在計(jì)算機(jī)存儲(chǔ)的時(shí)候,不再是整個(gè)臉部的信息,而是眼睛、鼻子、嘴巴等臉部部件,通過(guò)這些部件間的比對(duì)來(lái)判斷是否為同一對(duì)象。這種方法叫做基于人臉關(guān)鍵特征的識(shí)別技術(shù),通常是通過(guò)邊緣、輪廓檢測(cè)來(lái)實(shí)現(xiàn)的。
二、邊緣檢測(cè)
什么是邊緣?通俗來(lái)說(shuō)就是眼睛、鼻子等外部輪廓,在灰度圖像中就是一些灰度值變化明顯的點(diǎn),這些變化反映了圖像的重要程度或所蘊(yùn)含的信息。
直觀上看,圖像的邊緣附近的值出現(xiàn)明顯的分割,灰度值變化較大,而圖像中比較平滑的部分,其灰度值變化較小。對(duì)于計(jì)算機(jī)來(lái)說(shuō),可以通過(guò)灰度階的變化來(lái)對(duì)圖像信息進(jìn)行邊緣檢測(cè)。
這背后有數(shù)學(xué)理論的支撐,我們一般用梯度來(lái)描述變化快慢。在圖像中的灰度變化既有方向也有大小,就可以使用圖像梯度來(lái)描述這種變化,進(jìn)而可以檢測(cè)出圖像的邊緣。
在數(shù)學(xué)上,梯度既有大小,又有方向,并且需要要有一定的條件,比如可導(dǎo)等。在圖像中一般會(huì)簡(jiǎn)化處理,使用算子進(jìn)行代替。
算子其實(shí)也是一種濾波,但使用算子更強(qiáng)調(diào)其數(shù)學(xué)含義和特定用途。目前常用的邊緣檢測(cè)算子,包括Sobel,Laplacian算子和Canny等。我們簡(jiǎn)單描述下Canny邊緣檢測(cè)。
Canny邊緣檢測(cè)
Canny邊緣檢測(cè)是澳洲計(jì)算機(jī)科學(xué)家 約翰坎尼(John F. Canny)于1986年開(kāi)發(fā)出來(lái)的一個(gè)多級(jí)邊緣檢測(cè)算法,其目標(biāo)是找到一個(gè)最優(yōu)的邊緣,其最優(yōu)邊緣的定義是:
- 最優(yōu)檢測(cè)——算法能夠盡可能多地標(biāo)示出圖像中的實(shí)際邊緣,漏檢和誤檢的概率非常??;
- 最優(yōu)定位——檢測(cè)出的邊緣要與實(shí)際圖像中的實(shí)際邊緣盡可能接近;
- 檢測(cè)點(diǎn)與邊緣點(diǎn)一一對(duì)應(yīng)——算子檢測(cè)的邊緣點(diǎn)與實(shí)際邊緣點(diǎn)應(yīng)該是一一對(duì)應(yīng)的。
Canny邊緣檢測(cè)分為如下幾個(gè)步驟。
1)圖像去噪
噪聲會(huì)影響邊緣檢測(cè)的準(zhǔn)確性,因此首先要將噪聲過(guò)濾掉,通常使用高斯濾波。
2)計(jì)算梯度的幅度與方向
使用高斯濾波器來(lái)進(jìn)行計(jì)算,讓距離中心點(diǎn)越近的像素點(diǎn)權(quán)重越大。
3)梯度非極大值抑制
對(duì)像素點(diǎn)進(jìn)行遍歷,判斷當(dāng)前圖像是否為局部最大值,即是否是周圍像素點(diǎn)中具有相同梯度方向的最大值。如果不是,則不是圖像的邊緣點(diǎn),將灰度值置零,讓邊緣“變瘦”。
4)使用雙閾值算法確定最終的邊緣
經(jīng)過(guò)前面的步驟已經(jīng)基本可以得到圖像的邊緣,接下來(lái)對(duì)得到的邊緣進(jìn)行修正。
設(shè)置兩個(gè)閾值:高閾值和低閾值。保留比高閾值高的邊緣,去除低于低閾值的邊緣,處于中間部分的則其連接情況進(jìn)行再次處理:僅保留與其他邊緣連接的部分。
三、輪廓檢測(cè)
通過(guò)算子計(jì)算出來(lái)的邊緣一般是不連續(xù)的,很難形成相對(duì)完整和封閉的目標(biāo)輪廓,這樣提取出來(lái)的特征效果可能不好。通過(guò)使用輪廓檢測(cè)算法,可以忽略背景和目標(biāo)內(nèi)部的紋理以及噪聲干擾的影響,對(duì)邊緣進(jìn)行細(xì)化并進(jìn)行連接,解決那些不能依靠亮度建模而檢測(cè)出來(lái)的紋理邊界。
輪廓檢測(cè)也有一些方法,比如使用專門設(shè)計(jì)的檢測(cè)算子等。通過(guò)使用這些算子,可以生成更好的臉部特征,有利于后續(xù)的計(jì)算和比對(duì)。
四、實(shí)現(xiàn)過(guò)程
以上簡(jiǎn)單描述了人臉關(guān)鍵特征的計(jì)算方法。在實(shí)際應(yīng)用中,需要借助于統(tǒng)計(jì)分析的技術(shù),從大量的人臉中找到對(duì)應(yīng)的特征,并通過(guò)訓(xùn)練出不同的分類器,如嘴巴分類器、眼睛分類器等,從而實(shí)現(xiàn)人臉及關(guān)鍵部位的檢測(cè)。
在進(jìn)行比對(duì)時(shí),需要對(duì)包含臉部的所有可能檢測(cè)窗口進(jìn)行窮舉搜索,得到關(guān)鍵部位信息,并進(jìn)行存儲(chǔ)或比對(duì),這個(gè)過(guò)程相對(duì)比較耗時(shí)。在比對(duì)過(guò)程中,可以使用各個(gè)部位進(jìn)行相似性比對(duì),并進(jìn)行結(jié)果合并;或者直接對(duì)包含各個(gè)部件的全局特征進(jìn)行比對(duì),直接輸出比對(duì)結(jié)果。
這兩種方法同樣對(duì)應(yīng)著人類的識(shí)別過(guò)程,有研究表明,兒童識(shí)別目標(biāo)(如人臉)往往依據(jù)目標(biāo)的某些局部特征,而成年人則側(cè)重于記住目標(biāo)的全局。
人臉特征的探測(cè)也可作為一種圖像預(yù)處理手段,如果確定了兩眼的位置,得到兩眼間的距離,依此就可得到人臉的尺度大小,進(jìn)行尺度標(biāo)準(zhǔn)化處理,解決人員距離采集器遠(yuǎn)近的問(wèn)題。
五、算法評(píng)價(jià)
從理論上來(lái)說(shuō),人臉的關(guān)鍵部位特征相對(duì)比較穩(wěn)定,對(duì)人臉、方向等沒(méi)有過(guò)多要求,通過(guò)算法提取的特征能準(zhǔn)確反映對(duì)象的特征,具有一定的不變性,保證了結(jié)果輸出的一致性,能夠滿足人臉識(shí)別在早期各應(yīng)用場(chǎng)景的使用。
當(dāng)然,這里面的算子設(shè)計(jì)和模型構(gòu)建都需要有領(lǐng)域知識(shí)的支撐。算子的構(gòu)建、特征的提取以及模型的建立都影響著最終的匹配結(jié)果,需要具有深厚的專家知識(shí)和經(jīng)驗(yàn)。這個(gè)過(guò)程往往是手工建模完成的,各個(gè)模型及參數(shù)的設(shè)置都比較耗時(shí),具有一定的主觀性。
同時(shí),特征工程的適配性較差。比如,各地區(qū)人員臉部特征不同,會(huì)導(dǎo)致已經(jīng)調(diào)整好的算法在落地時(shí),需要手動(dòng)多次調(diào)整參數(shù),過(guò)程耗時(shí)、耗力,嚴(yán)重阻礙了算法的大規(guī)模部署。
雖然,從表面上看,基于人臉關(guān)鍵特征的識(shí)別方法有諸多缺點(diǎn),且效率較低。但算法能夠從人類的先驗(yàn)知識(shí)出發(fā),直觀而樸素,一定程度上推動(dòng)了人臉識(shí)別技術(shù)的發(fā)展和普及,為后續(xù)更智能的算法奠定了基礎(chǔ)。
作者:AIoT產(chǎn)品,10年B端產(chǎn)品設(shè)計(jì)經(jīng)驗(yàn);微信公眾號(hào):AIoT產(chǎn)品
本文由@AIoT產(chǎn)品 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自Unsplash,基于CC0協(xié)議
- 目前還沒(méi)評(píng)論,等你發(fā)揮!