日常API之C#百度人脸识别

最近看到一只我家徒儿发来的链接,原来是一堆百度AI的SDK,于是一时兴起就做了一只人脸识别,喵喵喵(●‘?‘●)

一、准备工作

首先,当然是下载SDK啦:http://ai.baidu.com/sdk#sdk-category-bfr,可以根据自己的语言选择,在这里使用C# WPF 做示例

SDK里的文件大概是酱紫:

FaceDemo.cs : 官方示例文件

AipSdk.dll : 需要调用的SDK

AipSdk.XML : SDK注释

Newtonsoft.Json.dll : 用于解析JSON 必须是版本10.0.0.0

Newtonsoft.Json.xml : 注释

有了SDK,接下来还需要用于拍照的dll,这里我们使用WPFMediaKit.dll来实现

二、编码工作

在我们使用SDK之前还需要录入面部信息,即使用WPFMediaKit.dll进行拍照并储存。

布局:需要一只Button,并添加引用xmlns:Controls="clr-namespace:WPFMediaKit.DirectShow.Controls;assembly=WPFMediaKit",和添加控件:<Controls:VideoCaptureElement  x:Name="vce"/>

WPFMediaKit的使用,即在button的单击事件写入:

 1 vce.Stop();
 2 RenderTargetBitmap bmp = new RenderTargetBitmap(
 3 (int)vce.ActualWidth,
 4 (int)vce.ActualHeight,
 5 96, 96, PixelFormats.Default);
 6 bmp.Render(vce);
 7 BitmapEncoder encoder = new JpegBitmapEncoder();//默认使用JPG格式保存,可以切换成其他格式,因为JPG格式的文件更小,所以这里推荐使用
 8 encoder.Frames.Add(BitmapFrame.Create(bmp));
 9 using (MemoryStream ms = new MemoryStream())
10 {
11 encoder.Save(ms);
12 byte[] data = ms.ToArray();
13 File.WriteAllBytes("b.jpg", data);//写入文件b.jpg可以替换成其他
14 }

这样我们保存了面部数据,接下来就可以调用SDK了(为了用户数据安全可以为保存的文件启用加密设置)

由于我们需要2次用户的面部数据来判断是否为同一个人,所以还需要进行第二次采集数据(在用户点击"识别"按钮时)

 1 vce.Stop();
 2 RenderTargetBitmap bmp = new RenderTargetBitmap(
 3 (int)vce.ActualWidth,
 4 (int)vce.ActualHeight,
 5 96, 96, PixelFormats.Default);
 6 bmp.Render(vce);
 7 BitmapEncoder encoder = new JpegBitmapEncoder();//默认使用JPG格式保存,可以切换成其他格式,因为JPG格式的文件更小,所以这里推荐使用
 8 encoder.Frames.Add(BitmapFrame.Create(bmp));
 9 using (MemoryStream ms = new MemoryStream())
