最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

tesseract-ocr使用以及訓練方法

 更新時間:2023年04月19日 09:21:47   作者:歐晨eli  
這篇文章主要介紹了tesseract-ocr使用以及訓練方法,結合圖文形式詳細分析了tesseract-ocr基本功能、用法、樣本訓練與糾錯技巧,需要的朋友可以參考下

    本人最近在做字符識別,所以自行在網(wǎng)上尋找方法,接觸到tesseract,自己按照網(wǎng)上方法做的時候,也遇到一些問題,解決了一些。所以我決定寫下我第一個博客,一是方便自己以后查看,更新學習。二是方便和網(wǎng)友交流學習。

Tesseract介紹

         Tesseract是一個開源的OCR(Optical Character Recognition,光學字符識別)引擎,可以識別多種格式的圖像文件并將其轉換成文本,目前已支持60多種語言(包括中文)。 Tesseract最初由HP公司開發(fā),后來由Google維護,目前發(fā)布在Googel Project上。

       安裝Tesseract,從http://code.google.com/p/tesseract-ocr/downloads/list下載Tesseract,3.01上的版本支持中文。安裝后在電腦上會有一個Tesseract-OCR目錄,通過目錄錄下的tesseract.exe程序就可以對圖像的字符進行識別??紤]到萬一有人上不了谷歌,這個Tesseract-OCR文件夾我也上傳了,地址:點擊打開鏈接。文件夾中除了Tesseract的相應文件外,還有一個tesseract-vs2013-include-lib-dll文件,這個是VS2013用來調(diào)用API的配置文件,后面的博客會寫到。打開如圖所示。

使用默認的語言庫識別

     準備一張待識別的圖片,我選取一段《成都》的歌詞。

  接著就可以打開命令行,進入Tesseract-OCR的目錄,輸入:

tesseract.exe gc.jpg result -l chi_sim

 其中result表示輸出結果文件txt名稱,chi_sim表示用以識別的語言文件為英文。執(zhí)行后文件夾中會多一個result.txt。

    效果非常不好,因為很多漢字是左右結構,比如:眼淚。所以我要自己訓練自己的中文庫。

訓練樣本

     訓練樣本需要一個工具,jTessBoxEditor,下載地址:點擊打開鏈接。這個工具是用java開發(fā)的,需要jre7以上的版本支持。   

    1、獲取訓練的圖片,為了方便我使用了原來的圖片一張,樣本當然是越多越好。

    2、合并樣本文件,打開jTessBoxEditor,點開train.bat。在菜單欄中Tools->Merge TIFF。在彈出的窗口中可以選擇多張樣本圖片(網(wǎng)上之前有說要.tif格式的圖片,測試.jpg格式的也行),我這邊就用了一張樣本圖片。

 

       一張或者多張圖片可以合成一張tif文件。

  3、生成box文件, 打開命令行,輸入:

tesseract.exe gc.font.exp1.tif gc.font.exp1 batch.nochop makebox


      生成的BOX文件為gc.font.exp1.box,BOX文件為Tessercat識別出的文字和其坐標。Make BOX的命名的個數(shù)為:

tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox


      其中l(wèi)ang為語言名稱,fontname為字體名稱,num為序號,可以隨便定義。有些博客說對于這個命名無所謂,但是我嘗試到后免出錯了,是tr文件名的問題,在下面我會貼出報錯圖。讀者也可以試試,不知是不是我之前步驟哪里做錯了。
      4、文字矯正,打開jTessBoxEditor工具,打開gc.font.exp1.tif文件(必須將上一步生成的.box和.tif樣本文件放在同一目錄),如下圖所示??梢钥闯鲇行┳址指詈妥R別都不正確,可以通過該工具手動對每張圖片中識別錯誤的字符進行校正。校正完成后保存即可。(注:發(fā)現(xiàn)中文打不上去,在菜單Setting->Font中可以修改,改為宋體即可)

   對于標定的方框以及識別的字符進行修改。

        選擇兩個或兩個以上的框,Merge可進行合并;Split將框進行拆分;Insert插入框,如果圖片上一個框也沒有,那無法進行插入;Delete刪除框。選擇要修改的字符框,在Character中輸入想要修改的字,再點擊齒輪,即可修改。修改后,如下圖所示:

         5、生成.tr文件,在命令行中輸入:

tesseract gc.font.exp1.tif gc.font.exp1 nobatch box.train

   6、計算字符集,從生成的box文件中提取,繼續(xù)輸入:

unicharset_extractor gc.font.exp1.box

 7、生成字體特征文件,在當前文件夾中新建任意名稱的文件,里面格式為:

<span><fontname> <italic> <bold> <fixed> <serif> <fraktur>  </span>

       例如:我建了一個名為font的文件,里面內(nèi)容為:font 0 0 0 0 0 

        這個文件可以是手動生成的txt文件,也可以在在命令行中輸入:

echo font 0 0 0 0 0 >font

        即可。

        8、特征訓練,繼續(xù)在命令行輸入:

