C# 10分钟完成百度人脸识别(入门篇)

嗨咯,小编在此祝大家新年快乐财多多!

今天我们来盘一盘人脸注册、人脸识别等相关操作,这是一个简单入门教程。

话不多说,我们进入主题:

完成人脸识别所需的步骤:

注册百度账号api,创建自己的应用; 创建vs控制台应用程序,引入动态链接库; 编写代码调试,效果图查看; 总结。

1、注册百度账号api,创建自己的应用

注册地址: https://login.bce.baidu.com/

注册登录之后,在“产品服务” 菜单下找到人脸识别 ,如下图:

点击去创建自己的应用名称,其实最主要的就是 API_key  和 Secret_key

有了这些就可以进一步去看 百度提供的SDK 文档了。

这是百度的SDK地址:http://ai.baidu.com/sdk

选择自己喜欢的开发语言进行研究, 里面文档很详细, 下载中有Demo

本人采用的是C# 进行研究。

参考地址:http://ai.baidu.com/docs#/Face-Csharp-SDK/top

2、创建vs控制台应用程序,引入动态链接库

创建控制台应用程序,命名为FaceRecognition,

然后引用动态链接库(安装人脸SDK),我用的是vs2017,使用的是方法一。

方法一:使用Nuget管理依赖 (推荐)

在NuGet中搜索 Baidu.AI ,安装最新版即可。

packet地址 https://www.nuget.org/packages/Baidu.AI/

方法二:下载安装

人脸 C# SDK目录结构

Baidu.Aip
  ├── net35
  │  ├── AipSdk.dll       // 百度AI服务 windows 动态库
  │  ├── AipSdk.xml       // 注释文件
  │  └── Newtonsoft.Json.dll  // 第三方依赖
  ├── net40
  ├── net45
  └── netstandard2.0
    ├── AipSdk.deps.json
    └── AipSdk.dll

如果需要在 Unity 平台使用,可引用工程源码自行编译。

安装

1.在 官方网站下载C# SDK压缩工具包。

2.解压后,将 AipSdk.dll 和  Newtonsoft.Json.dll 中添加为引用。

3、编写代码调试,效果图查看

  • 注册人脸
  • 识别人脸

首先我们准备一张能够识别人脸的图片,放到公共平台,如果百度云盘,然后分享出去,复制图片地址。

注册人脸:

在Program.cs里面编写代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FaceRecognition
{
  class Program
  {
    static void Main(string[] args)
    {
      // 设置APPID/AK/SK
      var API_KEY = "XFPA49myCG7S37XP1DxjLbXF";          //你的 Api Key
      var SECRET_KEY = "ZvZKigrixMLXNZOLmkrG6iDx9QprlGuT";    //你的 Secret Key
      var client = new Baidu.Aip.Face.Face(API_KEY, SECRET_KEY);
      client.Timeout = 60000; // 修改超时时间

      //取决于image_type参数,传入BASE64字符串或URL字符串或FACE_TOKEN字符串
      //你共享的图片路径(点击路径可直接查看图片)
      var image = "https://thumbnail0.baidupcs.com/thumbnail/32f3cc8f022839a4dbf6b9f9cca76ce8?fid=3145591938-250528-218900036170682&time=1550282400&rt=sh&sign=FDTAER-DCb740ccc5511e5e8fedcff06b081203-sTBqvQbbBy3n5SDQfbtjNwjlSHg%3D&expires=8h&chkv=0&chkbd=0&chkpc=&dp-logid=1077356968076791248&dp-callid=0&size=c710_u400&quality=100&vuk=-&ft=video";
      var imageType = "URL";

      //注册人脸
      var groupId = "group1";
      var userId = "user1";
      // 调用人脸注册,可能会抛出网络等异常,请使用try/catch捕获
      var result = client.UserAdd(image, imageType, groupId, userId);
      Console.WriteLine(result);
      // 如果有可选参数
      var options = new Dictionary<string, object>{
            {"user_info", "user's info"},
            {"quality_control", "NORMAL"},
            {"liveness_control", "LOW"}
          };
      // 带参数调用人脸注册
      result = client.UserAdd(image, imageType, groupId, userId, options);
      Console.WriteLine(result);
    }

  }
}

运行后,控制台打印成功与否,百度api控制台查看是否注册成功。

控制台效果图:

百度api控制台查看效果:

很显然,我们注册人脸成功,接下来我们进行人脸识别,我们使用注册过的图片和未注册过的图片进行验证。

识别人脸:

