https://mp.weixin.qq.com/s/F60ehahMc0roRe0fy3Y58Q
吊打一切現有開源OCR項目:效果再升7%,速度提升220%
關注公眾號,發現CV技術之美
OpenCV中文網
OpenCV技術布道,CV實用教程,業界前沿資訊
公眾號
壹、導讀
OCR方向的工程師,之前一定聽說過PaddleOCR這個項目,其主要推薦的PP-OCR算法更是被國內外企業開發者廣泛應用,短短半年時間, 累計Star數量已超過15k,頻頻登上Github Trending和Paperswithcode 日榜月榜第一,在《Github 2020數字洞察報告》中被評為 中國Github Top20活躍項目,稱它為 OCR方向目前最火的repo絕對不為過。 最近,由PaddleOCR原創團隊,針對PP-OCR進行了一些經驗性改進,構建了一種新的OCR系統,稱為PP-OCRv2。★ 從算法改進思路上看,主要有五個方面的改進:
-
檢測模型優化:采用CML協同互學習知識蒸餾策略;
-
檢測模型優化:CopyPaste數據增廣策略;
-
識別模型優化:LCNet輕量級骨干網絡;
-
識別模型優化:UDML 改進知識蒸餾策略;
-
識別模型優化:Enhanced CTC loss損失函數改進。
-
在模型效果上,相對於PP-OCR mobile版本提升超7%;
-
在速度上,相對於PP-OCR server版本提升超過220%;
-
在模型大小上,11.6M的總大小,服務器端和移動端都可以輕松部署。
-
GitHub項目:https://github.com/PaddlePaddle/PaddleOCR
-
Arxiv文章地址:https://arxiv.org/abs/2109.03144
貳、PaddleOCR歷史表現回顧
2020年6月,8.6M超輕量模型發布, GitHub Trending 全球趨勢榜日榜第一。
2020年8月,開源CVPR2020頂會算法,再上GitHub趨勢榜單!
2020年10月,發布PP-OCR算法,開源3.5M超超輕量模型,再上 Paperswithcode 趨勢榜第一!
2021年1月,發布Style-Text文本合成算法和PPOCRLabel數據標注工具,star數量突破10000+,在《Github 2020數字洞察報告》中被評為 中國Github Top20活躍項目。
2021年4月,開源AAAI頂會論文PGNet端到端識別算法,Star突破13k。
2021年8月,開源版面分析與表格識別算法PP-Structure,Star突破15k。
2021年9月,發布PP-OCRv2算法,效果和速度再升級。

叄、PaddleOCR開源能力速覽
★ 通用文本檢測識別效果:支持通用場景下的OCR文本快速檢測識別

★ 文本合成工具Style-Text效果:相比於傳統的數據合成算法,Style-Text可以實現特殊背景下的圖片風格遷移,只需要少許目標場景圖像,就可以合成大量數據,效果展示如下:
★ 半自動標注工具PPOCRLabel:通過內置高質量的PP-OCR中英文超輕量預訓練模型,可以實現OCR數據的高效標注。CPU機器運行也是完全沒問題的。用法也是非常的簡單,標注效率提升60%-80%是妥妥的,效果演示如下:

★ 文檔結構分析+表格提取PP-Structure:可以對文檔圖片中的文本、表格、圖片、標題與列表區域進行分類,還可以利用表格識別技術完整地提取表格結構信息,使得表格圖片變為可編輯的Excel文件。

