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 = ; // 修改超时时间 //取决于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 = ; // 修改超时时间 //取决于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", },
{"face_type", "LIVE"}
};
// 带参数调用人脸检测
result = client.Detect(image, imageType, options);
Console.WriteLine(result); } }
}
控制台效果图:

很显然我们也人脸识别成功了。
4、总结
我们只是使用控制台做了一个简单的注册和识别,删除和更新也是一样的,可以直接去官网拷贝即可,路径为:http://ai.baidu.com/docs#/Face-Csharp-SDK/3b8dc2e8
有了这个简单的demo后,我们可以结合摄像头进行注册、识别、更新等操作。
关注小编不迷路,下一次我们讲调用摄像头完成注册、识别、更新、删除等操作。

C# 10分钟完成百度人脸识别——入门篇的更多相关文章
- C# 30分钟完成百度人脸识别——进阶篇(文末附源码)
距离上次入门篇时隔两个月才出这进阶篇,小编惭愧,对不住关注我的卡哇伊的小伙伴们,为此小编用这篇博来谢罪. 前面的准备工作我就不说了,注册百度账号api,创建web网站项目,引入动态链接库引入. 不了解 ...
- C# 10分钟完成百度图片提取文字(文字识别)——入门篇
现在图片文字识别已经很成熟了,比如qq长按图片,点击图片识别就可以识别图片的文字,将不认识的.文字数量大的.或者不能赋值的值进行二次可复制功能. 我们现在就基于百度Ai开放平台进行个人文字识别,dem ...
- C# 10分钟完成百度语音技术(语音识别与合成)——入门篇
我们已经讲了人脸识别(入门+进阶).图片识别(入门).下面是链接: C# 10分钟完成百度人脸识别——入门篇 C# 30分钟完成百度人脸识别——进阶篇(文末附源码) C# 10分钟完成百度图片提取文字 ...
- C# 10分钟完成百度翻译(机器翻译)——入门篇
我们之前基于百度ai开发平台实现了人脸识别 [1].文字识别 [2].语音识别 [3] 与合成的入门和进阶,今天我们来实现百度翻译的实现. 随着"一带一路"政策的开展,各种项目迎接 ...
- 百度人脸识别api及face++人脸识别api测试(python)
一.百度人脸识别服务 1.官方网址:http://apistore.baidu.com/apiworks/servicedetail/464.html 2.提供的接口包括: 2.1 多人脸比对:请求多 ...
- 基于Emgu CV+百度人脸识别,实现视频动态 人脸抓取与识别
背景 目前AI 处于风口浪尖,作为 公司的CTO,也作为自己的技术专研,开始了AI之旅,在朋友圈中也咨询 一些大牛对于AI 机器学习框架的看法,目前自己的研究方向主要开源的 AI 库,如:Emgu C ...
- Qt封装百度人脸识别+图像识别
AI技术的发展在最近几年如火如荼,工资待遇也是水涨船高,应用的前景也是非常广阔,去年火起来的人脸识别,今年全国遍地开花,之前封装了下face++的人脸识别等接口,今年看了下百度的AI,还免费了,效果也 ...
- 百度人脸识别AI实践.doc
0, 前言 百度开放了很多AI能力,其中人脸识别就是其中之一. 本文对百度人脸识别AI进行实践检验,看看其使用效果如何. 鉴于是最为基础的实践,基本都是在其接口范例代码修改而来. 百度人脸识别AI网站 ...
- uniapp安卓ios百度人脸识别、活体检测、人脸采集APP原生插件
插件亮点 1 支持安卓平板(横竖屏均可),苹果的iPad.2 颜色图片均可更换. 特别提醒 此插件包含 android 端和 iOS 端,考虑到有些同学只做其中一个端的 app,特意分为 2 个插件, ...
随机推荐
- 使用 NLog 给 Asp.Net Core 做请求监控
为了减少由于单个请求挂掉而拖垮整站的情况发生,给所有请求做统计是一个不错的解决方法,通过观察哪些请求的耗时比较长,我们就可以找到对应的接口.代码.数据表,做有针对性的优化可以提高效率.在 asp.ne ...
- MySQL · 引擎特性 · 临时表那些事儿
前言 相比于普通的用户数据表,MySQL/InnoDB中的临时表,大家应该会陌生很多.再加上不同的临时表创建的时机和创建的位置都不固定,这也进一步加大神秘感.最让人捉摸不透的是,临时表很多时候会先创建 ...
- 读书笔记:深入理解java虚拟机(二)创建对象的时候需要访问哪几块内存
@TOC 对象在内存中如何储存 对象访问在java语言中无处不在,是最普通的程序行为,但即使是最简单的访问,也会涉及到java栈,java堆,方法去三个最重要的内存区域的关联关系,比如下面这段代码: ...
- python接口自动化(二十二)--unittest执行顺序隐藏的坑(详解)
简介 大多数的初学者在使用 unittest 框架时候,不清楚用例的执行顺序到底是怎样的.对测试类里面的类和方法分不清楚,不知道什么时候执行,什么时候不执行.虽然或许通过代码实现了,也是稀里糊涂的一知 ...
- 【学习笔记Part 2● MySQL】
数据库 为什么要用数据库 如何去存放数据?生活中有各种各样的数据.比如说人的姓名.年龄.成绩等.平时我们记录这些信息都是记在大脑中.人的记忆力有限,不可能什么都记住.所以后来人们把数据记录在石头上–& ...
- Sharepoint模态窗体(实战)
分享人:广州华软 无名 一. 前言 对SharePoint二次开发时,需要知道SharePoint有什么.没有什么,才能在开发过程中避免重复造轮子.SharePoint提供了许多开箱即用的功能,这次要 ...
- SpringBoot1
内容:
- mssql sqlserver 给已存在表添加新的字段及字段备注的方法
转自:http://www.maomao365.com/?p=8102 摘要: 下文讲述向已存在表上添加新字段及字段备注的方法,如下所示: 实验环境:sql server 2008 R2 1. 添加新 ...
- Microsoft Edge浏览器下载文件乱码修复方法
随着Windows10的普及,Microsoft Edge自带浏览器使用频率逐渐提升,在日常使用过程中我们会发现一个常规的问题是使用Edge进行日常文件下载的时候,N多情况下可能都是乱码,同样的下载链 ...
- windows远程桌面神器
近需要远程家庭版的WINDOWS系统的笔记本,发现它竟然没有远程桌面功能,系统属性下面根本没有远程桌面选项. 于是上网搜解决方案,找到下面这个神器,名字叫RDPwrap,不但能开通Vista以后任何版 ...