500枚のPDF請求書を手作業でExcelに転記してる人、まだいる?
正直、「PDFの書類をテキストデータにまとめてほしい」系の依頼は副業案件でもかなり来る。でも1枚ずつコピペするのは時間の無駄だし、スキャンされたPDFはそもそもテキスト選択すらできない。この問題、OSSのOCRライブラリ「PaddleOCR」でほぼ解決できる。
この記事では、PaddleOCRを使って画像・PDFからテキストを自動抽出し、JSON・CSV形式の構造化データに変換する方法を一から解説する。コードはそのままコピペで動くレベルまで落とし込んだ。インストール手順・日本語OCRの設定・PDF対応・Flask APIとしての公開まで一通りカバーするので、手を動かしながら読んでほしい。
副業でスクレイピング・データ処理系の案件を取りたいエンジニアにも刺さる内容になってる。
PaddleOCRって何者?まず30秒で理解する
PaddleOCRはBaidu(百度)が開発した深層学習ベースのOCRライブラリ。GitHubのスター数は45,000超えで、テキスト検出・文字認識・レイアウト解析をひとつのライブラリでまかなえる。Python製でpip install一発で入るし、日本語・中国語・英語を含む80言語以上に対応している。ライセンスはApache 2.0なので商用でも無料で使える。
「Tesseractじゃダメなの?」という人も多いと思うので、ざっくり比較してみる。
他のOCRと比べてどこが違う?
| ツール | 精度(日本語) | 速度 | コスト | 特徴 |
|---|---|---|---|---|
| PaddleOCR | ★★★★☆ | 速い | 無料 | ローカル完結・商用OK |
| Tesseract | ★★★☆☆ | 普通 | 無料 | 老舗だが精度は劣る |
| Google Cloud Vision | ★★★★★ | 速い | 従量課金 | 高精度だが有料 |
| Amazon Textract | ★★★★★ | 速い | 従量課金 | 表構造解析も得意 |
Google Cloud VisionやAmazon Textractと比べると精度でやや劣るが、APIコストゼロ・ローカル完結という点が個人開発では圧倒的に強い。毎月1,000枚以上処理するならクラウドOCRのコストは馬鹿にならないので、PaddleOCR一択になる場面は結構多い。
サポートしている言語と精度感
PaddleOCRで実用的な精度が出やすいのは以下の言語。
- 日本語(japan): 手書きには弱いが、印刷フォントなら十分な精度
- 英語(en): 最も安定。英語ドキュメントなら迷わずこれ
- 中国語(ch): 開発元がBaiduなので当然強い
- 韓国語・アラビア語など多言語: 一応動くが精度はまちまち
日本語の書類を扱うケースなら、印刷された帳票・請求書・仕様書は十分実用的な精度が出る。手書き文字は正直厳しい。
インストールと環境構築(5分でOK)
Python環境のセットアップ
Python 3.8〜3.11で動作確認済み。仮想環境を作ってから進める。


コメント