百度AI—人脸在线比对

首先访问百度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, 0, 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, 0, 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进行解析!

原文地址:https://www.cnblogs.com/mr-yoatl/p/10075706.html

时间: 2024-08-30 17:10:00

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

技能节-AI人脸识别

我们收到技能节项目的通知是在两周之前,项目要求做个人脸评分系统. 两周时间写一个"人脸评分系统",好像时间比较紧了,还好我们完成了~这个项目是将摄像头捕获到的包含人脸的图像传输到百度AI的云服务器中,然后调用运用了百度AI的人脸对比API分析图中的数据,最后将分析出的数据传送回来, 在使用这个项目时需要连接互联网. 当然百度AI的人脸对比API不会让你免费使用,你必须要成为百度AI的开发者,在搜索栏中输入(AI,baidu,com),在控制台中选择人脸识别,然后注册登录,接着在左边的导

人脸识别(百度AI)

1.人脸检测第一步: 创建用来调用百度AI的接口 Face client = new Face("API Key ", "Secret Key"); // 此处填写自己申请的key 第二步:要检测的图片 byte[] image = File.ReadAllBytes(path); //path 是图片的路径 image是检测的图像数据,图片转化为二进制数据 第三步:检测图片 JObject result = client.FaceDetect(image, opt

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

baiduAIFaceIdentify项目是C#语言,集成百度AI的SDK利用AForge开发的实时人脸识别的小demo,里边包含了人脸检测识别,人脸注册,人脸登录等功能 人脸实时检测识别功能 思路是利用AForge打开摄像头,通过摄像头获取到的图像显示在winform窗体中AForge的控件中,利用AForge控件中的NewFrame事件获取要显示的每一帧的图像,获取图像传输到百度AI平台进行人脸检测,并且将检测结果反馈到界面显示的图像中.在这个过程中有两个问题,获取图像上传到百度AI平台进行

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

这段时间在研究一些人工智能的产品,对比了国内几家做人工智能在线客服的,有些接口是要收费的,有些是免费的,但是做了很多限制,比如每天调用的接口次数限制是100次.后来就找到了百度的AI,大家也知道,目前国内做AI的,应该就算百度比较超前了. 于是就开始研究吧. 百度AI的网址http://ai.baidu.com/    然后就看百度的UNIT的文档    地址参见 https://ai.baidu.com/docs#/UNIT-v2-download/top UNIT机器人对话API文档.里面的

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

基于百度AI的人脸识别及语音合成课题 课题需求 (1)人脸识别 在Web界面上传人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口识别人脸特征,接收平台返回的人员年龄.性别.颜值等信息,将信息返回到Web界面进行显示. (2)人脸比对 在Web界面上传两张人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口比对照片信息,返回相似度. (3)语音识别 在Web页面上传语音文件,判断语音文件格式,如果不是wav格式进行转码处理,然后调用平台接口进行识别,

人工智能的造血机制:从Q1财报读懂百度AI矩阵如何运作

在人工智能到来,我们在最初被惊艳到之后,接下来的问题如期而至:AI到底如何工作?如何创造真正的价值? 毕竟AI不能永远是一种表演和游戏,作为一种底层技术,它必须开始为人类服务,必须在商业世界中证明自己的必要性. 事实上,相比于AI独立成为一种与人类相近的智能,真实的AI更接近各行各业升级自身的机遇,甚至是让一些我们习以为常的东西发生重大升级的技术手段. 今天来看,这门尚稚嫩的技术确实没有令我们失望.百度(Nasdaq:BIDU)在刚刚发布了截至3月31日的2018财年第一财季财报.报告显示,百度

百度AI认为最漂亮的中国女星是----范冰冰

一.程序说明 1.1 程序说明 之前写调用百度AI接口的程序,然后刷到了两条明星的新闻,就想到了写个给明星颜值排下名的程序. 程序的关键点是两个,第一个是百度AI接口的调用这点其实直接使用早前实现的类所以没有费什么劲(见Python3+BaiduAI识别高颜值妹子图片). 第二个是怎么个排法,这个问题还比较大可以分成几个点,第一点是排哪些明星,有哪些明星我也不是很清楚就随便百度一下然后用了这个网站的名单:https://123fans.cn/rank.php?c=2 第二个点是去哪里取图片,开始

百度AI开放平台,共建AI生态

2016年,百度开始把积累多年的人工智能技术全面对外开放,从底端智能云,中间百度大脑,到顶层的DuerOS,百度打造整体人工智能开放生态,旨在帮助企业.业界能够更快速的使用.应用人工智能的技术去发展,为人类带来更好的生活.在此背景下,为了更加全面的了解百度AI开放平台及AI生态,将由百度AI技术生态部产品负责人刘倩为大家介绍百度在人工智能开放平台与开放生态方面的思考.进展以及沉淀. 以下为刘倩老师演讲实录 百度AI开放生态战略的中流砥柱---百度大脑 百度AI开放生态是从底端智能云,中间百度大脑

百度AI开放平台- API实战调用

百度AI开放平台- API实战调用 一.      前言 首先说一下项目需求. 两个用户,分别上传了两段不同的文字,要计算两段文字相似度有多少,匹配数据库中的符合条件的数据,初步估计列出来会有60-100条左右,不会更多,只会更少.最终的需求是:从这些匹配结果中找到相似度较高的那些条目. 自己编写算法来实现是一个很大的工程,涉及到自然语言处理的一些方面,比较复杂.于是上网搜了搜,发现百度开放平台的自然语言处理可以免费调用,而且每天有10W的调用次数,对我的小项目来说正好满足.但是,在往下翻的时候