技術部落格

集結國內外精選文章,掌握最新雲端技術新知與應用

iKala Cloud / AI 與機器學習 / 如何在 TensorFlow 使用深度學習建立臉部辨識 (一)

如何在 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

現在聯繫 iKala Cloud,瞭解更多 GCP 加值服務!

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

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

 data-lazy-src=

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

 data-lazy-src=

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

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

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

 

分享本文:
FacebookLineTwitter
回到頂端