如何在 TensorFlow 使用深度學習建立臉部辨識 (一)

【應用】臉部辨識 – TensorFlow x deep learning (一)

這一篇文章 中,您可以了解卷積神經網絡 (convolutional neural networks) 和其背後的理論。而本系列的文章將帶各位了解:如何運用 Tensorflow, Dlib, docker 和透過卷積神經網絡實作人臉辨識。

Overview

⬩ 臉部辨識簡介
⬩ 使用臉部偵測和校正處理圖像
⬩ 利用 TensorFlow 生成臉部嵌入
⬩ 訓練 SVM 分類器

先決條件

⬩ 了解線性代數的基本概念
⬩ 了解卷積神經網絡的基本概念
⬩ 了解 TensorFlow 基本概念

什麼是臉部辨識系統

臉部辨識是一種生物識別解決方案,可以測量臉部的獨特特徵。目前的應用包括登機前的 check in、標記照片中的朋友和家人、以及“量身訂做”廣告

要做臉部辨識,您需要找出一種方法來代表每張獨一無二的人臉。1960年,伍德羅·布萊索 (Woodrow Bledsoe) 使用了一種技術來標記臉部突出特徵的坐標。這些功能包括髮際線,眼睛和鼻子的位置。

2015 年,Google 的研究人員發表了一篇論文 FaceNet,該論文使用以圖像畫素作為特徵的卷積神經網絡,而不是手動提取這些特徵值。這項操作在 LFW數據集 上達到 99.63% 準確度的新記錄。

FaceNet: 論文中提出了一種卷積神經網絡的架構,並利用”三重損失”(triplet loss)作為損失函數(loss function)。三重損失主要靠的是同時最小化正面例子的距離、最大化反面例子的距離。


Triplet loss equation


Triplet loss Learning

概念上來說,這是很合理的,同一個身份的面孔應該比另一個身份的面孔更接近彼此。

向量嵌入:我們將從 FaceNet 論文引用的一個重點概念,就是將人臉表示為一個 128 維度的向量嵌入(embedding)。嵌入(embedding)是指將一組特徵值(input features)對應到向量(vectors)。在臉部辨識的系統中,這些特徵值即為辨識目標的臉部圖片,對應到的向量則是一個僅含數值的向量(numerical vector)。


Mapping input to embedding source

由於這些嵌入向量是在同一個向量空間中,所以可以使用向量距離來計算兩個向量之間的相似度。在人臉辨識的應用中,可以用向量距離來計算兩個人臉的相似程度。另外,這些嵌入可以用來做為進行分類(classification),叢集(clustering)和回歸(regression)所需的特徵值(feature)。


Example of plotting embeddings in a 3D vector space

這篇文章首先帶您了解的人臉辨識的概念,在下一篇文章中,我們將實作處理數據、設置環境、得到初步的成果。

(原文經授權且翻譯自:https://goo.gl/oKQrHa)

 


iKala - GCP 專門家

GCP 專門家,Google Cloud 官方認證的首席合作夥伴。自家影音產品架構在 GCP 上,使用經驗超過 3 年,具備從 IDC 搬遷至 AWS 最後落腳於 GCP 的經驗,是最能協助您避掉所有技術地雷的 GCP 夥伴,更擁有業界最多支援 Google Cloud 的技術人員。

我們提供了多項的 GCP 加值服務:

了解更多: https://gcp.expert/
加入我們: https://goo.gl/rg9D3Q
Facebook Fan Page: https://www.facebook.com/gcp.expert/
聯絡我們:+886 2 87681110 或請來信 gcp@ikala.tv