當前位置:首頁 » 操作系統 » 人臉變胖演算法

人臉變胖演算法

發布時間: 2023-03-28 13:58:55

A. 人臉識別原理及演算法

人臉識別原理就是指在動態的場景與復雜的背景中判斷是否存在面像,並分離出這種面像。

人臉識別是一項熱門的計算機技術研究領域,其中包括人臉追蹤偵測,自動調整影像放大,夜間紅外偵測,自動調整曝光強度等技術。

人臉識別技術是基於人的臉部特徵,對輸入的人臉圖像或者視頻流 . 首先判斷其是否存在人臉 , 如果存在人臉,則進一步的給出每個臉的位置、大小和各個主要面部器官的位置信息。並依據這些信息,進一步提取每個人臉中所蘊涵的身份特徵,並將其與已知的人臉進行對比,從而識別每個人臉的身份。

一般來說,人臉識別系統包括圖像攝取、人臉定位、圖像預處理、以及人臉識別(身份確認或者身份查找)。系統輸入一般是一張或者一系列含有未確定身份的人臉圖像,以及人臉資料庫中的若干已知身份的人臉圖象或者相應的編碼,而其輸出則是一系列相似度得分,表明待識別的人臉的身份。

人臉識別是採用的分析演算法。

人臉識別技術中被廣泛採用的區域特徵分析演算法,它融合了計算機圖像處理技術與生物統計學原理於一體,利用計算機圖像處理技術從視頻中提取人像特徵點,利用生物統計學的原理進行分析建立數學模型,即人臉特徵模板。利用已建成的人臉特徵模板與被測者的人的面像進行特徵分析,根據分析的結果來給出一個相似值。通過這個值即可確定是否為同一人。

B. 人臉識別演算法的簡介

人臉識別(Facial Recognition),就是通過視頻採集設備獲取用戶的面部圖像,再利用核心的演算法對其臉部的五官位置、臉型和角度進行計算分析,進而和自身資料庫里已有的範本進行比對,後判斷出用戶的真實身份。人臉識別技術基於局部特徵區域的單訓練樣本人臉識別方法。第一步,需要對局部區域進行定義;第二步,人臉局部區域特徵的提取,依據經過樣本訓練後得到的變換矩陣將人臉圖像向量映射為人臉特徵向量;第三步,局部特徵選擇(可選);後一步是進行分類。分類器多採用組合分類器的形式,每個局部特徵 對應一個分類器,後可用投票或線性加權等方式得到終識別結果。 人臉識別綜合運用了數字圖像/視頻處理、模式識別、計算機視覺等多種技術,核心技 術是人臉識別演算法。目前人臉識別的演算法有 4 種:基於人臉特徵點的識別演算法、基於整幅 人臉圖像的識別演算法、基於模板的識別演算法、利用神經網路進行識別的演算法。
作為人臉識別的第一步,人臉檢測所進行的工作是將人臉從圖像背景中檢測出來,由於受圖像背景、亮度變化以及人的頭部姿勢等因素影響使人臉檢測成為一項復雜研究內容。檢測定位:檢測是判別一幅圖像中是否存在人臉,定位則是給出人臉在圖像中的位置。定位後得到的臉部圖像信息是測量空間的模式,要進行識別工作,首先要將測量空間中的數據映射到特徵空間中。採用主分量分析方法,原理是將一高維向量,通過一個特殊的特徵向量矩陣,投影到一個低維的向量空間中,表徵為一個低維向量,並且僅僅損失一些次要信息。通過對經過檢測和定位過的人臉圖像進行特徵提取操作可以達到降低圖像維數,從而可以減小識別計算量,提高識別精度的作用。人臉識別系統採用基於特徵臉的主 成分分析法(PCA),根據一組人臉訓練樣本構造主元子空間,檢測時,將測試圖像投影到 主元空間上,得到一組投影系數,再和各已知的人臉圖像模式比較,從而得到檢測結果。

C. viola jones人臉檢測原理

Viola-jones人臉檢測演算法是一種基於滑動窗口的目標檢測演算法,但它卻克服了滑動窗口檢測帶來的低效問題,可以用於實時人臉檢測,主要歸功於以下三點:

我參考論文[1]實現了Viola Jones中提到的attention cascade檢測框架,此處是 github傳送門 。

下面進一步詳細介紹整個檢測原理。

