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