文章目录

  • 金融实人认证
    • 实人认证整体介绍
    • 实人认证的产品架构
      • 意愿性表达
      • 证件OCR
      • 证件NFC
      • 分级活体
      • 图片内容标签识别
    • 实人认证的产品优势
  • 基于百度AI的身份证图片批量OCR识别
    • 运行环境
    • 注册百度智能云
    • 调用鉴权接口获取token
    • 用python调用API接口
    • 将身份证信息写入excel文件
    • 运行结果

本周的前沿课程由微众银行的钟伟老师、廖梓雄老师和周智老师带来了《金融科技 SaaS 产品》的分享。本次学习报告笔者将分两部分进行:

  1. 对金融实人认证部分以关键词或者提出问题的形式进行简略总结。
  2. 就其中笔者感兴趣的身份证OCR内容,结合课程理论进行实战开发,应用于解决问题。

金融实人认证

实人认证整体介绍

实名认证产品知多少?

  • 人脸验证的时候,页面各种颜色闪烁进行检测验证的过程就是所谓的实名认证产品。

金融级实人认证的市场背景?

  • 解决痛点:线下办理业务成本高、线上身份难以确认、身份冒用问题严重、“无证”情况下身份核验
  • 大势所趋:央行、运营商、保险、直播等都发布文件,表明需求。

实人认证产品对比:传统银行 VS 互联网银行

  • 传统银行:以人工面对面核验为主,其他技术手段辅助验证;人的误识率在 0.6%左右;服务时效、覆盖范围有限。
  • 互联网银行:依托人工智能等技术,形成多维的实人认证体系;人的误识率可低于 0.01%,甚至更低;可满足随时、随地的用户服务。

远程实人认证逐渐成为线上业务服务的基础

  • 2015 年 12 月,央行发布了人民币银行结算账户管理新规,将个人银行账户分为三级,明确了各级别账户的细则管理,从而促进了远程身份验证成为线上业务服务的基础。
  • 远程身份验证成为线上业务服务的基础,人脸识别以其易用性、安全性及完善的个人居民身份信息库为基础,促进了在各互联网行业的身份认证流程的快速应用。

金融级实人认证:产品模块介绍

  • 意愿性验证:让用户配合朗读一段文字,通过 ASR+NLP 去识别用户读取信息与原段文字的完整度和语义匹配度,已达到验证客户意愿性的目的。
  • 活体检测:活体检测通过动作交互、光线交互、静默、语音数字活体等多种方式验证当前核身用户是否真实活体。
  • 人脸比对:OCR、人脸比对(1:1) 等多种方式结合,验证当前用户身份信息,分为:自带比对源认证和权威源认证两种。

金融级实人认证:标准流程

金融级实人认证:整体框架

金融级实人认证:如何保护用户隐私

  • 2021 年 8 月 20 日,十三届全国人大常委会第三十次会议表决通过《中华人民共和国个人信息保护法》,11 月 1 日起施行。
  • 个保法的颁布,更进一步对科技产品在用户使用过程中,如何保护用户隐私提出了更高、更明确的要求。
  • 主要包括:充分授权、最小采集、不留痕迹、信息加密

实人认证的产品架构

意愿性表达

交互流程

设计要点

  • 视觉交互(交互引导设计;适配和兼容性;埋点(流失率分析))
  • 人脸检测(脸完整度检测(姿态、光线等);人脸连续性检测;视频和音频分离录制;留存最佳人脸照片)
  • 语音/语义识别(ASR 语音转文本识别;NLP 文本语义理解并与上送的原文本进行语义理解比较)

证件OCR

文字识别能力

**质量检测能力**
  • 终端 SDK:内置质检能力,可在前端实时甄别模糊、边框不完整等问题图片,自动拍摄完整清晰的合格图片。
  • 服务端:质量检测模块可输出图片清晰分,判断边框不完整、框内遮挡、图片反光等质量告警,供合作方根据自身业务场景灵活配置使用。
**证件 OCR :真伪辨别**
  • 复印件告警

    • 【攻击手段】攻击者并无身份证原件,采用黑白或彩色打印/复印出被攻击者的身份证。

    • 【拦截原理】根据边框、颜色、材质等差异,识别彩色及黑白复印件。

  • 屏幕翻拍件告警

    • 【攻击手段】攻击者并无身份证原件,采用手机、电脑等电子设备中的被攻者的身份证。

    • 【拦截原理】根据边框、摩尔纹、光线情况等差异,识别屏幕翻拍件。

  • PS 涂改告警

    • 【攻击手段】情况一:攻击者有身份证原件,在原件卡面涂改信息以修改身份证件内容;情况二:攻击者无身份证原件,在身份证电子文件中使用 PS 等图像编辑软件修改身份证件内容。

    • 【拦截原理】根据字体大小、间距行距、字形等字体改动识别 PS 涂改。

证件NFC

产品流程

实证 NFC 产品的认证流程如下图所示,用户通过放置身份证在手机 NFC 位置,实证 NFC 产品读取并解码身份证内置加密信息,即可获取到身份证上的要素信息、证件头像、身份证国徽面、身份证人像面等 11 要素信息,并返回给客户进行业务使用。

支持识别内容与类型

  • 身份证件类:二代身份证、港澳居住证、台湾居住证、外国人永居证
  • 旅行证件类:护照、港澳通行证、台湾通行证、台胞证、回乡证

分级活体

分级活体检测:可根据分级策略动态下发交互策略

**架构:兼顾安全性和便捷性**
**模型组合:多维活体检测模型组合,可根据场景灵活配置**
  • 多维度的活体防攻击检测模型,基于交互、视频、图片、纹理等多维分析,确保活体安全。
  • 包括:交互检测、视频分析、图像分析、屏幕分析、纸片分析纹理/面具分析、设备指纹

活体攻击常见类型

  • 屏幕翻拍(包含高清)
  • 高清屏幕攻击+五官部分编辑
  • 动画合成
  • 纸质面具
  • 摄像被劫持,直接导入视频流信息,常见于攻击光线活体
  • 3D 打印的人脸模型(塑质、石墨、头模等模型)

图片内容标签识别

  • 图片内容标签识别指:对人脸核身中图片增加涉黄、涉政、涉暴、广告特征、人物特征识别等特征识别;

  • 背景聚类主要提供对图片进行背景识别分类,将相似的背景识别归类在一起,应用于风控判断场景中;

  • 识别结果标签直接在人脸核身的结果字段中返回,无需二次开发调用。

实人认证的产品优势

  • 产品成功的关键:产品+运营高效协同
  • 产品设计关键要点,怎么做?— 交互体验+兼容性+埋点+产品架构+产品指标+产品性能+产品迭代
  • 健全的运营管理体系,才能做好产品运营。 — 运营监控+服务处理+运营管理流程

基于百度AI的身份证图片批量OCR识别

笔者基于对金融实人认证中的证件OCR部分感兴趣,想动手实际操作一番。一番调查,发现使用百度大脑AI提供的API可以很简单地免费实现批量识别身份证图片信息,并制成Excel表格,方便下一步进行数据分析。

百度AI的身份证接口支持对二代居民身份证正反面所有8个字段进行结构化识别,包括姓名、性别、民族、出生日期、住址、身份证号、签发机关、有效期限,识别准确率超过99%;同时支持身份证正面头像检测,并返回头像切片的base64编码及位置信息。

同时,支持对用户上传的身份证图片进行图像质量和风险检测,是否存在正反颠倒、模糊、欠曝、过曝等质量问题,可识别图片是否为复印件或临时身份证,是否被翻拍或编辑,是否存在四角不完整、头像或关键字段被遮挡。

运行环境

python 3.6 ,pandas=1.3.5 ,requests=2.26.0 ,openpyxl=3.0.9

注册百度智能云

在编写调用程序前,首先需要到百度智能云官网的文字识别免费注册一个身份证识别。

领取后在官网控制台的应用列表里面创建一个应用,可以得到APIKey和SecretKey,后面就可以在python程序中进行API调用了。

调用鉴权接口获取token

调用接口需要添加URL参数:access_token,所以需要通过上面注册得到的API Key和Secret Key获取的access_token。

参考官方文档“Access Token获取”,笔者首先在目录下创建一个config.conf配置文件(用来存储API Key、Secret Key,已经获取的access_token)和img文件夹(用来存储要识别的身份证图片)

从config文件读取AK和SK,接着调用接口获取access_token,最后再将提取access_token,并写入config。代码如下:

config.read('config.conf', encoding='UTF-8')
# 从config文件读取AK和SK
AK = config['ApplicationInfo']['APIKey']
SK = config['ApplicationInfo']['SecretKey']
if (AK == '') + (SK == ''):print('未填写APIKey和SecretKey,请打开config.conf填写')time.sleep(2)quit()
# 获取access_token
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + AK + '&client_secret=' + SK
response = requests.get(host)
# 提取access_token,并写入config
if response:Access_token = response.json()['access_token']
try:Access_token
except NameError:print('APIKey和SecretKey填写有误,access_token获取失败,请检查你的填写')time.sleep(2)quit()
config['token'] = {'AccessToken': Access_token
}
config.write(open('config.conf', 'w', encoding='UTF-8'), space_around_delimiters=False)

最后接口的config文件如下:

[ApplicationInfo]
apikey = wjCs6rBdyFSy7IOiqe7FEGah
secretkey =zdULBykXkvmGbrb02lOQrTmBDDC4mnLa[token]
accesstoken=24.ca18001507c7301c1bca181e41d26ccc.2592000.1653986974.282335-26140110

用python调用API接口

笔者接着新建了一个idocr.py 文件,写了idocr(filepath)函数用来调用接口进行身份证OCR识别,这里的参数为识别图片二进制文件路径。

调用接口的核心代码如下:

 # 百度大脑AI接口识别身份证信息request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/idcard"# 二进制方式打开图片文件f = open(filepath, 'rb')img = base64.b64encode(f.read())params = {"id_card_side":"front","image":img}
#   access_token = ''request_url = request_url + "?access_token=" + access_tokenheaders = {'content-type': 'application/x-www-form-urlencoded'}response = requests.post(request_url, data=params, headers=headers)

并提取身份证中有用的信息

    # 提取有用信息if 'words_result' in idinfo:if '姓名' in idinfo['words_result']:birthday=list(idinfo['words_result']['出生']['words'])birthday.insert(4,'/')birthday.insert(7,'/')birthday=''.join(birthday)idresult=[idinfo['words_result']['姓名']['words'],idinfo['words_result']['民族']['words'],idinfo['words_result']['住址']['words'],idinfo['words_result']['公民身份号码']['words'],birthday,idinfo['words_result']['性别']['words']]

将身份证信息写入excel文件

接着新建一个csvmod.py 文件,用来新建csv文件,并为csv文件追加行信息,将识别出来的身份证信息写入output.csv文件。

import csv
def create_csv(csv_head):       #新建csv文件,参数为标题行,使用py列表path = "output.csv"with open(path,'w',newline='',encoding='utf-8') as f:csv_write = csv.writer(f)csv_write.writerow(csv_head)
def write_csv(data_row):        #为csv文件追加行信息,使用py列表path  = "output.csv"with open(path,'a+',newline='',encoding='utf-8') as f:csv_write = csv.writer(f)csv_write.writerow(data_row)

运行结果

最后将上述步骤涉及的代码封装起来,遍历img文件夹,识别身份证信息,并写入excal表格。

笔者这里以从网上找到的几张身份证假照片进行测试。(笔者也测试了自己的身份证识别,也可以成功,这里由于隐私问题就不放出来了)

运行程序,可以看到结果如下,识别成功(图片的姓名都遮挡住了)

再看输出的excel文件,如下图所示,完成了身份证识别并写入excel。

