人臉識別活體檢測技術理論
阿新 • • 發佈:2020-10-13
文章目錄
1 人臉識別活體檢測技術
- 動作配合式活體檢測
- 線上圖片的活體檢測
- H5視訊活體檢測
- 離線紅外線活體檢測
- 離線3D結構活體檢測
- 離線RGB活體檢測
2 人臉識別活體檢測動作方案
下面的眨眼和張嘴,搖頭和點頭,都是通過連續的圖片,計算變化距離與不變距離的比,進行上一幀影象與下一幀影象的比,來判斷是否為活體。這裡用的是dlib,速度很快,可以做到實施檢測,每秒20幀是可以做到的。
2.1眨眼和張嘴
下面介紹張嘴檢測,見下圖。模仿眨眼,取點的時候需要注意,內圈的點變化更加明顯。變化距離建議取內圈,固定距離選用外圈。
2.2 搖頭與點頭
搖頭和點頭的方法近視,用到一和上面的想法幾乎一樣。
首先說搖頭,當搖頭的時候,你的臉頰會變窄,而你的鼻子長度幾乎是不變的。
點頭的時候,鼻子的距離會變短,而臉頰的會幾乎不會邊窄。
2.3 防止照片攻擊
用到的技術很簡單,就是影象雜湊演算法。
過程是這樣的:
- 1、通過攝像頭檢測場景,如果沒有人臉,儲存當前的背景圖片。
- 2、如果5分鐘內沒有檢測到人臉,用現在時間的場景影象代替記憶體中的影象。看作5分鐘內場景內的光線變化不大。
- 3、如果檢測人臉目標,隨機擷取背景圖片,同時擷取記憶體中對應位置的影象。兩者進行雜湊影象運算,比較兩者的漢明距離。
- 4、關於隨機擷取多少個影象,和多大。這個要根據本地服務效能來決定。我設計的用了7個截圖。
2.4 關於雜湊影象的比較
(1)平均雜湊(均值雜湊演算法)
- 1.圖片縮放,一般為88,或者3232
- 2.將圖片灰度化
- 3.求平均值,並根據平均值將每一個畫素二值化
- 4.將8*8=64位bit,每8個位元為一個十六進位制值,轉換成字串,生成雜湊值(指紋)
(2)感知雜湊(感知雜湊演算法)
- 1 影象縮放為32*32大小
- 2 將影象灰度化
- 3 對影象進行離散餘弦變化(DCT),轉換到頻域。
- 4 取頻域左上角8*8大小(影象的能量都集中在低頻部分,低頻位於左上角)
- 5 計算平均值,病菌據平均值二值化(同平均雜湊)。
- 6 生成雜湊值。
(3)差異值雜湊(差值雜湊演算法)
- 1 圖片縮放為9*8大小
- 2 將圖片灰度化
- 3 差異值計算(每行相鄰畫素的差值,這樣會生成一個8*8的差值,前一個畫素大於後一個畫素則為1,否則為0)。
- 4 生成雜湊值。
(4)計算雜湊距離(漢明距離)
生成每一個圖片的雜湊值後,需要計算雜湊值的距離,來判斷兩張圖片的相似度。一般使用漢明距離,也就是逐位計算兩張圖片的雜湊值是否相同。