§ 瀏覽學位論文書目資料
  
系統識別號 U0002-1609201914502600
DOI 10.6846/TKU.2019.00468
論文名稱(中文) 基於樹莓派與深度學習實現人臉辨識系統之研究
論文名稱(英文) A Study of Face Recognition Based on Raspberry Pi and Deep Learning
第三語言論文名稱
校院名稱 淡江大學
系所名稱(中文) 資訊工程學系碩士班
系所名稱(英文) Department of Computer Science and Information Engineering
外國學位學校名稱
外國學位學院名稱
外國學位研究所名稱
學年度 107
學期 2
出版年 108
研究生(中文) 杜軒宇
研究生(英文) Xuan-Yu Du
學號 605410223
學位類別 碩士
語言別 繁體中文
第二語言別
口試日期 2019-07-18
論文頁數 101頁
口試委員 指導教授 - 洪文斌(horng@mail.tku.edu.tw)
委員 - 范俊海
委員 - 彭建文
關鍵字(中) 機器學習
深度學習
主成分分析
支撐向量機
人臉辨識
卷積神經網路
關鍵字(英) Deep Learning
Machine Learning
CNN
Face Recognition
PCA
SVM
Raspberry Pi
第三語言關鍵字
學科別分類
中文摘要
本論文以樹莓派(Raspberry Pi)為平台,使用電腦視覺函式庫OpenCV與CNN來完成人臉辨識系統。實驗中以公開資料庫Caltech Faces以及The MUCT Face Database進行測試,並以深度學習(Deep Learning)中的CNN來實驗,但是也想知道與傳統機器學習(Machine Learning)之間的差異,所以提出以主成分分析(Principal Components Analysis,PCA)降維後以支撐向量機(Support Vector Machine,SVM)來相互比較。為了追求更精確的辨識成果,在實驗中的資料集在訓練時都以亂數排序的方式進行,總共執行5次不同的亂數排序,最後再將5次的結果平均。Caltech Faces資料庫的實驗結果如下,單獨使用SVM與SVM配合K折交叉驗證法的辨識率分別為98.4%和98.7%,而Keras CNN的辨識率為98.4%;而The MUCT Face Database資料庫的實驗結果如下,單獨使用SVM與SVM配合K折交叉驗證法的辨識率分別為97.5%和97%,而Keras CNN的辨識率為93.5%。
英文摘要
This research uses OpenCV and convolutional neural networks (CNN) to implement the face recognition system in the Raspberry Pi platform. The experiment uses two public face databases: Caltech and the MUCT face database. In order to see the differences between deep learning (DL) and traditional machine learning (ML) in face recognition, we use CNN in DL and principal components analysis (PCA) and support vector machine (SVM) in ML for comparison, where PCA is used for dimension reduction. We use K-fold cross validation method for computing average recognition rate due to few face samples, where K is 5 in our experiment. The experimental results show that, for the Caltech face database, the recognition rates of SVM only and SVM with K-fold cross validation are 98.4% and 98.7%, respectively; while that of CNN is 98.4%. As of the MUCT face database, the recognition rates of SVM only and SVM with K-fold cross validation are 97.5% and 97.0%, respectively; while that of CNN is 93.5 %.
第三語言摘要
論文目次
目錄
第一章	緒論	1
1.1  研究背景與動機	1
1.2  研究目的	1
1.3  論文架構	2
第二章	文獻探討	3
2.1  人臉偵測	3
2.2  人臉特徵擷取	3
2.3  人臉辨識	4
第三章	相關方法介紹	6
3.1  Raspberry Pi	6
3.2  OpenCV	7
3.3  機器學習	7
3.3.1  機器學習的發展	8
3.3.2  監督式學習	8
3.3.2.1  支援向量機	8
3.3.3  非監督式學習	9
3.3.3.1  主成分分析	10
3.4  K折交叉驗證	11
3.5  深度學習	11
3.5.1  深度學習的發展	12
3.6 卷積神經網路	13
第四章	研究方法	14
4.1  系統架構	14
4.2  人臉資料庫	15
4.3  灰階轉換	16
4.4  人臉偵測	16
4.5  人臉擷取	18
4.6  正規化	18
4.7  特徵提取	19
4.8  人臉辨識	19
4.8.1  機器學習	19
4.8.2  深度學習	20
第五章	研究結果與分析	21
5.1  人臉定位結果	21
5.2  實驗樣本選取	24
5.2.1  機器學習樣本選取	24
5.2.2  深度學習樣本選取	25
5.3  PCA降維	25
5.4  Caltech Faces資料庫人臉辨識實驗	26
5.4.1  機器學習PCA結合SVM(train test split)實驗	27
5.4.2  機器學習PCA結合SVM(K折交叉驗證法)實驗	30
5.4.3  深度學習Keras CNN實驗	33
5.4.4  Caltech Faces資料庫辨識結果分析	37
5.5  The MUCT Face Database資料庫人臉辨識實驗	37
5.5.1  機器學習PCA結合SVM(train test split)實驗	38
5.5.2  機器學習PCA結合SVM(K折交叉驗證)實驗	40
5.5.3  深度學習Keras CNN實驗	43
5.5.4  The MUCT Face Database資料庫人臉辨識實驗結果分析	45
5.6  樹莓派實作	46
5.6.1 人臉蒐集	46
5.6.2 人臉定位擷取與正規化	47
5.6.3 自行蒐集人臉影像實驗	48
5.6.4 實驗結果	50
第六章	結論與未來發展	52
6.1  結論	52
6.2  未來發展	52
參考文獻	53
附錄	58
各別實驗結果詳情	58
Caltech Faces資料庫	58
機器學習PCA結合SVM(train test split)實驗結果	58
機器學習PCA結合SVM(K折交叉驗證法)實驗結果	60
深度學習Keras CNN實驗結果	67
The MUCT Face Database資料庫	69
機器學習PCA結合SVM(train test split)實驗	69
機器學習PCA結合SVM(K折交叉驗證)實驗	72
深度學習Keras CNN實驗	79
附錄:英文論文	85


















