2012-08-08 150 views
1

我試圖培養某些車牌圖像到特定的字體。我想知道我應該在訓練時將unicharambigs文件放在哪裏。我有一個沒有unicharambigs文件的訓練數據集。但是當我在代碼中包含tessdata文件夾時,它在運行時拋出一個異常,說「嘗試讀取或寫入受保護的內存,這通常表明其他內存已損壞。」我新使用tesseract我有幾個問題需要澄清,因爲我認爲上述例外是由於以下問題之一發生的:Tesseract培訓問題

1)是否必須具有unicharambigs文件?如果是的話,我應該在創建最終訓練數據之前在哪裏放入這個文件?

2)在與C#代碼集成時應該在tessdata文件夾中記錄哪些文件?

我一直在使用預訓練數據集進行測試,但我想擁有自己的數據集,當我使用該tessdata文件夾時,應用程序不會以上述運行時異常退出。因此我相信它與我自己的tessdata文件夾有關。

UPDATE

我想補充的問題。當我使用由tesseract安裝創建的默認tessdata文件夾時,應用程序工作正常,但結果不正確。我再次訓練了tesseract並用培訓後生成的新訓練數據文件替換了現有訓練數據文件,並且我的應用程序再次崩潰。

我正在使用C#和tesseract點淨包裝。

回答

1

其實這裏的問題是經過訓練的tessedata和tesseract DLL的版本不匹配。我猜測訓練好的tessedata是最新的> 3.0版本,因爲舊版本(2.0)dll會拋出異常像嘗試讀取或寫入受保護的內存「so請試用最新的tesseract dll https://github.com/charlesw/tesseract/tree/master/Samples 從上面的鏈接下載示例項目並測試您的訓練數據,它具有Nuget tesseract軟件包的參考,因此這將支持Tesseract 3.02訓練tessedata。