スマホで撮った名刺を自動で連絡先に登録したり、書類をスキャンして検索可能なPDFにしたり、駐車場で車のナンバーを自動で認識したり。こうした機能の裏側で動いているのが「OCR」と呼ばれる技術です。
この記事では、OCRとは何か・なぜ必要なのかという基礎から、古典的OCRとAI-OCRの仕組みの違い、ナンバープレート認識を例にした実用システムでの位置づけ、主要サービスの選び方まで、IT初学者の方にも分かるよう丁寧に解説します。
画像の文字をコンピュータは「読めない」
人間にとっては当たり前すぎて意識しませんが、コンピュータは画像の中の文字をそのままでは読めません。人間が「あ」という文字を見て瞬時に認識できるのに対し、コンピュータにとっての画像とは、ピクセルごとの色や明るさの数値が並んだ表でしかないからです。
人間の目には一目で「あ」と見える文字も、コンピュータの内部では [255, 255, 200, 120, ...] のような数値の羅列としてしか存在していません。

この「ただの数値の集まり」を「意味のある文字」に変換する技術、それがOCRです。
OCRとは何か
OCR(Optical Character Recognition:光学的文字認識)とは、画像の中の文字をコンピュータが扱えるテキストデータに変換する技術のことです。「光学的」という言葉は、カメラやスキャナで取り込んだ画像を対象にしていることを意味します。

OCRを通すことで、画像にある文字を普通の文字列として扱えるようになります。つまり、検索したり、データベースに保存したり、他のシステムに渡したりと、コンピュータが得意な処理が一気にできるようになるのです。
身近な例を挙げると、コンビニのコピー機で書類をスキャンして「検索可能なPDF」として保存する機能、銀行アプリで小切手を撮影すると自動で金額が入力される機能、翻訳アプリでカメラを看板に向けると訳が表示される機能、これらはすべてOCRが裏側で動いています。
OCRは実は2段階で動いている
OCRと一言で言っても、内部では2つのステップに分かれて動いています。この2段階を理解すると、OCRの挙動がぐっと分かりやすくなります。
- 文字検出(Detection):画像の中で「どこに」文字があるかを探す工程。文字が写っている領域を四角形で囲みます。
- 文字認識(Recognition):切り出した領域に「何が」書かれているかを読み取る工程。囲まれた部分の画像を、具体的な文字列に変換します。

多くのOCR APIは、認識した各文字列に「画像上の座標」を添えて返してくれます。これは①の文字検出工程で得られた位置情報です。APIのレスポンスを見るときに、この2段階構造を意識すると理解が深まります。
OCRの仕組み:古典的手法とAI-OCR
OCRには大きく2つの世代があります。仕組みを理解すると、それぞれの得意・不得意が見えてきます。
古典的手法(〜2010年代前半)
テンプレート照合や特徴量ベースの手法が主流でした。処理の流れは次のようになります。
- 二値化:画像を白黒に変換し、文字(黒)と背景(白)をくっきり分ける
- 輪郭抽出:文字の輪郭を1文字ずつ切り出す
- 特徴量の計算:線の角度・曲がり具合・穴の数などを数値化する
- テンプレート照合:あらかじめ登録された文字のパターンと照合し、最も近いものを選ぶ
印刷されたきれいなフォントには強い一方、傾き・汚れ・手書き・特殊フォントには弱いという性質がありました。有名なオープンソースOCRエンジン「Tesseract」の初期バージョンなどがこの方式を採用していました。
AI-OCR:深層学習ベースの現代のOCR
2010年代後半から主流になったのが、深層学習(ディープラーニング)を使ったAI-OCRです。ニューラルネットワークに大量の「画像と正解テキストのペア」を学習させることで、文字の特徴をコンピュータが自動で見つけ出す仕組みです。

