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 是一个用原生的思想搭建 ...
随机推荐
- Asp.Net Core 轻松学-在.Net Core 中使用钩子
前言 Host startup hook,是2.2中提供的一项新的功能,通过使用主机启动钩子,允许开发人员在不修改代码的情况下,在服务启动之前注入代码:通过使用钩子,可以对已部署好的服务在服务 ...
- java基础(十)-----Java 序列化的高级认识
将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serializable 接口,使用 ...
- org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component
原因:jdk1.8和你所用框架(spring+springMVC+mybatis)中spring框架的版本有问题, 解决方法:更换jdk1.7或者1.6
- java实现 批量转换文件编码格式
一.场景说明 不知道大家有没有遇到过之前项目是GBK,现在需要全部换成UTF-8的情况.反正我是遇到了. eclipse可以改变项目的编码格式,但是文件如果直接转换的话里面的中文就会全部乱码,需要先复 ...
- int 与 Integer 的区别
int和Integer的区别 Integer是int的包装类,int则是java的一种基本数据类型 Integer变量必须实例化后才能使用,而int变量不需要 Integer实际是对象的引用,当new ...
- Java设计模式---Strategy策略模式
参考于 : 大话设计模式 马士兵设计模式视频 1.场景介绍 购物网站上有一个产品,有三个字段,档次,价格,重量. 有些同学喜欢轻的,有些手头紧,想要便宜的,有些喜欢档次高的. 那么我们为了提高网站用户 ...
- javascript原型与原型链,prototype、__proto__、constructor
javascript通过构造函数(constructor)和原型链来(prototype chain)实现其他面向对象语言的类概念.ES6语法中引入了“类”(class)的概念,但只是一个语法糖,只是 ...
- android studio gradle 更新方法。
Android studio更新 第一步:在你所在项目文件夹下:你项目根目录gradlewrapper gradle-wrapper.properties (只要在打开项目的时候选OK,这个文件就 ...
- 【English】十一、一般疑问句
一.一般疑问句定义 参考:英语语法中的一般疑问句和特殊疑问句的区别 英语一般疑问句句型结构 能用yes / no(或相当于yes / no)回答的问句. 二.一般疑问句的句子结构,三种 be动词: ...
- JMeter写入文件
之前我们推文讨论过如何使用jmeter读取文件, 比如csv, txt文件读取, 只要配置csv数据文件, 即可非常容易的从文件中读取想要的数据, 但是如果数据已经从API或者DB中获取, 想存放到 ...