はじめに
画像からテキストを抽出する技術として、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を使って簡単にインストールできます。
手順:
- Homebrewがインストールされていない場合は、次のコマンドでインストールしてください:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- HomebrewでTesseractをインストール:
brew install tesseract
- 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
ライブラリを使用します。
手順:
- Composerがインストールされていない場合は、次のコマンドでインストールします:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
- 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
画像から文字が正確に認識できない場合は、画像の解像度や品質を確認し、必要に応じて画像の前処理を行うと精度が向上します。
コメント