OCRツール

PythonでOCRを構築する方法

Kannaopat Udonpant
カンナパット・ウドンパント
2023年11月22日
共有:

世界は膨大な量のテキスト情報に溢れています。 もう少しアクセスしやすくなれば非常に役立つ価値のあるコンテンツがたくさんあります。

ここで光学式文字認識(OCR)技術が登場します。 コンピュータが画像からテキストを人間のように「読む」ことを想像してください。これはまさにコンピュータビジョンです。コンピュータビジョンは、画像内の異なる対象を認識し識別するようにコンピュータを訓練できるコンピュータサイエンスの一分野を表します。

このチュートリアルでは、シンプルさと多様性で知られるプログラミング言語Pythonを使用して、自分のOCRシステムを構築するプロセスをガイドします。 Tesseract、IronOCR、OpenCVのようなライブラリを利用することで、ドキュメント画像からテキストを抽出し、操作し、利用する可能性をすぐに引き出せるようになります。

OCRエンジン(光学式文字認識)の前提条件

私たちのOCRシステムを構築する詳細に入る前に、いくつか必要なものがあります:

  1. Python: コンピュータにPythonがインストールされていることを確認してください。 公式のPythonウェブサイトからダウンロードできます。

  2. Tesseract OCR のインストール: Tesseract OCR は、Google によって開発されたオープンソースの OCR エンジンです。 それは私たちのプロジェクトで使用する強力なツールです。 Tesseractライブラリは、GitHubからダウンロードでき、Tesseract OCRのインストールプロセスについて読むことができます。

  3. Pythonライブラリ: このプロジェクトでは、2つの重要なPythonライブラリ、pytesseractopencvライブラリを使用します。 以下のコマンドをコマンドラインプロンプトまたはターミナルに入力してインストールできます:
    :InstallCmd  pip install pytesseract opencv-python

PythonでOCRを構築する方法: 図1

OCRシステムを構築する手順

Python OCRライブラリとシンプルなPythonスクリプトを使用して、簡単にOCRを構築できます。

ステップ1 ライブラリのインポート

まず初めに、必要なライブラリをインポートする必要があります:

import cv2 
import pytesseract
PYTHON

ステップ 2 画像を読み取り処理する

OpenCVを使用して画像を読み込み、OCRの精度を向上させるために前処理を行います。

# Load the image using OpenCV 
image = cv2.imread('sample_image.png') 
# Convert the image to grayscale 
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 
# Apply thresholding or other preprocessing techniques if needed
PYTHON

ステップ3:OCRにTesseractを使用する

次は、Tesseract OCRエンジンを使用して、処理された画像に対してOCRを実行します。

# Use pytesseract to perform OCR on the grayscale image 
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe'
text = pytesseract.image_to_string(gray_image) 
PYTHON

ステップ 4: 結果を表示

元の画像と抽出されたテキストを視覚化したい場合は、OpenCVを使用して表示できます。

# Display the original image 
cv2.imshow('Original Image', image) 
cv2.waitKey(0) 
# Display the extracted text
    print("Extracted Text:", text) 
cv2.waitKey(0) 
cv2.destroyAllWindows()
PYTHON

オリジナル画像

PythonでOCRを構築する方法:図2

抽出されたテキスト

PythonでOCRを構築する方法: 図3

ご覧の通り、結果は非常に悪いです。これは、(機械学習をトレーニングするように)使用する前にトレーニングして、表を含むテキスト画像を抽出するためにOCRを実行する必要があるためです。

IronOCR

データにあふれる世界において、印刷されたテキストを機械が読み取れるコンテンツに容易に変換する能力は画期的な機能です。

最先端技術のIronOCRを導入しましょう。これにより、開発者は強力な文字認識(OCR)機能をアプリケーションに簡単に統合することができます。

スキャンされたドキュメントからデータを抽出したり、データ入力を自動化したり、アクセシビリティを向上させたりする場合でも、IronOCR は従来のテキスト認識の限界を超えた包括的なソリューションを提供します。

この探求では、IronOCR の多彩な機能を明らかにし、物理的世界とデジタル世界の間のギャップを埋める可能性を強調します。

IronOCRのインストール

以下のコマンドを実行するだけで、NuGetパッケージマネージャーコンソールを使用してIronOCRを簡単にインストールできます。

Install-Package IronOcr

IronOCRは、公式NuGetウェブサイトからもダウンロードできます。

IronOCRを使用して画像からテキストを抽出する

このセクションでは、IronOCRを使用して画像からテキストを簡単に抽出する方法をご紹介します。 以下は、画像からテキストを抽出するソースコードです。

using IronOcr;
using System;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
    input.AddImage("r3.png");
    OcrResult result = ocr.Read(input);
    string text = result.Text;
    Console.WriteLine(result.Text);
}
using IronOcr;
using System;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
    input.AddImage("r3.png");
    OcrResult result = ocr.Read(input);
    string text = result.Text;
    Console.WriteLine(result.Text);
}
Imports IronOcr
Imports System
Private ocr = New IronTesseract()
Using input = New OcrInput()
	input.AddImage("r3.png")
	Dim result As OcrResult = ocr.Read(input)
	Dim text As String = result.Text
	Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

出力

PythonでOCRを構築する方法: 図4

結論

このチュートリアルでは、Pythonで光学文字認識 (OCR) システムを構築するプロセスを探求し、画像からテキストを驚くほど簡単に抽出できる能力を明らかにしました。

TesseractやOpenCVのようなライブラリを活用することにより、画像の読み込みと前処理からTesseract OCRエンジンを使用したテキスト抽出までの重要な手順を進めてきました。

精度の限界などの潜在的な課題にも触れましたが、これらの課題はIronOCRのような高度なソリューションで解決することを目指しています。

DIYアプローチを選ぶか、洗練されたツールを採用するかにかかわらず、OCRの世界は画像を実用的なテキストに変換し、データ入力を効率化し、アクセシビリティを強化する可能性を秘めています。 この新たな知識を持って、あなたは視覚とデジタルの領域をシームレスに融合させる旅に出る準備が整いました。

IronOCRを始めるには、次のリンクを訪問してください。 画像からテキストを抽出する方法についてのチュートリアル全体を見るには、こちらを訪問してください。

今日、IronOCRを無料で試したい場合は、試用版に登録して、商業環境で透かしなしでそのすべての用途と可能性を探索してください。 15日を過ぎても引き続き使用するには、ライセンスを購入してください。

Kannaopat Udonpant
カンナパット・ウドンパント
ソフトウェアエンジニア
ソフトウェアエンジニアになる前に、カンナパットは日本の北海道大学から環境資源学の博士号を取得しました。学位を取得する過程で、カンナパットはバイオプロダクション工学部に所属する車両ロボティクス研究所のメンバーにもなりました。2022年には、C#のスキルを活かしてIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。カンナパットは、IronPDFで使用されているコードの大部分を作成した開発者から直接学べることに価値を見いだしています。同僚との学び合いに加えて、Iron Softwareで働くことの社会的側面も楽しんでいます。コードやドキュメントを書いていない時には、カンナパットは通常、PS5でゲームをしたり、『The Last of Us』を再視聴したりしています。
< 以前
アラビア語テキスト認識ツール:精度の向上
次へ >
C#で編集可能なテキストにスキャンする方法