Tesseract (ソフトウェア)
Tesseract (テッセラクト)は、さまざまなオペレーティングシステム上で動作する光学式文字認識エンジン[3]。名称のTesseractとは四次元超立方体の意である。Apache Licenseの下でリリースされたフリーソフトウェアである[1][4][5]。文字認識を行うライブラリと、それを用いたコマンドラインインターフェイスを持つ。
![]() Tesseract 4.1.1 で画像を読み取る | |
作者 | Ray Smith, ヒューレット・パッカード[1] |
---|---|
開発元 | |
最新版 |
4.1.1
/ 2019年12月26日[2] |
リポジトリ | |
プログラミング 言語 | C、C++ |
対応OS | Linux、Windows、macOS (x86) |
対応言語 |
インタフェース: 英語 |
種別 | 光学文字認識 |
ライセンス | Apache License 2.0 |
公式サイト |
github![]() |
もともとは1980年代にプロプライエタリソフトウェアとしてヒューレット・パッカードが開発していたが、2005年にオープンソースとしてリリースされ、開発は2006年からGoogleが後援している[6]。
歴史
編集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はLinux、Windows、Mac 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言語のスクリプトがサポートされているため、言語が記述されているスクリプトを使用して言語を認識することができる。
ユーザーインターフェイス
編集Tesseractは、コマンドラインインターフェイスから実行する[16]。 TesseractにはGUIが付属していないが、GUIを提供するプロジェクトが多数ある[17]。 一般的な例の1つはOCRFeederである[18]。
識者の反応
編集2007年7月のTesseractについての記事では、Linux Journalのアンソニー・ケイは「優れた仕事をする風変わりなコマンドラインツール」と述べている。当時、彼は「Tesseractは必要最低限のOCRエンジンだ。ビルドプロセスは少し風変わりで、エンジンにはいくつかの追加機能(レイアウト検出など)が必要だが、中核機能であるテキスト認識は、私がオープンソースコミュニティで試した他のどの機能よりも大幅に優れている。スキャナーとGIMPやNetpbmなどの画像ツールを使用するだけで、簡単に優れた認識率を得ることができる。」と述べた [3]。
関連項目
編集脚注
編集- ^ a b Google (2008年). “tesseract-ocr”. 2016年3月8日閲覧。
- ^ “Releases - tesseract-ocr/tesseract”. 5 January 2020閲覧。
- ^ a b Kay, Anthony (July 2007). “Tesseract: an Open-Source Optical Character Recognition Engine”. Linux Journal 28 September 2011閲覧。
- ^ a b c Vincent, Luc (August 2006). “Announcing Tesseract OCR”. October 26, 2006時点のオリジナルよりアーカイブ。2008年6月26日閲覧。
- ^ a b c d e Canonical Ltd. (February 2011). “OCR”. 2011年2月11日閲覧。
- ^ a b Announcing Tesseract OCR - The official Google blog
- ^ Willis (September 2006). “Google's Tesseract OCR engine is a quantum leap forward”. 2008年7月18日閲覧。
- ^ Rice Stephen V., Frank R. Jenkins, and Thomas A. Nartker The Fourth Annual Test of OCR Accuracy, expervision.com, retrieved 21 May 2013
- ^ Tesseract Project (February 2011). “Issue 263: patch to enable hOCR output”. November 13, 2012時点のオリジナルよりアーカイブ。26 February 2011閲覧。
- ^ “langdata - Source training data for Tesseract for lots of languages”. 6 November 2016閲覧。
- ^ “Training LSTM networks on 100 languages and test results”. 18 March 2018閲覧。
- ^ Announcing the OCRopus Open Source OCR System (Thomas Breuel, OCRopus Project Leader).
- ^ “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”. 23 December 2015時点のオリジナルよりアーカイブ。2014年5月30日閲覧。
- ^ “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日). 20 September 2015時点のオリジナルよりアーカイブ。2014年5月30日閲覧。
- ^ “TESSERACT(1) Manual Page”. 15 March 2018閲覧。
- ^ Google Code – Tesseract Readme
- ^ “3rdParty - tesseract-ocr - GUIs and Other Projects using Tesseract OCR.”. github.com. 2017年3月30日閲覧。
- ^ “OCRFeeder”. GNOME wiki. 12 January 2019閲覧。
外部リンク
編集- 公式ウェブサイト
- Tesseract V0.04のハッキング– Doxyfiedソースコードから抽出されたTesseractのC / C ++構造(Tesseract V1.03に基づく)
- Tesseract OCRエンジン Tesseact OCRエンジンの概要。