PHP | Tesseract OCRを利用して画像からテキストを抽出する方法

はじめに

画像からテキストを抽出する技術として、Tesseract OCRは非常に強力です。今回は、Mac環境にTesseract(テッセラクト)をインストールし、PHPを使ってOCRを実行する手順を紹介します。

環境

  • OS: macOS Sonoma バージョン14.6.1 (23G93)
  • PHP: PHP 8.3.10 (CLI)
  • Tesseract: Tesseract 5.4.1

Tesseract(テッセラクト)インストールからOCRテスト結果

1. Tesseract OCRのインストール

まず、TesseractをmacOSにインストールする手順を説明します。macOSではHomebrewを使って簡単にインストールできます。

手順:

  1. Homebrewがインストールされていない場合は、次のコマンドでインストールしてください:
   /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. HomebrewでTesseractをインストール:
   brew install tesseract
  1. Tesseractが正しくインストールされたか確認するには、次のコマンドを実行します:
   tesseract --version

出力結果は次のようになります:

   tesseract 5.4.1
   leptonica-1.84.1
    libgif 5.2.1 : libjpeg 8d (libjpeg-turbo 3.0.0) : libpng 1.6.43 : libtiff 4.6.0 : zlib 1.2.12 : libwebp 1.4.0 : libopenjp2 2.5.2
    ...

2. PHP用Tesseractラッパーのインストール

PHPでTesseractを利用するためには、ラッパーライブラリが必要です。今回はthiagoalessio/tesseract_ocrライブラリを使用します。

手順:

  1. Composerがインストールされていない場合は、次のコマンドでインストールします:
   curl -sS https://getcomposer.org/installer | php
   sudo mv composer.phar /usr/local/bin/composer
  1. ComposerでTesseract OCR用ライブラリをインストール:
   composer require thiagoalessio/tesseract_ocr

出力結果:

   ./composer.json has been created
   Running composer update thiagoalessio/tesseract_ocr
   Updating dependencies
   ...
   Installing thiagoalessio/tesseract_ocr (2.13.0): Extracting archive

3. PHPコードによるOCR実行

インストールが完了したら、実際にPHPコードでOCRを実行してみます。

サンプルコード:

<?php
require_once 'vendor/autoload.php';

use thiagoalessio\TesseractOCR\TesseractOCR;

$imagePath = 'path_to_your_image.png';  // OCR対象の画像パス

// OCR処理
$text = (new TesseractOCR($imagePath))
            ->lang('jpn')  // 日本語の言語パックを指定
            ->run();

// 結果の表示
echo "OCR結果:\n";
echo $text;
?>
  • lang('jpn')は、日本語のOCRを実行する際に必要です。英語の場合は省略できます。

実行方法:

ターミナルから次のようにスクリプトを実行します:

php ocr_test.php

4. 言語パックのインストール

デフォルトではTesseractには英語のみが含まれています。日本語のOCRを行うには、日本語の言語データをインストールする必要があります。

brew install tesseract-lang

その後、->lang('jpn')で日本語を指定してOCRを実行します。

5. OCRのテスト結果

実際にサンプル画像を使ってTesseractを実行した結果は以下の通りです。対象の画像は以下のような内容でした。

OCR結果

WEBアプリ開発では、ファイルのアップロード機能がよく使用されます。ファイルをアップロード
する際に、サーバー側でファイルの種類を適切に判別することは、セキュリティや機能の面で非常

に重要です。本記事では、PHPでMIMEタイプを使用して、ファイルの形式を判別する方法につい
て解説します。

このように、画像の端に配置されたテキストも正確に抽出されました。Tesseractは高精度のOCRを実現でき、特に高解像度の画像を使用するとその精度はさらに向上します。

6. まとめ

今回の手順で、MacにTesseractをインストールし、PHPを使用して画像からテキストを抽出する方法を紹介しました。PHPのスクリプトとTesseractを組み合わせることで、OCR機能を簡単に実装できるようになります。

使用バージョン:

  • PHP: 8.3.10
  • Tesseract: 5.4.1
  • ラッパーライブラリ: thiagoalessio/tesseract_ocr 2.13.0

画像から文字が正確に認識できない場合は、画像の解像度や品質を確認し、必要に応じて画像の前処理を行うと精度が向上します。

コメント

タイトルとURLをコピーしました