1. 程式人生 > >C# 人臉識別庫 0.2

C# 人臉識別庫 0.2

ViewFaceCore 0.2 

超簡單的 C# 人臉識別庫

前言:

首先謝謝大家對這個庫的關注,前一篇博文得到了大家的 支援 和 Star,十分開心。本想盡快實現大家的期待的活體檢測功能,但是前段時間太忙了,是在抱歉!!!

⭐、GitHub & Important

  • 本次更新的內容在 antispoofing 分支 上。
  • 活體檢測需要 fas_first.csta  fas_second.csta 兩個模型
    • 為方便使用,這兩個模型也被包含在 Nuget 包中,0.2.x 版本在 70M+ 的大小
  • 如果沒有需要活體檢測的需要,請繼續使用 0.1.x 版本 
  • 0.2.x 版本將繼續新增新的功能,也會繼續包含必須的模型檔案
  • 0.1.x 版本將保持現有功能,並進行 bug 修復等工作
  • 0.2.x 原始碼在 antispoofing 分支
  • 0.1.x 原始碼在 master 分支

一、ViewFaceCore 介紹

這是基於 SeetaFace6 人臉識別開發的 .NET 平臺下的人臉識別庫
這是一個基於 .NET Standard 2.0 開發的庫
這個庫已經發布到 NuGet ,你可以一鍵整合到你的專案

更多請參見 C# 人臉識別庫 。

二、更新

本次更新內容

  1. 添加了 活體檢測 相關的方法
  2. 修復了識別結果部分未判斷的 bug
  3. 修改了部分結構

更新後無需修改之前的程式碼。

三、使用

1. 新增方法:

方法名 返回值 引數列表 備註
AntiSpoofing AntiSpoofingStatus Bitmap bitmap, FaceInfo info, FaceMarkPoint[] points, bool global 檢測單幀圖片
AntiSpoofingVideo AntiSpoofingStatus Bitmap bitmap, FaceInfo info, FaceMarkPoint[] points, bool global 檢測視訊幀圖片

 

  • 這兩個方法也是對應到 SeetaFace6 中 活體檢測相關方法。
  • 如果檢測失敗則返回 AntiSpoofingStatus.Error。
  • AntiSpoofing 的返回值 可能為 AntiSpoofingStatus.RealAntiSpoofingStatus.Spoof 或 AntiSpoofingStatus.Fuzzy。
  • AntiSpoofingVideo 的返回值 可能為 AntiSpoofingStatus.RealAntiSpoofingStatus.SpoofAntiSpoofingStatus.Fuzzy AntiSpoofingStatus.Detecting。
    •  AntiSpoofingStatus.Detecting 說明傳入的圖片數量還不夠檢測,需要繼續呼叫此方法傳入 Bitmap

AntiSpoofingStatus 列舉的各個值的含義註釋中都有說明

關於 global 引數:活體檢測方法預設是區域性檢測,如果要全域性檢測請使用 global 引數指定

  • false: 區域性活體檢測 - 是對具體人臉的成像細節通過演算法分析,區別是一次成像和二次成像,如果是二次成像則認為是出現了攻擊。【需要 fas_first.csta 模型 】
  • true: 全域性活體檢測 - 就是對圖片整體做檢測,主要是判斷是否出現了活體檢測潛在的攻擊介質,如手機、平板、照片等等。【需要 fas_first.csta fas_second.csta 模型 】 
方法名 返回值 引數列表 備註
AntiSpoofingVideo AntiSpoofingStatus Bitmap[] bitmap, FaceInfo info, FaceMarkPoint[] points, bool global 檢測圖片陣列

 

 此方法可以讓你檢測視訊中的人臉,你需要讀取視訊,比提取每一幀影象,然後指定要檢測的人臉索引,即可進行檢測。

四、參與專案

你需要按照 SeetaFace6 文件 說明,並下載相關的開發包以及模型

  • 可以將開發包的 lib 目錄 include 目錄 放至 C:\vclib\seeta 下 ,所有模型檔案放到 C:\vclib\seeta\model 目錄下
    • 然後按照 github 上的編譯指引進行編譯。
  • 也可以放在自定義的目錄中
    • 此時需要配置 ViewFace 專案中各個路徑,確保各個依賴引用能被正確的載入。
    • 修改 ViewFaceCore 專案的編譯命令,確保生成時可以將最新的檔案複製到生成目錄。

五、也許…

  • 此專案還未實現 SeetaFace6 中的許多特性,也許:

    想起 GitHub 密碼,持續更新…
    刪除程式碼倉庫跑路…

  • 如果在使用過程中遇到問題,你也許可以:

    在 GitHub 報告Bug…
    向我 傳送郵件

 

人臉跟蹤、人臉屬性、質量評估、眼睛狀態  Coming soon ...