调用的dll库文件

代码模块

首先是连接开启电脑摄像头,拍照后保存照片到本地。
然后是调用百度云:
1.获取百度云access_token与百度云连接;
2.建立控制太应用:人脸识别;
3.人脸库的人脸注册,讲摄像头拍下保存到本地的照片上传到人脸库;
4人脸搜索、人脸对比等。

注意

百度云有针对各种语言的示例代码,需要自我完成的代码部分主要是:
1.摄像头开启,拍照保存图片到本地。
2.将百度云的返回Json格式中的某个属性值提取出来,这个是本代码里面个人觉得刚接触C#比较费时间的部分。

上代码

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net.Http;
using System.IO;
using System.Net;
using AForge.Video.DirectShow;
using System.Drawing.Imaging;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;namespace WpfApp2
{public partial class 人脸识别 : Form{FilterInfoCollection videoDevices;VideoCaptureDevice videoSource;public int selectedDeviceIndex = 0;public 人脸识别(){InitializeComponent();}private void textBox1_TextChanged(object sender, EventArgs e){}//获取包含access_token属性的Json格式的返回值public static class AccessToken{// 调用getAccessToken()获取的 access_token建议根据expires_in 时间 设置缓存// 返回token示例public static String TOKEN = "24.adda70c11b9786206253ddb70affdc46.2592000.1493524354.282335-1234567";// 百度云中开通对应服务应用的 API Key 建议开通应用的时候多选服务private static String clientId = "tFdkznWHGXy8hFgUsABqAPpM";// 百度云中开通对应服务应用的 Secret Keyprivate static String clientSecret = "VlimF4g7dYyGyNcdbwbYiFvkpxFllkO0";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;Console.WriteLine(result);return result;}}//百度云人懒检测与属性分析,获得人脸的一些特征值public class FaceDetect{// 人脸检测与属性分析public static string detect(string oyp){//获取json格式中的access_token属性值var jsonstring = AccessToken.getAccessToken();var jObject = JObject.Parse(jsonstring);string token = jObject["access_token"].ToString();//百度云示例代码string host = "https://aip.baidubce.com/rest/2.0/face/v3/detect?access_token=" + token;Encoding encoding = Encoding.Default;HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);request.Method = "post";request.KeepAlive = true;//保存在本地E盘var value = File.ReadAllBytes("E:/ppp" + oyp);//百度云 C#sdk文档说明:需要BASE64格式 以及我想要获取的属性:age beauty gebderstring imgData64 = Convert.ToBase64String(value);String str = "{\"image\":\"" + imgData64 + "\",\"image_type\":\"BASE64\",\"face_field\":\"age,beauty,gender\"}";//百度云示例代码 不需变更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);//获取人脸检测与属性分析json格式中的 beauty属性值JObject jo = (JObject)JsonConvert.DeserializeObject(result);string val = jo["result"]["face_list"].ToString();JArray ja = (JArray)JsonConvert.DeserializeObject(val);Double st = Convert.ToDouble(ja[0]["beauty"].ToString());return st.ToString();//返回字符串格式给TextBox控件}}//百度云人脸注册,上传本地照片到人脸库public class FaceAdd{// 人脸注册public static string add(string qdb, string name){var jsonstring = AccessToken.getAccessToken();var jObject = JObject.Parse(jsonstring);string token = jObject["access_token"].ToString();string host = "https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add?access_token=" + token;Encoding encoding = Encoding.Default;HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);request.Method = "post";request.KeepAlive = true;var value = File.ReadAllBytes("E:/ppp" + qdb);string imgData64 = Convert.ToBase64String(value);String str = "{\"image\":\"" + imgData64 + "\",\"image_type\":\"BASE64\",\"group_id\":\"922513\",\"user_id\":\"" + name + "\"}";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;}}//百度云人脸搜索,获得相似度进行判断public class FaceSearch{// 人脸搜索public static Double search(string ch){var jsonstring = AccessToken.getAccessToken();var jObject = JObject.Parse(jsonstring);string token = jObject["access_token"].ToString();string host = "https://aip.baidubce.com/rest/2.0/face/v3/search?access_token=" + token;Encoding encoding = Encoding.Default;HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);request.Method = "post";request.KeepAlive = true;var value = File.ReadAllBytes("E:/ppp" + ch);string imgData64 = Convert.ToBase64String(value);String str = "{\"image\":\"" + imgData64 + "\",\"image_type\":\"BASE64\",\"group_id_list\":\"922513\"}";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("人脸搜索:");//获取人脸搜索返回的json格式中的score属性值(相似度)JObject jo = (JObject)JsonConvert.DeserializeObject(result);string val = jo["result"]["user_list"].ToString();JArray ja = (JArray)JsonConvert.DeserializeObject(val);Double st = Convert.ToDouble(ja[0]["score"].ToString());return st;}}//连接/开启摄像头private void button3_Click(object sender, EventArgs e){videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);selectedDeviceIndex = 0;videoSource = new VideoCaptureDevice(videoDevices[selectedDeviceIndex].MonikerString);//连接摄像头。videoSource.VideoResolution = videoSource.VideoCapabilities[selectedDeviceIndex];videoSourcePlayer2.VideoSource = videoSource;// set NewFrame event handlervideoSourcePlayer2.Start();}//保存照片到本地private void button4_Click(object sender, EventArgs e){if (videoSource == null)return;Bitmap bitmap = videoSourcePlayer2.GetCurrentVideoFrame();string fileName = DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-ff") + ".jpg";//textBox3控件里面输出加入人脸库的用户名字string name = textBox3.Text;bitmap.Save(@"E:\ppp" + fileName, ImageFormat.Jpeg);bitmap.Dispose();//将路径传给人脸检测函数,同时将返回值给textBox2:靓丽度:beautytextBox2.Text = FaceDetect.detect(fileName);//将变量值传给搜索函数,注册函数FaceSearch.search(fileName);FaceAdd.add(fileName, name);Double compare = FaceSearch.search(fileName); /* //这部分可删除,这是在WPF中开启这个winform窗口if (compare > 90.0){Window2 win1 = new Window2();win1.Show();this.Close();MessageBox.Show("亲爱的管理员,您已成功登陆");}else{MessageBox.Show("人脸库无存档,您没有权限登陆");}*/}private void textBox3_TextChanged(object sender, EventArgs e){}private void 人脸识别_Load(object sender, EventArgs e){}}
}

代码demo下载地址

C#窗口调用百度云实现人脸识别。(注意代码中添加的控件以及部分传值给函数,亲测百分百可用。)相关推荐

  1. 安卓Android基于百度云平台人脸识别学生考勤签到系统设计

    开发软件:Idea + Mysql + AndroidStudio + 雷电模拟器 基于安卓开发一个人脸识别签到系统,服务器采用springboot框架开发,管理员登录后可以添加和维护人脸信息,添加的 ...

  2. 使用百度云的人脸识别API实现两张照片是否为同一人的判断

    今天是小编第一次使用百度云的人脸识别API,小编是个小白,一路坎坷,经过一天的学习与研究,终于实现了这个功能. 1.下面是在这个过程中使用的所有的工具: IntelliJ IDEA(Java的开发工具 ...

  3. python3调用百度API完成人脸识别,检测人种-年龄-性别-颜值-眼镜

    https://ai.baidu.com/docs#/Face-Detect/top 这个是百度人脸识别api 参考博客:https://blog.csdn.net/qq_38412868/artic ...

  4. 借助百度云平台人脸识别sdk完成网页人脸识别登录demo

    最近在浏览百度云平台人工智能相关产品时,萌生了做一个网页人脸识别登录的demo. 以下是前端代码: 实现在浏览器调用摄像头,捕捉图片后上传到服务器验证. <!DOCTYPE html> & ...

  5. 【Python】调用百度云API文字识别服务 OCR

    # encoding:utf-8 # !/usr/local/bin/python3# 百度云:文字识别服务 # 应用名称:文字识别练习项目import urllib3 from urllib.par ...

  6. 【Python】调用百度云API人脸搜索服务 Face Search

    # encoding:utf-8 # !/usr/local/bin/python3# 百度云:人脸搜索服务 # 应用名称:人脸开锁import urllib3 from urllib.parse i ...

  7. 树莓派+百度云打造人脸识别门禁系统

    先注册一个百度云账号: 然后点击左上角的百度云进入首页: 在首页中选择产品,人工智能,人脸识别,点击进入: 选择立即使用: 在以下页面中由于没用应用,因此点击创建应用,然后直接写上应用名和应用描述就行 ...

  8. koa+vue+百度云实现人脸识别

    百度智能云 1.先去百度智能云注册一个百度智能云账号 2.创建人脸识别应用 进入页面后,在侧边栏选择人脸识别,在应用列表中创建一个新的应用,填写[应用名称]和[应用描述],其他的使用默认值就可以了 3 ...

  9. 基于百度云的人脸识别打卡系统设计

    ***QT人脸识别打卡系统设计*** 系统设计需求 计划做一个基于人脸识别的打卡系统,软件开发平台借助QT软件,人脸识别的模型直接调用百度人脸识别算法,使用在线API的调用,完成人脸识别分析.人脸库是 ...

最新文章

  1. Asp.Net中几种标记符号解释及用法
  2. 【项目管理】记第一次出差到客户现场推进项目验收感悟
  3. Linux的inode的理解
  4. python读取nc文件转成img_使用python的netCDF4库读取.nc文件 和 创建.nc文件[转]
  5. 云开发的数据库权限机制解读丨云开发101
  6. lucene-5.3.1配置(win7x64)
  7. SQL Server 阻塞原因分析
  8. 深入入门正则表达式(java) - 1 - 入门基础
  9. 【转】完美解除Windows7的驱动程序强制签名限制
  10. web of knowledge分析文献引用情况(引)
  11. 百度地图开发android开发,android的百度地图开发(一)
  12. 东芝服务器硬盘参数,性能媲美万转 东芝8TB MG05硬盘体验
  13. win7 计算机登录用户密码,Win7电脑无需知道密码绕过密码登录的操作方法?
  14. 巴菲特致股东的一封信:1991年
  15. optaplanner学习笔记(六)使用Solver求解器
  16. 最全空降Golang资料补给包(满血战斗),包含文章,书籍,作者论文,理论分析,开源框架,云原生,大佬视频,大厂实战分享ppt
  17. TestCenter测试管理工具介绍和环境配置(A)
  18. React组件间信息传递方式
  19. CornerStone 破解 最简单的破解方法
  20. 2022年搭载国产芯片的手机推荐 这3款性能就不错

热门文章

  1. 【JAVA】使用jacob生成的html,关于文字乱码处理,图片无法显示等问题。
  2. C++实现通讯录管理系统(OOP类,链表,文件读取等操作实现通讯录的基本功能)
  3. Windows下安装Anaconda3并使用Jupyter进行基础练习
  4. Swift和OC,是编译型语言、解释性语言、运行时语言?
  5. 如何在Outlook中实现批量发送邮件?
  6. index.jsp 中文乱码问题
  7. 计算机网络安全技术(第3版)pdf,《计算机网络安全技术第三章》.pdf
  8. 062卫星发射时刻时间归化
  9. 使用IDEA打包项目并在tomcat上运行
  10. 计算机一级计数函数,2010等考一级:Excel函数应用教程:统计函数(8)