質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Tesseract

Tesseractは、Googleが提供しているオープンソースのOCRエンジンです。機械学習があり60以上の言語に対応でき、日本語の文字認識も可能です。さらに精度を上げることもできます。

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

2121閲覧

Tesseractのメソッドの使い方がわからない

cunwe

総合スコア65

Tesseract

Tesseractは、Googleが提供しているオープンソースのOCRエンジンです。機械学習があり60以上の言語に対応でき、日本語の文字認識も可能です。さらに精度を上げることもできます。

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/09/06 09:52

Tesseractは光学文字認識エンジンで、これに限らずオープンソースのソフトウェア使うとき全般に言えることなのですがそこで提供されているメソッド(?)やその使い方はGithubのどこに書かれていたりするのでしょうか?
例えばこちらはTesseractのリポジトリで、YouTubeのTesseractを使ったPythonによる光学文字認識入門動画で以下のようなコードを書いたのですが、そこでの文字認識の結果があまり良くなかったためこちらの記事にあるような「エンジンの切り替え」を行ってみたいのですがGoogle Colab上でどう行えるのかがわかりません。ローカルで行ってる記事が多く、Google Colab上では行えないのでしょうか?知見をお持ちの方、ぜひよろしくお願いいたします。

from PIL import Image import pyocr import cv2 img1 = Image.open('drive/My Drive/Colab Notebooks/sample.jpg') tools = pyocr.get_available_tools() tool = tools[0] # tesseract_layoutには0から13までの14種類のアルゴリズムを指定できるらしい txt1 = tool.image_to_string(img1, lang='eng+jpn', builder=pyocr.builders.TextBuilder(tesseract_layout=11)) print(txt1)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mskaaa

2021/09/06 10:30

そもそもColab上でtesseractを実行出来ていますか?
cunwe

2021/09/06 10:52

ご質問ありがとうございます。はい、!apt install tesseract-ocr libtesseract-dev tesseract-ocr-jpnと !pip install pyocrを実行しまして、Successfully installedとなっております。
guest

回答2

0

  1. https://pypi.org/ を開く
  2. 使っているライブラリで検索する
  3. ライブラリの詳細を開く
  4. 書いてあることを読む(pyocrの場合は空ですが)
  5. 左のHomepageと書いてあるリンクやSource Codeと書いてあるリンクなどを辿ってソースの在処を確認する (pyocrの場合はGitLabで公開されている)(左に Documentation というリンクがあったり、公式ドキュメントがあるようならそれを読む)
  6. 検索で該当しそうなワードを入れて検索する。この場合はoem
  7. Issuesに1件あることが確認できるので開く
  8. 該当のIssueは放っておかれているものの、"Workaround for me is:"という方法が載っているので試す
  9. もっと調べたければ、builder.tesseract_flags += というコードが見えるので検索でtesseract_flagsと入れて検索する
  10. 使っていそうな所を探していく。ここからここに渡っていると分かる(masterのソースにリンクするといつか行番号が変わってしまうのでtagを指定してリンクしてます)

みたいな感じで探していきますよ。

投稿2021/09/08 00:49

編集2021/09/08 00:52
quickquip

総合スコア11029

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cunwe

2021/09/08 12:01

とても詳しく解説していただきありがとうございます。ある種のそういった"お作法"的なものが知れて嬉しい限りです。 ご回答に記載の"Workaround for me is:"を見させていただきましたが、そこではWordTextBuilderを使っており、私はTextBoxBuilderを使っていて試しに txt1 = tool.image_to_string(img1, lang='eng+jpn', builder=pyocr.builders.TextBuilder(tesseract_layout=11).tesseract_flags += ['--oem', '1']) に書き換えて実行してみましたが、ダメでした。また、builder.tesseract_flags += ['--oem', '1']は[{オプション}, {数字}]という構造になっており、このような構造になってる箇所をtesseract.pyやbuilders.pyで探してみたのですが見当たりませんでした。お手数ですが、こういった場合のアプローチ方法をご教授いただけますでしょうか...?
quickquip

2021/09/08 12:26

Tesseractの知識がゼロなので「TextBuilderを使っている」のがどういう意味を持っているのか、まったく分かりません。 TextBuilderはBaseBuilderを"特殊化"したものであって、より限られたコマンドライン引数しか渡せないようになっています。つまりより"用途が限られたもの"です。 それが"pyocrの設計上のミス"なのか、"Tesseractに起因する制限"なのかの区別が私にはできません。
cunwe

2021/09/09 04:31

確かに継承していますね。ちなみにTextBuilderは読み込んだ画像から文字を抽出するメソッドです。色々調べたのですがコマンドラインのオプション引数としてOCRエンジン(OEM)を切り替えてる例は多いのですが、Google Colab上で行なってる例がないので"Tesseractに起因する制限"なのかもしれません。。
guest

0

【Colab】pyocrで画像からテキストを抽出しようでは、

こういったときは「tesseract_layout=」の値を変更してみます。

というのが書かれているので、これを試してみてはいかがですか?

投稿2021/09/06 10:27

ppaul

総合スコア24666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cunwe

2021/09/06 10:58

ご回答ありがとうございます。はい、こちらの記事によるとそれは0から13までの値があるようでそれは試してみました。今度はエンジン自体を変えてみたいのですが、そのようなことは可能でしょうか? https://valmore.work/how-to-use-tesseract4-with-python/
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問