人臉識別有多種實現方法(此為廢話),但可以通過我們的opencv庫實現的,現有兩種比較OK的方法,一種是基於PCA(主分量分析法)算法的,另外一種是HMM(隱性馬爾可夫模型,此大多用在語音識別方面,李開複的博士論文)算法,之前我已經實現了pca方法的人臉識別,但是感覺准確率有點低,所以毅然重新選擇了hmm的方法。學了些理論後,在網上down了份代碼,個人感覺hmm比pca難多了。
當代碼基本跑通的情況下,卻出現了一個小錯誤,opencv庫中cvEstimateObsProb()出錯了,根據李明浩大神的建議,將numMix數組全部賦值為1(原來是3)就可以跑通了,後來測試發現,非1的情況都失敗。
結果如我們所料,hmm比pca算法更准確,原因可能是所選取的特徵值,pca算法是把圖像灰度值分布情況作為特徵,而hmm是將圖像分成多個區域,然後提取dct(離散余弦變換值,得到圖像低頻分量)作為特徵的,可以後者更有效。