OCR

(轉(zhuǎn))

CTPN篇

1.OCR文字檢測(cè)難點(diǎn)

小目標(biāo),遮擋饲握,仿射畸變。

2.與一般目標(biāo)檢測(cè)的比較

  • 文本線是一個(gè)sequence(字符蚕键、字符的一部分救欧、多字符組成的一個(gè)sequence),而不是一般目標(biāo)檢測(cè)中只有一個(gè)獨(dú)立的目標(biāo)锣光。這既是優(yōu)勢(shì)笆怠,也是難點(diǎn)。優(yōu)勢(shì)體現(xiàn)在同一文本線上不同字符可以互相利用上下文誊爹,可以用sequence的方法比如RNN來(lái)表示蹬刷。難點(diǎn)體現(xiàn)在要檢測(cè)出一個(gè)完整的文本線,同一文本線上不同字符可能差異大替废,距離遠(yuǎn)箍铭,要作為一個(gè)整體檢測(cè)出來(lái)難度比單個(gè)目標(biāo)更大。

3.檢測(cè)方法

  • Top-down(先檢測(cè)文本區(qū)域椎镣,再找出文本線)的文本檢測(cè)方法比傳統(tǒng)的bottom-up的檢測(cè)方法(先檢測(cè)字符诈火,再串成文本線)更好。
  • 自底向上的方法的缺點(diǎn)在于沒有考慮上下文状答,不夠魯棒冷守,系統(tǒng)需要太多子模塊,太復(fù)雜且誤差逐步積累惊科,性能受限拍摇。

本文工作基于faster RCNN , 區(qū)別在于

  • 改進(jìn)了rpn,anchor產(chǎn)生的window的寬度固定為3馆截。
  • rpn后面不是直接接全連接+分類/回歸充活,而是再通過(guò)一個(gè)LSTM,再接全連接層蜡娶。 坐標(biāo)僅僅回歸一個(gè)y混卵,而不是x1, y1, x2, y2
  • 添加 side-refinement offsets(可能這個(gè)就是4個(gè)回歸值中的其中2個(gè))!

本文中利用RNN和CNN的無(wú)縫結(jié)合可以提高檢測(cè)精度窖张。CNN用來(lái)提取深度特征幕随,RNN用來(lái)序列的特征識(shí)別(2類),二者無(wú)縫結(jié)合宿接,用在檢測(cè)上性能更好赘淮。

具體的說(shuō)辕录,作者的基本想法就是去預(yù)測(cè)文本的豎直方向上的位置,水平方向的位置不預(yù)測(cè)梢卸。因此作者提出了一個(gè)vertical anchor的方法走诞。與faster rcnn中的anchor類似,但是不同的是低剔,vertical anchor的寬度都是固定好的了速梗,論文中的大小是16個(gè)像素。而高度則從11像素到273像素變化襟齿,總共10個(gè)anchor.

同時(shí)姻锁,對(duì)于水平的文本行,其中的每一個(gè)文本段之間都是有聯(lián)系的猜欺,因此作者采用了CNN+RNN的一種網(wǎng)絡(luò)結(jié)構(gòu)位隶,檢測(cè)結(jié)果更加魯棒。RNN和CNN的無(wú)縫結(jié)合可以提高檢測(cè)精度开皿。CNN用來(lái)提取深度特征涧黄,RNN用來(lái)序列的特征識(shí)別(2類),二者無(wú)縫結(jié)合赋荆,用在檢測(cè)上性能更好笋妥。

基于檢測(cè)的方法能很好地解決水平文字的檢測(cè)問題,缺點(diǎn)是對(duì)于非水平的文字不能檢測(cè)窄潭。

網(wǎng)絡(luò)結(jié)構(gòu)為RPN春宣,針對(duì)文字檢測(cè)的特點(diǎn)做了一些修改,最重要的有兩點(diǎn)嫉你,

一是改變了判斷正負(fù)樣本的方法月帝,不同于物體檢測(cè),文字檢測(cè)中proposal如果只框住了一行文字中的幾個(gè)文字其實(shí)也算正樣本幽污,而用IOU計(jì)算的話會(huì)被當(dāng)成負(fù)樣本嚷辅,所以判斷正負(fù)樣本只需要計(jì)算proposal與ground truth高度的overlap就可以了。

