Tesseract-OCR を使った ocr フィルタで文字認証を行う。本家と同様に英語や日本語などたくさんの言語に対応している。ただし日本語の漢字の精度はかなりよくない。まだβであるが 4.0 でひらがなとカタカナの識字率はかなり上がった。ただし漢字は似た漢字になる場合も多い。識字率は OCR する前に対象文字周辺を crop フィルタで切り取ると上がるので以下の Wiki を参照する。

具体的に識字率を上げる方法についてまとめると
ImproveQuality · tesseract-ocr/tesseract Wiki

  • 少なくとも300dpi以上
  • 2色グレースケール化
  • ノイズ削除
  • 傾いている文字を補正
  • スキャンしたとき外枠やページとページの間の黒くなっている部分をカット

3系統の日本語、中国語の効果的な設定。最新版の4系統は不明
ControlParams · tesseract-ocr/tesseract Wiki

Tesseract-OCR 3.04 を試してみる – ながいものには、まかれたくない
Tesseract.Net parameters

x:y は出力解像度。横:縦
w:h は出力解像度の左上隅の座標。横:縦
Windows の ffmpeg で生放送する方法 : crop
crop=x:y:w:h,ocr

インストール

tesseract をインストールする前に leptonica を先にインストールする。
The official github repository for Leptonica is: danbloomberg/leptonica. See leptonica.org for more documentation and recent releases.
tesseract-ocr/tesseract: Tesseract Open Source OCR Engine (main repository)

Tesseract OCR 3.05 のインストールと新機能 – ながいものには、まかれたくない

基本コマンド

ocr フィルタを使うには上の ffmpeg の他に 学習データを ffmpeg と同じフォルダ内に tessdata フォルダを作って eng.traineddata などをコピーしてから使う。

ffprobe の使い方

img.png に書いてある英語を OCR し、コンソールに表示する
ffprobe -show_entries frame_tags=lavfi.ocr.text -f lavfi -i "movie=img.png,ocr"
日本語のひらがなとカタカナを OCR し、コンソールに表示する
ffprobe -show_entries frame_tags=lavfi.ocr.text -f lavfi -i "movie=img.png,ocr=language=jpn:whitelist=あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをんアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワオンゃゅょャュォがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽガギグゲゴザジズゼゾダチヅデドバビブベボパピプペポー~"
動画ファイルを再生しながら OCR し、コンソールに表示する
ffplay -i input -vf ocr,metadata=print:key=lavfi.ocr.text
dshow 入力した映像(SCFF DirectShow Filter)に OCR し、コンソールに表示する。1フレームではないのでフレーム毎に OCR し認識すれば結果がコンソールに表示される。ウェブカメラも取り込めるのでレシートなどの数字やカタカナ程度なら読み込めるかも。
ffplay -rtbufsize 10MB -f dshow -video_size 640x360 -framerate 30 -i video="SCFF DirectShow Filter" -vf ocr,metadata=print:key=lavfi.ocr.text
テキストで出力するには -report オプションを利用するか、リダイレクトさせて grep などで整形する。
ffplay -rtbufsize 10MB -f dshow -video_size 640x360 -framerate 30 -i video="SCFF DirectShow Filter" -vf ocr,metadata=print:key=lavfi.ocr.text -report
公式ドキュメント:FFmpeg Filters Documentation : ocr

オプション

  • datapath[string]
    学習データのフォルダの指定
    既定値:インストールしたときに TESSDATA_PREFIX で指定したところ
    学習データの配布先:eng, jpn
  • language[string]
    認識言語
    既定値:eng
    他の言語の指定文字一覧。日本語は jpn
  • whitelist[string]
    認識する文字の種類
    既定値:”0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.:;,-+_!?”‘[]{}()<>|/\=*&%$#@!~”
  • blacklist[string]
    認識させない文字の種類
    既定値:””

関連記事
tesseract カテゴリーの記事一覧 – ながいものには、まかれたくない
Tesseract-OCRの学習 – はだしの元さん : web.archive.org
Tesseract-OCRの学習(識字率をあげる) – wiki – PCスキルの小技・忘却防止メモ : web.archive.org

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)