人臉算法

人臉檢測

人臉檢測的目標是找出圖像中所有的人臉對應的位置,算法的輸出是人臉外接矩形在圖像中的座標,可能還包括姿態如傾斜角度等信息。

傳統方法

早期的人臉檢測算法使用了模板匹配技術,即用一個人臉模板圖像與被檢測圖像中的各個位置進行匹配,確定這個位置處是否有人臉,一般是使用mlp、 svm、adaboost等算法:根本思想在於通過多個簡單的弱分類器(前面的強分類器設計很簡單,包含的弱分類器很少,可以快速排除掉大量的不是人臉的窗口,)構建出準確率很高的強分類器。用到的一些特徵有pca,herr like等。

深度學習方法

  • Cascade CNN:構建多尺度的人臉圖像金字塔,12-net將密集的掃描這整幅圖像(不同的尺寸),快速的剔除掉超過90%的檢測窗口。採用非極大值抑制(NMS)合併高度重疊的檢測窗口,保留下來的候選檢測窗口將會被歸一化到24x24作爲24-net的輸入。第一級還是基於密集滑動窗口的方式進行窗口過濾。
  • MTCNN:將人臉區域檢測和人臉關鍵點檢測放在了一起
    三個部分:PNet(用來生成候選框)、RNet(去除大量的非人臉框和非極大值抑制)和ONet(輸出框和關鍵點)人臉分類,邊框迴歸,關鍵點定位
  • Face-RCNN
  • PyramidBox

人臉關鍵點提取

傳統方法

  • ASM:主動形狀模型。爲每個關鍵點構建局部特徵,目的是在每次迭代搜索過程中每個關鍵點可以尋找新的位置。對其人臉,在對齊後的各個點附近搜索,匹配每個局部關鍵點
  • AAM:形狀加紋理特徵

深度學習方法

  • DCNN:級聯迴歸方法。作者通過精心設計擁有三個層級的級聯卷積經網絡,每層不斷的去優化。
  • MTCNN

人臉圖像分割

傳統方法

  • 基於閾值的分割方法:基於圖像的灰度特徵來計算一個或多個灰度閾值,並將圖像中每個像素的灰度值與閾值作比較,最後將像素根據比較結果分到合適的類別中。難點就是閾值選擇上,單閾值,多閾值。
  • 基於區域的圖像分割方法:區域生長:從單個像素出發,逐步合併以形成所需要的分割區域,另一種是從全局出發,逐步切割至所需的分割區域(種子像素,生長準則,生長停止條件)。
  • 基於邊緣檢測的分割方法:不同區域的邊界上像素的灰度值變化比較劇烈,如果將圖片從空間域通過傅里葉變換到頻率域,邊緣就對應着高頻部分。一階邊緣算子,二階邊緣算子
  • 主動輪廓ASM的方法:先定義初始曲線C,然後根據圖像數據得到能量函數,通過最小化能量函數來引發曲線變化,使其向目標邊緣逐漸逼近,最終找到目標邊緣。

深度學習方法:

  • Mask-RCNN:在faster-rcnn基礎上增加像素級分割
  • FCN:圖片會先進性上採樣(擴大像素);再進行卷積,通過學習獲得權值
  • UNet:特徵提取,上採樣部分(每上採樣一次就與對應的通道相同尺度融合)
  • deepLab系列算法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章