人臉檢測演算法

2021-08-26 02:17:04 字數 2509 閱讀 9719

人臉識別各**參考

知乎乙個欄目:

首先介紹一下常用人臉檢測的常用資料庫:

fddb和wider face

fddb總共2845張影象,5171張,人臉非約束環境,人臉的難度較大,有面部表情,雙下巴,光照變化,穿戴,誇張髮型,遮擋等難點,是目標最常用的資料庫。有以下特點:

wider face:

wider face總共32203影象,393703標註人臉,目前難度最大,各種難點比較全面:尺度,姿態,遮擋,表情,化妝,光照等。有以下特點有:

1.ssd

這篇博文介紹了ssd跑自己資料的做法

ssd關鍵點分為兩類:模型結構和訓練方法。模型結構包括:多尺度特徵圖檢測網路結構和anchor boxes生成;訓練方法包括:ground truth預處理和損失函式。

文章的核心之一是作者同時採用lower和upper的feature map做檢測。假定有8×8和4×4兩種不同的feature map。第乙個概念是feature map cell,feature map cell 是指feature map中每乙個小格仔,假設分別有64和16個cell。另外有乙個概念:default box,是指在feature map的每個小格(cell)上都有一系列固定大小的box,如下圖有4個(下圖中的虛線框,仔細看格仔的中間有比格仔還小的乙個box)。假設每個feature map cell有k個default box,那麼對於每個default box都需要**c個類別score和4個offset,那麼如果乙個feature map的大小是m×n,也就是有m*n個feature map cell,那麼這個feature map就一共有(c+4)*k * m*n個輸出。這些輸出個數的含義是:採用3×3的卷積核對該層的feature map卷積時卷積核的個數,包含兩部分(實際code是分別用不同數量的3*3卷積核對該層feature map進行卷積):數量ckmn是confidence輸出,表示每個default box的confidence,也就是類別的概率;數量4kmn是localization輸出,表示每個default box回歸後的座標)。訓練中還有乙個東西:prior box,是指實際中選擇的default box(每乙個feature map cell 不是k個default box都取)。也就是說default box是一種概念,prior box則是實際的選取。訓練中一張完整的送進網路獲得各個feature map,對於正樣本訓練來說,需要先將prior box與ground truth box做匹配,匹配成功說明這個prior box所包含的是個目標,但離完整目標的ground truth box還有段距離,訓練的目的是保證default box的分類confidence的同時將prior box盡可能回歸到ground truth box。 舉個列子:假設乙個訓練樣本中有2個ground truth box,所有的feature map中獲取的prior box一共有8732個。那個可能分別有10、20個prior box能分別與這2個ground truth box匹配上。訓練的損失包含定位損失和回歸損失兩部分。

ssd演算法的缺點:優勢是速度快,在gpu上能實時,缺點是對密集小目標的檢測比較差,而人臉剛好是密集小目標,這類方法的研究重點是提高密集小目標的檢測效能,同時速度也需要盡可能快,gpu實時演算法在應用中依然受限。

2.s3fd

github**:

這篇文章對anchor對小人臉檢測率低的問題進行了分析和改進。

基於anchor方法的缺點:

anchor-based方法沒有scale-invariant(尺度不變性).對大物體檢測的好,對小物體不行。

沒有尺度不變性的原因:

改進:速度比較慢。

3.mtcnn

該演算法直接實現了人臉檢測和人臉對其。其結構是是三個cnn級聯:

​ p-net r-net o-net

​ 主要是人臉landmark檢測

stage 1:使用p-net是乙個全卷積網路,用來生成候選窗和邊框回歸向量(bounding box regression vectors)。使用bounding box regression的方法來校正這些候選窗,使用非極大值抑制(nms)合併重疊的候選框。全卷積網路和faster r-cnn中的rpn一脈相承。

stage 2:使用n-net改善候選窗。將通過p-net的候選窗輸入r-net中,拒絕掉大部分false的視窗,繼續使用bounding box regression和nms合併。

stage 3:最後使用o-net輸出最終的人臉框和特徵點位置。和第二步類似,但是不同的是生成5個特徵點位置。

該**實現了mtcnn人臉檢測部分:(最終結果為畫框)

該**實現了mtcnn python版本:(還沒跑過)

人臉檢測演算法

人臉識別各 參考 知乎乙個欄目 首先介紹一下常用人臉檢測的常用資料庫 每張影象的人臉數量偏少,平均1.8人臉 圖,絕大多數影象都只有一人臉 資料集完全公開,published methods通常都有 大部分都開源 且可以復現,可靠性高 unpublished methods沒有 沒有 無法確認它們的...

SSH人臉檢測演算法創新點

1 檢測模組,使用7 7和5 5的的視窗增加了特徵map之後的感受野 3 訓練的時候,只是用anchor layer,只是判斷一下anchors的的正負類,測試的時候,使用使用proposal layer,和faster相比,少了roi層,速度較快 4 可以使用對尺度的訓練方式,進一步的增加精度 5...

人臉活體檢測演算法設計

人臉活體驗證是人臉識別過程中重要的一環,主要用以區分真實人臉與假臉影象,能夠識別通過紙張列印 螢幕翻拍 3d模型等場景的欺騙行為。我們在演算法設計階段,嘗試了不同的方法,包括svm lbp 深度學習等,針對單一場景或者攝像頭,能夠得到不錯的效果,但是沒有得到乙個能夠適配多種攝像頭的活體演算法 我們將...