光學字元識別OCR 2

2022-07-31 11:21:18 字數 1855 閱讀 3581

灰度聚類

接著我們就對影象的色彩進行聚類。聚類的有兩個事實依據: 

1.灰度解析度   肉眼的灰度解析度大概為40,因此對於畫素值254和255,在我們肉眼看來都 只是白色; 

2.設計原則   根據我們一般的審美原則,在考慮海報設計、服裝搭配等搭配的時候,一般要 求在服裝、海報等顏色搭配不超過三種顏色。 

更通俗地說,雖然灰度色階範圍是[0, 255],但我們能感覺到的整體的色調一般不多,因此,可以將相近的色階歸為一類,從而減少顏色分布,有效地降低噪音。 

事實上,聚類是根據影象的特點自適應地進行多值化的過程,避免了傳統的簡單二值化所帶來 的資訊損失。由於我們需要自動地確定聚類數目,因此傳統的kmeans等聚類方法被我們拋棄 了,而且經過我們測試,諸如meanshift等可行的聚類方法又存在速度較慢等缺陷。因此,我們 自行設計了聚類方法,使用的是「核概率密度估計」的思路,通過求顏色密度極值的方式來聚類。 

核密度估計經過預處理的影象,我們可以對每個色階的出現次數進行統計,根據色戒,得到如圖5的頻率分布直方圖:

可以看到,色階的分布形成了幾個比較突出的峰,換言之,存在一定的聚類趨勢。 然而,直方 圖的統計結果是不連續的,乙個平滑的結果更便於我們分析研究,結果也更有說服力。將統計 結果平滑化的方法,就是核密度估計(kernel density estimation)。

核密度估計方法是一種非引數估計方法,由rosenblatt和parzen提出,在統計學理論和應用領 域均受到高度的重視[2]。 當然,也可以簡單地將它看成一種函式平滑方式。 我們根據大量的資料 來估計某個值出現的概率(密度)時,事實上做的是如下估算: 

其中k(x)稱為核函式。 當 取為1,且k(x)取

時,就是我們上述的直方圖估計。 k(x)這一項的含義很簡單,它就是告訴我們在範圍h內的

都算入到x中去,至於怎麼算,由

給出。可見,h的選擇對結果的影響很大,h我們稱之為頻寬(bandwidth),它主要影響結果的平滑性。 如果k(x)是離散的,得到的結果還是離散的,但如果k(x)是光滑的,得到的結果也是比較光滑的。乙個常用的光滑函式核是高斯核:

極大極小值分割

從圖6中我們進一步可以看出,影象確實存在著聚類趨勢。 這表現為它有幾個明顯的極大值和極 小值點,這裡的極大值點位於x = 10, 57, 97, 123, 154,極小值點位於25, 71, 121, 142。 

因此,乙個很自然的聚類方法是:有多少個極大值點,就聚為多少類,並且以極小值點作為類 別之間的邊界。 也就是說,對於圖3,可以將影象分層5層,逐層處理。 分層之後,每一層的形狀 如下圖,其中白色是1,黑色是0。 

通過聚類將影象分為5個圖層 

可見,由於「對比度」和「漸變性」假設,通過聚類確實可以將文字圖層通過核密度估計的聚類方 法分離開來。 而且,通過聚類分層的思路,無需對文字顏色作任何假定,即便是文字顏色跟背 景顏色一致時,也可以獲得有效檢測。 

逐層識別

當影象有效地進行分層後,我們就可以根據前面的假設,進一步設計相應的模型,通過逐層處 理的方式找出影象中的文字區域。

OCR光學字元識別

沒搞過計算機視覺,只好拿來主義了 根據網上的推薦 1.google vision,識別效果還不錯,收費,而且對於複雜文字也不是很理想,所以繼續尋找開源 2.tesseract,最負盛名的開源識別軟體,據說google vision內部也是基於此。就我們公司的需求來說 提取中嵌入的文字 tessera...

開源OCR光學字元識別

優秀的開源ocr軟體包括 tesseract 原本由惠普開發的影象識別類庫tesseract ocr已經更新到2.04,就是最近google支援的那個ocr。原先是惠普寫的,現在open source了。ocropus ocropus的 tm 是乙個先進的檔案分析和ocr系統,採用可插入的布局分析,...

開源OCR光學字元識別

優秀的開源ocr軟體包括 tesseract 原本由惠普開發的影象識別類庫tesseract ocr已經更新到2.04,就是最近google支援的那個ocr。原先是惠普寫的,現在open source了。ocropus ocropus的 tm 是乙個先進的檔案分析和ocr系統,採用可插入的布局分析,...