嗨咯, 小编在此祝大家新年快乐财多多!
今天我们来盘一盘人脸注册, 人脸识别等相关操作, 这是一个简单入门教程.
话不多说, 我们进入主题:
完成人脸识别所需的步骤:
注册百度账号 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. 在官方网站 http://ai.baidu.com/sdk 下载 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=&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=&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 后, 我们可以结合摄像头进行注册, 识别, 更新等操作.
关注小编不迷路, 下一次我们讲调用摄像头完成注册, 识别, 更新, 删除等操作.
来源: https://www.cnblogs.com/xiongze520/p/10387355.html