一.概要

本文会详细的介绍如何改装苹果手机,使其具有虹膜识别的功能

二.目标、成果

使用苹果手机实现虹膜的注册、登录、匹配识别的功能,

在苹果4s可以进行真机验证、在苹果6s上的速度<0.05s

跳转到视频(如果产生疑惑可回来看解答)

三.改装简介

1.      硬件

a.      改装手机的摄像头,使摄像头可以实现红外拍摄

b.      改装闪光灯,改成红外灯

2.      软件

a.      获取摄像头拍摄的视频流

b.      对获取的图片进行虹膜特征的提取、识别

c.      实现各种用户交互

四.详细的步骤

好的,本文的大致思路已经理清楚,现在开始。

为了更加直观的给大家讲解,这里需要先介绍一下本次将要实现虹膜识别,下图就使用的虹膜识别的流程

那么我们的识别设备就可以简化为一个相机,如下图所示:

既然虹膜识别设备就是一个相机,那么用手机自带的摄像头可以实现吗?答案当然是不可以,如果可以的话,本文就没有意义了。

虹膜识别要求高质量虹膜图片,需要相机采集到非常丰富的虹膜图像纹理。可见光拍摄是无法采集到虹膜图像的,只有红外拍摄才可以,下面就是效果,一看便知

上图显示:

1.      可见光拍摄的照片,眼球是黑色的,无法看到纹理,即便的采用超高像素+近距离拍摄也不行,根本就没法提取虹膜纹理

2.      红外拍摄可以提取到丰富的虹膜纹理,(上图的中间那张是500W像素的,放大后就可以看到清晰的虹膜纹理)

那么问题来了,我们的手机是可以见光相机,无法进行红外拍摄,难道要就此打住?不!,下面看一下相机尽头的结构,看看是否可以突破。

我们发现,相机的镜头组中有一层镜片是 红外光阻止镜片,它原本的作用是阻止红外光进入相机照射到感光芯片上,这样相机的感光芯片上就只会接受到可见的光谱,少了红外线的干扰,成像的质量会提升很多。

这里做个补充:苹果4s上的 红外光阻止镜片 效果 比小米Note的好,我用两个手机同时拍一个打开的红外灯,苹果拍照片和肉眼一样(看不出来红外灯是开着、还是关着),小米的照片就会看出红外灯发出了红色的光(如果灯开着的话)。所以看一个红外灯是否工作可以用手机相机拍照试试。

回归正题,如果我们把这层镜片拆掉(红外光阻止镜片),是否相机就可以进行红外成像了能?我们看看成像芯片的资料。

我淘宝买的的红外灯的波长就是850的,上面的曲线显示,成像芯片对850波长的响应还是非常不错的,但可惜这不是苹果摄像头的资料,它的资料也不会找得到。于是把镁光、ov、索尼芯片个找十几个,找到芯片资料的这个图,惊喜发现了,几乎所有的芯片都对850的光谱有响应,只是有多有少罢了。所以初步的估计苹果的成像芯片很大的可能可以对850的红外光进行响应。

淘宝上还可以找到截止可见光通过红外光的帯通滤光片,这就再好不过了。实际发现即便是不加这种镜片也是可以红外成像的,因为成像芯片在850时,rgb三种感光器的响应都比较高的值,叠加后更高(我需要的是亮度图),并且我使用的就是850的补光灯,但是最好还是加上,加上后效果会好一些。

总结:摄像头理论上是可以改装的,至少有希望,虽然有几个地方不确定。

理论分析完毕,开始实际操作:拆!

拆解步骤:

第一步. 取出摄像头

第二步. 撬开闪光灯板

第三步. 分离镜头和sensor板

第四步. 拆除红外光阻止镜片

如上图所示,有点偏蓝色的那块玻璃就是我们要拆除的东西。这里的坑比较多,首先你需要慢慢的打磨四个角、四条边,然后尝试着把他翘起,这里有几个需要注意的地方:

1.      不能碰到旁边的任何原件,有的很容易掉(重新焊接上基本不可能),有的很容易碎。

2.      下面的塑料方框上是有走线的,所以必须保证不被划到。

3.      不能把玻璃给弄碎掉。

a.      碎掉的话很肯能会划伤成像芯片,如果碎掉就没希望了,因为很难保证拆除碎片的玻璃时不碰到其他的地方(sensor)。

b.      不能有玻璃碎片、残渣落在了上面时,因为你是没有办法清除碎片颗粒的,有的体积极小看不见,但是拍照后发现全是点点。

4.      如果有大块的东西掉到了sensor上,切记不能用嘴吹,你的唾液它来说有腐蚀性,并且不纯,所以干了之后会有程沉淀,如果拍照就会有一大块褐色斑停留在上面

5.      如果真的有东西在上面,最好用纯净水清洗,然后立刻弄干。

第五步.装回去

第六步:

把相机自带的闪光灯换成红外灯就比较简单了,大家自行补脑即可。

整体的流程是这样的:

我拆毁大概20~30个,如果你们有兴趣要尝试,请准备至少20个(因为你已经有了我的经验),当然不是所有的手机摄像头都可以拆,

因为红外阻止镜片的位置有多种:

1.      红外阻止镜片直接和成像芯片一体的  =>   放弃

2.      红外阻止镜片在镜头组的内部  =>   放弃

3.      红外阻止镜片在镜头组的顶层  =>   放弃

4.      红外阻止镜片在镜头组的底部  =>   可拆(没遇到过)

5.      苹果4s、三星Note、荣耀7i 这几款都可拆,其他的就不清楚了

注意事项:

1.      镜头sensor的分离、滤光片的拆除,这两个的难度最大,成功率极低,只要保证不激动、冷静、不骂脏话、多试几次就会成功

2.      如果发现拆坏了,就不要在插回去开机,会导致手机发烫、不能开机、严重的会手机报废

3.      确定没问题再装机,因为摄像头的排线不在最上面,相当于手机基本拆完了,才能拆摄像头,尽量减少次数。我的主板壳掉了,挂了一次,发现有东西掉了,后来又被焊可回去,险胜

4.      很多时候要把后壳装上,才能开机。好几次误以为挂了

5.      镜头是有自动变焦功能的,不能把它弄坏了,所以:所有以前拆开的触点还是要焊接回去,尽量不要使用胶水。如果没有对焦功能,采集到的图片全是模糊的,就失去了意义

大功告成!先看看效果

左边的图片,可以看到相机是能工作正常的,只是有点偏黄,自动对焦功能管用。可以很清晰的看到上面有一个黑色的点点,那就是落在sensor上的污染物,已经没救了,不过虹膜识别还是可以实现的。

右边的图片,是用6s拍的一张4s正在显示4s拍的6s的照片(4s是改装过的),同样可以看出颜色偏向红色的方向。细心的朋友可能已经注意到了,听筒的上面感觉有一个红色的灯,没错!那就是手机自带的红外灯(用来进行距离识别)。如果再加上可见光截止镜片的话就只能看到那个小灯,屏幕就是一片漆黑。

Ok!硬件准备完毕,至少勉强达到了虹膜识别的最低要求。

接下来进行软件的开发!

1.      安装xcode、opencv、sql…

PS:codex安装opencv超级方便,直接拖进去就可以,根本就不需要整什么包括目录、库目录、连接、dll之类的东西。页面跳转页很好写,直接拖拽即可。页面的跳转逻辑可视。很可视化。

2.      移植虹膜识别算法,xode它竟然支持c++,直接拷贝进去,失败!竟然是因为文本格式问题,改掉格式之后,只有很少的错误,随便改改就可以。

3.      开始写代码,结果发现一个叫code4app的网站,竟然会有如此神奇的网站,上面什么样的ios例子都有,并且几乎全部随便下载,可以说99.99%下载后绝对可用(因为下载好的工程基本不需要任何配置)。