圖目錄
圖3-1 Raspberry Pi 3 Model B外觀	6
圖3-2 SVM最佳超平面範例	9
圖3-3加入核心函數後的示意圖	9
圖3-4 PCA降維示意圖	10
圖3-5 K折交叉驗證示意圖	11
圖3-6 CNN架構圖	13
圖4-1 系統架構圖	14
圖4-2 彩色影像轉灰階	16
圖4-3人臉定位成功範例	17
圖4-4定位錯誤,把眼睛偵測成人臉	17
圖4-5人臉部分光線較為昏暗,無法偵測到人臉	17
圖4-6 正確擷取出人臉	18
圖4-7 擷取出定位錯誤的影像	18
圖5-1 PCA測試數據無打亂的結果曲線圖	25
圖5-2 PCA測試數據經過打亂的結果曲線圖	26
圖5-3原始影像與提取50個特徵值影像比較圖	26
圖5-4為train test split實驗的混淆矩陣	28
圖5-5 train test split實驗的錯誤影像	29
圖5-6 K折交叉驗證法的混淆矩陣	31
圖5-7 K折交叉驗證法實驗的錯誤影像	33
圖5-8 CNN 模型參數設定	34
圖5-9 Keras CNN訓練結果的圖形	34
圖5-10 Keras CNN 的混淆矩陣	35
圖5-11 Keras CNN實驗錯誤的影像	36
圖5-12 train test split的混淆矩陣	39
圖5-13 train test split實驗辨識錯誤的影像	40
圖5-14 K折交叉驗證的辨識錯誤影像	43
圖5-15 Keras CNN訓練結果曲線圖	43
圖5-16 Keras CNN 實驗的錯誤影像	45
圖5-17資料庫人員影像	47
圖5-18為無法定位的影像	48
圖5-19 實驗流程圖	49
圖5-20辨識正確的情況	50
圖5-21為辨識錯誤	51



