Tesseract (ソフトウェア)

さまざまなオペレーティングシステム上で動作する光学式文字認識エンジン

Tesseract (テッセラクト)は、さまざまなオペレーティングシステム上で動作する光学式文字認識エンジン[3]。名称のTesseractとは四次元超立方体の意である。Apache Licenseの下でリリースされたフリーソフトウェアである[1][4][5]。文字認識を行うライブラリと、それを用いたコマンドラインインターフェイスを持つ。

Tesseract
Tesseract 4.1.1 で画像を読み取る
作者 Ray Smith, ヒューレット・パッカード[1]
開発元 Google
最新版
4.1.1 / 2019年12月26日 (4年前) (2019-12-26)[2]
リポジトリ ウィキデータを編集
プログラミング
言語
CC++
対応OS LinuxWindowsmacOS (x86)
対応言語

インタフェース: 英語
認識:

アフリカーンス語アルバニア語アラビア語アゼルバイジャン語バスク語ベラルーシ語ベンガル語ブルガリア語カタルーニャ語チェコ語チェロキー語クロアチア語デンマーク語オランダ語英語エスペラント語エストニア語フィンランド語フランス語ガリシア語ドイツ語ギリシア語ヒンディー語ハンガリー語インドネシア語イタリア語日本語カンナダ語朝鮮語ラトビア語リトアニア語マラヤーラム語マケドニア語マルタ語マレー語ノルウェー語ポーランド語ポルトガル語ルーマニア語ロシア語セルビア語スロバキア語スロベニア語スペイン語スワヒリ語スウェーデン語タガログ語タミル語テルグ語タイ語トルコ語ウクライナ語ベトナム語(トレーニングファイルによりさらに追加可能)
種別 光学文字認識
ライセンス Apache License 2.0
公式サイト github.com/tesseract-ocr ウィキデータを編集
テンプレートを表示

もともとは1980年代にプロプライエタリソフトウェアとしてヒューレット・パッカードが開発していたが、2005年にオープンソースとしてリリースされ、開発は2006年からGoogleが後援している[6]

2006年、Tesseractは当時入手可能な最も正確なオープンソースOCRエンジンの1つと見なされた[5][7]

歴史 編集

Tesseractエンジンは、1985年から1994年にかけて、英国ブリストルコロラド州グリーリーにあるヒューレット・パッカードラボでプロプライエタリソフトウェアとして開発されていた。1996年にさらに変更が加えられてWindowsへ移植され、1998年にCからC ++に移行した。コードの多くはCで記述されており、部分的にC++で記述されている。それ以来、すべてのコードは少なくともC++コンパイラでコンパイルするように変換されている[4]。 次の10年間はほとんど変更がなかった。その後、2005年にヒューレット・パッカードとネバダ大学ラスベガス校(UNLV)によってオープンソースとしてリリースされた。 Tesseractの開発は2006年からGoogleが後援している[6]

特徴 編集

Tesseractは、1995年の時点で文字認識精度が良い上位3つのOCRエンジンのうちの一つだった[8] 。 TesseractはLinuxWindowsMac OS Xで利用できるが、開発リソースの制限により、WindowsとUbuntuの開発者によってのみ厳格なテストが行われている[4][5]

バージョン2までのTesseractは、単純な1列のテキストのTIFF画像のみの入力が可能だった。初期のバージョンにはレイアウト分析が含まれていなかったため、複数列のテキスト、画像、数式を入力すると、文字化けした出力が生成された。バージョン3.00以降、Tesseractは出力テキストのフォーマット、 hOCR [9]位置情報、ページレイアウト分析に対応した。 また、Leptonicaライブラリの使用により、いくつかの新しい画像形式に対応した。 Tesseractでは、テキストが等幅かプロポーショナルかを検出することができる[5]

Tesseractの初期バージョンは、英語のテキストしか認識できなかった。 Tesseract v2は、さらに6つの西洋言語(フランス語、イタリア語、ドイツ語、スペイン語、ブラジルポルトガル語、オランダ語)を追加した。バージョン3は、表意文字(中国語と日本語)と右から左に書く言語(例:アラビア語、ヘブライ語)、およびその他の多くの言語に対応した。新しい言語には、アラビア語、ブルガリア語、カタロニア語、中国語(簡略化および伝統的)、クロアチア語、チェコ語、デンマーク語、ドイツ語(Frakturスクリプト)、ギリシャ語、フィンランド語、ヘブライ語、ヒンディー語、ハンガリー語、インドネシア語、日本語、韓国語、ラトビア語、リトアニア語、ノルウェー語、ポーランド語、ポルトガル語、ルーマニア語、ロシア語、セルビア語、スロバキア語(標準およびFrakturスクリプト)、スロベニア語、スウェーデン語、タガログ語、タミル語、タイ語、トルコ語、ウクライナ語、ベトナム語が含まれる。 2015年7月にリリースされたV3.04では、39の言語とスクリプトの組み合わせが追加され、サポート言語の総数が100を超えた。含まれる新しい言語コードは以下の通り:amh(Amharic)、asm(Assamese)、aze_cyrl(キリル文字のアゼルバイジャナ)、bod(チベット語)、bos(ボスニア語)、ceb(Cebuano)、cym(ウェールズ語)、dzo(ゾンカ語)、fas(ペルシャ語)、gle(アイルランド語)、guj(グジャラティ語)、hat(ハイチ語、ハイチ語クレオール語)、iku(イヌクティット語)、jav(ジャワ語)、kat(ジョージ語)、kat_old(旧グルジア語)、kaz(カザフ語)、khm(中央Khmer)、kir(Kyrgyz)、kur(Kurdish)、lao(Lao)、lat(Latin)、mar(Marathi)、mya(Burmese)、nep(Nepali)、ori(Oriya)、pan(Punjabi)、pus( Pashto)、san(Sanskrit)、sin(Sinhala)、srp_latn(ラテン文字のセルビア語)、syr(Syriac)、tgk(Tajik)、tir(Tigrinya)、uig(Uyghur)、urd(Urdu)、uzb(Uzbek) 、uzb_cyrl(キリル文字のウズベク語)、yid(イディッシュ)[10]

