效果圖閑扯:公司鼓勵創(chuàng)新,,做了個皮膚檢測器,本來的想法是用手機外接wifi攝像頭,,用攝像頭來拍攝皮膚圖像的,,后來找了幾個wifi攝像頭的廠家,因價格沒談攏,,就不用wifi攝像頭了,,只用手機自帶的相機來獲取圖像,。 下面我寫了個 demo 測試,如下圖 me
目前實現(xiàn)了皺紋,,油份,,水份的檢測算法,以后還想實現(xiàn)更多功能,,比如痘痘數(shù)量,,色斑檢測,年齡預測等等,。 人臉檢測原理人臉檢測就是要判斷一張圖像是不是人臉,,以及人臉的位置。 判斷一張圖像是不是人臉,,先提取圖像的 haar-like 特征值,,交給 adaboost 算法,它能判斷是不是人臉,。 提取圖片的 haar 特征
假設(shè)積分圖是 F(x, y),,求 Rect(x, y, w, h) 區(qū)域和,。 // F(x, y) 表示 Rect(0, 0, x, y) 的區(qū)域和,,f(x, y) 表示 (x, y) 灰度級 AdaBoost 算法先來一個感性的認識,。 每來一張圖片,提取其特征值 X,,用 AdaBoost 算法能判斷出 X 是不是人臉,。 假設(shè) 1 類是人臉類,-1 類是非人臉類,,就能分出一張圖是不是人臉了,。 分類器可以理解為一個函數(shù) G(x),輸入特征值 x,,返回數(shù)值 G(x) AdaBoost 里面有多個弱分類器 (假設(shè)3個),,組合成一個強分類器,像這樣 每個弱分類器有權(quán)重 再來個sign(n)函數(shù),,sign 返回 n 前面的正負號,,0和正數(shù)返回 1,負數(shù)返回 -1 拓展到 n,,最終的判斷公式為 輸入一個圖像的特征值 x,,看看返回是 1 還是 -1,就可以判斷出是人臉還是非人臉,。 其他:w1, w2, w3 一開始不知道是多少,,需要訓練數(shù)據(jù)進行多輪的迭代后算出,,訓練過程就是調(diào)整權(quán)值的過程,。訓練完了后,就用這些權(quán)值組成的模型,,對未知的圖像進行分類,。 具體的例子有8組包含各種情況的特征值,作為訓練數(shù)據(jù),。
1.初始化 n 組訓練數(shù)據(jù)的權(quán)值為 D(i) = 1 / n 2.多輪迭代 2 到 3 的時候,,由 1 變?yōu)?-1,,是一個變化的地方,設(shè)定 x = 2.5,,意思是在 2.5 的地方切一刀,。 下面對 2.5,,5.5 進行迭代
誤差率寫成公式有點晦澀了,用文字描述比較直觀,,就是把被分類器分錯的元素的和權(quán)值全部加起來,,就是誤差率了。
x = 2.5 時,,先認為 x <= 2.5 為 1 類,,x > 2.5 的為 -1 類 x = 5.5 時,先認為 x <= 5.5 為 1,,x > 5.5 為 -1 選個誤差小的 0.25,,得出第一個分類器 G1 計算 G1 權(quán)重公式:(e 是誤差率) 該函數(shù)圖像: 由圖像可知誤差率 e 越小,w 權(quán)值越大,。 G1 的誤差率 e1 = 2 / 8 = 0.25 w1 就描述了 G1 的重要程度,,或者說對一個特征值被分成哪一類的話語權(quán)的大小。 接下來要更新以下元素權(quán)重: 權(quán)重更新公式: 其中常數(shù) Z 是 ki 本輪要計算的元素的權(quán)重 按照上面方式,,算出新的權(quán)重為 D = (0.174721, 0.174721, 0.108426, 0.108426, 0.108426, 0.108426, 0.108426, 0.108426) 可以看出 1, 2 被分錯后,,它的權(quán)值增大了,那么如果后面的分類器再把 1, 2 分錯,,產(chǎn)生的誤差率會更大,,因為誤差率根據(jù)權(quán)值和算出的,所以權(quán)值大的,,會被重點考慮,。
x = 2.5 時,誤差率為 6, 7, 8 權(quán)值和:0.325278 選個誤差率小的,,即 0.325278,x = 2.5 的,,得出第二個分類器 G2 G2 的誤差率 e2 = 0.325278 此時,,已經(jīng)得到兩個弱分類器,代入 adaboost 算法的公式中 得到模型:
分析 G(x) 得出的結(jié)果,,發(fā)現(xiàn) 1,,2 被分錯了,還是有誤差,,說明本例子迭代兩次是不夠的,,還需要更多輪的迭代,減小誤差,,直到模型 G(x) 在訓練數(shù)據(jù)上的誤差為0,,再繼續(xù)迭代下去誤差會收斂于一個常數(shù)。(詳見最后的參考文獻) 訓練好了一個誤差很小的模型 G(x),,就可以用該模型去對未知的圖像進行分類,,分為人臉類和非人臉類,即可檢測出一張圖像是不是人臉,。 推薦一個在線公式編輯,,在線函數(shù)繪圖。 |
|