基於滑窗的目標檢測基本原理很簡單,首先構建一個classifier(分類器),以人臉檢測為例,分類器的工作是判斷給定大小的圖像的是否為人臉,用該分類器從左至右從上到下掃描整幅圖像,掃描獲取的部分圖像稱為子窗(文章中子窗大小為24x24像素),當分類器判斷子窗是人臉時,即完成了人臉檢測。

這樣處理有個問題,如果圖像中包含的人臉變大了,此時採用固定大小的子窗就無法進行檢測。通常有兩種解決方法,1. 採用image-pyramid(圖像金字塔),也就是通過resize獲得多種不同大小圖像並堆疊在一起,用固定大小分類器同時對所有圖像進行掃描;2. 採用不同大小的分類器進行掃描。文章中用到的是第二種方法,盡管如此,雖然避免了調整圖像大小帶來的計算開銷,但不同大小的分類器意味著有更多子窗需要進行處理。

如何構建一個足夠快的分類器來對每個子窗進行快速判斷。

分類器的構建有兩種方式,一種是pixel-based(基於像素),另一種是feature-based(基於特徵)。當把神經網路作為圖像分類器時,輸入是圖像的像素值,即基於像素的分類器。用圖像像素作為輸入不包含任何和待分類目標有關的特定信息,往往訓練這種分類器需要大量數據,並且分類過程較慢。基於特徵的分類器就是先針對圖像進行特徵提取(HOG特徵,SIFT特徵等),再利用獲取的特徵進行分類。這種分類器不需要大量訓練數據,且計算量一般會在特徵計算部分,相對較小。

文章採用的是基於特徵的分類器,選取了一種較為簡單的特徵即haar-like特徵。利用矩形個數對可以將haar-like特徵分為三類,分別由兩個,三個,和四個 大小相同 的矩形組成。全部列舉出來可以分為以下(a)(b)(c)(d)(e)五類(注意是五類不是五個,具體有多少個haar-like特徵是由子窗大小決定的)。如下圖所示(文章[1]中的圖)。

當子窗大小給定後,我們可以用五個參數唯一確定 一個 haar-like特徵,即特徵種類(a/b/c/d/e),左上角x軸坐標,左上角y軸坐標,矩形的長,矩形的寬。對應的特徵值等於位於白色矩形框中像素值總和減去位於黑色矩形框中的像素值總和。文章中用到的子窗大小為24x24像素,可以計算出來總共有162336個特徵(把在子窗中所有可能位置和可能大小的特徵全部列舉出來)。利用haar-like特徵進行分類只需兩步:

haar-like特徵有兩個優點,第一是它是scale-invariant(不隨圖片大小而改變)的,第二是可以通過積分圖像快速計算。簡單的說下第一點的含義,例如我們用24x24像素的訓練樣本訓練獲取一組haar-like特徵和對應的門限值,當對圖像進行掃描時,子窗大小調整為SxS像素,此時只需將特徵中的矩形大小按同樣比例進行縮放(門限值同樣需要縮放),計算所得的特徵值依然是有效的。
積分圖像是受卷積的微分性質啟發而定義一種數據結構。積分圖像定義:

其中 為積分圖像, 為原圖像。積分圖像中 位置處的像素值等於原圖中位於 的左側和上方的所有像素值之和。有了積分圖像我們就可以快速計算haar-like特徵,以特徵(a)為例,如下圖所示。

S1到S6是積分圖像在這六個頂點上的值。該特徵值等於位於A中的像素總和減去位於B中的像素總和,而A中像素總和等於S5+S1-S2-S4,B中像素總和等於S6+S2-S3-S5,並且無論矩形多大,我們總能在固定時間內計算出特徵值(6次索引操作和少量的加法乘法計算)。積分圖像只需計算一次後續可以一直使用,事實上在演算法實現時,我們只需保存樣本的積分圖像,原圖像反而不用保存。

現在找到了一類特徵用於構建分類器,和快速計算該類特徵的方法。分類器是由一組特徵構成的,而不是一個,如何找到一組有效的特徵。

文章列舉了前人的一些特徵選取方法(此處就不列舉了),它們雖然取得了一定的效果,但最終選出來的特徵數量還是太多。文章將adaBoost演算法用於特徵選取(創新點),即每次訓練的弱分類器的過程看做特徵選取的過程,一次從162336個特徵中選取一個特徵(同時還包括了對應的門限值,極性,加權誤差)。

