C#实现扫脸登陆 ---百度API
生活随笔
收集整理的這篇文章主要介紹了
C#实现扫脸登陆 ---百度API
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言:
最近正在做一個收費系統,正好需要用到人臉對比。因為需要實現人臉登陸,通過掃描人臉進行登陸。
人臉對比邏輯
需要在注冊用戶的時候把用戶的臉存入到數據庫,然后在用戶進行人臉登陸的時候。再次拿到用戶注冊時的臉和現在登陸時拍照的臉,去百度的接口進行相似度對比。(這步也可以不去百度接口對比,也可自己在本地寫一個對比算法)
解析圖:
安裝百度api,在這我使用的是在線安裝的方法
nuget安裝百度api
按照這個方法可以在vs2019中安裝網絡上的任何api
代碼部分:
/** * Namespace: BLL.Utlity * * Function: 百度人臉驗證 * Name: Faces * * Ver Time Author * 0.10 2020/11/6 22:30:49 康世行 * */ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Entity; using System.Web.Script.Serialization; using System.Collections;namespace BLL.Utlity {public class Faces{/// <summary>/// 圖片格式轉換為Base64string格式/// </summary>/// <param name="img"></param>/// <returns></returns>public static string readImg(string img){return Convert.ToBase64String(File.ReadAllBytes(img));}/// <summary>/// 人臉驗證/// </summary>/// <param name="Url1">圖像1</param>/// <param name="Url2">圖像2</param>/// <returns></returns>public static double FacesResult(string Url1, string Url2) {var API_KEY = ""; //百度注冊賬號的apikeyvar SECRET_KEY = ""; //百度注冊賬號的secretkeyvar client = new Baidu.Aip.Face.Face(API_KEY, SECRET_KEY);var faces = new JArray {new JObject{{"image",readImg(Url1)},{"image_type", "BASE64"},{"face_type", "LIVE"},{"quality_control", "LOW"},{"liveness_control", "NONE"},},new JObject{{"image",readImg( Url2)},{"image_type", "BASE64"},{"face_type", "LIVE"},{"quality_control", "LOW"},{"liveness_control", "NONE"},}};//返回值,獲取相似值,進行字符串截取。var result = client.Match(faces);string str=result.ToString();//獲取json字符串series series = JsonToEntity<series>(str);//json字符串轉為實體string strScore = "0";//默認返回零//判斷是否有返回值if (series.result != null) {strScore = series.result.ToString().Substring(14, 2);}//轉換double返回double srecc =double.Parse(strScore);// 以獲取值,進行類型轉換。return srecc;}/// <summary>/// 把json字符串轉成實體/// </summary>/// <typeparam name="T">對象</typeparam>/// <param name="data">json字符串</param>public static T JsonToEntity<T>(string Json){return JsonConvert.DeserializeObject<T>(Json);}} }總結:
這個只是適合做簡單的人臉對比,安全性要求不是很高的適合。要是安全性要求很高的話,還得多一步活物檢測。(大家如果有更好的人臉驗證方法,記得私聊作者,歡迎打擾!)
總結
以上是生活随笔為你收集整理的C#实现扫脸登陆 ---百度API的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于Celeba人脸数据集的介绍
- 下一篇: 小学英语教学c语言,小学英语老师常用的课