照片、視頻中的人臉有時也能騙過一些不成熟的人臉識別系統,讓人們對人臉解鎖的安全性產生很大懷疑。 在這篇 4 千多字的教程中,作者介紹了如何用 OpenCV 進行活體檢測(liveness detection)。 跟隨作者給出的代碼和講解,你可以在人臉識別系統中創建一個活體檢測器,用於檢測偽造人臉並執行反人臉欺騙 雙效犀利士 雙效犀利士藥局 雙效犀利士香港 雙效犀利士副作用 雙效犀利士真偽 我在過去的一年裡寫了不少人臉識別的教程,包括:
https://www.pyimagesearch.com/2018/09/24/opencv-face-recognition/ https://www.pyimagesearch.com/2018/06/18/face-recognition-with-opencv-python-and-deep-learning/
https://www.pyimagesearch.com/2018/06/25/raspberry-pi-face-recognition/
但在我的郵件和人臉識別相關帖子下面的評論中經常會出現以下問題: 想想如果有壞人試圖攻破你的人臉識別系統會發生什麼?
這樣的使用者可能會拿到另一個人的照片。 甚至可能他們的手機上就有其他人的照片或視頻,他們可以用這樣的照片或視頻來欺騙識別人臉的相機(就像本文開頭的圖片那樣)。
在這種情況下,照相機完全有可能將其識別為正確的人臉,從而讓未經授權的使用者騙過人臉識別系統!
如何識別這些真假人臉呢? 如何在人臉識別應用中使用反人臉欺騙演算法?
答案是用OpenCV實現活體檢測——這也是我今天要介紹的內容。
要瞭解如何用 OpenCV 將活體檢測結合到你自己的人臉識別系統中,請繼續往下讀。
你可以在文末的下載部分下載原始碼:
https://www.pyimagesearch.com/2019/03/11/liveness-detection-with-opencv/ 本教程第一部分將討論什麼是活體檢測以及為什麼要藉助活體檢測提升我們的人臉識別系統。
從這裡開始要先研究一下用於活體檢測的數據集,包括:
我們還將回顧用於活體檢測器專案的項目結構。 為了創建活體檢測器,我們要訓練一個能分辨真假人臉的深度神經網路。
因此,我們還需要:
那我們就開始吧! 什麼是活體檢測? 我們為什麼需要活體檢測? 圖 1:用 OpenCV 進行活體檢測。 左圖是我的即時(真實)視頻,而右圖中我拿著自己的iPhone(欺騙)。
人臉識別系統與以往任何時候相比都更加普遍。 從iPhone(智能手機)中的人臉識別,到中國大規模監控中的人臉識別,人臉識別系統的應用無處不在。
但人臉識別系統也很容易被「偽造」和「不真實」的面部所欺騙。 收集一些數據,這可以讓你的活體檢測器更魯棒也更安全。
通過測試,我確定模型有些偏向我的臉,這是意料之中的結果,因為所有的模型都是基於我的面部訓練出來的。 此外,由於我是白人(高加索人),所以如果數據集中有其他膚色或其他人種的面部時,這個模型效果會沒有那麼好。
在理想情況下,你應該用不同膚色和不同人種的面部來訓練模型。 請參考本文的「限制和後續工作」部分,來瞭解其他改善活體檢測模型的建議。
你將在本教程剩下的部分學習如何獲取我錄製的數據集以及如何將它實際應用於通過OpenCV和深度學習建立的活體檢測器。
|