10 {
11 encoder.Save(ms);
12 byte[] data = ms.ToArray();//此处不必保存,因为之后将直接用到byte[]
13 ...//未完

接下来要在读取到byte[]之后,再次读取之前用户的面部数据

byte[] bata2 = File.ReadAllBytes("b.jpg");

最后,调用SDK并判断是否为同一人

1 var client = new Baidu.Aip.Face.Face("API KEY", "Secret Key");//这的KEY可以到百度申请,链接:https://console.bce.baidu.com/ai/?fromai=1#/ai/face/app/list
2 var images = new byte[][] { data, data };//之前我们获取的数据
3 var result = double.Parse(client.FaceMatch(images).First.First.Last.Last.First.ToString());//发送并解析返回的数据,获取两个数据的相似度
4 if (result >= 90)//判断相似度,一般在大于90时是同一人,可以自己调节
5 {
6    //此处为识别成功(同一人)
7 }else{
8   //此处为识别识别(不同的两人)
9 }

这样我们就完成了整个SDK的调用

三、运行测试

首先录入我的数据,嘟嘟嘟

录入完成,接下来就要识别了

蛤!成功,接下来换一个人

嘟嘟,失败惹

本教程完整源码:https://github.com/TwilightLemon/Face (●‘?‘●)求STAR和Follow

喵,这次的教程到这里就结束啦,期待下一期吧!

时间: 2024-10-29 04:00:04

日常API之C#百度人脸识别的相关文章

C#30分钟完成百度人脸识别

一.前言   距离上次入门篇时隔两个月才出这进阶篇,小编惭愧,对不住关注我的卡哇伊的小伙伴们,为此小编用这篇博来谢罪. 前面的准备工作我就不说了,注册百度账号api,创建web网站项目,引入动态链接库引入. 不了解的可以花费10分钟移步学习:<C# 10分钟完成百度人脸识别—入门篇>. 如果要学习的童鞋最好下载本demo源码,因为有信息入库功能,BLL.DAL.数据库就在源码里面. 一般情况下笔记本自带的可见光摄像头就可以进行人脸识别,但是这种摄像头不能很好的进行活体检测,可能会被照片和视频骗

uniapp安卓ios百度人脸识别、活体检测、人脸采集APP原生插件

插件亮点 1 支持安卓平板(横竖屏均可),苹果的iPad.2 颜色图片均可更换. 特别提醒 此插件包含 android 端和 iOS 端,考虑到有些同学只做其中一个端的 app,特意分为 2 个插件,减小安装包体积.android 端请点击这里.iOS 端请点击这里. 1.前言 最近在使用 uniapp 开发项目,有刷脸实名认证的需求,最终使用百度人脸识别实现了需求.自己做了个 APP 原生插件,给大家介绍下用法.本插件主要功能是通过动作检测活体,采集人脸返回.其他功能需要自主实现,如刷脸登录,

百度人脸识别SDK学习

之前看到同事说人脸识别多么高大上之类的, 我就好奇搜索了一下, 本人是小白级别,喜欢用百度多一点,所以就使用了百度的人脸识别SDK进行研究.不得不说百度提供的完档很详细,在学习过程中很少出现不能解决的问题, 所以本人也偷个懒,把sdk文档复制下来. 注:貌似有个bug,我在百度语音中菜单下创建的人脸识别,然后获取API_key和Secret_key, 在学习尝试过程中, 或多或少有请求量, 但是报表中却没有任何记录, 难道是bug吗? 我在想是不是可以无限制的调用了,作为尝试, 没去批量去测试,

Python3使用百度人脸识别接口识别高颜值妹子图片

一.在百度云平台创建应用 为什么要到百度云平台创建应用,首先来说是为了获取获取access_token时需要的API Key和Secret Key 至于为什么需要API Key和Secret Key才能获取access_token,应该一是为了推广一下百度云二是为了获取一些统计数据.微信苹果要你们搞得,度娘就不能要你们搞得?不要纠结 1.访问百度AI开放 平台:http://ai.baidu.com/ 2."产品服务"----"人脸检测" 3. "立即使用

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

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

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

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

iOS 使用百度的人脸识别登录验证,解决认证失败在头像页面继续识别认证问题

人脸识别(活体验证): 1.芝麻认证 : 0.4元/次,需要企业企业认证.不能有与芝麻信用类似的业务,如:保险... 2.旷视 : 0.5/次.企业认证.业务限制 3. 百度人脸识别 :免费的---可以同时处理10条认证,  企业认证. 4.科大讯飞   人脸检测  2000万次   1年 7.2万  活体检测只能上传一段视频来检测 需要和商务沟通 我们使用的百度,,,, 需求:需要在认证中不跳转界面,失败:继续认证.成功:跳转. 1.在认证结果中促发通知给 DetectionViewContr

C#人脸识别

C#百度人脸识别 最近看到一只我家徒儿发来的链接,原来是一堆百度AI的SDK,于是一时兴起就做了一只人脸识别,喵喵喵(●'?'●) 一.准备工作 首先,当然是下载SDK啦:http://ai.baidu.com/sdk#sdk-category-bfr,可以根据自己的语言选择,在这里使用C# WPF 做示例 SDK里的文件大概是酱紫: FaceDemo.cs : 官方示例文件 AipSdk.dll : 需要调用的SDK AipSdk.XML : SDK注释 Newtonsoft.Json.dll

OpenCV — 人脸识别

前段时间弄过一下人脸识别相关的东西,记录一下 撰写不易,转载需注明出处:http://blog.csdn.net/jscese/article/details/54409627本文来自 [jscese]的博客! 概念 FaceDetect 人脸检测 在一张图像中判断是否存在人脸并找出人脸所在的位置 FaceRecognize 人脸识别 在人脸检测的基础上收集人脸数据集合进行处理保存信息,将输入人脸与保存的信息进行比对校验,得到是否为其中某个人脸 特征值 以某种特定规则对输入源进行处理得到具有唯一