tesseract・とは?初心者でも分かるOCRの基本と使い方ガイド共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
tesseract・とは?初心者でも分かるOCRの基本と使い方ガイド共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


tesseract・とは?初心者でも分かるOCRの基本と使い方ガイド

tesseractは、オープンソースの光学文字認識(OCR)エンジンです。OCRとは、紙の文字や画像に写っている文字を機械が読み取り、テキストデータとして取り出す技術のことを指します。tesseractはMIT等のライセンスで配布され、世界中の開発者が協力して機能を向上させています。ここでは初心者向けに、tesseractがどういうものか、どんな場面で役立つかをやさしく解説します。

tesseractとは何か

tesseractは「文字を認識するためのソフトウェア」です。特定の言語データ(日本語なら日本語データ、英語なら英語データ)を使って、画像の中の文字を識別します。認識の精度は、画像の品質、文字フォント、文字サイズ、背景のノイズなどに左右されます。近年のOCR技術は、手書き文字や印刷文字も高い精度で読み取れるようになっており、tesseractも常に改良されています。

どうやって動くのか

大まかな流れは次の通りです。まず画像を読み込み、ページ全体の構成を推定します。次に、文字のブロックを見つけて、1文字ずつを識別します。最後に認識結果をテキストとして出力します。分かりやすく言えば、写真(関連記事:写真ACを三ヵ月やったリアルな感想【写真を投稿するだけで簡単副収入】)の文字を「文字の形と特徴」をもとにコンピュータが読み取る作業です。tesseractは「レイアウト分析」「文字候補の抽出」「言語モデルによる確率計算」という3つの工程を順番に実行します。これにより、画像中の文字を正しくテキスト化します。

使い方の基本

まずは準備として、tesseractを自分の環境にインストールします。OSごとに手順が少し違います。

Linux(例: Ubuntu)の場合:端末を開いて次のコマンドを実行します。sudo apt-get updatesudo apt-get install tesseract-ocr。日本語データを追加したい場合は、sudo apt-get install tesseract-ocr-jpnのように日本語データのパッケージを入れます。

Windowsの場合:公式サイトからインストーラをダウンロードしてインストールします。インストール後、「パスを通す」設定をしておくと、コマンドプロンプトから tesseract と打つだけで使えます。日本語データも公式サイトから追加で取得できます。

macOSの場合:Homebrewを使ってインストールするのが手軽です。brew install tesseractと入力します。日本語データを使いたい場合は、必要に応じて tessdata に日本語ファイルを追加します。

インストールが完了したら、基本的な使い方はとてもシンプルです。画像ファイルを指定して、認識結果を出力ファイルに保存します。例えば英語データを使って、input.pngからoutput.txtに文字を出力する場合は次のようにします。tesseract input.png output -l eng。出力は同名のファイル output.txt に保存されます。出力形式を変更したいときはオプションを併用します。

より実践的には、Pythonからtesseractを呼び出すライブラリ「pytesseract」を使う方法も人気です。以下は簡単な例です。

import pytesseractfrom PIL import Imagetext = pytesseract.image_to_string(Image.open('input.png'), lang='eng')print(text)

画像の前処理を少し工夫すると、認識精度が向上します。コントラストを上げる、ノイズを減らす、文字の傾きを矯正する、などの前処理が有効です。特に日本語は文字数が多く、レイアウトも複雑なので、前処理の効果が高く出やすいです。

よくある質問と注意点

Q回答
日本語の認識はうまくいく?英語と比べて難易度が高いですが、日本語データを追加し、適切な前処理をすれば十分に使えます。
画像の品質はどれくらい必要?解像度が低いと文字が分かりにくくなるため、縦横の解像度を高め、ノイズを減らすと良いです。
無料で使える?はい。tesseractは完全にオープンソースで、無料で使えます。

おさえておきたいポイントをまとめると、tesseractは多言語対応の強力なOCRエンジンで、使い方はシンプル。インストール後の基本コマンドと、Pythonからの呼び出し、前処理の工夫が認識精度を大きく左右します。現場で使う際には、ワークフローに合わせて言語データと出力形式を決め、日常的にテストしてベストプラクティスを作っていきましょう。

著者注

この記事は初心者のために、複雑な専門用語を避け、実例と手順を中心に解説しました。

表は、tesseractの基本的な特徴とポイントをひと目で比較できるようにしています。なお、公式ドキュメントにはより多くのオプションと応用例が載っています。


tesseractの関連サジェスト解説

