初探人臉辨識

Katrina Yeh
數據領航員
Published in
Aug 19, 2022

📖 目錄
何謂人臉辨識?
人臉辨識過程
常見工具

1. 何謂人臉辨識?

隨著電腦視覺不斷的進步,使生活越來越便利,人們可以透過人臉辨識來取代日常生活中的密碼、作為錢包或網銀的安全認證等等,此項技術正逐漸融入到各個領域之中,而人臉辨識可以細分為人臉驗證(Face Verification)和人臉辨識(Face Recognition)

(1) Face Verification (人臉驗證)

是一對一的比對,來判斷兩者是否為同一個人,如果達到設定的門檻值(例如:相似度達95%以上),則可視為是同一人。

Are they the same person?

常見應用

(2) Face Recognition (人臉辨識)

是一對多的比對,主要是和數據庫的資料進行比對,用來找出最相近的人。

常見應用

2. 人臉辨識流程

人臉辨識大致可以分為三個步驟:人臉偵測、人臉對齊和特徵學習

(1) 人臉偵測 (Face Detection)
找出圖片中的人臉位置,並標示出眉毛、眼睛、鼻子、嘴巴等等位置,下圖為使用Dlib facial landmark model的 5 點模型和 68 點模型來標示臉部特徵。

(2) 人臉對齊 (Face Alignment)
圖片中的人臉角度不同會影響辨識精準度,因此需要先校正五官位置調整照片角度,讓每張圖片的人臉角度相近。

(3) 特徵學習 (Feature Representation)
將調整角度過後的五官位置經過深度學習轉成特徵向量,再透過特徵向量去進行分類、相似性比對等等得到結果。

在進行人臉辨識時,如果我們沒有足夠的樣本數可以進行訓練的話怎麼辦呢?

One shot learning

在現實情境中,公司通常只會有一張員工的照片,且會有新成員加入,想要實做出人臉辨識Face Recognition,在只有一張照片作為深度學習的訓練資料的情況下效果會很差,此時我們就可以透過one shot learning來實現。

one shot learning(單樣本學習),當訓練資料很稀少時使用,此方法主要是透過學習和其他資料之間的不相似度來達成,如果是使用我們常用的CNN來做訓練會需要這個員工不同面向的多張這片才能達成,這種方法的成本太高;但是如果是學習資料之間的不相似度,假如有N位員工,我們就會有N-1個訓練資料,此時只要計算出每個資料之間的距離,再和設定的閾值做比對,小於閾值表示兩者相似,大於閾值則表示兩者距離很遠,比對失敗。

學習不相似度可以透過Siamese network(孿生架構)來實現,將輸入的兩張照片,經過神經網路(可以是LSTM、CNN…),這兩個神經網路會共享參數與權重,而最小化損失函數可用triplet loss(三元組損失)

Siamese network(孿生架構)

在triplet loss中會有三種照片

  • Anchor: 要比較的人臉照片
  • Positive: 跟 Anchor 是同個人的照片
  • Negative: 跟 Anchor 是不同人的照片

目標是希望這三張照片在經過學習之後,Anchor到Positive距離要小於Anchor到Negative的距離越多越好

圖片來源-使用深度學習進行人臉辨識: Triplet loss, Large margin loss(ArcFace)

最後,人臉辨識中的單樣本學習簡單如下圖所示,圖中Anchor簡稱A,Positive簡稱P,Negative簡稱N:

3. 常見工具

openCVDlib
  1. OpenCV
    OpenCV全名是Open Source Computer Vision Library,是常被拿來使用的影像處理函式庫,OpenCV主要是使用C++語言所編寫,但它有提供像是Python, Java, C#, Ruby的API介面,而OpenCV也廣泛應用在人臉辨識、物體辨識、動態影像識別等等。
  2. Dlib
    Dlib是使用C++所編寫,是一套包含機器學習、計算機視覺、圖像處理的函式庫,內含建立好的人臉68個特徵模型、人臉5個特徵模型等各式模型,主要應用在機器學習、影像處理、影像辨識等等,此外,Dlib也有提供Python API做使用。

這邊也和大家推薦幾篇教學文,透過OpenCV和Dlib來實作人臉辨識

在對人臉辨識技術有了初步的認識之後,我們可以將其廣泛應用在不同的情境,像是常見的辨識貓狗、是否配戴口罩,或是結合深度學習去辨識人是否有抽煙習慣…,結合各個不同的領域做進一步的應用!

參考資料

理解優缺點及應用概況 人臉辨識簡易實作動手玩
使用深度學習進行人臉辨識: Triplet loss, Large margin loss(ArcFace)
你的AI會看圖嗎? Open CV介紹
人臉辨識的困難與突破
人臉辨識(Face recognition) 解析與實作

教育部補助大專院校STEM領域及女性研發人才培育計畫目標為建構一個「以智慧物聯技術與實務應用為基礎的教育環境和實作場域」,並規劃出符合此STEM教育領域的創新特色課程,以畢業前進入企業實習的方式,讓學生了解相關產業界所面對的問題,再輔以業界實作場域的教育訓練活動,共同帶領學生發展出動手做、判斷與解決問題的相關技能;本計畫也規劃讓學生以專題實作的組隊方式,跟業界協力領導學生對外參與智慧物聯技術的應用競賽,不僅可以累積學生實務開發的能力,更能激發其潛能來幫助企業解決所面臨的難題。

Data Science Meetup 台灣資料科學社群的使命是「為資料科學人士與企業創建經濟機會」。我們相信大數據蘊藏著巨量的信息和價值,如何處理好大數據並發掘其潛藏的商業價值,就要靠資料科學有效的應用。21世紀是資料科學決勝時代,我們社群將為大家提供與資料科學相關的最新技術和資訊實戰攻略,並透過全球業界人士和學者幫助相關職業規劃與挑戰,社群活動包含

  • 台北實體版聚
  • 線上版聚
  • Mentorship Program

歡迎加入我們社團瞭解更多資訊:
https://www.facebook.com/groups/datasciencemeetup/

--

--

Katrina Yeh
數據領航員

東吳大學資料科學系|Data Preprocessing & Machine Learning |樂於學習新事物,正在往資料科學的路上前進中~|📧Email:katrina001205@gmail.com