第二點(diǎn)是anchor的選取距误,既然我們判斷正負(fù)樣本的時(shí)候不考慮寬度簸搞,自然選anchor的時(shí)候也不用選擇不同寬度的了,只需要固定寬度然后根據(jù)具體任務(wù)選擇幾個(gè)合適的高度就可以了准潭。其他地方和RPN基本一樣攘乒。

基本過(guò)程

整個(gè)檢測(cè)分六步:
第一,首先惋鹅,使用VGG16作為base net提取特征,得到conv5_3的特征作為feature map殉簸,大小是W×H×C闰集;

第二沽讹,然后在這個(gè)feature map上做滑窗,窗口大小是3×3武鲁。也就是每個(gè)窗口都能得到一個(gè)長(zhǎng)度為3×3×C的特征向量爽雄。這個(gè)特征向量將用來(lái)預(yù)測(cè)和10個(gè)anchor之間的偏移距離,也就是說(shuō)每一個(gè)窗口中心都會(huì)預(yù)測(cè)出10個(gè)text propsoal沐鼠。

第三挚瘟,將每一行的所有窗口對(duì)應(yīng)的33C的特征(W33C)輸入到RNN(BLSTM)中,得到W256的輸出饲梭;

第四乘盖,將RNN的W*256輸入到512維的fc層;

第五憔涉,fc層特征輸入到三個(gè)分類或者回歸層中订框。
第二個(gè)2k scores 表示的是k個(gè)anchor的類別信息(是字符或不是字符)。第一個(gè)2k vertical coordinate和第三個(gè)k side-refinement是用來(lái)回歸k個(gè)anchor的位置信息兜叨。2k vertical coordinate因?yàn)橐粋€(gè)anchor用的是中心位置的高(y坐標(biāo))和矩形框的高度兩個(gè)值表示的穿扳,所以一個(gè)用2k個(gè)輸出。(注意這里輸出的是相對(duì)anchor的偏移)国旷,k個(gè)side-refinement這部分主要是用來(lái)精修文本行的兩個(gè)端點(diǎn)的矛物,表示的是每個(gè)proposal的水平平移量。這邊注意跪但,只用了3個(gè)參數(shù)表示回歸的bounding box履羞,因?yàn)檫@里默認(rèn)了每個(gè)anchor的width是16,且不再變化(VGG16的conv5的stride是16)特漩“杀ⅲ回歸出來(lái)的box如Fig.1中那些紅色的細(xì)長(zhǎng)矩形,它們的寬度是一定的涂身。

第六雄卷,這是會(huì)得到密集預(yù)測(cè)的text proposal,所以會(huì)使用一個(gè)標(biāo)準(zhǔn)的非極大值抑制算法來(lái)濾除多余的box蛤售。
第七丁鹉,用簡(jiǎn)單的文本線構(gòu)造算法,把分類得到的文字的proposal(圖Fig.1(b)中的細(xì)長(zhǎng)的矩形)合并成文本線悴能。

網(wǎng)絡(luò)結(jié)構(gòu)

輸入為3600(h)900(w),首先vgg-16提取特征揣钦,到conv5-3時(shí)(VGG第5個(gè)block的第三個(gè)卷積層),大小為5123857漠酿。
im2col層 5123857 ->4608 * 38 * 57 其中4608為(5129 (33卷積展開))
而后的lstm層冯凹,每個(gè)lstm層是128個(gè)隱層 57384608 ->5738128 reverse-lstm同樣得到的是5738128。(雙向lstm沒有去研 究炒嘲,但我個(gè)人理解應(yīng)該是左邊的結(jié)果對(duì)右邊會(huì)產(chǎn)生影響宇姚,同樣右邊也會(huì)對(duì)左邊產(chǎn)生影響匈庭,有空再去看) merge后得到了最終lstm_output的結(jié)果 256* 38 * 57
fc層 就是一個(gè)256512的矩陣參數(shù) 得到5123857 fc不再展開;
rpn_cls_score層得到置信度 512
3857 ->203857 其中20 = 10 * 2 其中10為10個(gè)尺度 同樣為51220的參數(shù)浑劳,kernel_size為1的卷積層阱持;
rpn_bbox_pre層 得到偏移 5123857 ->203857。同樣是十個(gè)尺度 2 * 10 * 38 * 57
因?yàn)?8*57每個(gè)點(diǎn)每個(gè)scale的固定位置我們是知道的魔熏。而它與真實(shí)位置的偏移只需兩個(gè)值便可以得到衷咽。
假設(shè)固定位置中點(diǎn)( Cx,Cy) 。 高度Ch蒜绽。實(shí)際位置中點(diǎn)(x,y) 高度h
則log(h/Ch)作為一個(gè)值
(y-Cy) / Ch作為一個(gè)值
20 * 38 * 57 便是10個(gè)尺度下得到的這兩個(gè)值镶骗。有了這兩個(gè)值,我們便能知道真實(shí)的文本框位置了滓窍。
方法細(xì)節(jié)
k個(gè)anchor尺度和長(zhǎng)寬比設(shè)置

