ai:人脸识别

天戈朱 天戈朱     2022-08-19     386

关键词:

       微软提供的人脸识别服务可检测图片中一个或者多个人脸,并为人脸标记出边框,同时还可获得基于机器学习技术做出的面部特征预测。可支持的人脸功能有:年龄、性别、头部姿态、微笑检测、胡须检测以及27个面部重要特征点位置等。FaceAPI 提供两个主要功能: 人脸检测和识别

目录:

  • 申请subscription key
  • 示例效果
  • 开发示例
  • AForge.Net

申请订阅号


示例效果 


  • winform示例版,调用微软提供的SDK,见下面介绍
  •  微信集成版, 如下图,开发过程中使用 http 直接调用

开发过程


  • 参见:https://www.azure.cn/cognitive-services/en-us/face-api/documentation/get-started-with-face-api/GettingStartedwithFaceAPIinCSharp
  • 在VS工程的NuGet Package Manager 管理窗口,程序包源:nuget.org, 搜索 Microsoft.ProjectOxford.Face ,进行安装
  • sdk调用示例代码: 图片转byte[]
     using (Stream s = new MemoryStream(bytes))
                {
                    var requiredFaceAttributes = new FaceAttributeType[] {
                        FaceAttributeType.Age,
                        FaceAttributeType.Gender,
                        FaceAttributeType.Smile,
                        FaceAttributeType.FacialHair,
                        FaceAttributeType.HeadPose,
                        FaceAttributeType.Glasses
                    };
                    var faces = await Utils.FaceClient.DetectAsync(s,
                        returnFaceLandmarks: true,
                        returnFaceAttributes: requiredFaceAttributes);
              }
  •  也可直接使用http请求,参见:https://dev.projectoxford.ai/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236

  • 参数信息如下:

  •  http post 示例代码:

    string URL = "你图片的url";
    
                var client = new HttpClient();
                var queryString = HttpUtility.ParseQueryString(string.Empty);
    
                // Request headers
                client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "你申请的key");
    
                // Request parameters
                queryString["returnFaceId"] = "true";
                queryString["returnFaceLandmarks"] = "false";
                queryString["returnFaceAttributes"] = "age,gender,smile";
                var uri = "https://api.projectoxford.ai/face/v1.0/detect?" + queryString;
    
                HttpResponseMessage response;
                byte[] byteData = Encoding.UTF8.GetBytes("{\"url\":\"" + URL + "\"}");
    
                using (var content = new ByteArrayContent(byteData))
                {
                    content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    
                    var task = client.PostAsync(uri, content);
                    response = task.Result;
    
                    var task1 = response.Content.ReadAsStringAsync();
                    string JSON = task1.Result;
                }
  • 人脸识别http参数如下:(注意:要识别出人脸的身份,你必须先定义person,参见 personGroup 、Person介绍 https://www.azure.cn/cognitive-services/en-us/face-api/documentation/face-api-how-to-topics/howtoidentifyfacesinimage

  • 示例代码
    var client = new HttpClient();
                var queryString = HttpUtility.ParseQueryString(string.Empty);
                client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "XXX");
                var uri = "https://api.projectoxford.ai/face/v1.0/identify ";
                HttpResponseMessage response;
                byte[] byteData = Encoding.UTF8.GetBytes("{\"faceIds\":[\"XXX\"],\"personGroupId\":\"XXX\",\"maxNumOfCandidatesReturned\":5}");
    
                using (var content = new ByteArrayContent(byteData))
                {
                    content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    
                    var task = client.PostAsync(uri, content);
                    response = task.Result;
    
                    var task1 = response.Content.ReadAsStringAsync();
                    string JSON = task1.Result;
                }
  • 根据人脸信息识别出身份后,获取个人信息,参数如下:
  • 示例代码
    var client = new HttpClient();
                var queryString = HttpUtility.ParseQueryString(string.Empty);
                client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "你申请的key");
                var uri = "https://api.projectoxford.ai/face/v1.0/persongroups/你上传的分组/persons/" + personID;
    
                var task = client.GetStringAsync(uri);
                var  response = task.Result;
                return JsonConvert.DeserializeObject<Person>(task.Result);
  •  

AForge.Net


  •  AForge.Net是一个专门为开发者和研究者基于C#框架设计的,他包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,模糊系统,机器人控制等领域, 我主要使用这个类库中的vedio 来启动笔记本摄像头进行图片抓拍
  • 类库下载地址: http://www.aforgenet.com/framework/downloads.html
  • 添加控件: 在工具箱中添加AForge.Control,VideoSourcePlayer就是我们要用的控件
  • 示例代码如下:声明变量
    FilterInfoCollection videoDevices;
    VideoCaptureDevice videoSource;
     public int selectedDeviceIndex = 0;
  • 启动摄像头示例代码
    videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
                selectedDeviceIndex = 0;
                videoSource = new VideoCaptureDevice(videoDevices[selectedDeviceIndex].MonikerString);//连接摄像头。
                videoSource.VideoResolution = videoSource.VideoCapabilities[selectedDeviceIndex];
                videoSourcePlayer1.VideoSource = videoSource;
                // set NewFrame event handler
                videoSourcePlayer1.Start();
  •  抓拍示代码

    if (videoSource == null)
                    return;
                Bitmap bitmap = videoSourcePlayer1.GetCurrentVideoFrame();
                string fileName = string.Format("{0}.jpg", DateTime.Now.ToString("yyyyMMddHHmmssfff"));
                this.filePath = string.Format("c:\\temp\\{0}", fileName);
                bitmap.Save(this.filePath, ImageFormat.Jpeg);
                this.labelControl1.Text = string.Format("存储目录:{0}", this.filePath);
                bitmap.Dispose();
                videoDevices.Clear();
  •  窗体关闭事件

    if (this.videoSource != null)
                {
                    if (this.videoSource.IsRunning)
                    {
                        this.videoSource.Stop();
                    }
                }
  •  示例效果

