宜信OCR技術探索與實踐|完整視頻回放
分享實錄html
傳統圖像,岡薩雷斯的圖像處理。算法
身份證卡證類相對容易些,可是要作到複雜場景的,也不是那麼容易。網絡
發票、業務單據相對複雜,除了識別,更重要的是版面分析。併發
最近表格識別比較火,各家都在努力實現,微軟的開放tablebank數據集ide
知足業務是第一須要,不一樣於大廠,對外服務API,要求大併發那麼強,多樣性品類完備,咱們更強調單品要作到儘可能達到業務要求,更強調定製化,能夠分佈走,業務上能夠給反饋不斷改進。函數
你們必定要本身弄細節,讀代碼、甚至本身動手擼,本身訓練,調參,排錯,纔能有真正的體會和理解,只講我認爲每一個算法裏面不太好理解,重點,以及容易忽略的點,跟同行一塊兒交流,溝通。工具
一個模型,要全面深刻了解,須要:設計
目標、目的、意義是啥?3d
網絡結構啥樣?code
loss是啥?
樣本咋作?
文字檢測:把文字框住,縮小到最小範圍內,從而下降識別難度。
文字識別:檢測出文字後,就能夠經過識別工具(算法)來識別出文字,如中間圖。
表中從下往上的檢測算法排序按照效果:愈來愈好
CTPN:找框的一個算法。
預測最終結果是:10個anchor的y座標偏移,和高度的調整值,還有它是否是前景的機率。輸出是先後景機率[N,10,2],y、w調整值[N,10,2]。它只適合橫向,或者縱向,不能同時。
一個模型主要從如下幾個方面理解
亮點和核心思路是:預測框和文本線構造算法
loss是啥(損失函數):anchor先後景機率、y、w調整
label怎麼作:大框,弄成小框,而後正負樣本均衡
算法被命名爲EAST(Efficient and Accuracy Scene Text),由於它是一個高效和準確的場景文本檢測pipeline。
首先,將圖像送到FCN網絡結構中而且生成單通道像素級的文本分數特徵圖和多通道幾何圖形特徵圖。文本區域採用了兩種幾何形狀:旋轉框(RBOX)和水平(QUAD),併爲每一個幾何形狀設計了不一樣的損失函數;而後,將閾值應用於每一個預測區域,其中評分超過預約閾值的幾何形狀被認爲是有效的,而且保存以用於隨後的非極大抑制。NMS以後的結果被認爲是pipeline的最終結果。
最後預測:scoremap,textbox,textrotation
標註是:一個蒙版mask,一個4張圖,上下左右的距離,還有個角度:一共3個。
PSENet是一種新的實例分割網絡,它有兩方面的優點。首先,psenet做爲一種基於分割的方法,可以對任意形狀的文本進行定位.其次,該模型提出了一種漸進的尺度擴展算法,該算法能夠成功地識別相鄰文本實例。
FPN,左面用resnet50。爲什麼是resnet50,緣由是效果不錯,參數適中。
論文裏是6個尺度,一個不行麼?我理解是完全分開不一樣行,逐漸擴大,漸進尺度能夠防止彼此交叉哈
網絡輸出
thresholdmap,每一個像素點的閾值
label製做
probabilitymap, 按照pse的方式製做便可,收縮比例設置爲0.4
很是經典的算法,主要的核心是CTC算法:Connectionist Temporal Classification (CTC)適合那種不知道輸入輸出是否對齊的狀況使用的算法,因此CTC適合語音識別和手寫字符識別的任務。
缺點:不能精確地聯繫特徵向量與輸入圖像中對應的目標區域,這種現象稱爲attention drift。
Muturaltraining:
咱們知道什麼?什麼字符,第幾個?這個信息!
哪一個字符?找到那個字符,第幾個?而後和樣本里的順序比
第幾個是啥字符?和對應位置的字符比
非單據:寬高比,白像素比例等
旋轉角整:前面講過了,經過旋轉模型,以及投影分佈
多單據:多張單據在一塊兒,經過投影,閾值超參配置
表格識別:採用mask-rcnn的方法,來找出大表邊緣
初版:
VGG作backbone,全鏈接,四分類
樣本:人工標註、加強
第二版:
作切割,256x256
使用MSER找備選
訓練小圖
衆數選出最可能方向
微調
每旋轉1°作縱向投影
把crnn論文論文中的自定義cnn網絡,換成resnet,可是resnet是縮小32倍,因此要拉長一些,到512。
首先是:樣本集是1000萬 (50萬張,置信度單字95%+)100萬真實 +100萬經常使用字(造) + 200萬數字時間英文(造)+ 600萬其餘漢字(造)大概須要3-4天
過程當中須要對greedy算法進行改進:
=>beam_search/merge_repeated=True 單獨測是有問題,可是在置信度很高的狀況下,二者差距很小,可是獲得了極大的速度改進,28秒=>10秒,batch=128,size是512x32
由於有crnn的prob,因此糾錯就有的放矢,把懷疑的字,替換成某個字,
Prob有個細節,若是是挨着的字,「 我 我 」,就取最大的prob,
一、 開發經驗
二、生產經驗
Tensorflow容器
模型部署使用官方推薦的tensorflowserving,容器方式
沒有開啓Batching,本身控制batch
服務容器:
本身定義了Web容器基礎鏡像
本文做者:宜信技術學院 劉創