翻譯自:A.G. Hochuli a , L.S. Oliveira a , ∗, A.S. Britto Jr b , R. Sabourin c的《Handwritten digit segmentation: Is it still necessary?》
最近在找關閉文本分割的論文,本來是打算找些老一點,經典的看看,無意間看到這篇論文,被它的标題吸引,很有意思。正好比較新,是以今天從下午開始到現在,把論文仔細研讀了一遍。個人覺得寫得特别好,特别容易了解。以前總覺得外國大牛們寫得讀起來費勁,一直都比較無從下手,但是這篇論文重新整理了我的認知。周末這個班加的很開心,有成就感
。
翻譯的不好、了解不到位的地方還請大家指出,以下内容僅代表我個人的了解,也許會有偏差吧
。
感謝作者的貢獻!
摘要:
過去的方法都是基于前景、背景、連通區域提取特征,依賴啟發式過分割。困難在重疊數字,我們的方法假設手寫數字分割可以成功地替換為一組分類器的訓練,以預測字元串的大小,并對它們進行分類而不進行任何分割,為此我們訓練了四個CNN。作者認為比所有需要分割的算法都好。
1. 介紹:
手寫數字的識别的瓶頸之一是分割子產品,它讀取一個數字串并将其分割成孤立的字元。挑戰是缺少上下文語義資訊,也不知道字元串中的數字個數。
而且,過去的啟發式過分割雖然最大化了産生良好分割點的機會,但是增加了計算量,因為,需要識别的假設的數目随着過分割切割的數目而指數增加。
在文獻[25]中提到過一種政策以減少過度分割的影響,他們使用SVM分類器過濾不必要的分割,成功地減少到大約83%。
文獻[20]從性能、分割假設數和處理時間等方面比較了不同的分割算法的性能。目的是比較各種算法的有優勢和不足,進而找出一種最佳的算法,但是這種分割政策是有問題的,因為粘連的重疊程度和類型是多變的。
文獻[17]首次提出不分割的概念,該作者提出的SDNN (Spatial Displacement Neural Network) ,網絡輸入包括不分割字元,産生一系列輸出向量,由後處理器挑出最可能的标簽序列。在3000張郵政編碼上測試結果是正确分類66%。文獻[14]說SDNN并沒有的到比分割更好的效果。
文獻[3]提出了另外一種避免分割的政策,他訓練了由100個獨立的子網絡組成的子產品化神經網絡。從NIST資料庫中提取的1374個數字對的識别率為95.3%。另外一種類似的方法是文獻[4],使用20 0,0 0 0張圖像訓練了100類CNN,識别正确率為94.65%。作者也使用過這種方法用于粘連3個數字的數字串,不過用了兩個CNNs,一個用于單個數字,一個用于粘連數字。從NIST資料集上1476個3位字元串的正确率為93.4%。
[2,16,19,23]在過分割上都表現很好。深度學習在手寫識别領域貢獻很大,如數字識别[6,22]方面取得了很大的進步,字元識别[26 ],單詞識别[21],[24],[22],腳本識别[28 ],簽名驗證[11 ]。但是還是受分割的限制。
本文的方法,訓練四個特定任務的分類器,一個用來預測粘連串的數字數量,其它三個分别是用來區分[0-9]、[00-99]、[000-999]的分類器。用文獻[20]中的79,464 個粘連對 (TP) 和從NIST SD19資料集中抽取的11,585個數字串上做了測試。在TP上的效果優于所有分割算法,同時減少了産生和過濾假設的計算成本。該方法對于NIST SD19資料集中2-6位粘連對的分類也很高效。
2. 合成資料
三種粘連串,分别為2、3、4,粘連串是通過文獻[20]中的算法對NIST SD19[9]資料集中單個數字合成得到的。NIST資料庫包含3699個手寫樣本形式(HSFS)和814255個分段手寫數字和表格中的字母字元的全頁二進制圖像。該資料集中有超過240,0 0 0 個單個數字。為了避免資料集對實驗結果産生偏差,必須使用NIST SD19中資料的作者資訊,例如分别挑選不同的作者的資料專門用來訓練、驗證、測試。表一:用于訓練和測試分類器的資料,且樣本在類間均勻分布。
注:所有合成資料在
https: //web.inf.ufpr.br/vri/databases-software/touching-digits/(不能通路) 供研究使用。
3. 本文方法架構
無分割方法基于三個主要子產品:預處理(3.1)、Length Classifier(3.2.1)和分類識别(3.2.2)。步驟如下(Fig.1):
1. 通過預處理子產品,将數字串分成所有的元件(CCs),包括單數字和粘連數字;
2. 每個CC被Length Classifier預測粘連數字長度,會得到該CC對應屬于1,,2,3,4粘連長度的機率。從NIST SD19資料集發現超過3個粘連的很少,是以,如果預測結果為4,就被reject;
3. 三個分類器C1,C2,C3分别被用來識别在不同資料段10 [ 0 ... 9 ], 100 [ 0 0 . . . 99 ], 10 0 0 [ 0 0 0 . . . 999 ]的資料。10代表該分類器是10分類。使用哪個分類器取決于上一步的結果;
4. 由fusion module(3.3)決定保留哪個結果作為最後的識别結果。
3.1. 預處理
問題:最初的分組是根據連通區域麼?
[19] L.S. Oliveira , R. Sabourin , F. Bortolozzi , C.Y. Suen , Automatic recognition of handwritten numerical strings: a recognition and verification strategy, IEEE Trans. Pattern Anal. Mach. Intell. 24 (11) (2002) 1438–1454 .
使用文獻[19]中的分組政策,圖像的中線(SI mediam )作為參考。滿足以下條件之一認為CC是斷裂的:
1. CC不與圖像的中線相交;
即使當CC與中線相交時,如果交點接近CC的頂部或底部,也可能被視為斷裂部分。
2. max (CCabove ,CCbelow )/ min (CCabove ,CCbelow ) > 5,CCabove ,CCbelow 分别表示中線上下部分的垂直高度。
然後,将被認為斷裂的CC配置設定給它的鄰居。分給哪個鄰居,必須滿足以下條件:
IF CCleft < CCright
THEN
Group (CCprevious , CCbroken)
ELSE
Group (CCbroken , CCnext )
CCleft 、CCright分别表示斷裂的CC距離左右數字串的距離量(很大的值)。 離哪邊近就跟哪邊結合(都是往前結合)。
最後将分組結果根據水準位置從左到右排序。
注:所有量的具體定義在Fig.2,所有門檻值都是參考[19]。
如果該子產品失敗,所有其他子產品将受到損害。在這種情況下,很自然地認為這個預處理子產品應該是魯棒的。然而,NIST SD19上的斷指頻率并不要求這樣的魯棒性。因為在這個資料集中,不到5%的數字串包含斷開的數字。本節中描述的政策能夠正确地将其中85%個元件分組。
手動建立了800個品質差的資料(頂部-底部裁剪;增加斷裂;添加噪聲),Fig.3和Fig.4展示了一些對于手動斷裂成功或失敗分組的例子。
在這些擴充函數中,預處理子產品的性能與NIST SD19上觀察到的相同,這些圖像包含手動建立的斷點并由裁剪引起(約85%)。對于具有随機噪聲的圖像,性能下降到70%。然而,随着一些圖像增強(例如,形态學閉合),性能提高到NIST SD19中觀察到的相同的85%。綜上所述,如果資料集包含品質非常差的手寫體,并且有大量的數字殘缺,則更強大的預處理将是必需的。
3.2. 分類器
所有分類器都包括卷積層、最大遲化、全連接配接層,其中,卷積和全連接配接由可學習的參數。除了最後一層外,每個可學習的層後面都加ReLU非線性映射,最後一層使用SoftMax非線性映射。
訓練使用mini-batch=256的反向傳播的SGD,訓練的各個參數值在3.2第三段。使用Caffe架構[13]和NVidia GeForce GTX Titan Black GPU。
所有訓練過的分類器供研究使用:
https://web.inf.ufpr. br/vri/databases-software/touching-digits/ (不能通路)
3.2.1 長度分類器
長度分類器L,驗證多個模型後最終基于LeNet 5 [14]。基本結構Fig.5。
400000, 79157 ,79742分别用來做training, validation,testing。輸入圖像大小為64 ×64效果最好。在test上長度識别正确率分别為98.4%(Top-1 )和99.9%(Top-12)。Table2展示了結果。
垂直筆畫的數量和位置是預測字元串大小所需的重要資訊。
[14] Y. LeCun , L. Bottou , Y. Bengio , P. Haffner , Gradient-based learning applied to document recognition, Proc. IEEE 86 (11) (1998) 2278–2324 .
3.2.2 數字分類器
Fig.7展示了數字分類器的網絡結構及參數,這三個分類器(1-digit,2-digit,3-digit)也是基于LeNet 5 [14]。這些參數是在驗證集上定義的。
Table3展示了用于training, validation, testing的資料和疊代次數。使用Caffe架構[13]和NVidia GeForce GTX Titan Black GPU。
在test上識别正确率在table4展示。
3.3. Fusion (融合)(作者提的)
由于數字分類器的效果很大程度上取決于長度分類器,是以table2矩陣表明也可以參考top-2的結果,是以提出了Fusion規則,參考公式(1)。
公式(1)的解釋:如果輸入圖像X在長度分類器的結果L ( x ) <門檻值T,則将Top1和Top2的結果都送到對應的數字分類器中識别,去機率最大的一個結果。
如果L ( x ) >門檻值T,隻取Top1的結果去識别。門檻值T是在驗證集上得到的。
最後整個數字串的識别機率P (M| I)=公式(2),解釋為:各個結果相乘。
Fig.8展示了完整的步驟。
注:門檻值T在第四部分通過在驗證集上實驗得到T=0.95。
4. 實驗
比較本文方法和傳統分割方法,測試資料集使用TP的79464 張圖像和NIST SD19中提取的粘連範圍在2-6的11000張圖像。
4.1. 合成資料
Table5展示了文獻[20]和[7]中提到的所有算法在TP資料集上的實驗效果,包括分割正确率和Fig.9展示的粘連類型的效果。
問題:single segmentation cut 是什麼?分割點,在Fig.10中有三個分割點SP0,SP1,SP2。
作者利用啟發式或更詳細的過濾器,以減少分割假設的數量[25 ]。通過建立大量的分割點将圖像分解成多個片段,可以在某個時間點産生良好的分割切割;但是,在實際情況下,過濾和處理過分割的成本可能是令人望而卻步的。
本文的方法在處理粘連類型5(多筆粘連)的時候性能并不比傳統分割好。本文方法的正确率97.2%,錯誤2.88%(1.78%長度分類錯誤,1.10% 數字分類錯誤)。
4.2. 資料集NIST SD19
從hsf_7 series中抽取11585張圖像,合成了5類2_digit (2,370),3_digit (2,385), 4_digit (2,345),5_digit(2,316),and 6_digit (2,169)。[2,16,19,23]中也被用來測試。 需要注意一點,在任何時候hsf_7 series的作者的資料都不能用來做訓練集。
Fig.12展示了T的改變對效果的影響(靈敏度分析)。
錯誤結果來源:預處理錯誤、長度分類錯區、數字分類錯誤。
Fig.13展示了一些正确識别和錯誤識别的例子。
Fig.14展示了每個分類器被調用的次數。
作者簡單描述了其他文獻中使用同樣資料集的算法和實驗結果(Table 7 )。
在table7中[8]表現比本文方法好。有時間看看。
[8] A. Gattal , Y. Chibani , B. Hadjadji , Segmentation and recognition system for unknown-length handwritten digit strings, Pattern Anal. Appl. 20 (2) (2017) 307–323 .
5. 總結
分割可以被CNN分類器取代。為了克服由長度分類器引起的一些混淆,融合方法可以取長度分類器的Top1和Top2,然後使用兩個數字分類器的輸出來産生最終的結果。TP資料集上的實驗證明了這個優點,實作了97%的識别率。在NIST SD19的實驗中,其中大多數字元串僅包含單個數字,該方法與文獻中的某種啟發式的文獻相比有利。為了将來的工作,我們計劃将系統部署在目前正在建構的數值字元串的真實資料集上。