https://github.com/twtrubiks/face-recognition-notes
紀錄 face-recognition 學習
https://github.com/twtrubiks/face-recognition-notes
bosssensor face-recognition notes opencv tensorflow
Last synced: about 1 year ago
JSON representation
紀錄 face-recognition 學習
- Host: GitHub
- URL: https://github.com/twtrubiks/face-recognition-notes
- Owner: twtrubiks
- Created: 2017-01-19T06:56:54.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-09-24T07:02:31.000Z (over 8 years ago)
- Last Synced: 2025-03-28T19:53:43.992Z (about 1 year ago)
- Topics: bosssensor, face-recognition, notes, opencv, tensorflow
- Homepage:
- Size: 1.95 KB
- Stars: 6
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# face-recognition-notes
## 人臉辨識 ( face recognition ) - 使用 深度學習 ( TensorFlow ) 和 OpenCV
這些是我之前有興趣做的簡單筆記,大家可以參考看看 :smiley:
### 深度學習
一個函數集,自己訓練出來的(經過大量的訓練過程,最終計算出一個最佳函數,得出最佳解,我們主要提供他規則)
### 為什麼要研究深度學習 ? 單純使用 opencv 沒辦到辦到 人臉辨識嗎 ?
可以 。可以透過 opencv 的 Face Recognition 辦到臉部辨識。
opencv 的 Face Recognition 可參考 [FaceDetect](https://github.com/twtrubiks/FaceDetect#後記)
### 那為什麼在網路上找 Face Recognition ,相關近期資料卻都是 深度學習(TensorFlow) 搭配 OpenCV ?
目前猜測是辨識精準度的問題。
單純使用 OpenCV 完成臉部辨識 : 使用人工的方式截取臉部特徵值
使用 OpenCV + 深度學習(TensorFlow) 完成臉部辨識 : 深度學習會自動截取臉部特徵值
考慮到辨識對象可能長的很相似,所以對辨識精準度的要求要比較高。
因為這些原因,所以我研究臉部辨識這議題,我是針對深度學習下去研究,opencv 單純只是幫我偵測出人臉。
### 研究專案
參考專案 : [BossSensor](http://ahogrammer.com/2016/11/15/deep-learning-enables-you-to-hide-screen-when-your-boss-is-approaching/)
BossSensor 流程 :
**步驟一** : 收集圖片,圖片只保留臉部的部份,因為如果有背景以及其他不必要的部份,會影響訓練以及辨識.
方法: 使用opencv截取人臉的部份。(在opencv裡,可以透過 haarcascade_frontalface_default.xml 來偵測出目前是否為人臉)
**步驟二** : 開始建立 機器學習(Machine Learning) 的 model
方法 : 透過 Keras 卷積深度神經網路(Convolutional Neuron Networks, CNN) 建立 model
大家為什麼選 卷積深度神經網路(Convolutional Neuron Networks, CNN) ?
因為卷積神經網路 (深度學習結構)在 **圖像** 和 **語音辨識** 方面能夠給出更優的結果。
* Keras 介紹
Keras的後端有 TensorFlow(tf) 以及 Theano(th)
TensorFlow(tf) 表達模式 - (100,3,16,32)
Theano(th) 表達模式 - (100,16,32,3)
100,3 這部份是指 100張 RPG 三通道的圖片
16代表高 32代表寬
訓練和測試使用同一種後端。
在訓練的時候,我們會先把照片轉成大小一致(64*64)
dataset --> build Model --> train Model --> save Model
**步驟三** : 開始辨識
load Model --> 透過相機截取臉部 --> 將大小轉成(64*64) --> 比對 (開始辨識)
### 相關議題 Microsoft Face API 背後技術
由於 Microsoft Face API 的辨識速度很快,而且上傳給他的圖片也只有幾張而已,猜測他們的技術是比對兩張圖片的特徵值,
而不是使用深度學習
### 目前深度學習的應用
以 google舉例
* Gmail 自動判斷約99%的垃圾郵件
* Google Now 的語音辨識,透過學習,辨識率越來越精準
* Google 相簿的自動分類 (對照片自動下標籤)