★ 核心能力全部可以自定義訓練,動靜統一的開發體驗
動態圖和靜態圖是深度學習框架常用的兩種模式。在動態圖模式下,代碼編寫運行方式符合Python程序員的習慣,易於調試,但在性能方面, Python執行開銷較大,與C++有一定差距。相比動態圖,靜態圖在部署方面更具有性能的優勢。靜態圖程序在編譯執行時,預先搭建好的神經網絡可以脫離Python依賴,在C++端被重新解析執行,而且擁有整體網絡結構也能進行一些網絡結構的優化。
PaddleOCR依賴飛槳核心框架動靜統一的能力,支持用戶使用動態圖編寫組網代碼。預測部署時,飛槳會對用戶代碼進行分析,自動轉換為靜態圖網絡結構,兼顧了動態圖易用性和靜態圖部署性能兩方面優勢。 傳送門:Github:https://github.com/PaddlePaddle/PaddleOCR 那么最近的2021年9月份更新,PaddleOCR又給大家帶來哪些驚喜呢?
肆、PP-OCRv2五大關鍵技術點深入解讀:
全新升級的PP-OCRv2版本,整體的框架圖保持了與PP-OCR相同的Pipeline,如下圖所示。
在優化策略方面,主要從五個角度進行了深入優化(如上圖紅框所示),主要包括:
-
檢測模型優化:采用CML知識蒸餾策略
-
檢測模型優化:CopyPaste數據增廣策略
-
識別模型優化:LCNet輕量級骨干網絡
-
識別模型優化:UDML 知識蒸餾策略
-
識別模型優化:Enhanced CTC loss 改進
下面展開詳細介紹:
★ 檢測模型優化:采用CML (Collaborative Mutual Learning) 協同互學習知識蒸餾策略。
如上圖所示,CML的核心思想結合了①傳統的Teacher指導Student的標准蒸餾與 ②Students網絡直接的DML互學習,可以讓Students網絡互學習的同時,Teacher網絡予以指導。對應的,精心設計關鍵的三個Loss損失函數:GT Loss、DML Loss和Distill Loss,在Teacher網絡Backbone為ResNet18的條件下,對Student的MobileNetV3起到了良好的提升效果。
★ 檢測模型優化:CopyPaste數據增廣策略
數據增廣是提升模型泛化能力重要的手段之一,CopyPaste 是一種新穎的數據增強技巧,已經在目標檢測和實例分割任務中驗證了有效性。利用CopyPaste,可以合成文本實例來平衡訓練圖像中的正負樣本之間的比例。相比而言,傳統圖像旋轉、隨機翻轉和隨機裁剪是無法做到的。
CopyPaste主要步驟包括:①隨機選擇兩幅訓練圖像,②隨機尺度抖動縮放,③隨機水平翻轉,④隨機選擇一幅圖像中的目標子集,⑤粘貼在另一幅圖像中隨機的位置。這樣,就比較好的提升了樣本豐富度,同時也增加了模型對環境魯棒性。
經過以上兩個檢測方向的優化策略,PP-OCRv2檢測部分的實驗效果如下: ★ 識別模型優化:LCNet輕量級骨干網絡
這里,PP-OCRv2的研發團隊提出了一種基於MobileNetV1改進的新的骨干網絡LCNet,主要的改動包括:①除SE模塊,網絡中所有的relu替換為h-swish,精度提升1%-2%②LCNet第五階段,DW的kernel size變為5x5,精度提升0.5%-1%③LCNet第五階段的最后兩個DepthSepConv block添加SE模塊, 精度提升0.5%-1%④GAP后添加1280維的FC層,增加特征表達能力,精度提升2%-3%
★ 識別模型優化:UDML 知識蒸餾策略
在標准的DML知識蒸餾的基礎上,新增引入了對於Feature Map的監督機制,新增Feature Loss,增加迭代次數,在Head部分增加額外的FC網絡,最終加快蒸餾的速度同時提升效果。
★ 識別模型優化:Enhanced CTC loss 改進
考慮到中文OCR任務經常遇到的識別難點是相似字符數太多,容易誤識,借鑒Metric Learning的想法,引入Center Loss,進一步增大類間距離,核心思路如上圖公式所示。 經過以上三個識別方向的優化策略,PP-OCRv2識別部分的實驗效果如下:
經過以上五個方向的優化,最終PP-OCRv2僅以少量模型大小增加的代價,全面超越PP-OCR,取得了良好的效果。
伍、良心出品的中英文文檔教程
隨着本次PP-OCRv2升級,PaddleOCR的項目文檔也全面升級,結構更清晰,內容更豐富,
別的不需要多說了,大家訪問GitHub點過star之后自己體驗吧:
https://github.com/PaddlePaddle/PaddleOCR
9月8日晚20:15-21:30,百度高級研發工程師將為我們詳細解析速度與精度都大幅提升的PaddleOCR,歡迎大家掃碼報名直播課,加入技術交流群~
官網地址:https://www.paddlepaddle.org.cn
PaddleOCR項目地址:GitHub: https://github.com/PaddlePaddle/PaddleOCRGitee: https://gitee.com/paddlepaddle/PaddleOCR