さらに、Tesseractは他の言語でも動作するようにトレーニングできる[5]

Tesseractは、アラビア語やヘブライ語などの右から左に書く言語、多くのインド系文字、および中国語日本語朝鮮語を非常にうまく処理できる。認識精度は、サントリーニでのDAS 2016における、レイ・スミスのTesseractチュートリアルのプレゼンテーションで示されている[11]

Tesseractはバックエンドでの使用に適しており、 OCRopusなどのフロントエンドを使用することで、レイアウト分析などの、より複雑なOCRタスクに使用できる[12]

入力する画像がOCR用に前処理されていない場合、Tesseractの出力の品質は非常に低くなる。画像(特にスクリーンショット)は、テキストのx-heightが少なくとも20ピクセルになるように拡大する必要があり[13]、 回転と傾きを修正しないとテキストが全く認識されない。明るさの低頻度の変化をハイパスフィルター処理する必要がある。Tesseractの2値化段階でページの大部分が破壊され、暗い境界線を手動で削除する必要がある。そうしないと、文字が誤って認識されてしまう[14]

バージョン4 編集

バージョン4では、バージョン4.0からは、従来の認識エンジンに加えLSTMベースのニューラルネットワークによるOCRエンジンと、多くの追加言語およびスクリプト用のモデルが追加され、対応言語は合計で116言語となった[15]

さらに、37言語のスクリプトがサポートされているため、言語が記述されているスクリプトを使用して言語を認識することができる。

ユーザーインターフェイス 編集

 
OCRFeederのTesseract設定ウィンドウ

Tesseractは、コマンドラインインターフェイスから実行する[16]。 TesseractにはGUIが付属していないが、GUIを提供するプロジェクトが多数ある[17]。 一般的な例の1つはOCRFeederである[18]

識者の反応 編集

2007年7月のTesseractについての記事では、Linux Journalのアンソニー・ケイは「優れた仕事をする風変わりなコマンドラインツール」と述べている。当時、彼は「Tesseractは必要最低限のOCRエンジンだ。ビルドプロセスは少し風変わりで、エンジンにはいくつかの追加機能(レイアウト検出など)が必要だが、中核機能であるテキスト認識は、私がオープンソースコミュニティで試した他のどの機能よりも大幅に優れている。スキャナーとGIMPやNetpbmなどの画像ツールを使用するだけで、簡単に優れた認識率を得ることができる。」と述べた [3]

関連項目 編集

脚注 編集

  1. ^ a b Google (2008年). “tesseract-ocr”. 2016年3月8日閲覧。
  2. ^ Releases - tesseract-ocr/tesseract”. 2020年1月5日閲覧。
  3. ^ a b Kay, Anthony (2007年7月). “Tesseract: an Open-Source Optical Character Recognition Engine”. Linux Journal. http://www.linuxjournal.com/article/9676 2011年9月28日閲覧。 
  4. ^ a b c Vincent, Luc (2006年8月). “Announcing Tesseract OCR”. 2006年10月26日時点のオリジナルよりアーカイブ。2008年6月26日閲覧。
  5. ^ a b c d e Canonical Ltd. (2011年2月). “OCR”. 2011年2月11日閲覧。
  6. ^ a b Announcing Tesseract OCR - The official Google blog
  7. ^ Willis (2006年9月). “Google's Tesseract OCR engine is a quantum leap forward”. 2008年7月18日閲覧。
  8. ^ Rice Stephen V., Frank R. Jenkins, and Thomas A. Nartker The Fourth Annual Test of OCR Accuracy, expervision.com, retrieved 21 May 2013
  9. ^ Tesseract Project (2011年2月). “Issue 263: patch to enable hOCR output”. 2012年11月13日時点のオリジナルよりアーカイブ。2011年2月26日閲覧。
  10. ^ langdata - Source training data for Tesseract for lots of languages”. 2016年11月6日閲覧。
  11. ^ Training LSTM networks on 100 languages and test results”. 2018年3月18日閲覧。
  12. ^ Announcing the OCRopus Open Source OCR System (Thomas Breuel, OCRopus Project Leader).
  13. ^ FAQ - tesseract-ocr - Frequently Asked Questions - An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google. - Google Project Hosting”. 2015年12月23日時点のオリジナルよりアーカイブ。2014年5月30日閲覧。
  14. ^ ImproveQuality - tesseract-ocr - Advice on improving the quality of your output. - An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google. - Google Project Hosting” (2014年1月27日). 2015年9月20日時点のオリジナルよりアーカイブ。2014年5月30日閲覧。
  15. ^ TESSERACT(1) Manual Page”. 2018年3月15日閲覧。
  16. ^ Google Code – Tesseract Readme
  17. ^ 3rdParty - tesseract-ocr - GUIs and Other Projects using Tesseract OCR.”. github.com. 2017年3月30日閲覧。
  18. ^ OCRFeeder”. GNOME wiki. 2019年1月12日閲覧。

外部リンク 編集