PHP 本身不具備光學字元辨識 (OCR) 能力,需呼叫外部程式或雲端 API。常見方案包括:安裝 Tesseract OCR 命令列工具並用 exec() 呼叫、使用 PHP 包裝套件(如 thiagoalessio/tesseract_ocr)、或整合雲端 OCR 服務(Google Cloud Vision、百度 AI、阿里雲 OCR 等)。
apt-get install tesseract-ocr tesseract-ocr-chi-sim (Ubuntu,含簡體中文語言包)$imagePath = '/path/to/image.png';
$output = shell_exec("tesseract {$imagePath} stdout -l chi_sim+eng");
echo $output; // 辨識出的文字
或使用 Composer 套件:
composer require thiagoalessio/tesseract_ocr
// 程式碼
use thiagoalessio\TesseractOCR\TesseractOCR;
$text = (new TesseractOCR($imagePath))
->lang('chi_sim+eng')
->run();
範例(百度):
$client = new AipOcr(APP_ID, API_KEY, SECRET_KEY);
$result = $client->basicGeneral(file_get_contents($imagePath));
print_r($result);
| 維度 | 本地 Tesseract | 雲端 API |
|---|---|---|
| 準確度(中文) | 中等,需訓練模型提升 | 高,持續優化 |
| 速度 | 本地 CPU 運算,較慢 | 毫秒級,非同步可並發 |
| 成本 | 免費(硬體成本) | 按量付費,有免費額度 |
| 隱私 | 資料不出伺服器 | 需上傳圖片至第三方 |
| 維運 | 自行管理環境、語言包 | 零維運 |
Imagick 或 GD 擴充套件做簡單預處理。根據專案預算、隱私要求、即時性選擇適合的 OCR 方案,並搭配影像前置處理,能大幅提升辨識準確度。