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