プログラミング

【C#】無料のOCRエンジンで文字認識をしよう!Tesseract OCRエンジン(Ver4.0用)

皆さんこんにちはこんばんは、まずここブログを運営してます「よーす」です。

 

前回の記事でGoogle Cloud Vision APIを使ったOCR(光学的文字認識)紹介しましたが、今日は無料で使えるものOCRエンジン「Tesseract」を紹介していきます!

 

開発環境

  • Windows 10
  • 64ビット
  • C#/Visual Studio 2019

 

ちなみに前回の記事はこちら

【C#】Google Cloud Vision APIで文字認識(OCR)をできるように設定

Tesseract OCRをC#プロジェクトに入れよう

今回Visual Studio 2019を使うので、NuGetを使ってちゃちゃっとTesseract入れてしまいましょう!

 

手順

プロジェクトのプロパティ → NuGetパッケージの管理

 

NuGetの画面を開いたら以下の画像のように検索してください。

ここまで開けたら、Tesseractをクリックして、インストールをクリックします。

 

これで準備はオッケー!

 

Traineddataを準備しよう

このTrainedataというのは、OCRエンジンを使う上で必須になるのであらかじめ用意する必要があります。OCR処理をするときにこのTraineddataを参照して認識結果を出しているので、これがないとTesseract OCRが動きません。

 

ということで、以下のURLからTrainedataをダウンロードしましょう。

 

私は、日本語認識用で使うので「jpn.traineddata」をダウンロードしました。

 

任意の場所にファイルを置こう

Traineddataがダウンロードできたら、任意の場所に置きましょう。私は、EXEの直下に「tessdata」というフォルダを作ってその中に置きました。

 

Tesseract OCRを使ってOCR認識をしよう

これから実際のC#コードを紹介していきますが、Ver4.0は以前のバージョンとコードの書き方が少し変わっていて以下のコードでは昔のバージョンは動きませんので注意してください

 

// Traineddataのパスを指定します。
string datapath = "";

// 日本語指定するための文字列も作成
string lang = "jpn";

// 画像パスを指定
string imgpath = "";

Tesseract.TesseractEngine tesseOCR = new Tesseract.TesseractEngine(datapath, lang);
Tesseract.Pix image = Tesseract.Pix.LoadFromFile(path);// Ver3ではなかった
Tesseract.Page page = tesseOCR.Process(image);//ver3ではBitmapを引数に渡せた

// OCR結果を取得
string result = page.GetText();

以上です。

コメントにVer3との簡単な違いも記載してあるので、読んでみてください。

 

まとめ

とりあえずこれでOCR処理が実行できると思います。

認識率は、活字であれば結構使えるんじゃないかな~と思っています。

 

これから、Google Cloud Vison APIと一緒に認識結果を検証していくので楽しみにしていてください。

 

最後まで読んでいただきありがとうございます。

よかったらコメントを頂けると励みになります!

  • この記事を書いた人
  • 最新記事

よーす

アメリカテキサスに留学&卒業後アメリカ現地(アリゾナ州)就職し、その後、9カ月かけて世界25カ国を旅してました。そんな経験を活かし、現在はC#を中心にソフトフェアの開発をしています。

-プログラミング

Translate »

Copyright © まずここまずここ , All Rights Reserved.