寬度都是16卖词,k = 10,高度從11~273(每次除于0.7)

回歸的高度和bounding box的中心的y坐標(biāo)如下吏夯,帶*的表示是groundTruth此蜈,帶a的表示是anchor

Side-refinement
文本線構(gòu)造算法(多個(gè)細(xì)長(zhǎng)的proposal合并成一條文本線)
主要思想:每?jī)蓚€(gè)相近的proposal組成一個(gè)pair,合并不同的pair直到無(wú)法再合并為止(沒有公共元素)
判斷兩個(gè)proposal噪生,Bi和Bj組成pair的條件:
Bj->Bi裆赵, 且Bi->Bj。(Bj->Bi表示Bj是Bi的最好鄰居)
Bj->Bi條件1:Bj是Bi的鄰居中距離Bi最近的跺嗽,且該距離小于50個(gè)像素
Bj->Bi條件2:Bj和Bi的vertical overlap大于0.7

訓(xùn)練
對(duì)于每一張訓(xùn)練圖片战授,總共抽取128個(gè)樣本,64正64負(fù)桨嫁,如果正樣本不夠就用負(fù)樣本補(bǔ)齊植兰。這個(gè)和faster rcnn的做法是一樣的。

訓(xùn)練圖片都將短邊放縮到600像素璃吧。

問題

  • 沒有很好地處理多方向的文本行
  • 訓(xùn)練的時(shí)候由于有regression和LSTM楣导,需要小心控制梯度爆炸。
  • 正如上文所提的畜挨,這個(gè)網(wǎng)絡(luò)預(yù)測(cè)的是一些固定寬度的text proposal筒繁,所以真值也應(yīng)該按照這樣來(lái)標(biāo)注。但是一般數(shù)據(jù)庫(kù)給的都是整個(gè)文本行或者單詞級(jí)別的標(biāo)注巴元。因此需要把這些標(biāo)注轉(zhuǎn)換成一系列固定寬度的box毡咏。
  • 整個(gè)repo是基于RBG大神的faster rcnn改的,所以根據(jù)他的輸入要求逮刨。要再將數(shù)據(jù)轉(zhuǎn)換為voc的標(biāo)注形式
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末呕缭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌臊旭,老刑警劉巖落恼,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異离熏,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)戴涝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門滋戳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人啥刻,你說(shuō)我怎么就攤上這事奸鸯。” “怎么了可帽?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵娄涩,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我映跟,道長(zhǎng)蓄拣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任努隙,我火速辦了婚禮球恤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘荸镊。我一直安慰自己咽斧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布躬存。 她就那樣靜靜地躺著张惹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪岭洲。 梳的紋絲不亂的頭發(fā)上宛逗,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音钦椭,去河邊找鬼拧额。 笑死,一個(gè)胖子當(dāng)著我的面吹牛彪腔,可吹牛的內(nèi)容都是我干的侥锦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼德挣,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼恭垦!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤番挺,失蹤者是張志新(化名)和其女友劉穎唠帝,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體玄柏,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡襟衰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了粪摘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瀑晒。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖徘意,靈堂內(nèi)的尸體忽然破棺而出苔悦,到底是詐尸還是另有隱情,我是刑警寧澤椎咧,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布玖详,位于F島的核電站,受9級(jí)特大地震影響勤讽,放射性物質(zhì)發(fā)生泄漏蟋座。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一地技、第九天 我趴在偏房一處隱蔽的房頂上張望蜈七。 院中可真熱鬧,春花似錦莫矗、人聲如沸飒硅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)三娩。三九已至,卻和暖如春妹懒,著一層夾襖步出監(jiān)牢的瞬間雀监,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工眨唬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留会前,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓匾竿,卻偏偏與公主長(zhǎng)得像瓦宜,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子岭妖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容