OCR系列——文本检测任务
1. 簡(jiǎn)介
文本檢測(cè)任務(wù)是找出圖像或視頻中的文字位置。不同于目標(biāo)檢測(cè)任務(wù),目標(biāo)檢測(cè)不僅要解決定位問(wèn)題,還要解決目標(biāo)分類(lèi)問(wèn)題。
目標(biāo)檢測(cè)和文本檢測(cè)同屬于“定位”問(wèn)題。但是文本檢測(cè)無(wú)需對(duì)目標(biāo)分類(lèi),并且文本形狀復(fù)雜多樣。
當(dāng)前所說(shuō)的文本檢測(cè)一般是自然場(chǎng)景文本檢測(cè),其難點(diǎn)在于:
- 自然場(chǎng)景中文本具有多樣性:文本檢測(cè)受到文字顏色、大小、字體、形狀、方向、語(yǔ)言、以及文本長(zhǎng)度的影響;
- 復(fù)雜的背景和干擾;文本檢測(cè)受到圖像失真,模糊,低分辨率,陰影,亮度等因素的影響;
- 文本密集甚至重疊會(huì)影響文字的檢測(cè);
- 文字存在局部一致性,文本行的一小部分,也可視為是獨(dú)立的文本;
2. 算法分類(lèi)
3. 算法詳解
3.1 基于回歸的文本檢測(cè)
早期基于深度學(xué)習(xí)的文本檢測(cè)算法是從目標(biāo)檢測(cè)的方法改進(jìn)來(lái)的,支持水平文本檢測(cè)。常見(jiàn)方法有TextBoxes、CTRN等,隨著數(shù)據(jù)集的豐富,后期又增加了傾斜文本檢測(cè)和彎曲文本檢測(cè)。
(1)水平文本檢測(cè)
TextBoxes根據(jù)SSD改進(jìn)的,將默認(rèn)的文本框更改為適應(yīng)文本方向和寬高比的規(guī)格的四邊形,特點(diǎn)有
?CTPN是基于Fast-RCNN算法,擴(kuò)展RPN模塊并且設(shè)計(jì)了基于CRNN的模塊讓整個(gè)網(wǎng)絡(luò)從卷積特征中檢測(cè)到文本序列,二階段的方法通過(guò)ROI Pooling獲得了更準(zhǔn)確的特征定位。
(2)任意角度文本檢測(cè)
TextBoxes++在TextBoxes基礎(chǔ)上進(jìn)行改進(jìn),支持檢測(cè)任意角度的文本。從結(jié)構(gòu)上來(lái)說(shuō),TextBoxes++針對(duì)多角度文本進(jìn)行檢測(cè),首先修改預(yù)選框的寬高比,調(diào)整寬高比aspect ratio為1、2、3、5、1/2、1/3、1/5。其次是將1?51*51?5的卷積核改為3?53*53?5,更好的學(xué)習(xí)傾斜文本的特征;最后,TextBoxes++的輸出旋轉(zhuǎn)框的表示信息。
EAST針對(duì)傾斜文本的定位問(wèn)題,提出了two-stage的文本檢測(cè)方法,包含 FCN特征提取和NMS部分。EAST提出了一種新的文本檢測(cè)pipline結(jié)構(gòu),可以端對(duì)端訓(xùn)練并且支持檢測(cè)任意朝向的文本,并且具有結(jié)構(gòu)簡(jiǎn)單,性能高的特點(diǎn)。FCN支持輸出傾斜的矩形框和水平框,可以自由選擇輸出格式。
- 如果輸出檢測(cè)形狀為RBox,則輸出Box旋轉(zhuǎn)角度以及AABB文本形狀信息,AABB表示到文本框上下左右邊的偏移。RBox可以旋轉(zhuǎn)矩形的文本。
- 如果輸出檢測(cè)框?yàn)樗狞c(diǎn)框,則輸出的最后一個(gè)維度為8個(gè)數(shù)字,表示從四邊形的四個(gè)角頂點(diǎn)的位置偏移。該輸出方式可以預(yù)測(cè)不規(guī)則四邊形的文本。
MOST提出TFAM模塊動(dòng)態(tài)的調(diào)整粗粒度的檢測(cè)結(jié)果的感受野,另外提出PA-NMS根據(jù)位置信息合并可靠的檢測(cè)預(yù)測(cè)結(jié)果。此外,訓(xùn)練中還提出 Instance-wise IoU 損失函數(shù),用于平衡訓(xùn)練,以處理不同尺度的文本實(shí)例。該方法可以和EAST方法結(jié)合,在檢測(cè)極端長(zhǎng)寬比和不同尺度的文本有更好的檢測(cè)效果和性能。
(3)彎曲文本檢測(cè)
簡(jiǎn)單思路是用多點(diǎn)坐標(biāo)描述彎曲文本的邊界多邊形,然后直接預(yù)測(cè)多邊形的頂點(diǎn)坐標(biāo)。
CTD提出了直接預(yù)測(cè)彎曲文本14個(gè)頂點(diǎn)的邊界多邊形,網(wǎng)絡(luò)中利用Bi-LSTM層以細(xì)化頂點(diǎn)的預(yù)測(cè)坐標(biāo),實(shí)現(xiàn)了基于回歸方法的彎曲文本檢測(cè)。
LOMO針對(duì)長(zhǎng)文本和彎曲文本問(wèn)題,提出迭代的優(yōu)化文本定位特征獲取更精細(xì)的文本定位,該方法包括三個(gè)部分,坐標(biāo)回歸模塊DR,迭代優(yōu)化模塊IRM以及任意形狀表達(dá)模塊SEM。分別用于生成文本大致區(qū)域,迭代優(yōu)化文本定位特征,預(yù)測(cè)文本區(qū)域、文本中心線以及文本邊界。迭代的優(yōu)化文本特征可以更好的解決長(zhǎng)文本定位問(wèn)題以及獲得更精確的文本區(qū)域定位。
Contournet基于提出對(duì)文本輪廓點(diǎn)建模獲取彎曲文本檢測(cè)框,該方法首先使用Adaptive-RPN獲取文本區(qū)域的proposal特征,然后設(shè)計(jì)了局部正交紋理感知LOTM模塊學(xué)習(xí)水平與豎直方向的紋理特征,并用輪廓點(diǎn)表示,最后,通過(guò)同時(shí)考慮兩個(gè)正交方向上的特征響應(yīng),利用Point Re-Scoring算法可以有效地濾除強(qiáng)單向或弱正交激活的預(yù)測(cè),最終文本輪廓可以用一組高質(zhì)量的輪廓點(diǎn)表示出來(lái)。
PCR提出漸進(jìn)式的坐標(biāo)回歸處理彎曲文本檢測(cè)問(wèn)題,總體分為三個(gè)階段,首先大致檢測(cè)到文本區(qū)域,獲得文本框,另外通過(guò)所設(shè)計(jì)的Contour Localization Mechanism預(yù)測(cè)文本最小包圍框的角點(diǎn)坐標(biāo),然后通過(guò)疊加多個(gè)CLM模塊和RCLM模塊預(yù)測(cè)得到彎曲文本。該方法利用文本輪廓信息聚合得到豐富的文本輪廓特征表示,不僅能抑制冗余的噪聲點(diǎn)對(duì)坐標(biāo)回歸的影響,還能更精確的定位文本區(qū)域。
3.2 基于分割的文本檢測(cè)
基于回歸的方法雖然在文本檢測(cè)上取得了很好的效果,但是對(duì)解決彎曲文本還存在問(wèn)題,且模型復(fù)雜。因此,提供了基于分割的文本檢測(cè)方法,先從像素層面做分類(lèi),判別每一個(gè)像素點(diǎn)是否屬于一個(gè)文本目標(biāo),得到文本區(qū)域的概率圖,通過(guò)后處理方式(opencv,polygon等后處理)得到文本分割區(qū)域的包圍曲線。
Pixellink采用分割的方法解決文本檢測(cè)問(wèn)題,分割對(duì)象為文本區(qū)域,將同屬于一個(gè)文本行(單詞)中的像素鏈接在一起來(lái)分割文本,直接從分割結(jié)果中提取文本邊界框,無(wú)需位置回歸就能達(dá)到基于回歸的文本檢測(cè)的效果。但是基于分割的方法存在一個(gè)問(wèn)題,對(duì)于位置相近的文本,文本分割區(qū)域容易出現(xiàn)“粘連“問(wèn)題。Wu, Yue等人[8]提出分割文本的同時(shí),學(xué)習(xí)文本的邊界位置,用于更好的區(qū)分文本區(qū)域。另外Tian等人[9]提出將同一文本的像素映射到映射空間,在映射空間中令統(tǒng)一文本的映射向量距離相近,不同文本的映射向量距離變遠(yuǎn)。
MSR針對(duì)文本檢測(cè)的多尺度問(wèn)題,提出提取相同圖像的多個(gè)scale的特征,然后將這些特征融合并上采樣到原圖尺寸,網(wǎng)絡(luò)最后預(yù)測(cè)文本中心區(qū)域、文本中心區(qū)域每個(gè)點(diǎn)到最近的邊界點(diǎn)的x坐標(biāo)偏移和y坐標(biāo)偏移,最終可以得到文本區(qū)域的輪廓坐標(biāo)集合。
針對(duì)基于分割的文本算法難以區(qū)分相鄰文本的問(wèn)題,PSENet提出漸進(jìn)式的尺度擴(kuò)張網(wǎng)絡(luò)學(xué)習(xí)文本分割區(qū)域,預(yù)測(cè)不同收縮比例的文本區(qū)域,并逐個(gè)擴(kuò)大檢測(cè)到的文本區(qū)域,該方法本質(zhì)上是邊界學(xué)習(xí)方法的變體,可以有效解決任意形狀相鄰文本的檢測(cè)問(wèn)題。
假設(shè)用了PSENet后處理用了3個(gè)不同尺度的kernel,如上圖s1,s2,s3所示。首先,從最小kernel s1開(kāi)始,計(jì)算文本分割區(qū)域的連通域,得到(b),然后,對(duì)連通域沿著上下左右做尺度擴(kuò)張,對(duì)于擴(kuò)張區(qū)域?qū)儆趕2但不屬于s1的像素,進(jìn)行歸類(lèi),遇到?jīng)_突點(diǎn)時(shí),采用“先到先得”原則,重復(fù)尺度擴(kuò)張的操作,最終可以得到不同文本行的獨(dú)立的分割區(qū)域。
Seglink++針對(duì)彎曲文本和密集文本問(wèn)題,提出了一種文本塊單元之間的吸引關(guān)系和排斥關(guān)系的表征,然后設(shè)計(jì)了一種最小生成樹(shù)算法進(jìn)行單元組合得到最終的文本檢測(cè)框,并提出instance-aware 損失函數(shù)使Seglink++方法可以端對(duì)端訓(xùn)練。
PAN針對(duì)文本檢測(cè)預(yù)測(cè)速度慢的問(wèn)題,從網(wǎng)絡(luò)設(shè)計(jì)和后處理方面進(jìn)行改進(jìn),提升算法性能。首先,PAN使用了輕量級(jí)的ResNet18作為Backbone,另外設(shè)計(jì)了輕量級(jí)的特征增強(qiáng)模塊FPEM和特征融合模塊FFM增強(qiáng)Backbone提取的特征。在后處理方面,采用像素聚類(lèi)方法,沿著預(yù)測(cè)的文本中心(kernel)四周合并與kernel的距離小于閾值d的像素。PAN保證高精度的同時(shí)具有更快的預(yù)測(cè)速度。
FCENet提出將文本包圍曲線用傅立葉變換的參數(shù)表示,由于傅里葉系數(shù)表示在理論上可以擬合任意的封閉曲線,通過(guò)設(shè)計(jì)合適的模型預(yù)測(cè)基于傅里葉變換的任意形狀文本包圍框表示,從而實(shí)現(xiàn)了自然場(chǎng)景文本檢測(cè)中對(duì)于高度彎曲文本實(shí)例的檢測(cè)精度的提升。
DBNet提出可微分閾值(Differenttiable Binarization module)采用動(dòng)態(tài)的閾值區(qū)分文本區(qū)域和背景。通過(guò)網(wǎng)絡(luò)去預(yù)測(cè)圖片每個(gè)位置處的閾值,而不是采用一個(gè)固定的值,更好的分離文本背景與前景。
?在傳統(tǒng)的圖像分割算法中,獲取概率圖后,會(huì)使用標(biāo)準(zhǔn)二值化(Standard Binarize)處理,但是二值化的方法是不可微的(可微的定義:左右極限存在,且相等),無(wú)法進(jìn)行end to end 訓(xùn)練,公式為
?可微二值化將標(biāo)準(zhǔn)二值化中的階躍函數(shù)進(jìn)行了近似,公式為
?其中,P是上下文獲得的概率圖(Probability Map),T是上下文獲得的閾值圖(Threshold Map),k是增益因子,然后得到近似二值圖(Approximate Binary Map),當(dāng)損失函數(shù)為交叉熵?fù)p失函數(shù)時(shí),正負(fù)樣本的loss是
?對(duì)x求偏導(dǎo):
?DB模型主要分為三個(gè)部分:
- Backbone網(wǎng)絡(luò),負(fù)責(zé)提取圖像的特征
DB文本檢測(cè)網(wǎng)絡(luò)的Backbone部分采用的是圖像分類(lèi)網(wǎng)絡(luò),可以是ResNet,MobileNetV3等模型,,DB的Backbone用于提取圖像的多尺度特征,如下代碼所示,假設(shè)輸入的形狀為[640, 640],backbone網(wǎng)絡(luò)的輸出有四個(gè)特征,其形狀分別是 [1, 16, 160, 160],[1, 24, 80, 80], [1, 56, 40, 40],[1, 480, 20, 20],使用方法:
from ppocr.modeling.backbones.det_mobilenet_v3 import MobileNetV3model_backbone = MobileNetV3() model_backbone.eval()#打印網(wǎng)絡(luò)結(jié)構(gòu) print(model_backbone)- FPN網(wǎng)絡(luò),特征金字塔結(jié)構(gòu)增強(qiáng)特征,FPN網(wǎng)絡(luò)的輸入為Backbone部分的輸出,輸出特征圖的高度和寬度為原圖的四分之一。
圖像處理的兩種方式:上采樣(upsample)和下采樣(downsample),上采樣是增大圖像,下采樣是縮小圖案。這里的upsample是獲取將較小特征上采樣和大特征進(jìn)行累加。
- Head網(wǎng)絡(luò),計(jì)算文本區(qū)域概率圖,文本區(qū)域閾值圖以及文本區(qū)域二值圖。
其他模塊:
- DB模型后處理
DB后處理函數(shù)根據(jù)概率圖中文本區(qū)域的響應(yīng)計(jì)算出包圍文本響應(yīng)區(qū)域的文本框坐標(biāo)。由于網(wǎng)絡(luò)預(yù)測(cè)的概率圖是經(jīng)過(guò)收縮后的結(jié)果,所以在后處理步驟中,使用相同的偏移值將預(yù)測(cè)的多邊形區(qū)域進(jìn)行擴(kuò)張,即可得到最終的文本框。
DB的輸出結(jié)果是文本區(qū)域的二值圖,屬于文本區(qū)域的響應(yīng)更高,非文本的背景區(qū)域響應(yīng)值低。DB的后處理即是求這些響應(yīng)區(qū)域的最小包圍框,進(jìn)而得到每個(gè)文本區(qū)域的坐標(biāo)。 另外,通過(guò)修改后處理參數(shù)可以調(diào)整文本框的大小,或者過(guò)濾檢測(cè)效果差的文本框。
DB后處理有四個(gè)參數(shù),分別是:
- thresh: DBPostProcess中分割圖進(jìn)行二值化的閾值,默認(rèn)值為0.3
- box_thresh: DBPostProcess中對(duì)輸出框進(jìn)行過(guò)濾的閾值,低于此閾值的框不會(huì)輸出
- unclip_ratio: DBPostProcess中對(duì)文本框進(jìn)行放大的比例
- max_candidates: DBPostProcess中輸出的最大文本框數(shù)量,默認(rèn)1000
- 損失函數(shù)定義
模型輸出是3個(gè)預(yù)測(cè)圖,則總得損失函數(shù)是
?其中,L是總損失函數(shù),Lb是文本二值圖的損失函數(shù),Ls是概率圖損失,Lt是閾值圖損失,是權(quán)重系數(shù)。
?Lb是Dice Loss,比較文本二值圖和標(biāo)簽之間的相似度,常用于二值圖分割。
?Ls是Dice Loss(OHEM),采用帶OHEM的Dice Loss,目的是為了改善正負(fù)樣本不均衡的問(wèn)題。OHEM為一種特殊的自動(dòng)采樣方式,可以自動(dòng)的選擇難樣本進(jìn)行l(wèi)oss的計(jì)算,從而提升模型的訓(xùn)練效果。這里將正負(fù)樣本的采樣比率設(shè)為1:3。
Lt是Mask L1 Loss,計(jì)算預(yù)測(cè)的文本閾值圖和標(biāo)簽間的L1距離。
- 評(píng)估指標(biāo)
文本檢測(cè)的計(jì)算指標(biāo)有三個(gè),分別是Precision,Recall和Hmean,三個(gè)指標(biāo)的計(jì)算邏輯為:
- 創(chuàng)建[n, m]大小的一個(gè)矩陣叫做iouMat,其中n為GT(ground truth)box的個(gè)數(shù),m為檢測(cè)到的框數(shù)量;其中n,m為除去了文本標(biāo)定為###的框數(shù)量;
- 在iouMat中,統(tǒng)計(jì)IOU大于閾值0.5的個(gè)數(shù),將這個(gè)值除以gt個(gè)數(shù)n得到Recall;
- 在iouMat中,統(tǒng)計(jì)IOU大于閾值0.5的個(gè)數(shù),將這個(gè)值除以檢測(cè)框m的個(gè)數(shù)得到Precision;
- Hmean的指標(biāo)計(jì)算方式同F(xiàn)1-score的計(jì)算方式,公式如下:
4.存在問(wèn)題
(1)文字漏檢
?原因,GT和預(yù)測(cè)框的重疊部分小,則可以增加IOU閾值,縮小GT和預(yù)測(cè)框的差距。另外,漏檢測(cè)的本質(zhì)原因在于,一部分文字的特征沒(méi)有響應(yīng),歸根結(jié)底是網(wǎng)絡(luò)沒(méi)有學(xué)習(xí)到漏檢測(cè)部分文字的特征。建議具體問(wèn)題具體分析,可視化預(yù)測(cè)結(jié)果分析漏檢測(cè)的原因,是否是因?yàn)楣庹?#xff0c;形變,文字較長(zhǎng)等因素導(dǎo)致的,然后針對(duì)性的使用數(shù)據(jù)增強(qiáng)、調(diào)整網(wǎng)絡(luò)、或者調(diào)整后處理等方法優(yōu)化檢測(cè)結(jié)果。
參考:
飛槳AI Studio - 人工智能學(xué)習(xí)與實(shí)訓(xùn)社區(qū)集開(kāi)放數(shù)據(jù)、開(kāi)源算法、免費(fèi)算力三位一體,為開(kāi)發(fā)者提供高效學(xué)習(xí)和開(kāi)發(fā)環(huán)境、高價(jià)值高獎(jiǎng)金競(jìng)賽項(xiàng)目,支撐高校老師輕松實(shí)現(xiàn)AI教學(xué),并助力開(kāi)發(fā)者學(xué)習(xí)交流,加速落地AI業(yè)務(wù)場(chǎng)景https://aistudio.baidu.com/aistudio/projectdetail/3335972
總結(jié)
以上是生活随笔為你收集整理的OCR系列——文本检测任务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: pil库修改图片大小_Gvcode库:一
- 下一篇: 现代控制理论(4)——李雅普诺夫稳定性理