人臉辨識 資訊安全 人工智慧 AI 機器學習 深度學習 隱私權

運用Python語言、OpenCV套件 刷臉程式自己寫

理解優缺點及應用概況 人臉辨識簡易實作動手玩

人臉辨識技術的出現,使人們的生活方式大幅改變,新技術的問世雖然帶來了便利,但是也無法阻止那伴隨而來的問題,本文將透過Python程式語言和OpenCV套件來實作人臉辨識,並說明目前人臉辨識之概況與應用與之對人們生活帶來的影響及分析發展趨勢。

 

人工智慧(Artificial Intelligence)、機器學習(Machine Learning)、深度學習(Deep Learning)以及大數據(Big Data),是近來一直很火熱的話題。這些技術運用在不少領域中,包括金融業、物流業、商業分析、無人車、電腦視覺、自然語言處理等等,這些應用與日常生活息息相關。原本只會在電影中出現的內容,現在竟已經遍佈在生活中的每個角落。

隨著世代的變遷,短短幾年內,電腦的世界不斷發展且變得越來越成熟,且由於iPhone X的發售,引入了人臉辨識技術,掀起了業界對人臉辨識的關注,使得人臉辨識技術在各個領域的應用更為普遍,藉此電腦視覺中的人臉辨識技術得以走上時代的前端,引領發展。

人臉辨識技術屬於電腦視覺的範疇,現今結合了人工智慧的技術,讓電腦視覺的效用提升,以影像分析為素材,並透過深度學習訓練,再利用演算法歸納出其關聯來識別出結果。然而,此概念類似的應用,能識別的對象不一定為人臉,甚至是動物、水果等任何物品,只要具備識別性的特徵,電腦就能透過演算法進行分析及辨識。

以往的指紋辨識系統雖然也被廣泛使用在各個領域,但比起非接觸式的人臉辨識系統,後者的辨識速度更優於前者,以及樣本的取得更加容易。隨著時間推流,準確度也越來越精確,人臉辨識在產業中的運用非常廣泛,具有極大的發展潛力,蘊藏無數商機,期待未來有更多的產業將人臉辨識技術帶入其中。

背景知識說明

人臉辨識屬於生物識別中的其中一種技術,對於人類而言,如何分辨識出一個人的方法有許多種,也許是透過聲音、透過身材,透過其他外表特徵等等,不過最客觀的方式還是透過一個人的臉和五官。人臉具備了唯一識別的標準,即使世界上有雙胞胎的存在,但是樣子仍不盡相同,透過電腦演算法便能計算出其中的不同而達成辨識,在高科技的精確技術導引之下,仍能以人臉的差異性來判別不同人的身分。

人臉辨識的應用

對於人臉辨識的應用,常見的包括以下這幾種:

刷臉快速通關

在人流密集、人來人往的車站搭車時,若依賴人臉辨識技術快速通關,不僅可以大幅地減少排隊時間,降低人員的工作量,進而增加人流的吞吐量。

Face ID

各大品牌智慧型手機已經推出Face ID解鎖的功能,與先前的Touch ID並行,不僅能夠減少解鎖時間,也避免了手指有異物而影響指紋辨識的情況。

刷臉付款

人臉具有唯一辨識的特性,中國的支付寶已經開通此功能,不少餐廳已經支援刷臉支付,可以大幅減少點餐及付款的時間。整個支付過程可以壓在10秒鐘以內,不用排隊,大幅地提升用戶的體驗。

門禁系統

已有不少公司引進了人臉辨識的門禁系統,員工們可以使用人臉辨識來打卡。對企業而言,不僅提升了打卡的效率,也減少員工舞弊、代替他人打卡的問題,達到即時管理員工出勤狀況,而且也同時結合防盜攝影機,若有陌生人進出,也能及時發現,具有遏止犯罪的效果。

人臉辨識的優點

關於人臉辨識的優點,涵蓋以下幾種:

應用面廣泛

人臉辨識的技術應用已經充斥在生活中,大幅地提升生活的效率及品質,包括機場出入關、智慧型手機解鎖、上下班打卡、智能ATM、智慧社區住宅等。

非接觸性

在許多的生物辨識的技術中,人臉辨識屬於非接觸性,若是虹膜及指紋辨識,則需要近距離直接接觸,而人臉辨識不用接觸即可達到身分辨識的效果。

唯一識別性

