人臉計算機視覺技術的一個重要應用就是人臉識別。提到人臉識別,你一定不陌生。我們已經(jīng)在越來越多的場景中看到了人臉識別的應用。例如,解鎖手機,乘坐火車等。
那么,人工智能是怎么“認出”人與人之間的不同的呢?總不可能是拍兩張照片直接比較是不是同一張照片吧!畢竟只要換個表情、轉(zhuǎn)一下頭,得到的照片就不一樣了。
人類是根據(jù)每個人長相的差異對人臉進行辨認的。這個人的眼睛大一些,那個人的鼻梁高一些,不同的五官組成了不同的臉。
人工智能沒法像人一樣憑直覺判斷兩張臉像還是不像。對它來說,要分辨人臉,必須對人臉照片的數(shù)據(jù)加以精確分析。
進行人臉識別的第一步就是找到人臉的位置,這就是定位和檢測?,F(xiàn)在最常用的定位人臉的方法是HOG(方向梯度直方圖)。
這個名字雖然拗口,但實際上它就是一種能夠檢測物體輪廓的算法。首先,我們把彩色圖像變成黑白圖像,雖然有無顏色并不影響我們辨認人臉,但是去掉顏色可以減少對識別的干擾。然后,我們把圖像分成一個個小格子,用箭頭表示小格子中圖像明暗是如何變化的,最終就可以得到HOG。雖然對人類來說,HOG特征不好辨認,但是對計算機來說,在HOG中,人臉的五官等關鍵信息會變得更加明顯。這樣,計算機就可以很快找到人臉。為了在HOG中找到人臉,我們需要利用數(shù)學算法找到圖中和已知的人臉HOG最像的部分。這些HOG特征需要從其他已知的面部數(shù)據(jù)中訓練提取。
找到人臉之后,人工智能又會面臨一個新的問題。在采集人臉信息時一般只有正面的圖像,正所謂“橫看成嶺側(cè)成峰,遠近高低各不同”,即使是同一張臉,從不同的角度看起來也不一樣。除了方向和角度,表情、光線等都會讓人臉圖像發(fā)生變化。但是,你如果使用支持人臉解鎖功能的手機就會發(fā)現(xiàn),即使解鎖手機時側(cè)著頭,也同樣可以解鎖成功。那么,如何鑒別變形前后是不是同一張人臉呢?
通常情況下,人臉有很多相同點。科學家們由此想到,可以用人臉上一些普遍存在的特征點作為人臉的基準,適當調(diào)整扭曲圖像中的人臉,讓被識別的人臉“正”起來。
經(jīng)過反復研究,科學家們找到了下巴、眉毛、鼻子等特征點,其中最常用的有68個。有了這些特征點,我們就可以知道眼睛和嘴巴在哪兒了,然后按照一定規(guī)律對圖像進行旋轉(zhuǎn)、縮放等,使得眼睛和嘴巴盡可能地靠近中心,讓各個特征點盡可能和正面的情況對齊,這樣就可以把臉變得“正”起來。當然,我們也可以給人臉標注更多的特征點,讓人工智能的定位更加精確——有些公司的人臉識別系統(tǒng)有上百個特征點。
把特征點對齊之后,就要進行最關鍵的一步了——判斷這到底是誰的臉。這就要將我們剛得到的人臉數(shù)據(jù)同之前采集的人臉庫中的數(shù)據(jù)加以比較,找到最像的那個。如何判斷像不像呢?可以比較兩張圖像中耳朵的大小、鼻子的長度、眼睛之間的距離等。
如果要精確地進行數(shù)值化比較,人工智能也許比我們更“懂”人臉。利用卷積神經(jīng)網(wǎng)絡,人工智能可以自動檢測出人臉上的大量數(shù)據(jù)。常見的做法是測量128組數(shù)據(jù),對計算機來說也就是128個數(shù)字。鑒于神經(jīng)網(wǎng)絡的特點,我們無法理解這128個數(shù)字到底是什么意思,但這并不重要,人工智能可以理解。只要利用一定的數(shù)學方法找到和這128個數(shù)字最接近的另一組數(shù)字,計算機就可以迅速成功地找到這張人臉的主人。
(愛麗絲摘自人民郵電出版社《寫給青少年的人工智能:應用》一書,視覺中國供圖)