tesseract-ocr とは
tesseract-ocr とは、画像の中の文字を読み取ってテキストに変えてくれる道具です。OCRは Optical Character Recognition の略で、紙の文字や写真に写った文字を機械が理解できるデータに変える技術です。tesseract-ocr はその中でも長く使われているオープンソースのエンジンで、Google が現在も開発に関わっています。利点は無料で使えること、複数言語に対応していること、そしてさまざまなプラットフォームで動作する点です。使い方はとてもシンプルで、画像ファイルを用意し、コマンドラインで tesseract input.png output -l eng のように実行すると、出力ファイル output.txt が作成されます。インストールは環境ごとに手順が少し違います。Linux なら sudo apt install tesseract-ocr と入力し、日本語を使う場合は sudo apt install tesseract-ocr-jpn を追加します。macOS では Homebrew を使って brew install tesseract を入れ、Windows 版は公式サイトから実行ファイルをダウンロードします。注意点としては、文字が薄い画像や手書き、背景がごちゃつく写真では認識精度が下がることです。そこで前処理として画像を白黒化したり、コントラストを上げたり、ノイズを除去したり、文字の回転を補正したりすると結果が良くなることがあります。日本語や他の言語を使う場合は言語データを適切に指定することが重要です。実務では Pytesseract という Python ラッパーを使ってプログラムから tesseract-ocr を呼ぶ方法もあり、画像ファイルの一覧を一括で処理することも可能です。総じて tesseract-ocr は初心者にも試しやすく、無料で強力な文字認識ツールとして、デジタル化の第一歩に役立つ選択肢です。
tesseract.js とは
tesseract.js とは、ウェブ上で動くOCR(光学文字認識)を手軽に使えるJavaScriptのライブラリです。OCRは写真やスキャンした紙の画像の中の文字を機械が認識して、文字データとして取り出す技術のことを指します。tesseract.js は、オープンソースの Tesseract OCR エンジンを JavaScript に移植したものなので、特別なソフトをインストールせずに、ブラウザや Node.js の環境で画像から文字を読み取ることができます。使い方はとてもシンプルで、まず画像を用意してライブラリを読み込み、認識したい言語を指定します。言語データは公式から提供されており、必要なものをダウンロードして使います。認識の品質は画像の鮮明さやノイズ、文字のフォントにも影響され、文字がはっきりしているほど正確に読み取れます。写真のぼかしや暗さ、背景の柄などがあると誤認識が増えることがあるため、前処理として明るさを整えたりコントラストを上げたりすると効果的です。実務では複数の画像を一度に処理するバッチ処理や、結果をデータベースに保存する仕組みを作ることも可能です。tesseract.js はブラウザだけでなく Node.js でも動作するため、Webアプリの中で直接画像から文字を取り出したり、サーバー側で大量の画像を処理したりする用途に向いています。初めて使う人には、公式のデモやチュートリアルを触ってみるのがおすすめです。言語データの選択や文字認識の設定を少し変えるだけで結果が変わるため、いろいろ試してみると理解が深まります。

tesseractの同意語

四次元正方体
4次元の空間における正方体。tesseractの幾何学的意味を表す標準的な表現。
四次元立方体
同義。4次元空間における正方体を指す表現。
ハイパーキュー
高次元の立方体を指す一般的な名称。4次元のケースを特に指すことが多い。
高次元立方体
高次元空間における立方体全般の呼称。4次元の場合はtesseractの幾何学的意味と同義に使われることがある。
4次元キューブ
4次元空間の立方体を意する表現。4Dキューブとも呼ばれる。
hypercube
英語表記の幾何学用語。4次元以上の立方体を指す正式名称。
テッセラクト
tesseractの日本語表記の一つ。文献・教材で四次元正方体を指す場合に見られることがある。
Tesseract OCR
オープンソースの光学文字認識エンジン。紙の文字をデジタル文字に変換するソフトウェアの一つ。
Tesseract
英語の固有名詞。OCRエンジンの名称として最もよく使われる。

tesseractの対義語・反対語

3次元の立方体(キューブ)
tesseractは4次元のハイパーキューブですが、対義語としては3次元の立方体(キューブ)が挙げられます。4次元を1つ減らした3次元の立方体は、現実世界で直感的にイメージしやすい形です。
2次元の正方形
4次元のハイパーキューブを比較する際、平面の2次元上における最も基本的な対比は2次元の正方形です。次元が下がるほど形の抽象度が低くなるイメージをつかむための例です。
低次元の空間
4次元に対して、3次元・2次元・1次元・0次元といった“低い次元”を総称して対義語として挙げられます。次元数の違いを感覚的に捉える際の表現です。
現実世界の3次元空間
私たちが日常的に体感する3次元の空間は、4次元のテesseractと対になる直感的な概念です。実生活の“現実世界”という意味での対比になります
0次元の点
次元が最も低い0次元の点は、4次元のテesseractとは真逆の極端な対比として挙げられる概念です。

tesseractの共起語

