字符粘连切分方法
目的
本方法目的在于解決英文字母OCR中存在的字符粘連問題,使得算法的運(yùn)算結(jié)果更為準(zhǔn)確。化學(xué)式中存在的粘連問題主要有以下幾個(gè)特點(diǎn):一是字符種類較少,大都由常見化學(xué)元素的組合和基本的數(shù)字構(gòu)成;二是字符的寬度基本一致,一般不存在一大一小的情況,這方便了我們使用字符寬度這一定界條件而又不影響切分的準(zhǔn)確性;最后一個(gè)是字符的走向大都是水平方向,因此我們?cè)谇懈顣r(shí)只需要考慮豎直向的切割即可。
解決對(duì)象
需要去除粘連的幾種情況大致總結(jié)如下:
2.1. 粘連區(qū)域窄。粘連的粘連線較窄,這意味著兩個(gè)有效字符之間的距離很近,因此在切割時(shí)在它們中間設(shè)置一個(gè)切分點(diǎn)即可。按照粘連線的數(shù)量,大致又能分為以下兩種。
?2.1.1.粘連線單一。兩個(gè)字符之間只存在一個(gè)單一的粘連線,如下圖1所示。
?2.1.2. 多條粘連線。兩個(gè)字符之間不止一條粘連線,如下圖2所示。
2.2. 粘連區(qū)域?qū)挕U尺B的粘連線較寬,在切分的時(shí)候需要考慮兩個(gè)字符之間大致的間隔距離,將不需要的部分剔除掉。如下圖3所示。
粘連區(qū)域窄的情況
3.1. 單一粘連線的情況,以圖1 為例。在Matlab里描繪其上、下輪廓如下圖4,圖5所示,上下相減得到整體的輪廓圖如圖6所示。
算法從左到右遍歷整體輪廓圖,發(fā)現(xiàn)上升沿就做標(biāo)記。在所有上升沿中按照如圖7所示的條件取有效上升沿。根據(jù)所有有效上升沿切分整張圖。效果如圖8所示。
3.2. 多條粘連線的情況,以圖2為例。若仍然采用上下輪廓相減的方法,會(huì)出現(xiàn)如圖9的情況。
整體輪廓圖沒有實(shí)效性,不能用之進(jìn)行切分分析。因此考慮采用縱向像素點(diǎn)累積的方法,得到如圖10的真實(shí)像素分布。
針對(duì)這個(gè)像素分布圖做前面的切分處理,便可得到較準(zhǔn)確的結(jié)果,如下圖11所示
粘連區(qū)域?qū)挼那闆r
以圖3為例。沿用之前的方法得到上、下和整體輪廓圖,如圖12、13、14。問題在于相鄰兩個(gè)有效的上升之間的距離很遠(yuǎn),導(dǎo)致切分時(shí)第一個(gè)字母后面帶有很長(zhǎng)的粘連線,如圖15所示。
因此考慮引入下降沿的方法來(lái)確定一個(gè)字符的邊界。按照尋找有效上升沿的方法得到一系列有效下降沿(默認(rèn)最左為一個(gè)上升沿,最右為一個(gè)下降沿)。從左至右遍歷整張圖片,切下所有相鄰上升沿和下降沿之間的部分,算法如圖16所示,作為最后結(jié)果,切分效果如圖17所示。
綜合
由于我們?cè)谧銮蟹止ぷ鲿r(shí),并不能事先了解目標(biāo)粘連屬于上述哪一種類型,因此需要一個(gè)差別處理的工作使得算法具備普適性。針對(duì)單線粘連還是多線粘連的問題,統(tǒng)一的解決辦法是將兩種方法(輪廓法和像素累積法)得到的有效上升沿都列出來(lái),并對(duì)它們一一進(jìn)行評(píng)價(jià)。由于像素點(diǎn)累積的方法出現(xiàn)的上升沿較多,因此準(zhǔn)確性較之輪廓線法更低,所以給像素累積法得到的上升沿賦較低的初始分。然后再對(duì)每一個(gè)上升沿做考量,如果它的周圍出現(xiàn)了比它分?jǐn)?shù)更高的上升沿,就把它舍去;如果沒有,就把它令為一個(gè)切分點(diǎn)。針對(duì)粘連線長(zhǎng)短不一的問題,解決的辦法是如果檢測(cè)到一個(gè)切分點(diǎn)之后的1.5*字符寬度內(nèi)都沒有新的有效上升沿出現(xiàn),則直接在此切分點(diǎn)后一個(gè)字符寬度距離處取一切分點(diǎn)再繼續(xù)檢測(cè),直到圖片末尾。運(yùn)用以上的辦法,可以比較方便地將三種不同粘連情況綜合處理。
需改進(jìn)的部分
6.1. 利用打分的機(jī)制對(duì)上升沿作評(píng)價(jià)的方法很科學(xué),可以考慮引入一個(gè)更全面的打分機(jī)制,比如上升沿的深度、上升跨度等參數(shù)都可以作為打分指標(biāo)列入,最后根據(jù)分?jǐn)?shù)高低來(lái)確定具體的切分點(diǎn)位置。
6.2. 文章只考慮了豎直向切分的情況,如果出現(xiàn)上下方向的粘連,應(yīng)該尋找相應(yīng)的解決辦法。
總結(jié)
- 上一篇: EfficientNeRF
- 下一篇: 《面试宝典》:检验是否为合格的初中级程序