adaboost演算法就不詳細介紹了,它的基本思想是訓練一系列「弱」分類器,組成一個committee(即每個弱分類器都有投票權,但是權重不同,加權誤差越小的弱分類器權重越大)。adaboost採用迭代訓練方式,給定一個t階committee,如何尋找第t+1個弱分類器和對應的權重,以最小化在一定分布下的訓練樣本的加權指數損失。這個優化過程可以轉換為對訓練樣本的分布進行調整(即增大上一輪錯誤判斷的樣本的權重,減小正確判斷的樣本權重),在調整後的樣本分布下尋找最小化加權0-1損失的弱分類器並計算對應的加權0-1損失。

可以利用adaboost找到一組特徵構成分類器,使得該分類器有極高的准確率和召回率(這種分類器勢必會有較大的計算量),這樣會導致圖像中的每一個子窗都享有同等的計算量,掃描一整幅圖會有幾十萬甚至上百萬子窗,總體計算量依然很大。實際上一幅圖像中只有極少可能包含人臉的位置是我們感興趣的,其他不包含人臉的子窗我們希望能夠快速篩除,將更精細的計算用於包含人臉的子窗。

文章引入了attention-cascade的機制(注意力級聯),即訓練多個分類器進行級聯,替代單一的分類器。結構如下圖所示(文章[3]中的圖)。

上圖所示的分類器有三級,上一級的輸出是下一級的輸入,只有預測為正的樣本才能傳遞給下一級,預測為負的樣本直接舍棄。大部分非人臉子窗往往在前幾級分類器就被舍棄,這樣使得掃描每個子窗所需的平均計算量大大減小。

分類器是一級一級訓練之後級聯起來的,訓練分類器時,整個級聯分類器的假負率(fpr_overall)有一個訓練目標(文章[1]中設置為10e-7),同時每一級有一對訓練目標,即假正率和假負率。每級分類器訓練的思想是在假負率極低的情況下(文章[1]中設置為0.005)盡量得到一個較低的假正率(文章中[1]中設置為0.5),即我們保證在正樣本盡可能多的通過該級分類器的情況下盡量篩除更多的負樣本。文章[3]通過一個鬆弛量來調節假正率和假負率。

下一級用到的訓練數據是由所有的正樣本和上一級輸出的假正樣本組成的,這樣訓練的好處是可以讓處於級聯後半部分的分類器「看到」更多負樣本數據,缺點是訓練後期假正樣本很難獲取,訓練時間會比較長。

盡管我們獲取了一個級聯分類器,但依然不能保證對同一幅圖中的一張人臉只會檢測到一次(子窗相對人臉有所便宜或者縮放子窗大小都可能導致重復檢測),如何消除重復檢測,獲得更好的檢測效果。

文章[3]中說的較為簡略,主要是針對檢測框構建並查集,並對並查集中的候選框求平均得出最終的檢測框。

文章[1]中是採用連通分量演算法,計算每種大小檢測框的置信度,根據置信度選取最終結果,但前提是檢測器在圖像中掃描的步進必須是1個像素,處理時間可能會比較長。

只能用於正臉檢測,如果人臉朝屏幕內外或者在屏幕平面上旋轉均有可能失效
在背景較亮,人臉較暗的情況下可能失效。
在有遮擋的情況下大概率失效。

熱點內容
瘋狂android講義光碟 發布:2025-05-19 20:12:31 瀏覽:151
安卓手機怎麼下載圈點 發布:2025-05-19 20:08:11 瀏覽:472
文件夾粉碎不了 發布:2025-05-19 20:05:41 瀏覽:242
安卓怎麼把軟體放進全局 發布:2025-05-19 20:03:55 瀏覽:687
安卓手機如何看最真實的型號 發布:2025-05-19 19:58:59 瀏覽:10
U盤超級加密2008 發布:2025-05-19 19:44:32 瀏覽:455
燈帶編程軟體 發布:2025-05-19 19:32:30 瀏覽:287
如何判斷伺服器被多少人訪問 發布:2025-05-19 19:27:45 瀏覽:125
編程stata 發布:2025-05-19 19:12:18 瀏覽:515
解壓命令gz 發布:2025-05-19 19:11:37 瀏覽:825