netcore百度人脸识别httpsdk实战:基于c#asp.netcorenet6(代码片段)

厦门德仔 厦门德仔     2022-12-04     356

关键词:

预计这是第一篇介绍在ASP.NET CORE 3.1平台下使用百度人脸识别在线sdk的文章,主要介绍人脸1:n检测/活体检验/人脸注册三大关键功能。
先看几个效果图吧
(1)人脸1:N检测,返回人脸对应用户信息

(2)活体检测:识别活体还好图片,防止人脸作弊

(3)人脸注册:检测用户是否存在

开始
在正式开始之前,需要一些准备以及预备知识,这里可以参考https://www.cnblogs.com/xiongze520/p/10387355.html以及https://www.cnblogs.com/xiongze520/p/10688545.html,讲的很详细。这里主要将后端的代码逻辑。

(1)人脸注册

在人脸注册前需要检测人脸库是否存在该人脸,已经存在了,则终止注册行为

代码如下:改方法接受前端返回的data64的图片字节串流,调用百度人脸识别接口方法进行判断,这里写了一个_faceEFService的数据库服务类,采用了EF core, var userModel = _faceEFService.GetByGuiIdAsync(userId).Result;返回数据库中userId对应的用户信息,其中userId是在注册人脸的时候,就保存到了百度云控制后台

public IActionResult CheckIfUserHave(string imgData64FromAjax)
        
            imgData64 = imgData64FromAjax;
            string ApiKey = "ApiKey ";
            string SecretKey = "SecretKey ";
            var client = new Baidu.Aip.Face.Face(ApiKey, SecretKey);
            client.Timeout = 10000;
            var imageType = "BASE64";  //BASE64   URL
            string requestImgData64 = imgData64FromAjax;
            requestImgData64 = requestImgData64.Substring(imgData64.IndexOf(",") + 1);
            string groupId = "FaceGroupForNetCore";
            //string userId = new Guid().ToString();
            var findUserJsonResult = client.Search(requestImgData64, imageType, groupId);  //会出现222207(未找到用户)这个错误
 
            if (findUserJsonResult["error_code"].ToString() == "0"
                 && findUserJsonResult["error_msg"].ToString() == "SUCCESS")
            
                var userList = JArray.Parse(findUserJsonResult["result"]["user_list"].ToString());
                foreach (var user in userList)
                
                    var score = Convert.ToInt32(user["score"].ToString().Substring(0, 2));
                    if (score > 80)
                    
                        Guid userId = Guid.Parse(user["user_id"].ToString());
 
                        var userModel = _faceEFService.GetByGuiIdAsync(userId).Result;
                        if (userModel != null)
                        
                            var returnModel = new FaceReconitionModel
                            
                                UserName = userModel.UserName
                            ;
 
                            return Json(returnModel.UserName);
                        
                    
                
            
            if (findUserJsonResult["error_code"].ToString() == "222202")
            
                return Json("无法识别到人脸");
            
            return View();
        

(2)人脸注册:这块没啥了,大家应该都懂,就不介绍了。。

   [HttpPost]
        public IActionResult FaceRegister(
            [FromForm] FaceReconitionModel faceReconitionModel)
        
            string ApiKey = "ApiKey ";
            string SecretKey = "ApiKey ";
            var client = new Baidu.Aip.Face.Face(ApiKey, SecretKey);
            client.Timeout = 10000;
 
            var imageType = "BASE64";  //BASE64   URL
            imgData64 = imgData64.Substring(imgData64.IndexOf(",") + 1);
            string groupId = "FaceGroupForNetCore";
            string userId = Guid.NewGuid().ToString("N");
            var userInfo = Guid.NewGuid();
            var options = new Dictionary<string, object>
                        "user_info", userInfo.ToString(),
                       "quality_control", "NORMAL",
                        "liveness_control", "LOW",
                      "action_type", "REPLACE"
                ;
            var addUserFace = client.UserAdd(imgData64, imageType, groupId, userId, options);
            var model = new FaceMdel
            
                UserName = faceReconitionModel.UserName,
                Month = faceReconitionModel.Month.ToString(),
                Sex = faceReconitionModel.Sex,
                Works = faceReconitionModel.Works,
                Position = faceReconitionModel.Position,
                GuidId = Guid.Parse(userId)
            ;
            _faceEFService.AddAsync(model);
            //   _faceEFService.SaveChangeAsnc();
            return RedirectToAction("index");
        