經過科學研究,兩個人之間擁有8種相同面部特徵的機率,不到萬億分之一,然而世上擁有74億的總人口,基於此總數,可說明要找到一模一樣臉孔的情況是近乎不可能,因此人臉具有唯一識別的特性。

成本較低

人臉辨識最基本的只需要人臉影像,且現代的相機、攝影機的畫素也越來越高,一台智慧型手機就擁有媲美單眼相機的畫素,要取得「高品質」的影像已不再是難事,大幅降低達成人臉辨識的門檻。

人臉辨識的缺點

除了諸多優點之外,人臉辨識也存在以下的缺點:

人臉狀況不穩定

人臉的五官並不像指紋一成不變,隨著時間、年齡增長,人臉中的特徵都會有些微改變,或是光線、表情、整容等等,都有可能影響辨識的結果。

恐侵犯隱私權

由於人臉的資料只要從相片中就可以取得,有別於指紋辨識的是不用當事人進行指紋的採樣。人臉的數據也屬於個人資料,單從一張照片就可以知道某個人的身分、姓名、年齡、背景以及電話,那麼一個人的隱私將不復存在。雖然人臉辨識技術帶來無數便利,但是隱私權的問題將會是人臉辨識技術未來所面臨的一大挑戰。

如何分辨照片與真人

中國曾發生刷臉取貨時爆出Bug,有人只拿一張印刷出的照片就成功地騙過機器並取得貨品。為了提高安全性及準確度,必須結合3D技術、眼紋技術、眨眼偵測,或多重身分驗證來克服此問題。

人臉辨識的原理

以下介紹人臉辨識的運作原理,先介紹執行步驟,再說明相關技術。

人臉辨識的步驟

人臉辨識大致的步驟可分為人臉偵測、人臉校正以及人臉特徵值的摘取。首先,從照片中尋找出是否有人臉存在,當發現之後,就會對此人臉進行預處理。

人臉辨識的相關技術

人臉辨識的相關技術,包含了以下幾種類型:

1.人臉檢測:透過五官的位置特徵和幾何關係的數據,來判斷此影像是否為一張人臉,其中包括了眉毛、眼睛、鼻子、嘴巴、臉形等器官的特徵,若符合條件的話,則回傳相關的人臉數據。

2.人臉圖像預處理:電腦獲取的原始圖像可能會受到許多條件限制和環境的干擾,無法直接使用,必須先進行預處理,其中包含濾波、均衡化、銳化、人臉對準、灰度校正,人臉圖像增強以及歸一化的動作,目的是為了利於電腦做識別。

3.人臉圖像匹配與識別:將輸入的影像與資料庫中已存在的人臉特徵數據進行比對,根據相似程度來進行識別。可分為兩類,一類稱為人臉確認,是一對一比較的過程,根據相似度來判斷是否為同一個人,會以某個門檻值作為基準,若達門檻值,則結果就會判定為同一人。另一類稱之為人臉辨認,是一對多進行比較的過程,將輸入的影像與多張人臉特徵數據進行比較,如果找到其中最相似的臉,就會回傳結果來鑑定此人的身分。

4.歐式距離:「歐氏距離」也稱「歐基里德距離」或「歐基里德度量歐式距離」,它是m維空間任兩點之間的距離,而人臉辨識就是將五官分為多個維度,利用歐式距離計算出得到的解,即可當人臉辨識判斷的因子。

人臉辨識流程圖

關於人臉辨識的執行流程,可參考圖1的說明。

圖1  人臉辨識流程圖。

相關使用工具介紹

介紹過人臉辨識的相關應用、優缺點以及運作原理之後,接著說明其使用的軟體工具以及程式碼。

使用環境及軟體簡介

本實驗應用的軟體如下,必須先安裝這些軟體並進行環境設定,下列的程式碼才能夠運作。

Spyder(Python 3.6)

Spyder是一個使用Python語言的跨平台開發環境,在撰寫Python語言方面廣受使用者喜愛,是一款開放原始碼的整合開發環境(IDE),如圖2所示。

圖2  Spyder圖示。

OpenCV 4.1.1

OpenCV(Open Source Computer Vision Library)是一個跨平台的電腦視覺庫,並開放在商業和研究領域中免費使用。OpenCV應用於開發即時圖像處理、電腦視覺以及圖型識別程式,如圖3所示。

圖3  OpenCv圖示。

Dlib 19.8.1

Dlib是一個函式庫工具包,包含機器學習演算法和工具,有建立好的68點人臉特徵等其他模型,開放給大家在任何應用程式免費使用,如圖4所示。

