こんにちは、ゆきぽんずです。
今日はpythonを使ってOCR (光学的文字認識) = 画像データをテキスト化をしていきます。
みなさん、そもそもOCR (光学的文字認識)をご存知でしょうか?
紙に書かれた手書きの文字とか画像の中に埋め込まれている文字っぽい情報とかを良い感じに読み取ってコンピュータで扱える文字情報に変換する技術とか機能とか装置とかソフトのこと
引用元 : https://wa3.i-3-i.info/word17164.html
用語の説明は以上です。それでは実装に移っていきましょう。
*Macユーザになったのでwindowsの実装方法は調べていません( ・∇・)
実装環境
使用しているPC : Mac
OCRをpythonで使えるようにする = python用OCRツールラッパー : PyOCR
OCRのライブラリと、OCRツールラッパーについては以下の記事で詳しく説明してくださっています。
参考サイト : https://qiita.com/nabechi6011/items/3a367ca94dbd208efcc7
実装手順
手順1 Tesseract OCRのインストール
pythonでTesseract OCRをインストールしたい場合、Macだと標準でHomebrewが入っているので
brew install tesseract
で終了です。流石はMac様... そしてさらばWindowsよ...
手順2 訓練データの準備
以下のサイトに飛んで、好きな訓練データをクリックしてダウンロードしてください。
tessdata-best : 結果の精度重視
tessdata-fast : 処理の速度重視
tessdata : どちらでもない普通の訓練データ <= おすすめ
https://tesseract-ocr.github.io/tessdoc/Data-Files
ダウンロードしたファイル内にjpn.traineddataというものがあります。それをコピーして先ほどインストールしたtesseract フォルダ内のtessdataに入れます。
/usr/local/Cellar/tesseract/4.1.1/share/tessdata
* Finder => アプリケーション => 検索にtessdataと打てば出てきます。
tesseractのバージョンは人によって変わると思います。
手順3 : PyOCRをインストール
pip install pyocr
以上です。
では実際にコードを書いていきましょう
ソースコード
ソースコードを見る前にテキストを抽出する画像を取得します。
今回は以下の画像のテキストを抽出していきます。
* みなさんの息抜きにこういった画像を選んでみました。
引用元 : https://headlines.yahoo.co.jp/hl?a=20200407-00000387-oric-ent
それではお待ちかねのソースコードです。
* Image.open('この中身は自分が画像ファイルをダウンロードした場所を指す')
ここまでくればあとは実行するだけです。
ほいな
正直あまり精度はよくないですね。でも画像から文字を読み込めるって、よく考えたらすごいことですよね。さらにそれが1時間もあれば実装できてしまう現状が一番すごいことですけどね。
今日の内容は以上です。
今日もブログを読んでくださりありがとうございます。
ではでは!!