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

PythonでOCRを構築する方法

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

これがOptical Character Recognition(OCR)技術の出番です。 コンピュータが画像から人間のようにテキストを"読み取る"ことができると想像してください。これはコンピュータビジョンであり、コンピュータが画像中の異なる対象を認識・識別できるようにするコンピュータサイエンスの一分野です。

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

OCRエンジン(Optical Character Recognition)の前提条件

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が登場します。開発者が強力なOptical Character Recognition (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でOptical Character Recognition (OCR) システムを構築するプロセスを探求し、画像からテキストを驚くほど簡単に抽出する能力を明らかにしました。

TesseractやOpenCVのようなライブラリを活用して、画像の読み込みと前処理からテキスト抽出のためのTesseract OCRエンジンの使用まで、重要なステップを案内しました。

精度の制限といった潜在的な課題に取り組むための高度な解決策として、IronOCRが目指すところも触れました。

DIYルートを選ぶにせよ、洗練されたツールを採用するにせよ、OCRの世界は、画像を実行可能なテキストに変換し、データ入力を効率化し、アクセシビリティを向上させるという約束を持って誘います。 この新たに得た知識により、視覚およびデジタルの領域をシームレスに融合させる旅を開始する準備が整いました。

To get started with IronOCR visit the following link. 画像からテキストを抽出する方法に関する全チュートリアルを確認するにはこちらを訪問してください。

今日IronOCRを無料で試してみたい方は、商業環境での全ての使用と可能性をウォーターマークなしで探るために、IronOCRが提供するトライアルにぜひ選んでください。 15日が過ぎたらすぐに使用を続けたい方は、ライセンスを購入するだけです。

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