人間が「こういう特徴を見ろ」と教えなくても、モデルが自分で特徴を発見してくれます。結果として、傾いた文字・汚れた文字・手書き文字、さらには日本語の漢字やひらがなまで高精度で認識できるようになりました。
| 観点 | 古典的OCR | AI-OCR(深層学習) |
|---|---|---|
| 仕組み | テンプレート照合 | ニューラルネットワーク |
| 得意対象 | きれいな印刷物 | 傾き・汚れ・手書きにも対応 |
| 多言語対応 | 個別対応が必要 | 同一モデルで多言語対応可能 |
| 継続改善 | 手動でルール追加 | 追加学習で自動的に精度向上 |
| 代表例 | Tesseract(初期) | PaddleOCR、EasyOCR、Google Vision |
実例で見るOCR:ナンバープレート認識
OCRは単体で使われることもありますが、実用システムでは他の処理と組み合わせた一部分として使われることが多いです。典型例として、車両のナンバープレート認識を見てみましょう。料金所や駐車場でカメラが車のナンバーを自動で読み取る仕組みは、以下のような処理の流れで動いています。
- 車両画像の入力:カメラで撮影された画像を読み込む
- プレート位置の検出(物体検出AI):画像のどこにナンバープレートがあるかを四角形で特定する
- 切り出し・前処理(画像処理ライブラリ):プレート領域を切り出し、傾き補正・明るさ調整でOCRが読みやすい状態に整える
- ★ 文字認識(OCR):整えたプレート画像から文字を読み取り、テキストとして書き出す
- 構造化(後処理):「地名・分類番号・ひらがな・一連指定番号」の4要素に分離する
最終的な出力は、次のような構造化データになります。
{"area": "品川", "class": "500", "hira": "あ", "number": "1234"}重要なのは、OCRだけでは完結しないという点です。OCRが担うのは4番目の「文字認識」の工程のみで、その前後には「プレートがどこにあるか探す」「結果を構造化する」といった別の処理が必要になります。
2番目のプレート位置検出には、YOLO(You Only Look Once)のような物体検出AIが使われます。これもOCRと同じく深層学習ベースのモデルで、画像の中から「ナンバープレートらしい四角形」を高速に見つけ出します。
OCRサービスの選び方
実際にOCRを使うとき、選択肢は大きく3つあります。
① OSSのOCRライブラリ
自分のサーバーやPCにインストールして使うオープンソースのOCRエンジンです。代表的なものにTesseract・EasyOCR・PaddleOCRがあります。無料で使え、オフライン動作するのが強みです。一方、セットアップや精度チューニングは自分で行う必要があります。
② 汎用クラウドOCR API
クラウド事業者が提供するOCR APIをインターネット経由で呼び出す方式です。Google Cloud Vision APIやAzure AI Visionが代表例です。導入が簡単で精度も高い一方、通信が必要で、使った分だけ課金される従量課金制です。
| サービス | 日本語対応 | 料金体系 |
|---|---|---|
| Google Cloud Vision API | ◎ 対応 | 従量課金(月1,000回まで無料、以降$1.50/1,000回) |
| Azure AI Vision | ◎ 対応 | 従量課金 |
| Amazon Rekognition DetectText | × 非対応 | 従量課金(英語+欧州7言語のみ) |
| Amazon Textract | × 非対応 | 従量課金(英語+欧州5言語のみ) |
Amazon RekognitionのDetectText機能とAmazon Textractは、2026年4月現在、日本語に対応していません。日本語を含むOCR用途でAWSを使う場合は、AWS上でOSS(PaddleOCR等)を運用するか、Google Cloud Vision API等の外部サービスを併用することになります。
③ 特化型API(ナンバープレート認識など)
特定用途に最適化された商用サービスです。ナンバープレート認識ではPlate Recognizerなどがあります。内部にOCRを含みつつ、プレート検出・構造化までワンパッケージで提供してくれます。特化しているぶん精度が高く導入も簡単ですが、月額費用が発生します。
実用システムで押さえるべきポイント
OCRを実用システムに組み込むときに、知っておくと役立つ実践的な注意点を3つ挙げておきます。
前処理で精度が決まる
OCRの精度は、入力画像の品質で大きく変わります。傾きが大きい・暗すぎる・解像度が低い・背景が複雑、といった画像では最新のAI-OCRでも誤読します。OpenCV等の画像処理ライブラリによる前処理(傾き補正・コントラスト強調・二値化)が、実運用では精度の大半を決めます。
後処理で実用価値が決まる
OCRが返すのは、あくまで「画像から抽出した文字列」です。その文字列をどう業務に使うかは、後処理の設計次第です。ナンバープレート認識であれば「品川500あ1234」という文字列を4要素に分離する正規表現処理、帳票OCRであれば金額・日付・氏名を決められたフィールドに振り分ける処理。これらはOCRエンジンの仕事ではなく、開発者が設計する領域です。
100%の精度は期待しない
どんなに優れたOCRでも、100%の精度は出ません。照明条件・角度・文字の欠けなど、現実世界にはさまざまな阻害要因があります。実用システムでは、誤認識を前提とした設計が必要です。信頼度スコアの活用・複数回撮影の採用・人手による最終確認など、システム全体で精度を担保する発想が欠かせません。
まとめ
OCRは、画像の中の文字をコンピュータが扱えるテキストデータに変換する技術です。コンピュータにとって画像がただの数値の集まりである以上、この変換技術がなければ、世の中の膨大な紙の情報や看板の文字をデジタル処理できません。
現代のOCR(AI-OCR)は深層学習をベースにしており、日本語の漢字やひらがなも高精度で認識できます。ただし実用システムでは、OCRは単体で機能するのではなく、前処理(画像整形)と後処理(結果の構造化)と組み合わせて初めて価値を発揮します。
| 項目 | 要点 |
|---|---|
| OCRとは | 画像中の文字をテキストデータに変換する技術 |
| なぜ必要か | コンピュータは画像を数値の集まりとしてしか扱えないため |
| 内部構造 | 文字検出(Detection)+文字認識(Recognition)の2段階 |
| 現代の主流 | 深層学習ベースのAI-OCR(PaddleOCR、Google Vision等) |
| 実用システムでの位置づけ | 前処理・後処理と組み合わせて使う中核技術 |
| 選び方 | OSS/汎用クラウド/特化型APIの3択を用途で判断 |
参考リソース
- IBM – 光学的文字認識(OCR)とは:OCRの歴史的背景と概念を解説
- Google Cloud Vision API 公式:代表的な汎用クラウドOCRサービスの公式サイト
- Google Cloud Vision API 料金ページ:TEXT_DETECTION機能の従量課金詳細
- PaddleOCR(GitHub):高精度なOSSのAI-OCRエンジン。日本語対応
- Tesseract OCR(GitHub):歴史あるOSSのOCRエンジン
- Plate Recognizer – 日本のナンバープレート認識:ANPR特化サービスの例


コメント