Qt5.7+Opencv2.4.9人脸识别(一)项目介绍
【注意】本博文的檔次適合Opencv初學者,和要做本科生畢業設計這類檔次。
昨天晚上剛剛參加了某s*i*p的答辯,發現就是走個流程,與Q群里面其他學生的學校比起來,我們學校編程與其他學校差距較大,在此我把我所做的東西開源展示給大家(其實都是調用Opencv進行識別,并不是什么好東西,網上已經爛大街了)
下面是程序的運行截圖(這里我直接放我總結報告的里面的截圖):
添加用戶的截圖:
拍照后:(在此文件夾有記錄)
點擊照片處理后Data中會根據編號創建文件夾
點擊照增加csv和模型訓練后,就會生成xml文件,隨后就可以進行人臉識別
測試結果:
當人臉庫中無此人數據時識別結果截圖:
當增加此人數據后運行結果:
識別過程中,人突然跑開,或者人臉精度不大時:
本程序開源,在此是源碼下載地址,
http://download.csdn.net/detail/qq78442761/9832957
【注意】此源碼對Opencv2.4.9庫的調用已經用CMake編譯成MinGW可用的,在此不再說明
CMake然后編譯OpenCV
http://blog.csdn.net/qq78442761/article/details/54342479
在本節的最后,我想簡單交代下識別原理和流程,方面大家對程序的理解:
PCA的全稱是Principal Component Analysis主成份分析。
原理簡單說就是:提取人臉的主要成份,構成特征臉空間,將待識別的人臉投影到特征臉空間上得出特征向量,然后采用歐式距離算出這個特征向量與平均人臉的差值的距離,然后定義一個閾值,當滿足這個閾值時則識別成功。(公式我就不寫了,畢竟待會用Opencv調用的時候就幾個函數,就能實現上述的功能)
在這里的提取人臉主要成分,其實是把圖像矩陣向量化,計算平均值,然后計算差值,再構造協方差,提取協方差的特征向量和特征值,這些特征向量構成的總和就是特征臉空間,然后把每一幅人臉與平均臉的差值的矢量投影到特征臉空間,就達到了模型訓練(這些都是理論,在Opencv里面就幾個函數調用,極其簡單)
在此再說下OPencv人臉識別的流程,方面下一節對程序的理解。
OpenCV人臉識別流程:
1.人臉采集;
2.人臉處理;
3.模型訓練;
4.人臉識別;
所以在下幾節的內容中我將逐步分析,這4個流程,最終達到人臉識別!
總結
以上是生活随笔為你收集整理的Qt5.7+Opencv2.4.9人脸识别(一)项目介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C/C++ OpenCV之Laplaci
- 下一篇: 从深度学习选择什么样的gpu来谈谈gpu