CVPR 2019笔迹识别论文:逆鉴别网络+八路Attention
點擊上方“AI搞事情”關(guān)注我們
論文鏈接: http://openaccess.thecvf.com/content_CVPR_2019/papers/Wei_Inverse_Discriminative_Networks_for_Handwritten_Signature_Verification_CVPR_2019_paper.pdf
復(fù)現(xiàn)源碼:https://github.com/jeason353/IDN
※ 前言
個人簽名屬于人們的生物識別特征之一,在財務(wù)、商業(yè)、司法文件得以廣泛使用,簽名的真實性鑒別(筆跡鑒定)成為了一個具有現(xiàn)實應(yīng)用場景的任務(wù)。
本文針對離線手寫簽名問題,引入了Attention模塊以及對圖片進行黑白翻轉(zhuǎn)搭建多路結(jié)構(gòu)來訓(xùn)練網(wǎng)絡(luò),聚焦在筆劃信息上從而提取出更加魯棒的特征,以適應(yīng)于簽名認證任務(wù)。
簽名圖片數(shù)據(jù)是比較稀疏的,經(jīng)過二值化處理以后大部分區(qū)域都是背景,如何從稀疏的筆劃像素部分提取有效信息是簽名認證任務(wù)的關(guān)鍵點。
1. 簽字數(shù)據(jù)集
論文列出的圖片數(shù)據(jù)集
CEDAR
MCYT-75
BHSig
GPDS數(shù)據(jù)類簽名數(shù)據(jù)集
MCYT-100:該數(shù)據(jù)庫是由馬德里自治大學(xué)的BiDA實驗室采集的簽名數(shù)據(jù)庫,通過電磁感應(yīng)式手寫板WACOM手寫板采集到采樣點的坐標、時刻和筆尖壓力值,以及筆的水平偏角和垂直偏角等信息,該數(shù)據(jù)庫包括100個簽名,每個簽名有25個真實樣本和25個偽造樣本,是目前數(shù)據(jù)量最大的常用數(shù)據(jù)庫之一。
SVC2004:2004年由香港科技大學(xué)組織的第一屆世界簽名認證競賽提供的比賽數(shù)據(jù)庫,包含了中文和英文簽名。任務(wù)1 僅提供簽名的x、y 坐標軌跡特征,任務(wù)2提供了簽名的軌跡、壓力、簽名時刻、提筆落筆標記以及筆的水平偏角和垂直偏角。該數(shù)據(jù)的數(shù)據(jù)量較少,每個任務(wù)僅有40個簽名用戶,每個包括20個真實簽名和20個偽造簽名。
SUSIG:數(shù)據(jù)庫是由土耳其薩班哲大學(xué)生物特征識別研究組采集的簽名數(shù)據(jù)庫,數(shù)據(jù)包含智能筆采集的簽名時筆的軌跡和壓力感應(yīng)屏記錄的筆尖壓力信息。該數(shù)據(jù)庫包括了94個簽名,每個簽名有20個真實樣本和10 個偽造樣本,前十個真實簽名和后十個真實簽名的簽名時間間隔為一周。
由于缺乏中文簽名數(shù)據(jù)集,論文采集了包含749個用戶約29,000張簽字圖片的中文簽名數(shù)據(jù)集,每個姓名有20次不同時間點的真實簽名(genuine signature)和20次冒寫簽名(forged signature),冒寫包含10次志愿者簡單冒寫和10次書法家專業(yè)仿寫。所有簽名掃描成圖片后,裁剪并縮放到同樣大小,經(jīng)OTSU算法和歸一化處理,將簽名統(tǒng)一為背景像素為255(白色),筆畫為原始像素的圖片數(shù)據(jù),以此構(gòu)建中文簽名數(shù)據(jù)集,并將其作為對提出算法的評測數(shù)據(jù)集之一。
2. 相關(guān)方法
手工特征
圖像幾何特征:簽字高度,寬度,面積
局部特征:LBP,SIFTNN特征
CNN網(wǎng)絡(luò):基于分類,融合兩通道
孿生網(wǎng)絡(luò)
GAN網(wǎng)絡(luò)
※ 本文方法
1. 逆鑒別網(wǎng)絡(luò)
解決問題:如何讓模型在大量背景的稀疏簽名圖片中更關(guān)注簽名筆畫像素信息?
基本思想:網(wǎng)絡(luò)識別源簽字圖片和逆簽字圖片應(yīng)該得到同樣的結(jié)果。
也就是說,網(wǎng)絡(luò)只關(guān)注筆畫信息,只要筆畫像素一樣,背景不同不會影響識別結(jié)果。按照上圖來說,測試圖片image2與參考圖片image1的網(wǎng)絡(luò)輸出結(jié)果應(yīng)該和image2與image1的逆圖像image3相同,同理,和image1與與image4的結(jié)果也應(yīng)該相同。
基于上述思想,本文提出的逆判別網(wǎng)絡(luò)(inverse discriminative network ,IDN)網(wǎng)絡(luò)結(jié)構(gòu)如下:
本文網(wǎng)絡(luò)結(jié)構(gòu)該網(wǎng)絡(luò)可以看作是孿生網(wǎng)絡(luò)的加強版(四胞胎網(wǎng)絡(luò)????),包含四路共享權(quán)重的級聯(lián)CNN模塊,可以分為兩路判別流,即以測試圖片和參考圖片作為輸入的兩路網(wǎng)絡(luò);和兩路逆流(inverse streams:就是這么翻譯的吧),以逆圖片作為輸入的兩路網(wǎng)絡(luò)。共享網(wǎng)絡(luò)中,每個模塊兩個卷積層,卷積核3x3,步長為1,ReLu激活函數(shù),一個2x2大小的池化層進行降維,每個模塊的卷積核個數(shù)分別為: 32、64、96、128。
2. 多路Attention機制
在判別流和逆流之間有8路Attention連接對不同尺度的特征圖進行處理,指導(dǎo)網(wǎng)絡(luò)學(xué)習(xí)簽字筆畫的判別性信息,抑制干擾信息,增強簽名驗證的重要特征。如結(jié)構(gòu)圖紅框所示,每個attention模塊包含前向過程和反向過程。前向過程接收判別流每個卷積模塊的第一層特征,反向過程主要是逆流輸出特征向判別流第二層卷積層傳遞注意力信息。
attention模塊內(nèi)部結(jié)構(gòu)示意圖,包含了空間注意力機制和通道注意力機制。在兩路網(wǎng)絡(luò)之間建立attention機,將網(wǎng)絡(luò)對原筆跡圖片和逆筆跡圖片提取的特征聯(lián)系了起來。
如上圖所示,逆流網(wǎng)絡(luò)各模塊輸出特征經(jīng)過上采樣后,特征圖大小與判別流第一層輸出特征一致,經(jīng)過Sigmoid激活函數(shù)的卷積操作學(xué)習(xí)到特征調(diào)節(jié)因子g,與判別流卷積模塊第一層輸出h逐像素相乘后再逐像素加上第一層輸出h,得到空間調(diào)整后的特征圖:h · g + h;調(diào)節(jié)后的特征圖通過全局平均池化和Sigmoid激活的全連接層,得到通道調(diào)節(jié)因子f,將f與調(diào)節(jié)后的特征圖逐通道相乘后輸出attention機制處理后的特征:(h · g + h) × f。
對相加后的特征,經(jīng)過兩個卷積層和一個池化層(256卷積核),不同輸出流的特征被融合為三個256通道的特征圖,融合特征經(jīng)過全局平均池化(global average pooling ,GAP)處理輸入到全連接層進行驗證計算。
3. 損失函數(shù)
基于交叉熵,提出逆監(jiān)督損失函數(shù),實際就對真實標簽為同一個值的三對輸出做交叉熵損失的加權(quán)求和。
y表示真實二值標簽,1表示真實(genuine)簽名,0表示冒寫(forged)簽名,yi(i = 1, 2, 3)表示三對圖片的預(yù)測結(jié)果。αi表示調(diào)整損失函數(shù)的權(quán)重。
※ 實驗
1. 評價指標
FAR(錯誤識別率):
識別為同一人簽字次數(shù)測試數(shù)據(jù)中不同人簽字次數(shù)
FRR(錯誤拒絕率):
識別為同一人簽字次數(shù)測試數(shù)據(jù)中不同人簽字次數(shù)
EER(等誤率):
AUC(ROC曲線面積)
ACC(準確度):
2. 數(shù)據(jù)集
● CSD:中文簽名 749個人 ?20真實,20冒寫
訓(xùn)練集:357 ? 驗證集:187 ? 測試集:
● CEDAR:英文簽名 55個人 24真實, 24 冒寫
http://www.cedar.buffalo.edu/NIJ/data/signatures.rar
訓(xùn)練集:50 ? ?測試集:5
● BHSig260:包含兩個子集
https://drive.google.com/file/d/0B29vNACcjvzVc1RfVkg5dUh2b1E
BHSig-B:孟加拉語簽名 100個人,24真實,30冒寫
訓(xùn)練集:50 ? ?測試集:50
BHSig-H:印地語簽名 ?160個人,24真實,30冒寫
訓(xùn)練集:100 ? 測試集:60
3. 跨語言測試
在一種語言的簽名數(shù)據(jù)集上訓(xùn)練模型,在另一種語言簽名數(shù)據(jù)進行測試,鑒別性能會劇烈下降,這可能是由于語言文字的不同會影響簽名者的書寫習(xí)慣和風(fēng)格,所以導(dǎo)致了鑒別器在跨語種的任務(wù)上泛化性能較差。
※flask搭建一個簽字程序
在做算法調(diào)研時,發(fā)現(xiàn)一個繪制平滑簽名的JavaScript庫,基于HTML5 canvas實現(xiàn),它適用于所有現(xiàn)代桌面和移動瀏覽器,且不依賴于任何外部庫的簽字程序:signature_pad
Github demoFlask是python的輕量級Web應(yīng)用框架,最大的特征是輕便,我們可以使用Python語言快速實現(xiàn)一個網(wǎng)站或Web服務(wù)。python環(huán)境下安裝flask:
pip install flask通過flask加載簽字html頁面,可參考signature_pad demo實現(xiàn)或者博客:https://blog.csdn.net/weixin_38362455/article/details/88171200
python代碼
import json import base64 from flask import Flask, render_template, requestapp = Flask(__name__)@app.route('/') def hello_world():return render_template('index.html')@app.route('/image', methods=['POST']) def get_image_data():img_data = request.values.get('imgStr', 0)sign_data = request.values.get('sign_data', 0)# 保存圖片with open('test.png', 'wb') as f:f.write(base64.b64decode(img_data))return img_dataif __name__ == '__main__':app.config["DEBUG"] = True # 設(shè)置debug=True是為了讓代碼修改實時生效,而不用每次重啟加載app.run(host='0.0.0.0', port=500) PC端效果手機端效果基于這樣的簽字服務(wù)和算法,后面的就可以實現(xiàn)很多的應(yīng)用,如:手寫字體識別、筆跡識別、筆跡比對等。
長按二維碼關(guān)注我們
有趣的靈魂在等你
留言就摁吧
總結(jié)
以上是生活随笔為你收集整理的CVPR 2019笔迹识别论文:逆鉴别网络+八路Attention的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 创意赛第二季又来了,PaddleHub人
- 下一篇: 【opencv系列08】OpenCV4.