フッターコンテンツにスキップ
OCRツール

PythonでOCRを構築する方法

世界は広大な量のテキスト情報で溢れています。 少しだけアクセスしやすければ、非常に有用になる可能性のある貴重なコンテンツが豊富にあります。

ここで光学式文字認識(OCR)技術が役立ちます。 コンピュータが画像からテキストを"読む"ことができる様子を想像してください。これは人間が行うのと同じように、これはコンピュータビジョンであり、コンピュータが画像内の異なる対象を認識し識別するように訓練できるコンピュータサイエンスの一部です。

このチュートリアルでは、簡素で多用途で知られるプログラミング言語Pythonを使用して独自のOCRシステムを構築するプロセスをご案内します。 Tesseract、IronOCR、およびOpenCVのようなライブラリの助けを借りて、ドキュメント画像からテキストを抽出、操作、作業する可能性をすぐに解き放つことができます。

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

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

  1. Python: コンピュータにPythonがインストールされていることを確認してください。 公式Pythonウェブサイトからダウンロードできます。
  2. Tesseract OCRのインストール: Tesseract OCRはGoogleが開発したオープンソースのOCRエンジンです。 これはプロジェクトで使用する強力なツールです。 GitHubからTesseractライブラリをダウンロードし、Tesseract OCRインストールプロセスを読むことができます。
  3. Pythonライブラリ: このプロジェクトでは2つの重要なPythonライブラリを使用します:pytesseractopencv-pythonライブラリです。 次のコマンドをコマンドラインプロンプトまたはターミナルで実行してインストールできます。

    pip install pytesseract opencv-python
    pip install pytesseract opencv-python
    SHELL

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

OCRシステムを構築するステップ

Python OCRライブラリと簡単なPythonスクリプトを使って、Pythonコードで簡単にOCRを構築できます。

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

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

import cv2  # OpenCV library for computer vision
import pytesseract  # Tesseract library for OCR
import cv2  # OpenCV library for computer vision
import pytesseract  # Tesseract library for OCR
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
# This step helps in enhancing the quality for better OCR results
# 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
# This step helps in enhancing the quality for better OCR results
PYTHON

ステップ3: Tesseractを使ってOCRを実行

次に、処理済み画像にTesseract OCRエンジンを使ってOCRを実行します。

# Set the path to the Tesseract executable
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe'

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

# Use pytesseract to perform OCR on the grayscale image
text = pytesseract.image_to_string(gray_image)
PYTHON

ステップ4: 結果を表示

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

# Display the original image using OpenCV
cv2.imshow('Original Image', image) 
cv2.waitKey(0) 

# Print the extracted text to the console
print("Extracted Text:", text) 

cv2.destroyAllWindows()  # Close the OpenCV window
# Display the original image using OpenCV
cv2.imshow('Original Image', image) 
cv2.waitKey(0) 

# Print the extracted text to the console
print("Extracted Text:", text) 

cv2.destroyAllWindows()  # Close the OpenCV window
PYTHON

元の画像

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

抽出されたテキスト

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

ご覧の通り、結果は画像の品質と複雑さによって異なる場合があり、場合によっては複雑な構造を持つ画像やテーブルを含む場合は追加のトレーニング(機械学習トレーニングに類似)が必要かもしれません。

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を無料で試したい場合は、商業環境での使用と潜在能力をウォーターマークなしで探求するためにIronOCRが提供するトライアルに必ず登録してください。 15日後に使用を継続するには、ライセンスを購入するだけです。

Kannaopat Udonpant
ソフトウェアエンジニア
ソフトウェアエンジニアになる前に、Kannapatは北海道大学で環境資源の博士号を修了しました。博士号を追求する間に、彼はバイオプロダクションエンジニアリング学科の一部である車両ロボティクスラボラトリーのメンバーになりました。2022年には、C#のスキルを活用してIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。Kannapatは、IronPDFの多くのコードを執筆している開発者から直接学んでいるため、この仕事を大切にしています。同僚から学びながら、Iron Softwareでの働く社会的側面も楽しんでいます。コードやドキュメントを書いていない時は、KannapatはPS5でゲームをしたり、『The Last of Us』を再視聴したりしていることが多いです。