圖4  Dlib圖示。

程式碼運用

如圖5所示,1-6行先將相關的函式庫匯入進來,包括了sys、os、dlib、glob、numpy、cv2、imutils。第8行的部分,sys.argv是一個list,若長度不為2,代表輸入的參數有誤,或是缺乏圖片名稱。

圖5  將相關的函式庫匯入。

接著,建立好所要匯入的dlib人臉模型的路徑、人臉照片的資料夾路徑、相關辨識器、檢測器路徑,如圖6所示。

圖6  建立所要匯入的dlib人臉模型的路徑、人臉照片的資料夾路徑等等。

在「resources」資料夾裡放好人臉照片的資料(被辨識目標比對的對象),如圖7所示,27-48行是依序讀取比對的影像,對人臉進行特徵點的偵測及摘取並儲存,接著對要輸入的辨識目標做相同的偵測處理(圖8的52-64行)。

圖7  在「resources」資料夾內放入人臉照片資料。

在66-69行,宣告四個座標x1、y1、x2、y2以作為框出人臉的四個頂點,並用紅框標示人臉,接著計算人臉的歐式距離,在74-76行計算人臉中點與點的歐式距離關係,如圖8所示。

圖8  計算人臉中點與點的歐式距離關係。

將比對出的候選人及歐式距離儲存在一個dict(80行),並進行排序(83行),取得最短距離者就是被辨識出的人名,並且將人名(圖片檔名)印在臉孔的旁邊,如圖9所示。

圖9  將比對出的候選人及歐式距離儲存在一個dict並排序。

緊接著,拿四個人做測試,每個人皆有五張人臉的樣本放入「resources」資料夾中,再分別拿四個人與資料庫內影像不同時間地點的相片進行辨識,開啟命令提示字元至程式的根目錄下輸入「python *modulename*(專案檔名).py 要辨識的影像.jpg」,如圖10所示。

圖10  取得人臉辨識的資料樣本。

以四個人的樣本經過以上實測後,系統可以正確地辨識出每個不同的對象,但還是可能會因樣本數不足,照片的角度、表情、模糊度等問題而造成誤判的可能,這是未來可以更精進做優化調整的部分,如圖11所示。

圖11  辨識結果出爐。

情境演練示範

話說台連公司平時會有來自不同地方的客戶以及公司內員工來往進出,員工們上班前必須前要先打卡簽到,並以人臉辨識的方式進行,以下為人員進出的辨識流程,如圖12所示。

圖12  員工進出辨識流程。

對於新進的員工的註冊登錄,只要把人員資料添增至資料庫即可,甚至可以多做其他應用,例如將經常往來客戶的資料也加入到人員資料庫,或是添加其他允許對象的分類,如圖13~14所示。透過引入人臉辨識系統,打卡比起傳統的紙本簽到、打卡機、指紋辨識打卡機,更能節省打卡時間,因為只要鏡頭偵測到人臉,即可打卡簽到,可避免冗長的隊伍,也能夠解決員工代替打卡等舞弊的問題,並同時監控公司內部進出人員的身分,減少管理成本並提高效率及安全性。

圖13  添加新的允許對象。
圖14  引入人臉技術對台連公司的影響。

結語

本來做任何事情都必須依靠人力或是手動才能完成的時代,隨著科技的進步,已經演變到了幾乎所有事情都可以依靠科技來完成。然而,人臉辨識的出現,取代了傳統的簽到打卡、現金付款、解鎖,現在生活中處處可見人臉辨識的應用。人臉辨識的技術不僅提高了效率,也結合各個產業和領域大幅提升人類生活的品質,帶來不少的經濟價值。但每凡新的科技或技術出現,問題也必然隨之而來,其中照片和真人的分辨,目前仍有部分的技術尚未完全克服,隱私權的問題也是人臉辨識領域的一大挑戰。未來展望是能透過加強演算法,降低相片樣本數量而達到更高的辨識準確度。另外,進一步加強資訊安全,讓人們在人臉辨識的使用上能夠更安心、更信任這項技術。

<本文作者:台灣E化資安分析管理協會(ESAM, http://esam.nctu.me/esam/) 亞東技術學院Multimedia Processing and Security LAB(MPS Lab),2016年創立,由黃正達老師率領成員們致力數位多媒體應用與研究,其領域包含但不限於影像處理、醫學影像、多媒體安全、數據分析。>

 


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!