4.      从来没有做什么东西如此顺畅,结果2个星期左右就写好了全部的东西(我是从0开始object-c的,主要是感谢牛逼的code4app),但是装虚拟的Mac同样花了2个星期,这就有点尴尬了(注意:必须配240G的固态,不然会卡爆的,经验告诉我必须这样,内存12G就够了,i5CPU即可,这样的话同时开VS2017、Xcode、Matlab、Ps都不会卡)。

五.真机测试

所有需要做的工作都已近完成。

接下来有两个视频(请看完再描述再点击)

1.      4S的视频,因为经过了改装所以可以进行真实的测试(识别人的虹膜),有活体识别功能(照片、视频、模型不能通过),但是速度特别慢(因为4S的CPU很慢)

2.      6s的视频,因为没有改装过摄像头(无法进行红外拍摄),所以我只能先把虹膜的活体识别功能去掉,用照片进行演示。这个视频主要的目的是给大家看看虹膜识别的速度,速度非常的快,0.03秒就可以完成一次识别,这要比很多手机的指纹速度快很多(比如R9广告语:“0.2秒,一瞬间解锁”,网上显示大多都比这个长(2017)),6s的单核速度基本已近逼近i3处理器(对我的算法来说)

3.      注意下面所列出的问题和回答:

为什么速度差那么多?=> 上面已近解释。

为什么照片也能识别?=> 上面已近解释。

6s识别超快是不是因为没有加活体识别?=>不是,活体识别消耗资源很少!……

手机上有多个人的虹膜信息速度会下降吗?=>不会,1个人和1000个人识别时间上基本不会有任何的区别,因为匹配、检索算法更快!)活体识别是怎么实现的?算法可以开源码?=>实在不好意思

0.03秒就可以完成一次识别指的是什么时间?=>从获取到一张有虹膜信息的图像数据流开始,到分析出结果(通过、失败)

视频的前半部分是6s的,后半部分是4s的

跳转到视频

在苹果手机上实现虹膜识别(通过改装实现)相关推荐

  1. 微信小程序时间格式在IOS苹果手机上不识别

    场景:微信小程序,后台给前端返回了一个 "2022-12-29 16:10:20"  这样的时间格式,在安卓手机上可以正常显示,但是在苹果手机上不识别 原因:         是因 ...

  2. 眼睛中的密码-虹膜识别

    什么是虹膜识别? 首先,最明显的缺陷当属眼盲患者.尤其是眼球外伤患者是不能适用虹膜识别技术的.与此类似的是佩戴眼镜.佩戴美瞳等隐性眼镜的情况下,同样也不能进行虹膜信息的录入.在录入虹膜信息以及使用虹膜 ...

  3. 人体密码学之未来——虹膜识别

    密码技术 无论是早期文字或者数码式的密码,还是随着信息技术的发展形成了现在语音.图像.数据式的密码,密码技术一直以来都是被频繁使用的. 伴随着保密场所对安全.精准.便捷的要求越来越高,从IC(或ID) ...

  4. 虹膜识别论文1:Iris Recognition With Off-the-Shelf CNN Features: A Deep Learning Perspective 2017年 学习心得

    论文百度一下 官网可以下载. 题目:Iris Recognition With Off-the-Shelf CNN Features: A Deep Learning Perspective 虹膜识别 ...

  5. 人脸识别与膜虹识别_虹膜识别比人脸识别更安全 为何厂商却跟风苹果?

    苹果今年发布了iPhone X,并且在iPhone X上,苹果放弃了指纹识别,采用了全新的生物识别方式--人脸识别,在苹果推出人脸识别后,全球厂商再一次跟风苹果,推出人脸识别,例如OPPO R11S支 ...

  6. 神漏洞!一张高清照片,破解三星Galaxy S8虹膜识别

    本文讲的是 神漏洞!一张高清照片,破解三星Galaxy S8虹膜识别, 生物识别技术再次表现出不靠谱的一面. 就在昨天,三星最新旗舰设备Galaxy S8上的虹膜识别技术被混沌计算机俱乐部(CCC)破 ...

  7. 每周AI应用方案精选:虹膜识别;基于深度学习人脸识别方案等

    2019-12-12 17:52:41 每周三期,详解人工智能产业解决方案,让AI离你更近一步. 解决方案均选自机器之心Pro行业数据库. 方案1:虹膜识别解决方案 解决方案简介: 虹膜识别技术是基于 ...

  8. 人脸识别与膜虹识别_当人脸识别遭遇口罩,虹膜识别的机会来了

    本文转自[科技日报]: 当人脸识别遭遇口罩,虹膜识别的机会来了 专家指出虹膜识别标准体系还需进一步完善 本报记者 马爱平 突如其来的新冠肺炎疫情,让人脸识别(Face ID)技术遭遇尴尬,因为一旦用户 ...

  9. 【虹膜识别】+【开源代码】虹膜识别--步骤讲解及算法复现,虹膜表征:基于虹膜反映点的健康监测

    虹膜识别 项目目标 主要了解虹膜的使用 用于生物识别系统和开发用于提取显着特征的软件用于虹膜扫描的虹膜鉴定. 具体: •识别虹膜的显着特征以及如何使用它们来区分多种 扫描. •开发用于提取和显示给定虹 ...

  10. 原始数据格式无法识别_虹膜识别技术优势明显 为何难以开启“刷眼“时代

    "张张嘴"."眨眨眼"."摇摇头"当你恍惚听到这样的提示音,那你周围一定是有人在进行"刷脸"."刷脸" ...

