首先访问百度AI网站:https://cloud.baidu.com/,按照下图的指示点开到应用管理的页面。

穿件完成之后到管理中可以查看到对应的

添加工具类:

using System;
using System.IO; namespace FaceCompare_Console
{
class FileUtils
{
/// <summary>
/// 返回路径所指文件的base64编码
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public static string getFileBase64(string path)
{
if (!File.Exists(path))
return ""; FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, , buffer.Length);
fs.Close();
return Convert.ToBase64String(buffer);
}
}
}

添加Token类:(注意:获取的Token30天才会更新一次,因此最好不要每次都获取,而是应该获取一次存储在本地,30天后再更新)

using System;
using System.Collections.Generic;
using System.Net.Http; namespace FaceCompare_Console
{
public static class AccessToken
{
// 调用getAccessToken()获取的 access_token建议根据expires_in 时间 设置缓存
// 返回token示例
public static String TOKEN = "24.4c28a8feedb8a2c71fa552522284641f.2592000.1546578079.282335-15054444"; // 百度云中开通对应服务应用的 API Key 建议开通应用的时候多选服务
private static String clientId = "*********************";
// 百度云中开通对应服务应用的 Secret Key
private static String clientSecret = "**********************"; /// <summary>
/// 获取Token
/// </summary>
/// <returns></returns>
public static String getAccessToken()
{
String authHost = "https://aip.baidubce.com/oauth/2.0/token";
HttpClient client = new HttpClient();
List<KeyValuePair<String, String>> paraList = new List<KeyValuePair<string, string>>();
paraList.Add(new KeyValuePair<string, string>("grant_type", "client_credentials"));
paraList.Add(new KeyValuePair<string, string>("client_id", clientId));
paraList.Add(new KeyValuePair<string, string>("client_secret", clientSecret)); HttpResponseMessage response = client.PostAsync(authHost, new FormUrlEncodedContent(paraList)).Result;
String result = response.Content.ReadAsStringAsync().Result;
LitJson.JsonData jd = LitJson.JsonMapper.ToObject(result);
return jd["access_token"].ToString();
}
}
}

接下来是面部比对的代码:

using System;
using System.IO;
using System.Net;
using System.Text; namespace FaceCompare_Console
{
class FaceMatch
{
/// <summary>
/// 人脸比对
/// </summary>
/// <param name="token">token</param>
/// <param name="img1">图像1文件路径</param>
/// <param name="img2">图像2文件路径</param>
/// <returns>json格式</returns>
public static string match(string token, string img1, string img2)
{
string host = "https://aip.baidubce.com/rest/2.0/face/v3/match?access_token=" + token;
Encoding encoding = Encoding.Default;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
request.Method = "post";
request.KeepAlive = true;
String str = "[{\"image\":\"" + FileUtils.getFileBase64(img1) + "\",\"image_type\":\"BASE64\",\"face_type\":\"LIVE\",\"quality_control\":\"LOW\",\"liveness_control\":\"NONE\"},{\"image\":\"" + FileUtils.getFileBase64(img2) + "\",\"image_type\":\"BASE64\",\"face_type\":\"LIVE\",\"quality_control\":\"LOW\",\"liveness_control\":\"NONE\"}]";
byte[] buffer = encoding.GetBytes(str);
request.ContentLength = buffer.Length;
request.GetRequestStream().Write(buffer, , buffer.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
string result = reader.ReadToEnd();
Console.WriteLine("人脸对比:");
Console.WriteLine(result);
return result;
}
}
}

最后是主程序中调用比对程序进行比对:

using System;

namespace FaceCompare_Console
{
class Program
{
static void Main(string[] args)
{
AccessToken.getAccessToken();
FaceMatch.match(AccessToken.TOKEN, @"D:\Compare\web.jpg", @"D:\Compare\web1.jpg");
Console.ReadKey();
}
}
}

输出的结果如下:

score 是比对的结果分值,满分100,根据比对的要求判断分值多少属于比对程序即可。

更加详细的参数说明可以访问官网查看:https://ai.baidu.com/docs#/Face-Match-V3/top

补充:代码中用到Http.Net这些类可以去Nuget管理中在线查找并下载:

对返回结果的json格式需要解析的话也可以在Nuget中搜索Newtonsoft或者Litjson进行解析!

百度AI—人脸在线比对的更多相关文章

  1. 基于百度AI人脸识别技术的Demo

    编写demo之前首先浏览官方API:http://ai.baidu.com/docs#/Face-API/top 下面是源码: package com.examsafety.test; import ...

  2. 百度AI人脸识别的学习总结

    本文主要分以下几个模块进行总结分析 项目要求:运用百度AI(人脸识别)通过本地与外网之间的信息交互(MQService),从而通过刷脸实现登陆.签字.会议签到等: 1.准备工作: 内网:单击事件按钮— ...

  3. 百度AI人脸检测——解析JSON 数据格式

    1.了解一下 通常情况下,每个需要访问网络的应用程序都会有一个自己的服务器,我们可以向服务器提交数据,也可以从服务器上获取数据.不过这个时候就出现了一个问题,这些数据到底要以什么样的格式在网络上传输呢 ...

  4. 基于C# 调用百度AI 人脸识别

    一.设置 登录百度云控制台,添加应用-添加人脸识别,查找,对比等. 记住API Key和Secret Key 二.创建Demo程序 1.使用Nuget安装 Baidu.AI 和 Newtonsoft. ...

  5. django--调用百度AI接口实现人脸注册登录

    面部识别----考勤打卡.注册登录.面部支付等等...感觉很高大上,又很方便,下面用python中的框架--django完成一个注册登录的功能,调用百度AI的接口,面部识别在网上也有好多教程,可以自己 ...

  6. 技能节-AI人脸识别

    我们收到技能节项目的通知是在两周之前,项目要求做个人脸评分系统. 两周时间写一个"人脸评分系统",好像时间比较紧了,还好我们完成了~这个项目是将摄像头捕获到的包含人脸的图像传输到百 ...

  7. 基于百度AI开放平台的人脸识别及语音合成

    基于百度AI的人脸识别及语音合成课题 课题需求 (1)人脸识别 在Web界面上传人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口识别人脸特征,接收平台返回的人员年龄.性别.颜 ...

  8. c# 利用AForge和百度AI开发实时人脸识别

    baiduAIFaceIdentify项目是C#语言,集成百度AI的SDK利用AForge开发的实时人脸识别的小demo,里边包含了人脸检测识别,人脸注册,人脸登录等功能 人脸实时检测识别功能 思路是 ...

  9. 百度AI开放平台 UNIT平台开发在线客服 借助百度的人工智能如何开发一个在线客服系统

    这段时间在研究一些人工智能的产品,对比了国内几家做人工智能在线客服的,有些接口是要收费的,有些是免费的,但是做了很多限制,比如每天调用的接口次数限制是100次.后来就找到了百度的AI,大家也知道,目前 ...

随机推荐

  1. 【转】学习MOS管技术知识,这篇文章就够了!

    MOS管学名是场效应管,是金属-氧化物-半导体型场效应管,属于绝缘栅型.本文就结构构造.特点.实用电路等几个方面用工程师的话简单描述. 其结构示意图: 解释1:沟道 上面图中,下边的p型中间一个窄长条 ...

  2. CAN通信详解

    30.1 CAN简介 30.2 硬件设计 30.3 软件设计 30.4 下载验证 CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议. ...

  3. Python文件和异常

    程序和运行时数据是在内存中驻留的,涉及到数据交换的地方,通常是磁盘.网络等,因此需要IO接口. IO编程中,Stream(流)是一个很重要的概念,可以把流想象成一个水管,数据就是水管里的水,但是只能单 ...

  4. Activity的跳转与传值

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://android.blog.51cto.com/268543/323982 Acti ...

  5. C#基础 常用语&数据类型定义&类型转换

    int temp = Console.Read(); Console.WriteLine(temp); Console.Read(); Console.Write("  ");直接 ...

  6. JAVA8给我带了什么——Optional和CompletableFuture

    不管是JAVA,还是.NET.我们常常会看到空异常(NullPointerException).这种异常都是在运行的过程中出现.往往是变量是一个null值.但是你引用这个变量的后继字段或是方法.所以我 ...

  7. [luoguU42591][小T的绝对值]

    luoguU42592 20分思路 对给出的序列求出前缀和,然后\(n^2\)暴力枚举即可拿到第一档分 40分思路 对于数列中的数都相同的情况.只需要特判即可.只要特别注意全都是0的情况即可. 100 ...

  8. C++中const关键字的使用方法,烦透了一遍一遍的搜,总结一下,加深印象!!!

    之前一直在学习C/C++,关于const的使用,这里出现一点,那里出现一点.知识用时方恨少,这一段时间正好各种笔试题,其中关于const的用法也是层出不穷,所以疲于在书本上各种翻,这里汇总一下,加深自 ...

  9. Spring Boot Actuator的端点

    Spring Boot Actuator的关键特性是在应用程序里提供众多Web端点,通过它们了解应用程序 运行时的内部状况.有了Actuator,你可以知道Bean在Spring应用程序上下文里是如何 ...

  10. HTML中的相对路径与绝对路径(转)

    原文地址:http://www.cnblogs.com/heyonggang/archive/2013/03/01/2938984.html 在HTML里只要涉及文件的地方(如超级链接.图片等)就会涉 ...