日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

人脸识别实践总结

發布時間:2024/3/12 pytorch 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 人脸识别实践总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

[個人站點](http://whbzju.github.io/blog/archives/)

#概述 前段時間接觸了一陣子人臉識別,只能說是初窺門道,在這里做個總結。本文不涉及具體的算法原理,因為我都是參考別人的資料,只認為無法寫的更好,在這邊做個歸納總結。 現需求如下:從攝像頭視頻中識別出你自己或朋友的人臉

要實現這個需求,大體分為兩個步驟,分別為人臉檢測和人臉識別,即先要從攝像頭中識別出人臉,即人臉檢測,其次對檢測到的人臉進行識別,即人臉識別。本文基于Opencv的人臉算法實現。

##人臉檢測流程

  • 選取特征(本文采用Haar-like特征)
  • 選取分類器算法,訓練人臉分類器(本文采用Adaboost級聯分類器)
  • 對圖像進行人臉檢測

##人臉識別流程

  • 選取人臉識別算法(本文包括PCA、FDA和LBP)
  • 訓練識別模型
  • 對目標進行識別

#Opencv相關資料介紹 opencv在2.4后引入了人臉識別相關模塊,原來只有人臉檢測部分。在Opencv官網,有較詳細的介紹,看 !目錄,在該目錄中重點要看這篇!Face Recognition with OpenCV.

這應該是一個德國人寫的,在教程中他提到了3個算法:

  • EigenFaces
  • FisherFace
  • Local Binary Patterns Histograms

前面兩個算法都是利用子空間的原理,有一定的相似性,分別以PCA和LDA為基礎。后者以特征選取為主,做法思路都不大一樣,建議分開看。該教程中對算法的描述過于簡潔,不適合初學者看,建議尋找相關資料進一步閱讀。 ##PCA-主成分分析法 PCA在很多地方都有應用,是一個十分簡單有效的方法。其思想概括起來即降維,它認為原始數據中包含了大量的噪音和冗余,通過協方差矩陣的對角化可以得到一個子空間,該子空間的維度大大降低,卻神奇的保留了原始數據中的顯著特征。

該算法的具體原理可參考斯坦福大學的公開課,Andrew.Ng的機器學習課程,里面有一章節專門講pca,若覺得看視頻太慢,可以直接看講義,講的很清楚。國內有幾個博客作者對它進行了翻譯,推薦:

!主成分分析(Principal components analysis)-最大方差解釋

!機器學習中的數學(4)-線性判別分析(LDA), 主成分分析(PCA)

該算法涉及較多的線性代數知識,忘掉的同學建議復習下相關內容。

##LDA-線性判別分析 fisherface的FDA是在LDA基礎之上的一種算法。關于線性判別的思想如下:它認為在PCA中,PCA把數據作為一個整體來看,即數據源中所有的顯著特征都會被保留下來,如果一個人的臉在強光下和弱光下,pca生成的子空間有顯著的差異,而他們卻是同一張臉。LDA的思想是尋找一個分割平面(在二維中即直線),來區分兩種不同類別的數據,既能夠區分兩個不同的人臉,進行歸類。因此,它的目標就是怎么要找到這個平面,達到最好的區分效果。

同樣,該算法的具體原理還是推薦Andrew.Ng的機器學習公開課。國內也有相關介紹,但是他們的數學推導讓我不滿意。

!線性判別分析(Linear Discriminant Analysis)(一) !線性判別分析(Linear Discriminant Analysis)(二)

##LBPH 該算法較上面二者容易理解,這里不做詳細介紹,大家自己查找相關資料即可。

##Demo 上面教程中提到幾個算法opencv中都有例子實現,當然要做2.4以上。教程講了demo的位置和具體的使用。 所有的Demo需要一個人臉庫,教程中提供了幾個,可以下載。下載下來的人臉庫需要預處理,即打上標簽,作者提供了python腳步,大家可以使用。

有個demo值得關注,它實現了我們的需求,它有個專門的教程:!Face Recognition in Videos with OpenCV. 不過要想識別自己的臉,必須將自己的臉裁剪下來保存到人臉庫中進行訓練。

我不想自己拍照片去裁剪,我的做法是利用demo中的人臉檢測算法,將我的人臉檢測到,然后保存成灰度圖,放到人臉庫中。PS:這里有個問題,opencv自帶的人臉檢測分類器有可能會誤撿,會把空白的墻壁當做人臉。我的做法是,在視頻中指定一個矩形框,在這個矩形框中進行人臉檢測,這樣可以大大降低誤撿率。實際操作中可以調整位置,讓自己的人臉出現在矩形框中。

#Haar-like特征Adaboost級聯分類器 完成了人臉識別的Demo驗證,大家一定很好奇人臉檢測是怎么實現的。opencv里面自帶的檢測算法原至兩篇論文: P. Viola and M. Jones. Rapid object detection using a boosted cascade of simple features. R. Lienhart and J. Maydt. An Extended Set of Haar-like Features for Rapid Object Detection.

##整體感覺--如何訓練自己的分類器 大家可以參考這篇!教程,利用opencv自帶的例子訓練一個分類器感覺感覺。 訓練分類器會遇到很多問題,人臉樣本和非人類樣本的比例有較高的要求,stage越高越難訓練,訓練時間也會隨之快速增長,而且效果還不能保證,博主訓練出來的分類器和opencv自帶的分類器效果是沒法比啊!

##算法原理 我不打算這這里描述它的原理,首先是這方面資料已經很多,我無法做到寫的更好,其次是展開后篇幅太長,內容太多,我不想寫了,哈哈。 若想較好的理解,直接看上面提到的兩篇論文。若英文水平不行,可以看北大有個學生寫的畢業論文:基于 AdaBoost 算法的人臉檢測,作者:趙楠,還不錯。

Haar-like特征需要理解積分圖的概念,Adaboost包括弱分類器、強分類器和級聯分類器。其中級聯分類器較比較麻煩。

#總結 Opencv是個好東西,有個直接能運行的demo,比光禿禿的理論好多了,依靠它搭個自娛自樂的小工程沒問題。人臉識別的水很深,本文提到的算法是opencv里面就有的,還有很多算法待各位自己有興趣去研究。

轉載于:https://my.oschina.net/u/941509/blog/220466

總結

以上是生活随笔為你收集整理的人脸识别实践总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。