はじめに
「(自分だけに)ちょうどいいレシート家計簿」アプリを作成しようとしています。
そのコア機能となるのがOCR。
名前だけは何度か聞いたことのあるOCRについて、調べたことを自分なりにまとめました。
同じように個人開発でOCRを初めて触ろうとしている方の参考になれば幸いです。
情報の誤りがある場合はぜひご指摘をお願いいたします!
OCRとは
初めて聞くという方もいらっしゃるかもしれません。
OCRとはOptical Character Recognition(Reader)の略で、日本語では光学式(光学的)文字認識と訳されます。ざっくり言うと撮影した画像から文字を識別する技術です。
OCRとAI OCR
現在はOCRとAI OCRの2種類が存在します。
そちらについては下記Panasonicのサイトが分かりやすかったので、興味のある方はご参照ください。
(OCRとは?~「OCR技術」と「AI-OCR技術」の違い~
:https://www.panasonic.com/jp/business/its/ocr/column/column-ai-ocr.html)
ざっくりとOCR/AI OCRの特徴をまとめると以下になります。
従来のOCR | AI OCR | |
---|---|---|
料金 | 安い(無料ライブラリもある) | やや高い |
処理速度 | 速い | やや遅い |
文字認識精度 | きれいな印字のみ | 汚れ・手書きも対応 |
レイアウト対応 | シンプルなもの | 複雑なレイアウトも対応 |
文脈理解 | なし | あり(推測可能) |
データ整理 | 文字認識のみ | 認識+整理まで一度に可能 |
インターネット | 不要(ローカル処理可) | 必要 |
導入の簡単さ | ライブラリ組み込み | メインはAPI呼び出し |
レシート向き度 | △(印字がきれいなもののみ) | ◎(実用的) |
また、AI OCR専門サービスとしては以下のようなものがあります。
- Google Cloud Vision API
- Amazon Textract
- Microsoft Azure Computer Vision
- Adobe Document Cloud API
実際にどれを使うか
「多少料金が発生しても、AI OCRがモダンだし今の主流っぽくて良さそう」と思っていたんですが
調べていくうちにOCRもまだ普通に使われてる…というか、まだシェア的には従来のOCRの方が多数だということを知りました。
AI OCRも注目は高まっていますが、費用の発生や実際の識字率が不明瞭な点などがネックになっているようです。
技術選定の思考プロセス
- 要件整理:お財布に保管されたレシートからデータが読めればOK
- 予算検討:個人開発なので極力低予算に抑えたい
- 開発期間:MVP(最小機能プロダクト)を2025年10月までに
- 学習コスト:1日2時間程度でまずは動くものを
→ 従来のOCRで作成しつつ、AI OCRを使う場合はどうなるか?を考えながら進めるのが良さそうです。
従来のOCR代表例
オープンソース・無料
- Tesseract:最も有名な無料OCRライブラリ
- EasyOCR:比較的新しく、使いやすいライブラリ
- PaddleOCR:中国のBaidu製、多言語対応
商用・有料
- ABBYY FineReader:老舗の高精度OCRソフト
- Adobe Acrobat:PDF内蔵のOCR機能
モバイル・軽量(ともに無料)
- Google ML Kit:モバイルアプリ向け、オンデバイス処理
- Apple Vision Framework:iOS向け、同じくオンデバイス処理
今回はモバイルでの利用を想定しているので、Google ML KitかApple Vision Framework
を第一候補にしてその他の技術選定を進めていこうと思います。
今後の予定
- まずは従来OCR + 汎用AIサービスの画像認識機能でプロトタイプ作成
- 精度に課題があればAI OCRへの移行を検討
- 実際の開発結果は続編記事で報告予定
まずはMVPの完成目指して頑張ります!