2011-06-30 56 views
3

我想知道是否有任何技術/ API可用於執行快速屏幕字體OCR?快速屏幕字體OCR技術或API?

以下是理所當然的:

  • 文本OCR應來自截圖,並應使用屏幕字體
  • 文本OCR可能會或可能不會是反鋸齒渲染
  • 抗鋸齒可能或不使用RGB抽取(又名子像素AA又名的ClearType等)
  • 截圖可以是RGB或RBG爲了
  • 基線是微不足道找到(看看所有顯示屏F onts:基線顯得非常清晰,並且很容易在算法上找到)
  • 允許很多錯誤(字符識別不需要100%正確)
  • 字體基本上是預先知道的,字體呈現不是(尺寸未知,顏色未知,抗鋸齒類型未知)。基本上什麼是已知的是,這將是非常常見的字體

所以我想這是沒有任何接近複雜,因爲這樣做「真正的」 OCR:找到基線和「切割」每個字符是很容易做到(我已經做到了)。

有沒有人知道特定的技術或紙張或甚至API允許做這樣的壯舉?

請注意:這個問題是關於屏幕抓取的而不是。這個問題是關於破解CAPTCHA的而不是。這個問題是關於正規OCR的而不是(如OCRing掃描的文本)。這個問題是關於GUI自動化的而不是(儘管有些人可能會這樣使用它)。

+0

**標記建議**如果此問題與GUI自動化有關,請添加gui-automation標記。如果這是您計劃開發自己的OCR算法技術,請添加算法標籤。如果您正在尋找爲此目的而設計的開源OCR實現,請添加開源標籤。 – rwong

+0

請參閱此問題的任何答案http://stackoverflow.com/q/896224/377657是否適用於您的情況。 – rwong

+0

你有什麼進展嗎?我正在嘗試做同樣的事情,我注意到在屏幕字體中字符完全相同,這是一個有用的功能。即「a」在屏幕上的不同位置看起來與「a」相同。 – Phil

回答

1

我有不變矩很好的經驗(例如胡適的時刻,但他們可能有點太 onvariant你的目的,你有預定義的定向)與 聚類分析配對特徵提取(我得到真正的好結果馬哈拉諾比斯距離)。
如果你有興趣在純Java的解決方案,這是我們的SF項目:

http://sourceforge.net/projects/javaocr/

這也適用於Android手機。

(幫助是值得歡迎)

+0

+1非常感謝...基本上我根本不知道這個術語,這使得谷歌搜索非常複雜。馬哈拉諾比斯距離似乎很有趣,因爲它顯然是尺度不變的。你會碰巧有其他的指針(Java或不)解釋這是如何工作的? – SyntaxT3rr0r

+0

尺度不變性來自不變矩,Mahalnobis距離與它無關,它來自於clustaer分析域。 SF項目引用我contais實現永遠的東西,也工作android演示。 –

0

您可以嘗試在丹尼爾·格拉佩的「人工神經網絡原理」所描述的實施LAMSTAR(1997年),第13章。

它涉及基本上是:

  • 將您的「輸入」到「子字」(他需要在像素的序列,細分的圖像的例子每列一個子字和每行一個子字)
  • 每個子詞被饋送到動態KSOM(Kohonen自組織映射)中,其將歸一化子字分類成不同數目的類別
  • 每個KSOM是Winner-Take-All分類器,其輸出之一爲1,並且0對於所有其他人
  • 然後,輸出ts與「到輸出層的鏈路權重」線性組合,具有非線性激活功能(例如,邏輯函數),並且輸出神經元的激勵爲您提供了一個表示識別字符的位序列。

的LAMSTAR的優點是,一切都是可追溯的:

  • 可以知道NN認爲,考慮你給它輸入什麼,
  • 你可以知道它看到什麼NN認爲通過觀察KSOM的分類結果。
  • 通過考慮特定K-SOM的權重向量,您可以知道NN希望看到什麼NN您可以通過比較鏈接權重來知道NN真正認爲重要的內容(以及它忽略的圖像的哪些部分) 。