同样在Program.cs里面编写代码,我们把之前的代码注释掉就行,如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FaceRecognition
{
  class Program
  {
    static void Main(string[] args)
    {
      // 设置APPID/AK/SK
      var API_KEY = "XFPA49myCG7S37XP1DxjLbXF";          //你的 Api Key
      var SECRET_KEY = "ZvZKigrixMLXNZOLmkrG6iDx9QprlGuT";    //你的 Secret Key
      var client = new Baidu.Aip.Face.Face(API_KEY, SECRET_KEY);
      client.Timeout = 60000; // 修改超时时间

      //取决于image_type参数,传入BASE64字符串或URL字符串或FACE_TOKEN字符串
      //你共享的图片路径(点击路径可直接查看图片)
      var image = "https://thumbnail0.baidupcs.com/thumbnail/32f3cc8f022839a4dbf6b9f9cca76ce8?fid=3145591938-250528-218900036170682&time=1550282400&rt=sh&sign=FDTAER-DCb740ccc5511e5e8fedcff06b081203-sTBqvQbbBy3n5SDQfbtjNwjlSHg%3D&expires=8h&chkv=0&chkbd=0&chkpc=&dp-logid=1077356968076791248&dp-callid=0&size=c710_u400&quality=100&vuk=-&ft=video";
      var imageType = "URL";

      ////注册人脸
      //var groupId = "group1";
      //var userId = "user1";
      //// 调用人脸注册,可能会抛出网络等异常,请使用try/catch捕获
      //var result = client.UserAdd(image, imageType, groupId, userId);
      //Console.WriteLine(result);
      //// 如果有可选参数
      //var options = new Dictionary<string, object>{
      //      {"user_info", "user's info"},
      //      {"quality_control", "NORMAL"},
      //      {"liveness_control", "LOW"}
      //    };
      //// 带参数调用人脸注册
      //result = client.UserAdd(image, imageType, groupId, userId, options);
      //Console.WriteLine(result);

      //人脸识别(在注册的人脸库里面进行识别)
      //调用人脸检测,可能会抛出网络等异常,请使用try / catch捕获
      var result = client.Detect(image, imageType);
      Console.WriteLine(result);
      // 如果有可选参数
      var options = new Dictionary<string, object>{
            {"face_field", "age"},
            {"max_face_num", 2},
            {"face_type", "LIVE"}
          };
      // 带参数调用人脸检测
      result = client.Detect(image, imageType, options);
      Console.WriteLine(result);

    }

  }
}

控制台效果图:

很显然我们也人脸识别成功了。

4、总结

我们只是使用控制台做了一个简单的注册和识别,删除和更新也是一样的,可以直接去官网拷贝即可,路径为: http://ai.baidu.com/docs#/Face-Csharp-SDK/3b8dc2e8

有了这个简单的demo后,我们可以结合摄像头进行注册、识别、更新等操作。