最新文章

  1. LightGBM是什么?相对于xgboost有什么优势?如何使用randomSearchCV和lightgbm进行组合获取最优参数组合?
  2. 全球及中国停车场建设产业十四五盈利模式与建设现状分析报告2022版
  3. python找与7相关的数_Python3.7 列表中有关增删改查的语句和函数
  4. ELK学习11_ELK Stack交流群问题汇总一
  5. delphi socket 怎样把接收到的二进制数据转换成字符串显示_广东qp用户数据免费咨询...
  6. Git之深入解析如何将项目迁移到Git
  7. 标准C++类std::string的内存共享和Copy-On-Write(写时拷贝)
  8. Java入门学习思维导图
  9. 原创力文档c语言程序设计第五章,C语言程序设计教程第五章练习题题目(7页)-原创力文档...
  10. 10-Bootstrap Checksedit
  11. TCP/IP网络编程(3)
  12. Leetcode每日一题:172.factorial-trailing-zeroes(阶乘后的0)
  13. python 字符编码、格式化
  14. 【UE4游戏开发】安装UE4时报SU-PQR1603错误的解决方法
  15. Git:git同步git push时候提示filename too long解决办法
  16. win10跳过计算机密码,Win10怎么取消开机密码?Win10如何跳过开机密码?
  17. 配置运营商光猫做交换机拓展网络
  18. Android 签名方法---同时使用V1和V2签名
  19. 如果长期玩手机用计算机打字,长期玩手机带来的危害!来看看你中了几个
  20. 三段式抽屉BottomSheetBehavior嵌套RecyclerView滑动冲突问题

热门文章

  1. 形式化方法课程学习笔记(一)|Cop的安装以及简单使用
  2. uniapp-连接服务器超时,点击重试
  3. 一文钱憋死英雄汉!给Unix-Center.Net 的建议
  4. CleanMyMac最新2020注册机
  5. ico的尺寸_Favicon.ico浏览器图标文件制作和正确使用
  6. 微机原理与接口技术模拟试题微型计算机中主要包括,微机原理与接口技术模拟试题...
  7. python支付宝二维码支付源代码
  8. Android 渠道游戏 - 聚合SDK
  9. Comparing Mongo DB and Couch DB
  10. 数字逻辑复习——触发器