OCR
学文字認識の略。画像から文字を認識・抽出する技術。
tessdata
言語データファイルを格納するディレクトリ。言語を識別するためのデータ群。
traineddata
訓練済みデータファイル(.traineddata)。各言語の認識モデルを含む。
eng
英語用の訓練データ。英語認識の標準データ。
jpn
日本語用の訓練データ。日本語認識を可能にする言語パック
LSTM
Long Short-Term Memory。4以降で採用されるニューラルネットを使った認識モデル。
Tesseract 4
Tesseract の第四世代。LSTM ベースの認識エンジンを搭載。
Tesseract 5
Tesseract の最新版系。精度と機能が改善されているバージョン
PSM
Page Segmentation Mode。画像のレイアウトをどう分割して認識するかの設定。
OEM
OCR Engine Mode。認識エンジンの種類を選択する設定。
pytesseract
Python から Tesseract を呼び出すラッパーライブラリ
tessdata_fast
高速化を重視した言語データ。実行速度を優先。
tessdata_best
高精度を重視した言語データ。精度を重視。
PDF
PDF 形式での出力。OCR結果をPDFとして保存できる機能。
HOCR
HOCR 形式での出力。HTML ベースのOCR結果。
Unicode
Unicode 文字セット。多言語表現を統一する標準。
UTF-8
UTF-8 エンコード。多言語を効率的に扱える文字コード
License
オープンソースライセンス。主に Apache License 2.0。
Docker
Docker コンテナで実行するための公式イメージが提供される。
GitHub
公式リポジトリ。ソースコード・リリース情報が公開される。
image preprocessing
前処理。グレースケール化・ノイズ除去・二値化・傾き補正など。
binarization
二値化処理。画像を黒と白だけにして認識を安定させる。
deskew
傾き補正。画像の角度を正しくして認識精度を向上。
training data
新しい言語データやフォントの訓練データ。
OCR accuracy
認識精度。実際の文字認識の正確さを表す指標。
Google
Tesseract の開発に関わってきた企業・組織。
Open-source
オープンソース。誰でも利用・改変・再配布が可能。

tesseractの関連用語

Tesseract
オープンソースのOCRエンジン。画像から文字を認識してテキストに変換します。現在はGoogleが活発に開発を支援しています。
OCR
光学文字認識のこと。画像や写真に写っている文字をデジタルテキストにする技術の総称です。
オープンソース
ソースコードが公開され、誰でも利用・改変・再配布できるソフトウェアの形態です。
ライセンス
ソフトウェアの利用条件を定めた契約。Tesseractは Apache License 2.0 の下で配布されています。
Apache License 2.0
商用利用・改変・再配布が比較的自由なオープンソースライセンスです。
Google
Tesseractの現在の公式メンテナーで、開発をリードしています。
tessdata
言語データや訓練済みデータを格納するフォルダです。
traineddata
各言語の認識モデルを含む訓練済みデータファイル。拡張子は .traineddata。
言語データ
特定の言語を認識するためのデータ。複数の言語データを組み合わせて使用します。
英語データ eng
英語を認識するための学習済みデータ。
日本語データ jpn
日本語を認識するための学習済みデータ。日本語特有の字形に対応します。
言語コード
言語を表す識別コード。例: eng=英語, jpn=日本語, chi_sim=簡体字中国語
LSTM
長短期記憶ネットワーク。Tesseract 4系以降はニューラルネットワークによる認識を採用しています。
ニューラルネットワーク
データから文字の特徴を学習して認識を行う機械学習の一種。
OEM
OCRエンジンモードの略。認識エンジンの動作方法を設定します。
OEM_TESSERACT_ONLY
従来のTesseractエンジンのみで認識します。
OEM_LSTM_ONLY
LSTMベースの認識のみを使用します。
OEM_TESSERACT_LSTM_COMBINED
従来モデルとLSTMを組み合わせて認識します。
PSM
ページ分割モードの略。ページのレイアウトの解釈方法を設定します。
PSM_0
自動推定(ページ全体を自動で区分して認識します)
PSM_6
単一のブロックとして認識します(単一列向け)。
hOCR
認識結果をHTML風の形式で出力し、文字の座標情報を含みます。
TSV
認識結果を表形式で出力し、座標・信頼度なども含みます。
PDF出力
認識結果を検索可能なPDFとして保存します。
BOXES
BOXファイル形式で、各文字の境界ボックス座標を出力します。
tesstrain
新しい言語データを作成するための訓練データ作成ツール群。
トレーニング
新しい言語データを作成・適合させる作業。フォントや文字セットを用意します。
pytesseract
PythonからTesseractを呼び出すためのラッパーライブラリ。
gImageReader
TesseractをGUIで操作できるフロントエンドの一つ。
OCRmyPDF
PDFファイルに対してTesseractでOCRを適用し、検索可能なPDFを作成するツール。
前処理
ノイズ除去・二値化・傾き補正など、認識精度を高めるための画像前処理。
コマンドライン
Tesseractは主にコマンドラインから操作します。
OS対応
Windows・macOS・Linuxなど、主要OSで動作します。

tesseractのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
14197viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2064viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1029viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
717viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
661viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
643viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
562viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
496viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
489viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
471viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
457viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
429viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
410viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
364viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
362viws
select句・とは?初心者でも分かるSQLの基本と使い方共起語・同意語・対義語も併せて解説!
360viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
341viws
ダイレクトチャットとは?初心者向けガイドで使い方と注意点を徹底解説共起語・同意語・対義語も併せて解説!
325viws
解像度スケールとは?初心者でも分かる解像度スケールの基礎と使い方共起語・同意語・対義語も併せて解説!
277viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
274viws

新着記事

インターネット・コンピュータの関連記事