3.9MB超小超强文本识别模型,支持20000个字符的识别,平安产险提出Hamming OCR
Hamming OCR是一個基于Transformer注意力的超輕量級文本識別模型,主要基于LSH局部敏感哈希編碼和Max-Margin Loss的學習算法。
Hamming OCR: A Locality Sensitive Hashing Neural Networkfor SceneText Recognition
本文為極市開發者投稿,作者平安產險視覺計算組,轉載請獲授權。
背景
場景文本識別中很多模型都使用了笨重的模型,這些模型很難在移動端設備上部署。這也是最近大火的Paddle OCR使用CRNN實現其超輕量級識別模型的原因。PaddleOCR采用的策略就是暴力削減特征通道來減小模型,但是這樣使得性能大幅度下降。最近在arXiv上公開的Hamming OCR提出了Hamming Embedding和LSH局部敏感哈希分類的算法,大幅度削減模型大小,同時保留模型能力。
簡介
我們首先看FC+softmax分類層:
其中分類矩陣W占了將近20MB,這是因為onehot編碼方式維度過大,字符字數多的原因。
對應的Hamming OCR中的LSH局部敏感哈希分類實現如下:
Hamming OCR使用LSH編碼替代了onehot編碼,把分類矩陣W的大小降低到0.5MB。初始階段,HammingOCR使用LSH和voting生成每個字符的LSH編碼。然后基于生成的LSH code采用Max-Margin算法優化。
在推理階段,Hamming OCR二值化logit,然后跟所有字符的LSH編碼計算漢明距離,距離最近字符的即為預測結果。
LSH編碼很好地保留了字符之間的相似度,如下圖:
很多識別模型使用Output Embedding來表達每個字符,Embedding層占了20MB。因為LSH編碼的良好特性,Hamming OCR直接使用LSH編碼作為字母的表達,也就是Hamming Embedding,減少20MB并且不損失精度。
Hamming OCR還加入了跨層共享Transformer權重、去除Feed-ForwardNetwork和FP16,最終模型只有3.9MB。模型結構如下圖:
Hamming OCR模型的能力很強,如下圖所示,最終模型不但比PaddleOCR小,精度還要更高。
模型各階段優化之后的參數量如下圖,
結論
論文鏈接:https://arxiv.org/pdf/2009.10874.pdf
參考文獻
作者團隊
產險視覺計算組(VC組)專注解決金融保險領域的計算機視覺應用問題,在ICDAR 2019票據識別及關鍵信息3個任務中,團隊分別斬獲第二,第三,第一名。同時,在Kaggle舉辦的百度/北大無人駕駛比賽中,獲得亞軍。團隊積極創新,已有多項自研OCR 、關鍵性信息抽取技術。
總結
以上是生活随笔為你收集整理的3.9MB超小超强文本识别模型,支持20000个字符的识别,平安产险提出Hamming OCR的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux抓本来端口包,Linux抓包
- 下一篇: unity 阳光插件_【复盘】Envir