2017-04-25 165 views
7

我是Tensorflow的新成員,我正在嘗試構建能夠在我的圖像上執行OCR的模型。我必須閱讀9個字符(固定在所有圖像中),數字和字母。我的模型將與此類似OCR的Tensorflow模型

https://matthewearl.github.io/2016/05/06/cnn-anpr/

我的問題是,我要培養我對每個人物模型首先和後組合的字符得到完整的標籤來表示。或者我應該直接在完整的標籤上訓練?

我知道我需要傳遞給模型,相應圖片的圖片+標籤,這些標籤的格式是什麼,它是文本文件,我對這部分有點困惑,所以任何關於標籤格式的解釋傳遞給模型會有幫助嗎?我很感激,謝謝。

+0

我建議對所有標籤組合進行培訓。這是最乾淨的解決方案。如果失敗了,那麼你可以嘗試不同的方法。您通常會傳入一個單獨編碼的向量作爲標籤。例如,對於狗和貓,你可以將標籤貓表示爲'[1,0]',將狗標記爲'[0,1]'。 – niczky12

+0

好的,謝謝,我怎麼能通過例如標籤「17C31T2F」? –

+0

尺寸爲32px x 32px的手寫符號的[HASYv2數據集](https://arxiv.org/abs/1701.08380)可能會對您有所幫助。 –

回答

3

我建議注意培養一個端到端的OCR模型。您可以嘗試我們用來轉錄街道名稱的注意OCR https://github.com/tensorflow/models/tree/master/research/attention_ocr

我的猜測應該對您的情況非常好。有關如何爲其準備數據的說明,請參閱答案https://stackoverflow.com/a/44461910

+0

感謝亞歷山大的迴應,我會盡力按照你的建議去做。 –

+0

嗨亞歷山大,你認爲注意ocr模型可以在車牌上工作嗎?例如,像這樣的車牌:https://i.cbc.ca/1.3112890.1434422741!/fileImage/httpImage/image.jpg_gen/derivatives/16x9_620/kevin-eklund-rear-bike-rack。jpg 假設我們有足夠的數據來訓練,你知道模型可以達到的近似精度是多少? 謝謝。 –

+0

@thug_你有沒有試過注意ocr?對你起作用嗎?謝謝。 –

2

有幾種方法可以解決這個問題(下面的列表並非詳盡無遺)。

1)第一個是直接從您的圖像中分類字詞。如果你的9個字符的詞彙量有限,你可以訓練一個詞特定的分類器。然後,您可以將此分類器與圖像進行卷積並選擇出現概率最高的單詞。

2)第二種方法是訓練一個字符分類器,查找圖像中的所有字符,然後找到最可能找到的9個字符的行。

3)第三種選擇是訓練文本檢測器,找到所有可能的文本框。然後用基於序列的模型讀取所有文本框,然後選擇遵循約束的最可能的解決方案。下面的文章介紹了一個簡單的基於序列的模型:http://ai.stanford.edu/~ang/papers/ICPR12-TextRecognitionConvNeuralNets.pdf。其他基於序列的模型可以基於HMM,連接主義者時間分類,基於注意的模型等。

4)第四種選擇是基於關注的模型,它們端到端地工作以首先查找文本,然後輸出字符一個接一個。

請注意,這個列表並不詳盡,可以有很多不同的方法來解決這個問題。其他選項甚至可以使用Abbyy或Tesseract等第三方解決方案來幫助解決您的問題。

+0

謝謝,是否有任何可用於1,2和4的示例。根據您的意見,哪種方法最好,哪種方法最簡單,爲什麼? –