表目錄
表4-1 Caltech Faces和The MUCT Face Database資料庫介紹	15
表4-2 CNN各項參數	20
表5-1 Caltech Faces資料庫定位測試結果	22
表5-2 The MUCT Face Database資料庫定位測試結果	23
表5-3 train test split 實驗5次亂數測試結果	27
表5-4 train test split 實驗5次亂數的運行時間結果	28
表5-5 K折交叉驗證法5次亂數變化的實驗結果	30
表5-6 K折交叉驗證法5次亂數的運行時間結果	30
表5-7 Keras CNN 5次亂數變化的實驗結果	35
表5-8 Keras CNN 5次亂數的運行時間結果	35
表5-9 train test split 5次亂數的結果	38
表5-10 train test split 5次亂數的運行時間結果	38
表5-11 K折交叉驗證法5次亂數結果	40
表5-12 K折交叉驗證法5次亂數的運行時間結果	41
表5-13 Keras CNN 5次亂數實驗結果	44
表5-14 Keras CNN法5次亂數的運行時間結果	44
表5-15 樹莓派實驗相關設備及軟體	46
表5-16 CNN模型參數	49
參考文獻
中文部分
[1]	胡銜之,基於OpenCV實現搜尋影像人臉辨識系統之研究,國立彰化師範大學資訊工程學系碩士論文,2016。
[2]	林庭立,基於人臉五官PCA 之人臉辨識伺服器,大同大學資訊工程研究                            所碩士論文,2014。
[3]	柳孟宏,基於ASM人臉校正之多角度人臉辨識,大同大學資訊工程研究所碩士論文,2016。
[4]	葉書妤,基於人臉五官與PCA特徵提取之人臉辨識研究,國立彰化師範大學資訊工程學系碩士論文,2016。
[5]	沈明訢,以階層式深度卷積網路實現少樣本的人臉辨識系統,國立中央大學資訊工程研究所碩士論文,2017。
[6]	維基百科Debian
https://zh.wikipedia.org/wiki/Debian
[7]	維基百科OpenCV
https://zh.wikipedia.org/wiki/OpenCV
[8]	GUI介面的製作-圖片開啟
http://yester-place.blogspot.com/2008/06/gui.html
[9]	維基百科機器學習
https://zh.wikipedia.org/wiki/机器学习
[10]	三分鐘了解機器學習的四個學習方式
https://www.ecloudvalley.com/zh-hant/machine-learning/
[11]	三大類機器學習:監督式、強化式、非監督式
https://ai4dt.wordpress.com/2018/05/25/三大類機器學習:監督式、強化式、非監督式/
[12]	機器學習-支撐向量機(support vector machine, SVM)詳細推導
https://reurl.cc/D16QvN
[13]	維基百科支援向量機
https://zh.wikipedia.org/wiki/支援向量機
[14]	維基百科主成分分析
https://zh.wikipedia.org/wiki/主成分分析
[15]	scikit-learn: 通过降维方法对数据进行压缩1-主成分分析(PCA)
http://www.oceanote.com/machine-learning/scikit-learn/2015/11/15/data-compression-via-dimensionality-reduction-pca.html
[16]	維基百科交叉驗證
https://zh.wikipedia.org/wiki/交叉驗證
[17]	機器學習為什麼需要交叉驗證?怎麼使用k-fold cross validation(k-摺疊交叉驗證)
https://www.itread01.com/content/1547033769.html
[18]	維基百科深度學習
https://zh.wikipedia.org/wiki/深度学习
[19]	陳鍾誠,用十分鐘開始理解深度學習技術 (從dnn.js專案出發)
https://www.slideshare.net/ccckmit/ss-69541278
[20]	CH.Tseng,初探卷積神經網路
https://chtseng.wordpress.com/2017/09/12/初探卷積神經網路/
[21]	淺析人臉檢測之Haar分類器方法
https://codertw.com/程式語言/561194/
[22]	阿洲的程式教學
[23]	林季穎,基於深度學習之人臉特徵辨識與應用,國立交通大學光電工程學系碩士班碩士論文,2018。
[24]	謝俊彥,基於Raspberry Pi之人臉偵測系統,聖約翰科技大學資訊與通訊系碩士班碩士論文,2016。
[25]	陳 筠,以網格點雲坐標於人臉辨識研究,逢甲大學土地管理碩士班碩士論文,2017。
[26]	黃明愷,應用Raspberry Pi實現即時人臉偵測與辨識系統,國立臺灣海洋   大學機電與機械工程學系碩士論文,2016。
[27]	徐育晨,基於FPGA單晶片及模糊語意影像特徵表示法之車內人臉辨識,國立中正大學電機工程研究所碩士論文,2016。
[28]	廖俊傑,具照度及人臉角度校正之人臉辨識系統,國立雲林科技大學資訊工程系碩士論文,2015。
[29]	陳品均,人臉辨識系統實現於樹莓派之研發,南開科技大學電子工程系碩士論文,2018。
李柏翰,應用人臉辨識技術實作課堂點名系統之研究,明志科技大學電子工程系碩士班碩士論文,2016。
英文部分
[30]	P. Viola and M. Jones,“Rapid Object Detection using a Boosted Cascade of Simple Features” In Proceedings of the IEEE Computer Vision and Pattern Recognition (CVPR), pp.511-518, 2001.
[31]	Rainer. L, J. Maydt,“An Extended Set of Haar-like Features for Rapid Object Detection.”In Proceedings of the IEEE International Conference on Image Processing(ICIP) , Vol. 1, pp. 900-903, 2002.
[32]	Lufan. L, Zhang. J, Jiawei. F , Shuohao. L, “An Incremental Face Recognition System Based on Deep Learning.”Fifteenth IAPR International Conference on Machine Vision Applications (MVA), pp. 238-241, 2017.
[33]	Ze. L, Xudong. J, Alex. K, “ Enhance Deep Learning Performance in Face Recognition.”International Conference on Image, Vision and Computing(ICIVC), pp. 244-248, 2017.
[34]	Musab. C, Ayşegül. U, Özal. Y, Yakup. D,“Face recognition based on convolutional neural network.” International Conference on Modern Electrical and Energy Systems (MEES), pp. 376-379, 2017.
[35]	Umme.  A, Virendra. P. V “Face recognition using modified deep learning neural network.” International Conference on Computing, Communication and Networking Technologies (ICCCNT), 2017
論文全文使用權限
校內
校內紙本論文立即公開
同意電子論文全文授權校園內公開
校內電子論文立即公開
校外
同意授權予資料庫廠商
校外電子論文立即公開

如有問題,歡迎洽詢!
圖書館數位資訊組 (02)2621-5656 轉 2487 或 來信