(3)人脸活体检测以及人脸1:N检测

这里只要是人脸活体检测以及1:N检测,根据返回的UserId查找出数据库中对应的用户信息,依然很简单,大家应该看的懂。。

    public IActionResult FaceDistinguish(string faceImgData64)
        
            FaceImgData64 = faceImgData64;
            string ApiKey = "ApiKey ";
            string SecretKey = "ApiKey ";
            var client = new Baidu.Aip.Face.Face(ApiKey, SecretKey);
            client.Timeout = 10000;
            //   var imageType = "BASE64";  //BASE64   URL
            faceImgData64 = faceImgData64.Substring(faceImgData64.IndexOf(",") + 1);
            //  string groupId = "FaceGroupForNetCore";
 
            var faces = new JArray
                        
                            new JObject
                            
                                "image", faceImgData64,
                                "image_type", "BASE64"
                            
                        ;
            var checkLiving = client.Faceverify(faces);
            //"error_code": 222202,
 
            if (checkLiving["error_code"].ToString() == "0" && checkLiving["error_msg"].ToString() == "SUCCESS")
            
                // var Living_result = Newtonsoft.Json.JsonConvert.DeserializeObject(LivingObj["result"].ToString()) as JObject;
                var livingList = checkLiving["result"]["thresholds"];
                double faceLiveness = Convert.ToDouble(checkLiving["result"]["face_liveness"].ToString());
                //var frr = Newtonsoft.Json.JsonConvert.SerializeObject(Living_list.ToString());
                //var frr_1eObj = Newtonsoft.Json.JsonConvert.DeserializeObject(Living_list.ToString()) as JObject;
                double frr_1e4 = Convert.ToDouble(livingList["frr_1e-4"].ToString());
                if (faceLiveness < frr_1e4)
                
                    return Json("不是活体");
                
            
            if (checkLiving["error_code"].ToString() == "222202")
            
                return Json("无法识别到人脸");
            
            return Json("活体检验通过");
        

转自:https://blog.csdn.net/weixin_41372626/article/details/108370961

来演示一下:
1.注册百度账号,导入人脸库,设置组和用户ID(与本地数据库ID一致)
2.免费领取资源(才允许调用百度API)
3.nuget 安装百度.AI
4.识别后查询本地实体数据并返回。



本地localhost运行正常,发布到服务器,浏览器版本较高。存在打开摄像头方法权限过高。
TypeError: Cannot read property ‘getUserMedia’ of undefined

步骤:
1、在浏览器的地址栏里输入 chrome://flags/#unsafely-treat-insecure-origin-as-secure  并回车
然后作如下修改
输入框中填写需要开启的域名,也就是你报错的地址,譬如 http://example.com",多个以逗号分隔。


2、修改完后,在右下角点击重启

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

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

人脸识别完整项目实战:完整项目案例运行演示

一、前言本文是《人脸识别完整项目实战》系列博文第1部分,第一节《完整项目运行演示》,本章内容系统介绍:人脸系统核心功能的运行演示。本内容已经录制成视频课程,详见网易云课堂。整个《人脸识别完整项目实战》... 查看详情

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

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

人脸识别完整项目实战(14):实时人脸特征点标定程序设计

一、前言本文是《人脸识别完整项目实战》系列博文第14章《实时人脸特征点标定程序设计》,本章内容详细介绍Win10环境下,基于VisualStudio2015+Opencv+Dlib开发环境,如何实现实时视频流人脸特征点标定程序的设计。本文内容已经... 查看详情

基于javaweb人脸识别注册登录系统(代码片段)

...容开始---现在是2019年,人脸识别技术已经相当成熟了,百度自2017年发布人脸识别技术,已经被广泛应用,不管从现在的iphoneX掀起的面部解锁到手机应用端的各种人脸认证,这一技术已经悄然升息的方便了我们的生活,但是在web... 查看详情

[深度应用]·实战掌握dlib人脸识别开发教程

[深度应用]·实战掌握Dlib人脸识别开发教程个人网站--> http://www.yansongsong.cn/项目GitHub地址--> https://github.com/xiaosongshine/dlib_face_recognition1.背景介绍Dlib是一个深度学习开源工具,基于C++开发,也支持Python开发接口,... 查看详情

