人臉檢測演算法

2021-08-18 21:39:16 字數 2705 閱讀 2327

人臉識別各**參考

知乎乙個欄目:

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

每張影象的人臉數量偏少,平均1.8人臉/圖,絕大多數影象都只有一人臉;

資料集完全公開,published methods通常都有**,大部分都開源**且可以復現,可靠性高;unpublished methods沒有**沒有**,無法確認它們的訓練集是否完全隔離,持懷疑態度最好,通常不做比較。(扔幾張fddb的影象到訓練集,vj也可以訓練出很高的召回率。。需要考慮人品能不能抵擋住利益的**)

有其他隔離資料集無限制訓練再fddb測試,和fddb十折交叉驗證兩種,鑑於fddb影象數量較少,近幾年**提交結果也都是無限制訓練再fddb測試方式,所以,如果要和published methods提交結果比較,請照做。山世光老師也說十折交叉驗證通常會高1~3%。

結果有離散分數discroc和連續分數controc兩種,discroc僅關心iou是不是大於0.5,controc是iou越大越好。鑑於大家都採用無限制訓練加fddb測試的方式,detector會繼承訓練資料集的標註風格,繼而影響controc,所以discroc比較重要,controc看看就行了,不用太在意。

每張影象的人臉資料偏多,平均12.2人臉/圖,密集小人臉非常多;

分訓練集train/驗證集val/測試集test,分別佔40%/10%/50%,而且測試集的標註結果(ground truth)沒有公開,需要提交結果給官方比較,更加公平公正,而且測試集非常大,結果可靠性極高;

根據edgebox的檢測率情況劃分為三個難度等級:easy, medium, hard。

1.ssd

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

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匹配上。訓練的損失包含定位損失和回歸損失兩部分。

2.s3fd

github**:

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

基於anchor方法的缺點:

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版本:(還沒跑過)

人臉檢測演算法

人臉識別各 參考 知乎乙個欄目 首先介紹一下常用人臉檢測的常用資料庫 fddb和wider face fddb總共2845張影象,5171張,人臉非約束環境,人臉的難度較大,有面部表情,雙下巴,光照變化,穿戴,誇張髮型,遮擋等難點,是目標最常用的資料庫。有以下特點 wider face wider ...

SSH人臉檢測演算法創新點

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

人臉活體檢測演算法設計

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