「论文名称」:《DeepHSV: User-Independent Offline Signature Verification Using Two-Channel CNN》
「开源代码」:https://github.com/dlutkaka/DeepHSV
介绍
堪称是世界上第一个可以在GPDS手写签名数据库(世界最新、最大的手写签名数据库,也是鉴定最为困难的数据库)上鉴定准确率达到“可用”级别的算法。
签字识别:分为在线签字识别,和离线签字识别,本文针对离线的静态图像进行笔迹识别。
用户依赖:分为依赖于用户和不依赖用户,本文对签字数据集训练用户无关的识别模型,可以对新用户签字进行字迹鉴别。
主要创新在于将2-ChannelCNN(双通道卷积神经网络)模型引入到笔迹对比中,比原来的CNN-Siamese(孪生卷积网络)模型在EER(等错率)从22.24%降到了9.95%,推断速度提高了2倍,训练效率提高了4倍,且具有更好的鲁棒性。
2-ChannelCNN(左) CNN-Siamese(右)
基础模型
「孪生网络」:度量学习方式,包含两个特征提取的分支,分支共享一个网络结构与权重,两个分支的输出用来衡量两个输入的相似度,通常用距离进行度量,比如欧式距离,训练损失采用对比损失(Contrastive Loss)。
「双通道网络」:两个输入被合并为一个双通道图像,作为一个单网络的输入,网络一开始就学习两个输入的相似度,而不是通过最后进行特征相似度比较。同时,达到了减少参数搜索空间,提升收敛速度的效果。传统双通道网络经过全局平均池化,只输出两个输入数据的相似度得分。运用以下的损失函数进行训练模型权重
。
第一项为正则项,第二项
是label(匹配为1、不匹配为-1),
为网络输出。
本文模型
「2-Channel-2-Logit Network」:基于双通道网络,作者提出了输出两个logit的双通道双logit网络,将两个输出的距离作为两个输入图像的相似度。
采用常用的softmax损失对距离进行监督学习:
主干网络采用「Inception-V3」结构(整个网络就是一个Inception-V3),为避免过拟合,增加了3个dropout层,网络结构如下:
网络结构
「预处理」:考虑一般签字图像的比例与书写方向,利用双线性插值将图像缩放到高度为155,宽度为220的固定大小。未做裁剪、对齐,像素反转,背景去除,二值化等预处理操作。
「模型训练」:在签名数据集中存在样本不均衡问题,同一个用户的仿写数据对数量远大于真实数据对,假设一个用户有M个真实签字样本,N个冒写数据样本,那么真实签字样本有 对,
冒写数据对有 个:
作者采用对冒写数据下采样的方式,保持正负样本对保持在均衡的状态。
「实验细节」:
Tensorflflow 1.7(年代久远????),优化器:AdamOptimizer,未使用BN,Xavier方法进行权重初始化,batch size:192,初始学习率:1e-4,衰减系数decay:0.9。
「实验数据」:
CEDAR: 55个人,24次真实签字,24次专业仿写签字,扫描为PNG图像格式
BHSig260: 100人孟加拉语,160人印度语,20次真实签字,30次专业仿写数据,TIFF图像格式
GPDS-Synthetic: 4000用户,每个人24次真实签字,30次仿写签字,JPEG图像格式
实验结果
总的来说,本文借鉴了双通道做图像相似度比较的思想(2015年CVPR文章),采用了Inception-V3作为backbone,为防止过拟合加入了dropout,然后输出两个logit分数,并将差值作为距离进行监督学习,最后效果很好,据说在中国金融认证中心(CFCA)已经投入使用,用于自动审核客户在电子合同中手写签字的有效性。