GMTC全球大前端技术大会(北京站)门票9折特惠截至本周五,点击立减¥480 了解详情
写点什么

虹膜识别技术

2020 年 3 月 25 日

虹膜识别技术

传统虹膜识别系统及问题

➤ 虹膜识别一般有两个流程,分别是身份注册和身份识别:


  • 身份注册是指识别设备提取用户的虹膜纹理特征,并将提取到的特征模板添加到识别系统的数据库中。

  • 身份识别是将待识别者的虹膜特征模板提取出来并与数据库中已注册的虹膜模板比对,给出接受或者拒绝的判断。


➤ 完整的虹膜识别系统 由采集虹膜图像的设备和提取虹膜纹理特征的识别算法组成。其中算法包括虹膜图像质量评价、虹膜图像预处理、特征提取和模式匹配等环节。


  • 虹膜图像获取设备。通常,虹膜识别仪在采集待识别者的虹膜图像时都需要用户的积极配合,用户眼睛到摄像头的距离都有明确的要求。采集到的虹膜图像的清晰度以及虹膜部分被遮挡的程度将直接关系到之后的特征提取和模式匹配步骤是否有效。

  • 虹膜图像质量评价。虹膜图像获取设备采集到的用户虹膜图像通常情况下存在运动模糊、不聚焦、瞳孔变形过度和睫毛眼睑严重遮挡虹膜等问题,最后的结果是导致识别失败或者识别错误。所以,在采集完用户的虹膜图像后我们需要对采集到的虹膜图像进行质量评价,选择满足一系列质量要求的虹膜图像来识别。

  • 虹膜图像预处理。包括虹膜内外边界的定位、归一化和图像增强、去噪等操作。虹膜归一化就是使用某种几何映射方式将采集到的原始图像中的圆环形状的虹膜转换到尺寸固定的归一化图像中,此法解决了所采集图像中虹膜大小和分辨率不同的问题,便于后续的特征抽取和模式匹配。图像增强解决了采集图像时外界光照不均匀对图像造成的影响。去噪是指去除睫毛、眼睑、光斑等噪声。

  • 虹膜特征提取和模式匹配。特征提取就是使用某种纹理提取算法如经典的 Gabor 滤波器法从分辨率统一的归一化虹膜图像中提取虹膜纹理特征,并进行二值编码最终得到由 0、1 组成特征模板。模式匹配就是按照某种匹配规则如归一化的海明距离比对两个虹膜图像的特征模板以进行身份识别。


传统虹膜识别技术存在的问题:


  • 需要用户高配合度(包括位置、姿态);

  • 需要光照分布均匀;如果不满足条件,则识别失败。


解决方案

➤ 虹膜检测:针对图像模糊、光照强度和明暗变化、用户配合度(位置、姿态)等问题,拟采用 深度学习人脸库预训练、数据增强方法(模糊图片和光照变化图片),提高检测性能。具体解决方法为用 MTCNN 网络,利用多级检测的策略来完成虹膜检测。MTCNN 的网络结构如下图所示:





P-Net 用来生成候选窗和边框回归向量,并使用非极大值抑制(NMS)合并重叠框叠的候选框,将通过 P-Net 的候选窗输入 R-Net 中,拒绝掉大部分 false 的窗口,继续使用 Bounding box regression 和 NMS 合并,最后使用 O-Net 输出最终的虹膜框。


➤ 虹膜分割:针对虹膜非正圆(天然非正圆/用户斜眼)、尺度变化(瞳孔大小)等问题,拟采用 深度学习像素级分割,训练时加入多尺度方案等手段,提高分割性能。具体方案为 Deeplab 像素级分割方案、Atrous 卷积、SPP 层和金字塔训练策略(解决多尺度)



Atrous convolution, 即 dilated convolution, 它通过移除最后几层的下采样操作以及对应 filter 核的上采样操作,来提取更紧凑的特征,相当于在不同的 filter 权重间插入 holes。


Deeplab 的网络结构为:



ASPP 采用四个并行的不同 atrous rates 的 atrous convolutions 对 feature map 进行处理,类似于金字塔网络,增加多尺度物体的泛化性。


整个网络通过 atrous convolution 后,在通过 ASPP,并整合 Image Pooling 层带来的全局信息,最终上采样到原始图像大小,得到分割结果。部分结果如下:






➤ 特征比对:针对非正圆归一化、光照不均、明暗变化、用户姿态变化等问题,拟采用分割结果的 Mask 掩膜、全局直方图均衡改为局部直方图均衡等方法,提高特征比对性能。具体解决方法为根据分割结果制作掩膜、特征比对时加入旋转变化。比对结果如下:



近年来,虹膜识别技术发展迅速,但在应用层面还有一些亟待解决的问题,欢迎有兴趣的伙伴一起来探讨。


2020 年 3 月 25 日 19:48288

评论

发布
暂无评论
发现更多内容

商业通识 : 商业为什么能进步?

Walker

学习 得到 个人成长 商业

Python 为什么能支持任意的真值判断?

Python猫

Python 编程

java安全编码指南之:声明和初始化

程序那些事

安全编码 java安全编码 编码指南 对象初始化

JavaScript 深拷贝与浅拷贝

梁凤波

拥抱K8S系列-04-基于docker部署更多应用

张无忌

Docker 标准化 vsftpd

一个在交流群里讨论过两轮的问题,答案竟然跟一个 PEP 有关

Python猫

Python 编程

Python 为什么要在 18 年前引入布尔类型?且与 C、C++ 和 Java 都不同?

Python猫

Python 编程

Flink从保存点启动应用-18

小知识点

scala 大数据 flink

区块链技术应用于链接智慧医疗

CECBC区块链专委会

区块链 社会保险 智能医疗

职场求生攻略答疑篇之 3 —— 数据是土地

臧萌

数据 职场成长

【MySQL】我这样分析MySQL中的事务,面试官对我刮目相看!!

冰河

MySQL 面试 事务 隔离级别 冰河

oeasy教您玩转linux010206toilet

o

为什么Java二维数组不用指定列的长度

Rayjun

Java 数组

如何将VSCode变成绿色版本

lmymirror

vscode 教程

妈妈,今天您几点下班?

脑极体

人生革命由自律发起

胡迪伦

自学编程 拖延症 懒惰 死循环

智能商业时代的思考(一)从在线化到网络化

刘旭东

拼多多 淘宝 智能商业 网络协同

SpringBoot 缓存之常用注解

hepingfly

Java 缓存 springboot 注解

Google鼓励的13条代码审查标准 [建议收藏]

简爱W

[翻译]Defer,Panic,and Recover

卓丁

golang defer panic recover

区块链技术破解数字版权保护难题

CECBC区块链专委会

区块链 版权保护 数字技术

为稳外贸保驾护航 区块链交易平台显身手

CECBC区块链专委会

区块链 银行 福费廷

云原生 go-zero 微服务框架

Kevin Wan

go golang microservice go-zero 微服务框架

持续集成有什么好处?快来看鸭

清菡

jenkins

商业通识 : 商业到底是什么?

Walker

学习 得到 个人成长 商业

2020-09-03-第十三周作业

路易斯李李李

宁波新基建之路 基于制造优势破题智慧发展

CECBC区块链专委会

新基建

怎么向女朋友解释什么叫区块链?

艾小仙

比特币 区块链 以太坊 defi

2020-09-03-第十三周学习总结

路易斯李李李

首个数字银行卡明年发行,广州出台区块链措施支持大湾区

CECBC区块链专委会

区块链 金融科技 社会

Elasticsearch之mapping

北漂码农有话说

虹膜识别技术-InfoQ