iOS 使用百度的人脸识别登录验证,解决认证失败不跳转界面连续认证,认证相似度对比
在使用百度人脸识别出现的问题:小米6调用摄像机是黑白的一个情况,iOS上会出现识别准确性上的问题(多次代开认证,会通过)
人脸识别(活体验证):
1、芝麻认证 : 0.4元/次,需要企业企业认证、不能有与芝麻信用类似的业务,如:保险、、、
2、旷视 : 0.5/次.企业认证、业务限制
3、 百度人脸识别 :免费的---可以同时处理10条认证, 企业认证,
4、科大讯飞 人脸检测 2000万次 1年 7.2万 活体检测只能上传一段视频来检测 需要和商务沟通
我们使用的百度,,,,
需求:需要在认证中不跳转界面,失败:继续认证、成功:跳转。
----------------------------------------------------------
一、在认证结果中促发通知给 DetectionViewController 认证结果,
-(void)baiduVerifiResouts:(NSNotification*)notification{
if ([notification.object isEqualToString:@"yes"]) {
//认证成功
[self closeAction];
}else{
//认证失败
self.hasFinished = NO;
[IDLFaceDetectionManager.sharedInstance reset];
[[FaceSDKManager sharedInstance] clearTrackedFaces];
[[IDLFaceDetectionManager sharedInstance] startInitial];
[self.videoCapture startSession];
self.videoCapture.delegate = self;
self.videoCapture.runningStatus = YES;
}
}
2、 需要将调用 closeAction 方法的地方注释
---------------------------------------------------------------------
二、认证相似度对比
在返回识别结果中,会把所有相似的人给返回,需要自己筛选出自己的相似度进行 对比
1、识别结果请求
[[NetAccessModel sharedInstance] searchFaceWithImageBaseString:bestImageStr userName:UserModelonline.userId completion:^(NSError *error, id resultObject) {
NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:resultObject options:NSJSONReadingAllowFragments error:nil];
NSInteger type = ;
NSString* tip = @"识别失败!";
if ([dict[@"error_code"] intValue] == ) {
//获取层级字典
NSDictionary* result = dict[@"result"];
NSArray * user_list =result[@"user_list"];
//判断相似度符合的人数 大于0 继续
if ([result[@"user_list"] count] >
) {
//获取自己的相似度 进行对比
NSMutableDictionary * userDict = [NSMutableDictionary dictionary];
for (int i=; i<user_list.count; i++) {
NSDictionary * dict = user_list[i];
//根据自己的uid 获取到自己的相似度是多少
if ([dict[@"user_id"] isEqualToString:UserModelonline.userId]) {
[userDict setDictionary:dict];
break;
}
}
//相似度进行对比 大于90了 为识别成功
if (userDict.allKeys.count > ) {
if ([userDict[@"score"] intValue] > ) {
type = ;
tip = @"识别成功";
}
}else{
NSLog(@"----------------------------------没有与自己相似的人啊");
}
} else {
tip = @"活体检测识别失败";
}
} else {
NSLog(@"失败了%@ = %@,%@,%@",UserModelonline.userId,dict[@"error_code"],dict[@"error_msg"],dict[@"log_id"]);
}
if(type==){
//成功了
}else{
//失败了
}
三、 人脸注册 成功一次上传一张照片,最大上限20,超过后返回 报错
iOS 使用百度的人脸识别登录验证,解决认证失败不跳转界面连续认证,认证相似度对比的更多相关文章
- 基于iOS用CoreImage实现人脸识别
2018-09-04更新: 很久没有更新文章了,工作之余花时间看了之前写的这篇文章并运行了之前写的配套Demo,通过打印人脸特征CIFaceFeature的属性,发现识别的效果并不是很好,具体说明见文 ...
- 安排上了!PC人脸识别登录,出乎意料的简单
本文收录在个人博客:www.chengxy-nds.top,技术资源共享. 之前不是做了个开源项目嘛,在做完GitHub登录后,想着再显得有逼格一点,说要再加个人脸识别登录,就我这佛系的开发进度,过了 ...
- 千呼万唤,web人脸识别登录完整版来了,这样式我爱了
大家好,我是小富~ 在我最开始写文章的时候曾经写过一篇文章 基于 Java 实现的人脸识别功能,因为刚开始码字不知道写点什么,就简单弄了个人脸识别的Demo. 但让我没想到的是,在过去的一年里有好多好 ...
- 基于百度AI人脸识别技术的Demo
编写demo之前首先浏览官方API:http://ai.baidu.com/docs#/Face-API/top 下面是源码: package com.examsafety.test; import ...
- PyQt5+Caffe+Opencv搭建人脸识别登录界面
PyQt5+Caffe+Opencv搭建人脸识别登录界面(转载) 最近开始学习Qt,结合之前学习过的caffe一起搭建了一个人脸识别登录系统的程序,新手可能有理解不到位的情况,还请大家多多指教. 我的 ...
- 百度离线人脸识别sdk的使用
1.1下载sdk运行 百度离线人脸识别sdk的使用 1.2配置环境 添加至项目,可以拖动复制或者以类库形式添加face-resource此文件夹 放到根目录上一层 激活文件与所有dll引用放到根目录嫌 ...
- 百度AI人脸识别的学习总结
本文主要分以下几个模块进行总结分析 项目要求:运用百度AI(人脸识别)通过本地与外网之间的信息交互(MQService),从而通过刷脸实现登陆.签字.会议签到等: 1.准备工作: 内网:单击事件按钮— ...
- 基于C# 调用百度AI 人脸识别
一.设置 登录百度云控制台,添加应用-添加人脸识别,查找,对比等. 记住API Key和Secret Key 二.创建Demo程序 1.使用Nuget安装 Baidu.AI 和 Newtonsoft. ...
- apicloud地图、即时通讯、人脸识别登录、以及平时踩过得坑
apicloud技术浅谈 导语 apicloud 的学习也有一段时间了,这是我个人的一些经验,和踩过的坑,希望对大家能有一些帮助. apicloud的知识准备 apicloud 是一个用原生的思想搭建 ...
随机推荐
- 1.4部署到IIS「深入浅出ASP.NET Core系列」
希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. 很多人第一次在IIS中部署Asp.Net Core App的人都会遇到问题,会发现原来的部署方式无法运行Asp.N ...
- cocos creator主程入门教程(九)—— 瓦片地图
五邑隐侠,本名关健昌,10年游戏生涯,现隐居五邑.本系列文章以TypeScript为介绍语言. 这一篇介绍瓦片地图,在开发模拟经营类游戏.SLG类游戏.RPG游戏,都会使用到瓦片地图.瓦片地图地面是通 ...
- 初步认识Swiper_前端交互控制神器_滚动3D切换等特效简单制作
前言: 本人在项目的工作中负责研发,页面及交互基本都是交给前端去做的.以前前端写的东西大概都知道,都是一些JS,CSS和HTML等的一些基本控制,都懂!但是今天前端突然做了一个具有特殊效果的DOM:页 ...
- Spring Cloud 系列之 Eureka 实现服务注册与发现
如果你对 Spring Cloud 体系还不是很了解,可以先读一下 Spring Cloud 都有哪些模块 Eureka 是 Netflix 开源的服务注册发现组件,服务发现可以说是微服务架构的核心功 ...
- Android - 文字向上翻滚效果的实现
本文转载https://xwc2013.iteye.com/blog/1976051 今天看到了一种文字翻滚的效果,感觉非常实用.所以就自己试着做出了这种效果,现在把它分享给大家! 首先在res目录下 ...
- 链表倒数第k个节点
1.一种较笨的办法是先将链表元素入栈,然后出栈找到倒数第k个节点值,再拿着值遍历链表去找到对于节点. 时间复杂度:O(n) (3n 遍历-出栈-遍历) 空间复杂度:O(n) (一个栈) 2.快慢指针, ...
- Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fabric模块
Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fab ...
- 如何将外部数据库 导入到系统的SQL中
打开数据库sql管理 在数据库中新建查询 如何输入: exec sp_attach_db @dbname='YourDataBaseName', @filename1='mdf文件路径', @fi ...
- Rabbitmq集群高可用
转载:https://www.cnblogs.com/flat_peach/archive/2013/04/07/3004008.html RabbitMQ是用erlang开发的,集群非常方便,因为e ...
- 利用Sonar定制自定义扫描规则
上有3种方法可以自定义soanr的代码校验规则: 直接在sonar的web接口中增加XPath规则: 通过插件的功能来增加自定义规则,比如checkstyle,pmd等插件是允许自定义规则的: 通 ...