【金融科技前沿】金融实人认证+基于百度AI的身份证图片批量OCR识别相关推荐

  1. 阿里实人认证java_GitHub - lap888/react-native-face-aliverify:      基于阿里金融级实人认证sdk封装分享...

    react-native-face-aliverify 基于阿里金融级实人认证sdk封装分享 小序 最初玩RN还是在2017 那时RN版本还在0.4x.x 时间过得确实有点快 最近接了一个RN的项目 ...

  2. android中集成阿里云金融级实人认证

    上个项目中有用到过这个,现在又要用到,每次都是到官网去看文档去集成,特此记录一下集成的步骤 第一步:打开官网文档阿里云金融级实人认证Android接入文档 去下载最新的sdk,集成到项目中 第二步在需 ...

  3. 金融级实人认证是什么?

    金融级实人认证服务搭载真人检测和人脸比对等生物识别技术,配合权威数据源验证,可快速校验自然人的真实身份.本产品安全稳定,通过率高,支持多种产品方案和接入类型,为用户提供便捷的数字身份识别解决方案,满足 ...

  4. Android 11 + 使用阿里“金融级实人认证方案”闪退

    官方文档:Android接入 1.apk版本信息 2.动态权限获取 implementation 'com.github.tbruyelle:rxpermissions:0.12' 3.获取手机状态( ...

  5. react-native集成阿里云金融实人认证获取当前viewController

    IOS接入如何获取viewController 将如下代码贴入oc代码 - (UIWindow*)keyWindow {UIWindow *foundWindow = nil;NSArray *win ...

  6. 刷脸秒入仓,阿里云云盾实人认证助力心怡科技迎战双11

    在物流公司心怡科技下沙菜鸟网络的跨境仓内,每天早晚上下班的高峰期,员工排出长长的队伍进出仓库成为一道特殊的"风景". 据了解,心怡科技在全国拥有88个RDC(区域分拨)中心.仓配网 ...

  7. ChinaSoft 论坛巡礼 | 金融科技前沿技术与发展论坛

    2022年CCF中国软件大会(CCF ChinaSoft 2022)将于2022年11月25-27日在线上举行举行.预期将有林惠民.陈左宁.邬江兴.何积丰.梅宏.吕建.柴洪峰.廖湘科.王怀民.郑纬民. ...

  8. 实人认证玩出新高度,给千年老城注入新生科技力量...

    嵊州,虽然只是浙江省中部偏东地区的一个县级市,但是早在秦汉时这里就开始建县称剡,唐初就曾设立嵊州,至今已经有2150多年历史.这个古老的城市不仅是书法大圣王羲之的故乡,更是中国第二大剧种越剧的起源地, ...

  9. 2022 CCF中国软件大会(CCF ChinaSoft)“金融科技前沿技术与发展”论坛成功召开...

    2022年11月25日,2022年度CCF中国软件大会金融科技前沿技术与发展论坛成功召开.本次论坛由中国软件大会与汇丰科技共同举办,采取腾讯会议与在线直播两种方式线上进行.论坛聚焦国内外金融产业的数字 ...

  10. 2019第三届金融科技与金融安全峰会北京站来袭!

    近期,北京.上海.广州等中心城市先后发布金融科技规划和相关政策,明确金融科技发展重点.开放.共享.无界.生态成为金融科技机构竞相角逐的焦点.金融机构与科技企业如何共同构建开放.共享.无界的共赢生态?监 ...

最新文章

  1. 基于python的游戏设计与实现-python五子棋游戏的设计与实现
  2. advanced search at idiscover
  3. Python将秒转换为 时分秒 的格式
  4. 经典DL论文研读(part2)--Deep Sparse Rectifier Neural Networks
  5. oracle1461,Oracle 10.2.0.3的ORA-1461错误
  6. python flask restful api_python之restful api(flask)获取数据
  7. python获取按钮点击后的数据_django表单中的按钮怎么获取数据
  8. 安装Python-2.5.2,并修改默认python版本
  9. python爬虫-- 爬取51job网招聘信息
  10. VSCODE+MINGW配置vulkan开发环境
  11. 约束规划问题与凸二次规划
  12. python架构师工作职责_软件架构师工作的职责
  13. 台式计算机关机后自行重启,台式电脑关机后自动重启该怎么解决
  14. java.lang.NoClassDefFoundError: Failed resolution of: Landroid/view/View$OnUnhandledKeyEventListener
  15. 生物统计分析之ROC曲线分析
  16. 行路难,行路难,多歧路,今安在?
  17. 数据库的分组统计查询
  18. matlab金字塔,高斯金字塔的matlab实现
  19. 安卓Termux搭建web服务器【公网远程手机Android服务器】
  20. 华为鲲鹏云服务器发布win项目,华为DevRun第四讲,华为云鲲鹏云服务移植快速入门与实践...

热门文章

  1. Matlab中pickic_MATLAB中uigetfile命令的应用
  2. 浙江省考三级专业目录计算机类是,你的专业属于哪类?浙江省考报名必备专业分类表!...
  3. 基于FPGA的出租车计费器的设计
  4. 微信小程序获取二维码:报错47001 data format error
  5. UE4蓝图版简易背包系统
  6. 英语邮件介绍多媒体计算机,多媒体电子邮件,rich media email,音标,读音,翻译,英文例句,英语词典...
  7. 教师测评系统php,校无忧教师评价系统 v2.6
  8. 如何采用类比法和类推法估算软件项目工作量
  9. vmware虚拟机使用docker使用代理国外镜像
  10. 三菱 PLC ST语言 步进电机正反转