自2013年苹果iphone5S将指纹引入,引发了指纹手机的热潮,android阵营的华为mate7也因指纹识别一炮走红。短短几年内,指纹识别芯片的解锁速度越来越快,解锁时间从最初的1s,缩短至0.7s,0.4s,0.3s甚至0.2s等,如今能做到0.2s内解锁在业界内尚属于凤毛麟角,但即使0.2s时间内,实测仍然离人们需求的“一触即解”的感觉还有差距。
指纹解锁涉及到芯片、软件和算法,下面从技术的角度来了解电容式指纹解锁的整个过程:结合指纹芯片的应用场景,指纹芯片平时工作在睡眠模式和按压检测模式之间切换,相对于持续工作在按压检测模式,这样的处理可以节省功耗,延长便携式设备的待机时间。在睡眠模式下,芯片的功耗最低,而在按压检测模式下,该功耗提升至数十甚至上百倍。采用睡眠、检测这样不断循环切换的方式可以在功耗和感应速度都满足要求。在按压检测模式下,当手指按压到指纹的sensor区时,检测电路根据检测到的结果进行对比,判断识别出有手指按压,并将判断结果送给系统,系统由此切入到指纹采集模式。
进入到指纹采集模式后,电路将按照特定的sensor像素地址对像素进行扫描,内部电路得到数据进行判断,再进行参数配置,经过几次扫描计算迭代收敛得到最合理的参数后,再重新进行扫描,信号会在电路中被滤波、放大、量化等操作,最终得到完整的图像信号,电路进行图像信号处理操作后,通过通信接口传输到手机的CPU处理,由此完成了指纹信息的采集及传输的操作作,整个操作时间控制在20ms以内。信号传输完成后,指纹芯片再次切换到按压检测低功耗模式。
驱动电路通过通信接口上传多帧图像到系统,系统首先对图像进行筛选,挑出对比度最高的一帧,交由算法进行处理生成模板数据,这里采用自创快速点+图像比对算法,该算法提取的特征点稳定且可靠,每副图像的特征点数目适中,在微小面积识别算法中有效匹配点对数目最高,从而保证了算法的识别快速与准确。对算法流程及公式的优化,一方面简化算法流程,对一些耦合性大可共用的部分进行优化,使运行路径最优;另一方面对一些算法从公式上进行优化简化。对编程实现优化,在编程实现过程中,优化实现过程,在保证功能一致的前提下,使运算量最少。另外所有的代码采用定点实现,对于一些复杂的运行采用查表处理,针对的指定的平台采用最优的编译指令优化。软件在匹配场景调用算法进行模板数据的比对,将匹配的结果反馈到系统最终完成解锁与否的动作。
整个流程图如下: