原標題:人臉識別的基本原理

編輯導語:人臉識別產品早已被應用到生活的各個場景之中。但是你瞭解它的應用原理嗎?本篇文章裏,作者便將人臉識別原理進行了拆解。感興趣的話就一起看下去吧。

現在AI發展的如火如荼,我們已逐步進入智能時代。雖然人工智能偏技術類,學習和理解需要一定的技術背景和數學做支撐。但拆開看,其原理、方法、思路並不複雜,「不懂技術」的產品經理也能理解。

人工智能牽扯很多學科,知識點盤根錯節,需要具備多學科的知識儲備。從學習路徑上看,比較適合做成系列,從淺入深,從基礎到應用,逐漸深入。但無形中提高了學習門檻,降低了學習的興趣,導致很難堅持。

有感於此,我想以一種輕鬆、探索的視角,跟大家一起摸索,用簡單、直白的方式來學習AI。這樣,雖然會有錯誤、遺漏等,但學習難度會降低,那就在過程中完善吧,畢竟「模糊的正確大於精確的錯誤」。

一、人臉識別產品

我們從人臉識別開始,逐步瞭解其技術路徑的演變和原理等,今天先從最簡單的原理講起。

人臉識別其實很早就有了,多年前就以人臉考勤的方式出現,但由於使用效果不好,用戶體驗不佳,逐步被市場淘汰。

而這一波人工智能的火熱,計算能力、模型等都是其重要推動力,但更重要的是產品能夠落地,能夠在實際業務場景中使用。

尤其是人臉識別,產品在識別精度、速度、用戶友好度等多個方面都有明顯提升,用戶和市場的接受度明顯上升。

二、圖像表示

瞭解人臉識別,先要從圖像表示講起。

大家都知道,計算機能夠識別和處理的是二進制,不管我們輸入的是文本、圖像、聲音,計算機都是用一定長度的二進制串進行存儲和處理。

我們先以黑白圖片爲例,看看計算機是怎麼表示的。

計算機程序可以將黑白圖片可以表示爲灰度圖像。在灰度圖像中,一個像素使用8個比特位,從而可以表示256個灰度階,表示範圍是0-255。其中0代表純黑色,255代表純白色。

一個字節可以表示一個像素,那怎麼表示一張圖片呢,用矩陣進行表示。

簡單來說,就是表格,比如可以使用8行8列來表示一張8*8的灰度圖片。

這樣我們就解決了圖像的表示問題,建立了圖像和矩陣的等價關係。圖片可以轉化爲矩陣,通過矩陣也可以恢復原始圖片。

大家能算出來下面的矩陣表示什麼嗎?

對的,一眼就看出來了數字1,看來大家都有搞AI的天賦,加油。

三、圖像識別

通過矩陣表示圖像後,圖像的各種處理就轉化爲數學問題,可以使用數學的理論和方法進行解決,而這正是計算機所擅長的。

我們輸入圖片,希望計算機能夠將內容識別出來,將結果輸出。

仍以數字爲例,當輸入圖片並用矩陣表示後,通過將灰度值轉化爲灰度,可以輕鬆辨識其所表示的內容。

但在計算機的世界裏,只有0和1。想要通過辨識矩陣內容並將結果輸出,就必須建立矩陣到結果的映射。這樣,輸入一張圖片,經過處理和計算後,才能輸出一個數字。

很樸素的想法就是將各個數字所代表的矩陣提前存放在計算機內,當輸入一張圖片後,計算機通過計算,從而找到最適合的數字進行輸出。

舉個例子,更容易理解一些。比如,計算機內部已經存放了包含數字1和7以及它們所對應的灰度矩陣。

數字1

數字7

當新輸入一張圖像後,程序會自動計算它的矩陣與這些矩陣的相似度。相似度計算可使用的公式很多,比如可以使用百分比,距離等。

簡單起見,就使用兩個矩陣對應元素之差的絕對值之和或者平方和等,計算機進行快速運算,找到最相似的矩陣,然後將其所代表的數字進行輸出。

當輸入以下內容時,經過簡單計算,可以知道輸出結果爲 7。

四、人臉表示

既然可以用矩陣來表示圖片,人臉也是照片,那麼也可以用同樣的方法來進行表示,下面的這張人臉可以表示爲:

人臉照片

矩陣表示

五、人臉識別

雖然被叫做人臉識別,但更準確的名字應該是「人臉比對」。人臉識別的背後,是一張待比對圖片和人臉底庫中的所有照片進行比對,從而判別圖片中人員的身份。

一般來說,待比對照片就是我們在日常生活中被各種設備所採集的照片,比如通過人臉識別考勤機抓拍的照片。

由於環境、姿勢等原因,採集的照片具有很大的差異,導致比對成功率不高。爲了提升比對的成功率和速度,很多時候會同時抓拍多張人臉進行識別,但每次比對的時候輸入照片只有一張。

所謂的人臉底庫就是我們在系統中提前錄入的人臉照片,照片和我們的名字一一對應。根據人臉底庫中照片數量的不同,可以將人臉比對分爲1:1和1:N,由於數量不同這兩種方法的計算量和計算方法也不盡相同。

1. 1:1

1:1最常見的場景就是人證比對,比如我們在乘高鐵時所遇到的這種設備。

前面的1代表我們從設備中採集的照片,而後面的1代表身份證中的照片,通過將現場採集的照片和身份證中存放的照片進行比對,通過判別持證人是否爲本人。

這種情況下只涉及到兩張圖片的比對,計算量相對較小。

可能用在火車票安檢等場景中,所以要求的精度較高。

身份證中的照片像素較小,通過市面上的身份證讀卡器讀取出來的照片僅爲100*100像素左右,給精度帶來了一定的挑戰。

目前這個領域相對成熟,使用場景正在逐步鋪開。

2. 1:N

1:N是1張人臉和底庫中的N張人臉進行比對。

比如在考勤機中,我們的人臉底庫中包含全公司的所有人臉照片。當上班打卡時,考勤機採集到人臉輸入系統,經過比對後輸出員工身份。

這種情況下計算量相對較大,時效性和識別精度太低又會影響用戶體驗,所以廠商一般會綜合考慮權衡,在設備的參數中標註所支持的人臉數量。

這一波人工智能的發展,帶動了1:N領域人臉識別技術的進步,更多的產品能夠在各個場景中落地。比如智慧城市、智慧家居等。

國內廠商也藉着這一波東風,加快技術研發和產品落地,誕生了著名的AI視覺四小龍等獨角獸。

今天梳理了人臉識別的基本原理,整個實現過程雖然看起來很簡單,但技術卻在基本原理的基礎上持續完善和進步,最終達到比較好的效果。

下次我們將討論在複雜場景下人臉識別遇到的挑戰及解決方案。

作者:AIoT產品,10年B端產品設計經驗;微信公衆號:AIoT產品

本文由@AIoT產品 原創發佈於人人都是產品經理。未經許可,禁止轉載

題圖來自Unsplash,基於CC0協議

相關文章