mftraining -F font -U unicharset gc.font.exp1.tr

        在這一步我出現(xiàn)了好幾個錯誤,如下圖

       (1)Failed to load unicharset from file uncharset,這是因為剛剛的font的文件,如果是在txt中寫的,一定要寫成font.txt,加上后綴。

   (2)feature training for Tesseract已停止工作。命令行顯現(xiàn):

      Reading num.tr …
      Font id = -1/0, class id = 1/13 on sample 0

      font_id >= 0 && font_id < font_id_map_.SparseSiz..\..\classify\trainingsampleset.cpp, line 622


 這個問題就是上面命名所導致的,所以還是規(guī)范命名。

       9、聚集tesseract識別的訓練文件,命令行輸入:

cntraining gc.font.exp1.tr

    有人會說其他還有一條shapeclustering語句,說下這個步驟可有可無,這個是在3.02中新加的,主要針對印度語,所以我們在做的時候會有一個警告 warning No shape table file present。
        這時候文件夾中會多了四個文件,在unicharset,inttemp,normproto,pfftable文件名前面加上font.。如下圖所示:

      10、最后,合并相關文件,生成字典文件,輸入:

combine_tessdata font.

   所有輸入命令如下圖所示

最終,在當前目錄中會產(chǎn)生一個為font.traineddata文件,將其拷到tessdata文件夾中,再測試一下。

     雖然不是全部識別出來,但是較之前的識別率提高了很多,這個和樣本數(shù)量也是有關系的,而且這句話中左右結構的字特別多,原圖26個字,卻識別出31個字出來了,這個問題,我還沒想到什么方法,單個字訓練?。我也試了其他字符訓練,效果還可以 

PS:tesseract-ocr還可從github下載:https://github.com/tesseract-ocr/

相關文章

  • Python淺析匿名函數(shù)lambda的用法

    Python淺析匿名函數(shù)lambda的用法

    lambda所表示的匿名函數(shù)的內(nèi)容應該是很簡單的,如果復雜的話,干脆就重新定義一個函數(shù)了,使用lambda就有點過于執(zhí)拗了。lambda就是用來定義一個匿名函數(shù)的,如果還要給他綁定一個名字的話,就會顯得有點畫蛇添足,通常是直接使用lambda函數(shù)
    2022-07-07
  • Django中模版的子目錄與include標簽的使用方法

    Django中模版的子目錄與include標簽的使用方法

    這篇文章主要介紹了Django中模版的子目錄與include標簽的使用方法,有利于Python的Django框架的模版布局,需要的朋友可以參考下
    2015-07-07
  • python調(diào)用ffmpeg命令行工具便捷操作視頻示例實現(xiàn)過程

    python調(diào)用ffmpeg命令行工具便捷操作視頻示例實現(xiàn)過程

    現(xiàn)在短視頻很流行,有很多視頻編輯軟件,功能豐富,而我們需要的只是裁剪功能,而且需要用編程的方式調(diào)用,那么最合適的莫過于ffmpeg了
    2021-11-11
  • 分享6個好用到爆的Pycharm插件

    分享6個好用到爆的Pycharm插件

    這篇文章主要介紹了分享6個好用到爆的Pycharm插件,在安裝上之后,我們的編程效率、工作效率都能夠得到極大地提升,下面分享的內(nèi)容,需要的小伙伴可以參考一下
    2022-02-02
  • Python列表去重的4種核心方法與實戰(zhàn)指南詳解

    Python列表去重的4種核心方法與實戰(zhàn)指南詳解

    在Python開發(fā)中,處理列表數(shù)據(jù)時經(jīng)常需要去除重復元素,本文將詳細介紹4種最實用的列表去重方法,有需要的小伙伴可以根據(jù)自己的需要進行選擇
    2025-04-04
  • 跟老齊學Python之print詳解

    跟老齊學Python之print詳解

    print的一些基本用法,在前面的講述中也涉及一些,本講是在復習的基礎上,盡量再多點內(nèi)容。
    2014-09-09
  • 基于numpy.random.randn()與rand()的區(qū)別詳解

    基于numpy.random.randn()與rand()的區(qū)別詳解

    下面小編就為大家分享一篇基于numpy.random.randn()與rand()的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python正則表達式re.sub各個參數(shù)的超詳細講解

    python正則表達式re.sub各個參數(shù)的超詳細講解

    Python 的 re 模塊提供了re.sub用于替換字符串中的匹配項,下面這篇文章主要給大家介紹了關于python正則表達式re.sub各個參數(shù)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • Python在后臺自動解壓各種壓縮文件的實現(xiàn)方法

    Python在后臺自動解壓各種壓縮文件的實現(xiàn)方法

    這篇文章主要介紹了Python在后臺自動解壓各種壓縮文件的實現(xiàn)方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Python3指定路徑尋找符合匹配模式文件

    Python3指定路徑尋找符合匹配模式文件

    這篇文章主要介紹了Python3指定路徑尋找符合匹配模式文件,涉及Python文件查找與模式匹配的相關技巧,需要的朋友可以參考下
    2015-05-05

最新評論

石台县| 侯马市| 怀化市| 呼玛县| 襄城县| 吉隆县| 淮安市| 宜兰市| 巴林左旗| 五莲县| 平南县| 江安县| 科技| 南阳市| 张家界市| 贵定县| 莫力| 隆德县| 南丹县| 德格县| 腾冲县| 弋阳县| 宁蒗| 安图县| 原平市| 千阳县| 孟津县| 香港| 甘德县| 平阳县| 金堂县| 泽州县| 上蔡县| 开封市| 浮山县| 余江县| 瑞昌市| 句容市| 开封县| SHOW| 安泽县|