人脸识别私有化部署:业务系统集成,ai赋能行业

...AI能力,就成为了摆在我们面前的一个非常实际的问题。人脸识别私有化部署怎么快速扩展人脸识别能力通过集成人脸识别私有化部署能力,无需花费大量人力、时间成本,在一周内快速集成人脸识别能力。快速对业务系统进行A... 查看详情

百度智能云人脸识别认证

https://ai.baidu.com/ai-doc/FACE/Ekrby2oi2APP接入时区图APP人脸https://ai.baidu.com/ai-doc/FACE/ak8tvycmh 查看详情

百度智能云人脸识别认证

https://ai.baidu.com/ai-doc/FACE/Ekrby2oi2APP接入时区图APP人脸https://ai.baidu.com/ai-doc/FACE/ak8tvycmh 查看详情

百度智能云人脸识别认证

https://ai.baidu.com/ai-doc/FACE/Ekrby2oi2APP接入时区图APP人脸https://ai.baidu.com/ai-doc/FACE/ak8tvycmh 查看详情

百度智能云人脸识别认证

https://ai.baidu.com/ai-doc/FACE/Ekrby2oi2APP接入时区图APP人脸https://ai.baidu.com/ai-doc/FACE/ak8tvycmh 查看详情

opencv_人脸检测模型训练人脸识别

人脸检测、模型训练、人脸识别2018-08-15  今天给大家带来一套人脸识别一个小案例,主要是帮助小伙伴们解决如何入门OpenCV人脸识别的问题,现在的AI行业比较火热,AI技术的使用比较广泛。就拿现在的只能手机来说吧,现在... 查看详情

ai人脸检测和人脸识别是一个概念吗?有什么区别?

人脸检测-也称为面部检测-是一种基于人工智能(AI)的计算机技术,用于在数字图像中查找和识别人脸。人脸检测技术可应用于各个领域——包括安全、生物识别、执法、娱乐和个人安全——以提供对人员的实时监控和跟踪。... 查看详情

ai抗疫系统是如何做到戴口罩也能识别出人的身份信息的?

...事人工智能领域的小视科技公司研发成功,早年的AI智能人脸识别系统需要将一张完整的人脸放在识别系统前才能准确识别。而小视科技公司在疫情发生期间,仅仅用了两周时间便研发出了能将戴口罩的人们识别出真实身份,而... 查看详情

ai实战篇|基于ai开放平台实现人脸识别对比功能,超详细教程附带源码

查看详情

基于百度ai开放平台的人脸识别及语音合成(代码片段)

基于百度AI的人脸识别及语音合成课题课题需求(1)人脸识别在Web界面上传人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口识别人脸特征,接收平台返回的人员年龄、性别、颜值等信息,将信息返... 查看详情

ai人脸识别/车辆识别/口罩识别智能分析网关烟火检测算法的配置及使用

...场景中的监控视频图像进行智能识别与分析,可提供人脸、人体、车辆、烟火、物体、行为等识别、抓拍、比对、告警等服务 查看详情

ai人脸识别/车辆识别智能分析网关微信端告警消息推送的开发流程

...为等进行检测识别与定位、追踪、统计,具体可包括人脸检测与识别、车辆检测与识别、车牌识别、电动车侦测、烟火识别、猫/狗/老鼠识别、安全帽佩戴检测、口罩佩戴检测、行为识别等。智能分析网关与EasyCVR视频融合平... 查看详情

python+opencv人脸识别身份认证系统设计:专栏总述

本专栏依托于Python编程语言,在内容上尽可能涵盖了人脸识别的各个技术模块,从人脸数据采集、数据预处理、数据分析、人脸识别模型的训练到最后的人脸识别,均有详细的操作步骤和注释代码,能帮助学习者... 查看详情

ai人脸识别/烟火检测/车牌识别智能分析网关新增mqtt服务(代码片段)

...场景中的监控视频图像进行智能识别与分析,可提供人脸、人体、车辆、烟火、物体、行为等识别、抓拍、比对、告警等服务,支持对场景中的异常及违规现象进行精准研判、数据分析、结果汇聚、智能预警、辅助决策... 查看详情

ai人脸检测/行为识别智能分析网关8大智慧应用场景分析

...场景中的监控视频图像进行智能识别与分析,可提供人脸、人体、车辆、烟火、物体、行为等识别、抓拍、比对、告警等服务,支持对场景中的异常及 查看详情

基于python的百度ai人脸识别api接口(可用于opencv-python人脸识别)(代码片段)

基于Python的百度AI人脸识别API接口(可用于OpenCV-Python人脸识别)资源:https://download.csdn.net/download/weixin_53403301/43644312之前的项目:【最新】基于OpenCV的Python人脸识别、检测、框选(遍历目录下所有照片依次识别... 查看详情

干货|ai人脸识别之人脸搜索(代码片段)

本文档将利用京东云AISDK来实践人脸识别中的人脸搜索功能,主要涉及到分组创建/删除、分组列表获取、人脸创建/删除、人脸搜索,本次实操的最终效果是:创建一个人脸库,拿一张图片在人脸库中搜索出相似度最高的一张,... 查看详情

ai安全帽识别/人脸识别智能分析网关在easycvr配置告警信息推送

...算法框架软件,可支持AI视频智能分析功能,包括人脸识别、车辆检测及识别、烟火识别、物体识别、行为识别、轨迹跟踪等,在视频监控场景中具有重要的应用意义。将智能分析网关与EasyCVR视频融合平台结合使用&#x... 查看详情