PP-OCR論文翻譯
- 2020 年 12 月 6 日
- 筆記
譯者註:
我有逛豆瓣社區的習慣,因此不經意間會看到一些外文翻譯成中文書的評價。「書是好書,翻譯太臭」、「中文版別看」、「有能力盡量看原版」...在翻譯PP-OCR的時候,我有認真校對每一句話,但難免有一些歧義在裡頭,比如 Ablation study of PACT quantization for text recognition. 可以有兩種解讀:
- PACT量化在文本識別上的消融研究
- 用於文本識別的PACT量化消融研究
其實按照語法第二種會更好一些,但是個人讀起來第一種更加順口,也不知道哪一種更適合讀者的風格。我在盡量保證原始味道的情況下,對一些不好翻譯的詞和句調整了語義和語序,這一點在詞上更為明顯,希望大家能夠理解。文中難免有一些詞翻譯的不準確,或者說他們的概念就不太好用一個詞代替,我在文末(附錄)里都寫上了,如果沒有寫上,可能是我功力不夠沒有找到,還望讀者能夠批評指出~
PP-OCR: 一個實用的超輕量OCR系統
摘要
光學字元識別系統已廣泛應用於辦公自動化、工廠自動化、在線教育、地圖製作等多種應用場景。然而,由於文本呈現形式的多樣性和對計算效率的要求,OCR仍然是一項具有挑戰性的任務。在本文中,我們提出了一個實用的超輕量OCR系統,即PP-OCR。用於識別6622個漢字的PP-OCR整體模型尺寸只有3.5M,用於識別63個字母數字元號的模型尺寸只有2.8M。我們引入了一系列策略來提高模型的能力或減小模型的尺寸。並給出了相應的消融(原文:ablation)實驗結果。同時發布了幾個預先訓練好的中英文識別模型,包括文本檢測器(使用了97K張影像)、方向分類器(使用了600K張影像)和文本識別器(使用了17.9M張影像)。此外,提出的PP-OCR也在其他語言識別任務中得到驗證,包括法語、韓語、日語和德語。上面提到的所有模型都是開源的,並且程式碼可以在GitHub倉庫中獲得,即 //github.com/PaddlePaddle/PaddleOCR。
1 簡介
光學字元識別(OCR)是一種針對影像中的文本進行自動識別的技術,如圖 1 所示,它有著悠久的研究歷史和廣泛的應用場景,如文檔電子化,身份認證,數字金融系統和車牌識別。此外,在工廠中,通過自動提取產品的文本資訊,可以更方便地管理產品。學生的離線作業或試卷可以通過OCR系統電子化,使教師和學生之間的交流更加有效。OCR還可以用於標記街景影像的興趣點(POI),提高地圖的製作效率。豐富的應用場景賦予了OCR技術巨大的商業價值,同時也帶來了許多挑戰。
多種文本的外觀 影像中的文本一般可分為兩大類:場景文本和文檔文本。場景文本是指自然場景中的文本,如圖 3 所示,它們通常會因透視、縮放、彎曲、雜亂、字體、多語言、模糊、光照等因素而發生劇烈變化,而圖 4 所示的文檔文本在實際應用中更經常遇到。由字元密集性(原文:high density)和長文本引起的不同難題有待解決。另外,文檔影像文本識別往往需要構造結果,這就引入了一項新的困難任務。
計算效率 在實際應用中,需要處理的影像往往是海量的,這使得計算效率成為設計OCR系統的一個重要標準。考慮到代價,CPU比GPU更適合使用。特別的,OCR系統需要在許多場景中的嵌入式設備上運行,比如行動電話,這就需要考慮模型的大小。平衡模型的尺寸和性能是困難的,但有很大的價值。在本文中,我們提出了一個實用的超輕量級OCR系統,名為PP-OCR,該系統由文本檢測、檢測框校正和文本識別三部分組成,如圖 2 所示。
文本檢測 文本檢測的目的是定點陣圖像中的文本區域。在PP-OCR中,我們使用可微二值化(DB) (Liao 等人 2020)作為基於簡單分割網路的文本檢測器。簡單的DB後處理使得它非常高效。為了進一步提高其有效性和效率,我們採用了以下六種策略:輕主幹(原文:light backbone)、輕頭部(原文: light head)、去除SE模組、餘弦學習率衰減、學習率預熱、FPGM 裁剪。最後,文本檢測器的模型尺寸減小到1.4M。
檢測框校正 在識別檢測到的文本之前,需要將文本框轉換為水平矩形框進行後續的文本識別。由於檢測幀由4個點組成,易於通過幾何變換實現。然而,矯正框可能會反轉。因此,需要一個分類器來確定文本的方向。如果文本框被反轉(原文:reverse),則需要進一步翻轉(原文:flip)。訓練文本方向分類器是一項簡單的影像分類任務。我們採用以下四種策略來提高模型的能力和減小模型的尺寸:輕主幹、數據增強、調整輸入解析度和PACT量化。最後,文本方向分類器的模型大小為500KB。
文本識別 在PP-OCR中,我們使用CRNN (Shi, Bai and Yao 2016)作為文本識別器,它在文本識別中得到了廣泛的應用。CRNN集成了特徵提取和序列建模。該演算法採用連接主義時間分類(CTC)損失避免預測與標籤的不一致性。為了提高文本識別器的模型能力和減小模型尺寸,本文採用了以下9種策略:輕主幹、數據增強、餘弦學習率衰減、調整特徵圖解析度、正則化參數、學習率預熱、輕頭部、預訓練模型和PACT量化。最後,用於中英文識別的文本識別器的模型大小只有1.6M,用於字母數字元號識別的大小只有900KB。
為了實現一個實用的OCR系統,我們構建了一個大規模的中英文識別數據集作為例子。具體來說,文本檢測數據集有97K幅影像,方向分類數據集有600K幅影像,文本識別數據集有17.9M幅影像。我們選取少量數據快速進行消融實驗,並選擇合適的策略,在圖 2 中做了大量的消融實驗來展示不同策略的效果。此外,我們還驗證了所提出的PP-OCR系統用於其他語言的識別,包括字母數字元號、法語、韓語、日語和德語。
本文的其餘部分組織如下。在第2節,我們提出一系列(原文:the bag of有誤)模型增強或瘦身策略。第3節探討實驗結果,第4節得出結論。
2 增強或瘦身策略
2.1 文本檢測
本節將詳細介紹用於增強文本檢測器的模型能力或減小模型大小的六種策略。圖 5 展示了文本檢測器DB的架構。
輕主幹網路 主幹的大小對文本檢測器的模型大小有重要影響。因此,在構建超輕量化模型時,應該選擇輕的主幹。隨著影像分類的發展, MobileNetV 1,MobileNetV2 ,MobileNetV3 和ShuffleNetV2系列是常用的輕主幹。每個系列都有不同的規模。多虧 PaddleClas 提供了如圖 6 所示的CPU推理時間和超過20種主幹網路的準確率,我們發現當預測時間相同時,MobileNetV3可以達到更高的精度。在規模的選擇上,我們依據經驗採用 MobileNet V3_large_x0.5 來平衡精度和效率。值得一提的是,PaddleClas提供了多達24個系列的影像分類網路結構和訓練配置,122個模型的預訓練權重及其評價指標,如ResNet、ResNet-vd、SEResNeXt、Res2Net、Res2Net_vd、DPN、DenseNet、EfficientNet、Xception、HRNet等。
輕頭部 文本檢測器的頭部與目標檢測中的FPN (Lin 等人 2017)架構類似,通過融合不同尺度的特徵圖,提高小文本區域檢測的效果。為了方便地合併不同解析度的特徵圖,通常使用1 x 1卷積來將特徵圖減少到相同數量的通道(我們簡稱為inner_channels)。
概率圖和閾值圖由卷積融合的特徵圖生成,這些卷積融合特徵圖也與上述的inner_channels相關聯。因此inner_channels對模型尺寸有很大的影響。當inner_channels從256減小到96時,模型尺寸從7M減小到4.1M,但精度只有略微下降。
移除SE模組 SE是壓縮-激勵(原文:squeeze-and-excitation)(Hu, Shen, and Sun 2018)的縮寫。如圖 7 所示,SE明確地對通道之間的相互依賴進行建模,並自適應地重新校準通道上的特徵響應。由於SE塊可以顯著提高視覺任務的準確率,MobileNetV3的搜索空間中包含了它們,並且在MobileNetV3架構中有許多SE模組。但是,當輸入解析度較大時,例如640×640,很難用SE塊估計通道上的特徵響應。精度的提高有限,但時間成本很高。當SE塊從主幹上移除時,模型大小從4.1M減小到2.5M,但準確率沒有影響。
餘弦學習率衰減 學習率是控制學習速度的超參數。學習率越低,損失值的變化越慢。雖然使用低學習率可以確保你不會錯過任何局部最小值,但這也意味著收斂速度很慢。在訓練的早期,權值處於隨機初始化狀態,因此我們可以設置較大的學習率來更快的收斂。在訓練的後期,由於權值接近於最優值,因此需要使用相對較小的學習率。餘弦學習速率衰減已成為提升模型準確率的首選學習率衰減策略。在整個訓練過程中,餘弦學習速率衰減保持著較大的學習速率,因此其收斂速度較慢,但最終的收斂精度較好。圖 8 比較了不同的學習速率衰減方式。
學習率預熱 (He 等人 2019a)的論文表明,使用學習率預熱操作有助於提高影像分類的準確率。在訓練過程的開始,使用過大的學習率可能會導致數值不穩定,建議使用較小的學習率。當訓練過程穩定時,使用初始學習率。對於文本檢測,實驗表明該策略也是有效的。
FPGM裁剪 裁剪是提高神經網路模型推理效率的另一種方法。為了避免模型裁剪導致的模型性能下降,我們使用FPGM (He 等人 2019b)在原始模型中查找不重要的子網路。FPGM採用幾何中值作為判別準則,將卷積層中的每個濾波器視為歐幾里得空間中的一個點,然後計算這些點的幾何中值,並去除具有相似值的濾波器,如圖 9 所示。每一層的壓縮比對於模型裁剪也很重要,均勻地修剪每一層通常會導致顯著的性能下降。在PP-OCR中,根據(Li 等人 2016)的方法計算各層的裁剪敏感性(原文:pruning sensitivity),然後用該方法評估各層的冗餘。
2.2 方向分類
在本節中,我們將詳細介紹四種提高方向分類器模型能力或減小模型尺寸的策略。
輕主幹 我們還採用與文本檢測器相同的MobileNetV3作為方向分類器的主幹。由於這個任務相對簡單,我們依據經驗使用MobileNetV3_small_x0.35來平衡準確性和效率。當使用較大的骨幹,準確性不會提高更多。
數據增強 (Yu 等人 2020)這篇論文展示了一些影像處理操作來訓練一個文本識別器,如旋轉、透視失真(原文:perspective distortion)、運動模糊和高斯雜訊。這些過程簡稱為BDA(基礎數據增強)。它們被隨機地添加到訓練影像中。實驗表明,BDA也適用於方向分類器的訓練。除了BDA之外,為了提高影像分類的效果,最近提出了一些新的數據增強操作,如自動增強(Cubuk 等人 2019)、隨機增強(Cubuk 等人 2020)、剪貼(原文:CutOut)(DeVries and Taylor 2017)、隨機擦除 (Zhong 等人 2020)、捉迷藏(原文:HideAndSeek)(Singh and Lee 2017)、網格遮擋(Chen 2020)、混合(原文:Mixup)(Zhang 等人 2017)和最小切(原文:Cutmix)(Yun 等人 2019)。但實驗表明,除了隨機增強和隨機擦除外,大部分方法都不能用於方向分類器的訓練。隨機增強效果最好。最後,我們在方向分類的訓練影像中加入BDA和隨機增強。
輸入解析度 一般來說,當標準化影像的輸入解析度提高時,精度也會提高。因為方向分類器的主幹是非常輕的,適當提高解析度不會使計算時間明顯增加。在之前的大多數文本識別方法中,一幅經過標準化的影像的高寬分別設為32和100。然而,在PP-OCR中,高和寬分別設為48和192,來提高方向分類器的準確率。
PACT量化 量化使神經網路模型具有較低的時延、更小的體積和更低的計算功耗。目前量化主要分為兩大類:離線量化和在線量化。離線量化是一種定點量化方法,它使用諸如KL散度和移動平均等方法來確定量化參數,並且不需要再訓練。在線量化是在訓練過程中確定量化參數,其量化損失比離線量化方式要小。
PACT(PArameterized Clipping acTivation)(Choi 等人 2018)是一種新的在線量化方法,可以提前從激活中去除一些異常值。去除異常值之後。該模型可以學習更合適的量化尺度。用於PACT的預處理激活公式如下:
普通的PACT激活值的預處理是基於ReLU函數的。所有大於某個閾值的激活值都會被截斷。然而,激活函數在MobileNetV3中不僅有ReLU,還有硬平滑(原文:hard swish)。使用普通的PACT量化會導致較高的量化損失。因此,我們將激活預處理公式修改如下,以減少量化損失。
我們採用改進的PACT量化方法對方向分類器模型進行量化。此外,在PACT參數中加入係數為0.001的L2正則化,以提高模型的魯棒性。
上述FPGM裁剪和PACT量化的實現基於 PaddleSlim 。PaddleSlim是一個用於模型壓縮的工具包。它包含了一組壓縮策略,如裁剪、不動點量化、知識蒸餾、超參數搜索、神經結構搜索等。
2.3 文本識別
本節將詳細介紹用於增強文本識別器的模型能力或減小模型尺寸的九種策略。圖 10 顯示了文本識別器CRNN的架構。
輕主幹 我們同樣採用MobileNetV3作為文本識別器的主幹,與文本檢測相同。根據經驗選用MobileNetV3_small_x0.5來平衡精度和效率的經驗。如果你對模型大小不是很敏感,MobileNetV3_small_x1.0也是一個不錯的選擇。模型尺寸僅增加了2M,精度卻有明顯提高。
數據增強 除了前面提到的在文本識別中常用的BDA,TIA (Luo 等人 2020)也是一種有效的文本識別數據增強方法。如圖 11 所示,首先在影像上初始化一組基準點。然後用幾何變換隨機移動這些點以生成一個新的影像。在PP-OCR,我們把BDA和TIA添加到文本識別的訓練影像中。
餘弦學習率衰減 就像文本檢測中提到的那樣,餘弦學習速率衰減已經成為首選的降低學習率的方法。實驗表明,餘弦學習速率衰減策略對提高模型的文本識別能力也是有效的。
特徵圖解析度 為了適應多語言識別,特別是中文識別,在PP-OCR中CRNN輸入的高寬分別被設置為32和320。那麼,原始MobileNetV3的步幅並不適合文本識別。如圖 12 所示,為了保持更多的水平資訊,我們修改了除第一個下降取樣特徵圖的步幅,從(2,2)到(2,1)。為了保留更多的垂直資訊,我們進一步修改了第二個下取樣特徵圖的步幅,從(2,1)到(1,1)。因此,第二個下取樣特徵圖 \(s_2\) 的步長會嚴重影響整個特徵圖的解析度和文本識別器的精度。在PP-OCR中,根據經驗\(s_2\)被設置為(1,1),以獲得較好的性能。
正則話參數 過擬合是機器學習中的一個常見術語。一個簡單的理解是模型在訓練數據上表現良好,但在測試數據上表現不佳。為了避免過擬合,人們提出了許多正則(原文:regular)方法。其中,權重衰減是一種常用的避免過擬合的方法。在最終的損失函數之後,L2正則化(L2_decay)被添加到損失函數中。在L2正則化的幫助下,網路傾向於選擇較小的值。最後整個網路的參數趨於0,從而提高了模型的泛化性能。對於文本識別,L2_decay對識別的準確性有很大的影響。
學習率預熱 與文本檢測類似,學習率預熱也有助於文本識別。實驗表明,使用該策略對文本識別也是有效的。
輕頭部 採用全連接層將序列特徵編碼為普通預測字元。序列特徵的維度對文本識別器的模型大小有影響,特別是對字元超過6000個的漢字識別。同時,並不是維數越高,表示序列特徵的能力越強。在PP-OCR中,根據經驗將序列特徵的維度設為48。
預訓練模型 如果訓練數據較少,可以對在大數據集如ImageNet上訓練的網路進行微調,以達到快速收斂和更好的準確率。在影像分類和目標檢測中的遷移學習表明,該策略是有效的。在實際場景中,用於文本識別的數據往往有限。如果模型是用數千萬個樣本訓練的,即使這些樣本是合成的,採用上述模型可以顯著提高精度。我們通過實驗驗證了該策略的有效性。
PACT量化 除了跳過LSTM層外,我們採用相似的方向分類量化方案來減少文本識別器的模型大小。由於LSTM量化的複雜性,目前還不能對這些層進行量化。
3 實驗
3.1 實驗裝置
數據集 如表 1 所示,為了實現一個實用的OCR系統,我們構建了一個大規模的中英識別數據集作為例子。
對於文本檢測,有97K張訓練影像和500張驗證影像。在訓練影像中,有68K的影像是真實的場景影像,這些影像來自於一些公共數據集和百度影像搜索。使用的公共數據集包括LSVT (Sun 等人 2019)、 RCTW-17(Shi 等人 2017)、MTWI 2018(He and Yang 2018)、CASIA-10K(He 等人 2018)、SROIE(Huang 等人 2019)、MLT 2019(Nayef 等人 2019)、BDI(Karatzas 等人 2011)、MSRA-TD500 (Yao 等人 2012)和CCPD 2019(Xu 等人 2018)。從百度影像搜索得到的訓練影像大多是文檔文本影像。剩下的29K合成影像主要針對長文本、多方向文本和表格文本場景。所有驗證影像都來自真實場景。
對於方向分類,有600K訓練影像和310K驗證影像。在訓練影像中,100K的真實場景影像來自於公共數據集(LSVT,RCTW-17,MTWI 2018)。它們是對影像的標註(原文:ground truth)進行校正和裁剪的水平文本。剩下的500K合成影像主要聚焦在翻轉文本上。我們使用垂直字體合成一些文本影像,然後水平旋轉它們。所有驗證影像都來自真實場景。
對於文本識別,有17.9M的訓練影像和18.7K的驗證影像。在訓練影像中,1.9M幅影像是真實場景影像。它們來自一些公共數據集和百度影像搜索。使用的公共數據集包括LSVT、RCTW-17、MTWI 2018和CCPD 2019。其餘的16M合成影像主要聚焦於不同背景、平移、旋轉、透視變換、線干擾、雜訊、垂直文字等場景。合成影像的語料庫來自真實的場景影像。所有驗證影像也來自真實場景。
為了快速進行消融實驗,選擇合適的策略,我們從真實場景訓練影像中選擇4k影像進行文本檢測,從真實場景訓練影像中選擇300k影像進行文本識別。
此外,我們還收集了300張針對不同實際應用場景的影像來評估整個OCR系統,包括合約樣本、車牌、銘牌、火車票、工作表(原文:test sheets)、表格、證書、街景圖片、名片、數字儀錶等。圖 3 和圖 4 展示了一些測試集的影像。
此外,為了驗證所提出的PP-OCR在其他語言中的應用,我們還收集了一些用於字母數字元號識別、法語識別、韓語識別、日語識別和德語識別的語料庫,然後合成文本行影像進行文本識別。一些用於字母數字元號識別的影像來自公共數據集ST(Gupta, Vedaldi 和 Zisserman 2016)和SRN(Yu 等人 2020)。表 2 顯示了統計數據。自包含多語言的文本檢測MIT 2019年以來,中英文識別文本檢測器也支援多語言文本檢測。由於數據有限,我們還沒有找到合適的數據來訓練多語言的方向分類器。
在文本檢測和文本識別中使用的數據合成工具是根據text_render(Sansterl 2018)改進的。
實現細節 我們使用Adam優化器對所有的模型進行測試,並採用餘弦學習率衰減作為學習率方法(原文:schedule)。在表 4 可以找到不同任務的初始學習率、批大小和迭代次數。將上述模型作為預先訓練好的模型,可以使用FPGM裁剪和PACT量化來進一步減小模型的尺寸。FPGM裁剪和PACT量化的訓練過程與之前相似。
在推理階段,HMean用於評估文本檢測器的性能。準確率常常用來評估方向分類器或文本識別器的性能。F-score用於評價OCR系統的性能。為了計算F-score,正確的文本識別結果應該是準確的定位和內容一致的文本。在單個T4 GPU上測試GPU推理時間。在Intel(R) Xeon(R) Gold 6148上測試CPU推理時間。我們使用驍龍855(SD 855)來評估量化模型的推理時間。
3.2 文本檢測
表 5 比較了不同文本檢測主幹的性能,HMean、模型尺寸和MobileNetV3不同規模的推理時間差別(原文:change)巨大。在PP-OCR中,我們選擇 MobileNetV3_large_x0.5 來平衡準確率和效率。
表 3 給出了文本檢測頭部的inner_channel、SE、餘弦學習率衰減、學習率預熱的消融研究。首先,將檢測器頭部的內通道從256減少到96個,模型尺寸減小了41%,推理時間加快了近50%,HMean僅略有下降。因此,減小內通道是讓檢測器「瘦身」(原文:lighten)的有效方法。當移除檢測器主幹的SE塊時,模型尺寸減小了36.6%,推理時間進一步加快了18.8%。同時,HMean不會受到影響。因此,對於文本檢測,SE塊的精度提高有限,但時間代價非常高。最後,使用餘弦學習率衰減代替固定學習率或學習率預熱,HMean會有明顯提高。同時,模型尺寸和推理時間不會受到影響。餘弦學習率衰減和學習率預熱對文本檢測是一種有效的策略。
表 6 展示了文本檢測在FPGM裁剪的消融研究。通過FPGM裁剪,模型的尺寸減小了46.2%並且在SD855設備推理時間加快了18.9%,HMean僅略有下降。因此,FPGM裁剪能有效修剪文本檢測模型。
3.3 方向分類
表 7 比較了用於方向分類的不同主幹的性能。不同規模(0.35, 0.5)MobileNetV3的準確率接近。MobileNetV3_small_x0.35的模型大小和推斷時間要好得多。另外,在之前的一些工作中,ShuffleNetV2常常用來訓練一個方向分類器。從表中可以看到,無論是準確率、模型大小還是推理時間,ShuffleNetV2都不是一個好的選擇。
表 9 展示了用於方向分類的數據增強的消融研究。在沒有數據增強的情況下,文本導向器分類的基準線準確率僅為88.79%。當我們採用BDA ,準確率能提高2.55%。我們也驗證了隨機擦除和隨機增強對文本方向分類是有用的。因此,在PP-OCR中,我們使用BDA和隨機增強來訓練一個方向分類器。
表 8 顯示了用於方向分類的輸入解析度和PACT量化消融研究。當輸入解析度從3×32×100調整到3×48×192時,分類精度有所提高,但預測速度基本不變。此外,我們還驗證了量化策略對提高文本方向分類器的預測速度是有效的。模型尺寸減小了45.9%,推理時間提高了25.86%。準確率略有提高。
3.4 文本識別
表 10 比較了用於文本識別的不同主幹的性能。MobileNetV3不同尺度的精度、模型尺寸和推理時間都有較大區別(原文:change)。在PP-OCR中,我們選擇MobileNetV3_small_x0.5來平衡精度和效率。
表 11 比較了用於文本識別的CRNN頭部的通道數。將通道數量從256減少到48個,模型尺寸從23M減少到4.6M,推理時間提高了近30%。然而,準確率不會受到影響。可見,在一個輕量級文本識別器中,頭部的通道數對模型尺寸有很大的影響。
表 12 顯示了數據增強、餘弦學習率衰減、調整第二個下取樣特徵圖步幅、正則化參數L2_decay和用於文本識別的學習率預熱的消融研究。
為了驗證每種策略的優勢,把基本實驗稱為策略S1。使用BDA時,準確率提高3.12%。數據增強對文本識別是非常必要的。當我們進一步(原文:further)採用餘弦學習率衰減時,準確率將提高1.47%。餘弦學習速率對準確率是一種有效的策略。接下來,當我們增加特徵圖的解析度,同時將第二幅下取樣特徵圖的步幅從(2, 1)減小到(1, 1),準確率提高5.27%。然後,當我們進一步將正則化參數L2_decay從0調整到1e-5,準確率可以提高3.4%。特徵圖解析度和L2_decay對性能有很大的影響。最後,我們使用學習率熱身將準確率提高0.62%。採用TIA數據增強,準確率將提高0.91%。學習率預熱和TIA也是用於文本識別的有效策略。
表 13 給出了用於文本識別的PACT量化消融研究。當我們使用PACT量化時。模型大小減少了67.39%,推理時間加快了8.3%。由於沒有對LSTM進行量化,加速度並不明顯。然而,準確性得到了顯著的提高。因此,PACT量化也是減小文本識別器模型大小的一種有效策略。
最後,我們將說明預訓練模型的效果。我們利用17.9M訓練影像來學習一個文本識別器。然後,用這個模型作為預訓練模型來微調用於消融研究樣本。當我們使用上面的預訓練模型,準確率從65.81%提升到69%,效果很明顯。
3.5 系統性能
表 14 顯示了用於OCR系統的裁剪和量化的消融研究。當我們使用「瘦身」方法時,模型尺寸減小了55.7%,推理時間加快了12.42%,F-score沒有影響。推理時間包括系統各部分的預處理和後處理。因此,FPGM裁剪和PACT量化也是減小模型尺寸的有效策略。
為了比較所提出的超輕量級OCR系統和大規模OCR系統之間的差距,我們還訓練了一個大規模OCR系統,這個系統使用Res18_vd作為文本檢測器主幹,Res34_vd作為文本識別器主幹。表 15 顯示了比較結果。大規模OCR系統的F-score高於超輕量OCR系統,但超輕量系統的模型尺寸和推理時間明顯更好一些。
圖 13 和圖 14 顯示了本文提出的用於中英文識別的PP-OCR系統的一些影像結果。圖 15 顯示了用了本文提出的多語言識別的PP-OCR系統的一些影像結果。
4 結論
在本文中,我們提出了一個實用的超輕量級OCR系統,PP-OCR。其中用於識別6622個漢字的整體模型尺寸只有3.5M,用於識別63個字母數字元號的模型尺寸只有2.8M。我們引入了一系列策略來增強模型能力和輕量化模型,並給出了相應的實驗。同時,在大規模數據集訓練的基礎上,發布了一些實用的超輕量光學字元識別模型。
附錄 1:ablation study 消融實驗
目的其實就是為了控制變數。比如說你為了提升baseline的性能,給它加了兩個模組A,B,加完之後效果果然提高了很多。於是你急急忙忙開始寫論文,寫到你的貢獻,你給了兩條:1.模組A,2.模組B。但是這樣寫有個問題:儘管AB同時加上去對模型有提升效果,但是你並沒有證明A、B兩個模組分別都是有意義的。所以為了驗證A、B兩個模組是不是真的都有用,你需要做ablation study。方法也很簡單:
- 在baseline的基礎上加上模組A,看效果。
- 在baseline的基礎上加上模組B,看效果。
- 在baseline的基礎上同時加上模組AB,看效果。
然後結果可能是,實驗1和實驗2的結果都不如實驗3,那麼說明AB都是有用的;然而也有可能你會發現實驗1的結果和實驗3一樣,甚至更好。這就說明你的想法是有問題的,模組B其實並沒有起到作用,提升只來自於模組A。綜上所述,ablation study就是你在同時提出多個思路提升某個模型的時候,為了驗證這幾個思路分別都是有效的,做的控制變數實驗的工作。
作者:SleepyBag
鏈接://www.zhihu.com/question/60170398/answer/673961942
來源:知乎
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。
附錄 2:常用數據合成工具