基于百度飞浆平台(easydl)设计的人脸识别考勤系统(代码片段)

1.1前言随着社会经济和科学技术的飞速发展,人们的生活变得更加智能化、科学化。信息安全逐渐引起人们的关注,信息的应用不断进入人们的视野。普通的身份识别方式并不能有效保证信息安全。生物识别技术以其稳... 查看详情

☀️机器学习实战☀️基于yolo网络的人脸识别|(文末送机器学习书籍~)(代码片段)

🎉粉丝福利送书:《机器学习入门:基于数学原理的Python实战》🎉点赞👍收藏⭐留言📝即可参与抽奖送书🎉本周五(9月10日)晚上20:00将会在【点赞区和评论区】抽一位粉丝送这本书~🙉🎉... 查看详情

王文峰《人脸识别原理与实战以matlab为工具》pdf及代码+《人脸识别原理及算法(沈理)》pdf+学习参考

人脸识别是当今世界科技领域攻关的高精尖技术。《人脸识别原理及算法:动态人脸识别系统研究》系统介绍了人脸识别研究领域的研究状况以及作者在人脸识别领域的研究工作和研究成果,全书共分为3个部分。《人脸识别原... 查看详情

基于人脸识别技术实战开发人证比对访客系统

最近有个小区用到了虹软的人脸识别,效果还不错。又有一个项目要用人证访客对比,分享一下项目,希望可以帮到有需要的。码字前先上项目地址:https://gitee.com/panmingzhi/IdCardFaceIdentifier首先是读证的问题,我们使用的是华视CV... 查看详情

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

🎬博客主页:https://xiaoy.blog.csdn.net🎥本文由呆呆敲代码的小Y原创,首发于CSDN🙉🎄学习专栏推荐:Unity系统学习专栏🌲游戏制作专栏推荐:游戏制作🌲Unity实战100例专栏推荐:Unity实战... 查看详情

树莓派---基于opencv实现人脸识别

目录你可以去调百度人脸识别的API,我这里是基于OpenCV进行人脸识别OpenCV(OpensourceComputerVisionLibrary)是一个开源的计算机视觉库,支持与计算机视觉和机器学习相关的众多算法,用C++编写1.安装OpenCV  查看详情

c#实现基于ffmpeg加虹软arcface的人脸识别demo(代码片段)

...安全的调用人脸识别相关API。具体见github地址。新增对.NETCore的支持,在Linux(Ubuntu下)测试通过。具体的使用例子和Demo详解,参见博客地址。更新:增加对V1.1两个新功能的支持。关于人脸识别目前的人脸识别已经相对成熟,有... 查看详情

附源码基于opencv的python人脸识别

...的图像人脸和存放照片的目录下的人脸依次进行对比调用百度的API人脸识别接口返回相似度的值进行识别识别成功和失败均有提示成功时能将对应的信息写入到识别 查看详情

附源码基于opencv的python人脸识别

...的图像人脸和存放照片的目录下的人脸依次进行对比调用百度的API人脸识别接口返回相似度的值进行识别识别成功和失败均有提示成功时能将对应的信息写入到识别 查看详情

『python开发实战菜鸟教程』实战篇:一文带你了解人脸识别应用原理及手把手教学实现自己的人脸识别项目(代码片段)

...x01:引子0x02:环境搭建0x03:开发实战 1.实现人脸检测标记2.人脸特征点提取3.人脸识别验证0x04:后记开源GitHub地址--> https://github.com/xiaosongshine/dlib_face_recognition推荐补充阅读:『Python开发实战菜鸟教程』工... 查看详情

微信小程序|基于百度ai从零实现人脸识别小程序(代码片段)

写在前面针对互联网上已有的人脸识别小程序项目,很多只是基于手动拍照,然后上传到SDK进行识别。这一过程完全脱离实际场景!无法直接使用!本文项目是基于微信摄像头中的实时视频帧数据,通过实时... 查看详情

opencv-python实战(17)——人脸识别详解(代码片段)

OpenCV-Python实战(17)——人脸识别详解0.前言1.人脸识别简介2.使用OpenCV进行人脸识别2.1使用OpenCV进行人脸识别流程示例3.使用dlib进行人脸识别4.使用face_recognition进行人脸识别小结系列链接0.前言人脸处理是人工智能中的一... 查看详情