关注小编不迷路,下一次我们讲调用摄像头完成注册、识别、更新、删除等操作。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C#实现基于ffmpeg加虹软的人脸识别的示例

    关于人脸识别 目前的人脸识别已经相对成熟,有各种收费免费的商业方案和开源方案,其中OpenCV很早就支持了人脸识别,在我选择人脸识别开发库时,也横向对比了三种库,包括在线识别的百度.开源的OpenCV和商业库虹软(中小型规模免费). 百度的人脸识别,才上线不久,文档不太完善,之前联系百度,官方也给了我基于Android的Example,但是不太符合我的需求,一是照片需要上传至百度服务器(这个是最大的问题),其次,人脸的定位需要自行去实现(捕获到人脸后上传进行识别). OpenCV很早以前就用过,

  • C# 10分钟完成百度人脸识别(入门篇)

    嗨咯,小编在此祝大家新年快乐财多多! 今天我们来盘一盘人脸注册.人脸识别等相关操作,这是一个简单入门教程. 话不多说,我们进入主题: 完成人脸识别所需的步骤: 注册百度账号api,创建自己的应用: 创建vs控制台应用程序,引入动态链接库: 编写代码调试,效果图查看: 总结. 1.注册百度账号api,创建自己的应用 注册地址: https://login.bce.baidu.com/ 注册登录之后,在"产品服务" 菜单下找到人脸识别 ,如下图: 点击去创建自己的应用名称,其实最主要的就是

  • PHP实现百度人脸识别

    PHP接入百度人脸识别,供大家参考,具体内容如下 1.注册百度开发者账号. https://login.bce.baidu.com/?account= 注册登录成功后,进入控制台,在左边的导航栏找到产品->人工智能->人脸识别: 创建应用.创建应用成功后拿到应用的API Key和Secret Key 2.接口调用-获取access token 调用人脸识别接口前需要获取access token,示例代码: function execCurl($url, $param) { if (empty(

  • 百度人脸识别之人脸识别FaceIdentify(签到考勤)

    本文实例为大家分享了百度人脸识别之人脸识别FaceIdentify,供大家参考,具体内容如下 using System.Collections.Generic; using UnityEngine; using Baidu.Aip.Face; using Newtonsoft.Json.Linq; using UnityEngine.UI; using System.IO; //识别,(用于签到考勤) public class FaceIdentify : MonoBehaviour { pri

  • php调用百度人脸识别接口查询数据库人脸信息实现验证登录功能

    博主在进行鼎食城毕业设计时,需要实现一个人脸识别登录功能,想到可以利用百度的人脸识别接口来完成,于是便去下载了百度的识别SDK,我用的是PHP,需要的的可以去下载其他版本,以下是识别效果: 用户在开始注册时需要上传一张自己的人脸照片,然 后再登录时可以通过输入自己的用户名,然后上传自己拍照的图片通过数据库查询比对人脸,根据匹配相似的实现登录: 以下时识别代码: 核心代码: $result = $client->match(array( array( 'image' => base64_enco

  • trackingjs+websocket+百度人脸识别API实现人脸签到

    在公司做了个年会的签到.抽奖系统.用java web做的,用公司的办公app扫二维码码即可签到,扫完码就在大屏幕上显示这个人的照片.之后领导让我改得高大上一点,用人脸识别来签到,就把扫二维码的步骤改成人脸识别. 了解了相关技术后,大致思路如下:先用websocket与后台建立通讯:用trackingjs在页面调用电脑摄像头,监听人脸,发现有人脸进入屏幕了,就把图片转成base64字符串,通过websocket发送到后端:后端拿到图片,调用百度的人脸识别API,去人脸库中匹配(当然事先要在百度云建

  • 10分钟上手vue-cli 3.0 入门介绍

    环境安装 全新版本的脚手架.逼格非常高. 记住这个名字 @vue/cli ,对就是这个 你npm 或者yarn 安装就行了,先保证全局环境有它. npm install -g @vue/cli yarn add global @vue/cli 创建项目 这里对比下以前2.X之前的版本 ,新版本把插件以及模板等 移植到命令行界面了. 旧版 创建命令 2.x vue init <template-name> <project-name> 3.x vue create <proje

  • SpringBoot实现人脸识别等多种登录方式

    目录 1.前端界面实现 2.手机验证码登录 3.人脸识别登录(百度人脸识别) 1.前端界面实现 ①背景闪烁效果: <!-- 背景星星闪烁效果 --> <script> window.onload = function () { // 屏幕的尺寸 var screenW = document.documentElement.clientWidth; var screenH = document.documentElement.clientHeight; // 2. 动态创建多个星星

  • 10分钟学会使用python实现人脸识别(附源码)

    前言 今天,我们用Python实现简单的人脸识别技术! Python里,简单的人脸识别有很多种方法可以实现,依赖于python胶水语言的特性,我们通过调用包可以快速准确的达成这一目的.这里介绍的是准确性比较高的一种. 一.首先 梳理一下实现人脸识别需要进行的步骤: 流程大致如此,在此之前,要先让人脸被准确的找出来,也就是能准确区分人脸的分类器,在这里我们可以用已经训练好的分类器,网上种类较全,分类准确度也比较高,我们也可以节约在这方面花的时间. 既然用的是python,那自然少不了包的使用了,在

  • Python+OpenCV人脸识别签到考勤系统实现(新手入门)

    前言 本项目为IOT实验室人员签到考勤设计,系统实现功能:1.人员人脸识别并完成签到/签退2.考勤时间计算3.保存考勤数据为CSV格式(Excel表格) PS:本系统2D人脸识别,节约了繁琐的人脸识别训练部分,简洁快捷 该项目为测试版,正式版会加入更多的功能,持续更新中…测试版项目地址我会放到结尾 项目效果图 系统初始化登陆界面 主界面展示图: 签到功能展示 签退功能展示 后台签到数据记录 是否签到/退判断 项目需要的环境 核心环境: OpenCV-Python 4.5.5.64 face_re

  • 小程序实现人脸识别功能(百度ai)

    本文介绍了小程序实现人脸识别功能,分享给大家,具体如下: 文档中心:https://ai.baidu.com/docs#/Begin/a2bbf4b2 接入流程 1. 按照文档获取AppID.API Key.Secret Key,进行Access Token(用户身份验证和授权的凭证)的生成 const getBaiduToken = function () { return new Promise((resolve, reject) => { //自行获取APIKey.SecretKey co

随机推荐