天天看點

論文閱讀筆記《Handwritten digit segmentation: Is it still necessary?》

翻譯自:A.G. Hochuli a , L.S. Oliveira a , ∗, A.S. Britto Jr b , R. Sabourin c的《Handwritten digit segmentation: Is it still necessary?》

最近在找關閉文本分割的論文,本來是打算找些老一點,經典的看看,無意間看到這篇論文,被它的标題吸引,很有意思。正好比較新,是以今天從下午開始到現在,把論文仔細研讀了一遍。個人覺得寫得特别好,特别容易了解。以前總覺得外國大牛們寫得讀起來費勁,一直都比較無從下手,但是這篇論文重新整理了我的認知。周末這個班加的很開心,有成就感

論文閱讀筆記《Handwritten digit segmentation: Is it still necessary?》

翻譯的不好、了解不到位的地方還請大家指出,以下内容僅代表我個人的了解,也許會有偏差吧

論文閱讀筆記《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的實驗中,其中大多數字元串僅包含單個數字,該方法與文獻中的某種啟發式的文獻相比有利。為了将來的工作,我們計劃将系統部署在目前正在建構的數值字元串的真實資料集上。