opencv 活體檢測

2022-06-08 10:27:09 字數 1716 閱讀 2289

▲專案目的:識別真實人臉和**,實現「識真」而不止「識臉」。

▲使用工具:opencv,python,matlab

首先1. 構建影象資料集

2. 實現乙個能夠進行活體檢測的卷積神經網路(我們稱之為「livenessnet」)

3. 訓練活體檢測網路

(效果圖)

活體檢測的方法有很多,包括:

活體檢測最終的效果取決於訓練樣本的數量,如果訓練樣本是誰的臉,那監測出此人的臉準確率更高。

將活體檢測看作二分類問題

**段/* gather_examples.py  */

1

#import the necessary packages

2import

numpy as np

3import

argparse

4import

cv25

importos6

#construct the argument parse and parse the arguments

7 ap =argparse.argumentparser

8 ap.add_argument("

-i", "

--input

", type=str, required=true,

9 help="

path to input video")

10 ap.add_argument("

-o", "

--output

", type=str, required=true,

11 help="

path to output directory of cropped faces")

12 ap.add_argument("

-d", "

--detector

", type=str, required=true,

13 help="

path to opencv's deep learning face detector")

14 ap.add_argument("

-c", "

--confidence

", type=float, default=0.5,

15 help="

minimum probability to filter weak detections")

16 ap.add_argument("

-s", "

--skip

", type=int, default=16,

17 help="")

18 args = vars(ap.parse_args)

第 2-5 行引入了我們需要的安裝包。除了內建的 python 模組,該指令碼僅僅需要用到 opencv 和 numpy 。

第 8-19 行**將解析我們的命令列引數:

「--output」:儲存每個裁剪出來的人臉影象的輸出目錄的路徑。

「--confidence」:過濾弱人臉檢測結果的最小概率。預設情況下,該值為 50%。

「--skip」:我們不需要檢測並儲存每個影象,因為相鄰的幀是相似的。相反我們會在兩次人臉檢測任務之間跳過 n 個幀。你可以使用此引數修改預設的 n 值(16)。

---未完待續---

活體檢測方法

紋理分析,包括計算臉部區域上的區域性二進位制圖案 lbp 並使用svm將臉部分類為真實或欺騙。的紋理特徵是重要的依據,給2d 拍照,比起給3d真人拍照,會損失一些紋理。頻率分析,例如檢查面部的傅利葉域。臉部的頻率組成,也不像真人那樣豐富。可變聚焦分析,例如檢查兩個連續幀之間的畫素值變化。連拍兩張 聚...

人臉活體檢測資料

目前,主流的活體檢測技術基於攝像頭型別可分為 基於2d人臉活體檢測和基於3d人臉活體檢測。兩種演算法目前都有實際的案例。從識別精度出發,3d人臉活體檢測遠勝於2d人臉活體檢測,因為3d影象的深度通道可以獲取2d影象中沒有的距離資訊,對 欺騙等欺騙方式具有更好的鑑別能力。目前,支付寶及部分銀行已經開始...

人臉識別活體檢測技術

隨著深度學習方法的應用,識別人臉影象的技術的識別率已經得到質的提公升,目前識別人臉影象的技術率已經達到99 識別人臉影象的技術與其他生物特徵識別技術相比,在實際應用中具有天然獨到的優勢 通過攝像頭直接獲取,可以非接觸的方式完成識別過程,方便快捷。目前識別人臉影象的技術已應用在金融 教育 景區 旅運 ...