使用py-tesseract和opencv从日文图像中提取表格数据

时间:2018-06-07 07:22:10

标签: opencv tesseract opencv3.0 python-tesseract

我有一张包含表格的日文图片。我试图使用py-tesseract提取表格数据,但提取的文本不够准确。

包含表格的日本发票:

我正在使用Open CV删除矩形框,以便py-tesseract可以识别这些框中的单词。 这是我正在使用的代码:

    image = cv2.imread(image_str)
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    gray = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]

    inv = 255 - gray    
    horizontal_img = inv
    vertical_img = inv

    kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (100,1))
    horizontal_img = cv2.erode(horizontal_img, kernel, iterations=1)
    horizontal_img = cv2.dilate(horizontal_img, kernel, iterations=1)

    kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (1,100))
    vertical_img = cv2.erode(vertical_img, kernel, iterations=1)
    vertical_img = cv2.dilate(vertical_img, kernel, iterations=1)

    mask_img = horizontal_img + vertical_img
    no_border = np.bitwise_or(gray, mask_img)

    text = pytesseract.image_to_string(no_border, lang='eng+jpn')

但是py-tesseract的输出如下:

    瓜 M0†0膚0LA
    請求害 (原本一TEST)
    ぺージ ー / ー
    顧客番号
    ー2ー50939ー8
    お支払期日
    20ー8/0ー/08
    金額
    (〕PY)
    ー, 60。
    ー28
    ー, 728
    } 〟 一 `、、 。` 請求号 発行日 請求金額
    モ ト ローフ ・ モヒ リ プィ ・ ソャハ/株式会社 6ー0600003ー 20ー8/0ー/。g ‥28ij
    発注番号 注文番号〟
    E2E03 (UAT E2Eー5) 42ー5ー77926
    ~ 支払条件
    ht〔pS 二//WW嘲几 m0t0r0]a. C。_ Jp/h0me
    ` 請求住所 納品先住所
    萱ネックス インフォテック株式会社 萱ネックス インフォテック株式会社
    Tー35_855〝9 _ T甕0一ー4笠 {`
    塁星都L束塗 宋陽巨ー`3ーー 千慕是柏巾 鶯野瞥ー027ー29
    呆泉イース ト2ーヒヽシネスセンター2F ロシハー 卜ナース内
    } 運賃条件 〈ーnc。terms 20ー0)
    DBP ~
    最終目的地 〈玉)
    日本
    特記事項
    二 ` 《
    碩求明`田
    項 目 商品コー ド 商品名 数量 単価
    (JPY)
    ` ー。 PA700078FR MGTO Ph0n6 XTー77ー FR 3十ー6G GR SS BGUY 4 ー。。
    LONQー ー00ーー095
    LGー7ー228005, LGー7ー228005, LGー7ー228005, LCー7ー228005
    4。 PA6ー0ー28GB MGTO Ph0ne XTー676 GB 3十ー6G GR DS 4 ー00
    DOHUー7ー22900ー
    ー0ー7ー229ー535235ー, ー0ー7ー229ー535235ー, ー0ー7ー229ー535235ー, ー0ー7ー229ー53523
    5]
    5。 PA6]0008TN MGTO Ph0ne XTー75。 TN ー十8G BL DS 4 ー00
    WーNT0800ー0023
    WーNT800ー0023, WーNT800ー0023, WーNT800ー0023, WーNT800ー0023
    ` 5ー PA800ー33FR M。T。 Ph0ne XTー723 FR ー十ー6G BL SS BOUY 4 ー0。
    ` WーNDー7ー228ー0ー
    ` WDー70ー0399ー9, WDー70ー0399ー9' WDー70ー0399ー9, WDー70ー0399ー9
    課税 ー 小計(兜Y) ー 税率 ー 消費税(庇Y) ー 合計 (JPY) `庇Y 小計
    消費禾兄 ー ー, 60。 ー 8% ー ー28 ー ー, 728 ` 庇Y 消費税
    } ` JPY 合計
    支払先 賓控零 ー ` ノ ィ (04。 )
    モトローラ ・モビリティ ・ジヤパン株式今社 ‥ イ〔 ‥ シ王イ〈ン丿・ エヌ ・エ ー
    〒ー0ーー002ー 士 店舎 名 : 東〈肢支店 (730)
    東京都下代田区外神田暇ー4孔 崖種璽」 : 普通
    秋葉原UDX 崖番萱: 7343ー43 ` ` _
    TEL: 03_6365_4943 崖名鱒 : モ トローラ ・ モ ビリティ ・ シャパン株式会仕
    4。。
    40。
    40。
    4。。
    消費税

我使用此Github链接上提供的训练集来训练Tesseract OCR:

https://github.com/tesseract-ocr/tessdata/tree/3.04.00

https://github.com/tesseract-ocr/tessdata_fast

请大家帮忙:

  1. 如何使用py-tesseract提高Tesseract OCR的准确度?
  2. 如何使用py-tesseract提取表格数据。有没有其他开源工具可以与/替代py-tesseract一起使用?我只是在寻找开源解决方案。
  3. 谢谢。

0 个答案:

没有答案