Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Optical Character Recognition (OCR)

光学文字認識(OCR)は、スキャン画像や写真に含まれるテキストを、機械が読み取れる文字に変換します。検出と認識の各段階をコードとともに解説します。

光学文字認識(OCR)は、スキャンしたページ、写真、スクリーンショット、動画フレームなどの画像内のテキストを、ソフトウェアで検索、編集、分析できる機械可読文字に変換する技術です。初期のシステムは、各文字を既知のフォントの保存済みテンプレートと照合していました。最新のOCRではディープラーニングを使って画像内のあらゆる場所からテキストを検出し、単語や行をまとめて読み取ります。これにより、多様なフォント、低解像度、遠近法、雑然とした背景に対応できます。OCRは、請求書や書籍などの文書テキストと、標識、商品ラベル、ナンバープレートなどのシーン内のテキストの両方を扱います。

OCRの仕組み#

ほとんどのOCRシステムは、2つのモデルを順番に実行します。

  1. テキスト検出: 検出器は画像内のテキスト領域を見つけ、単語または行ごとにボックスやポリゴンを出力します。EAST、CRAFT、DBNetなどのシーンテキスト検出器は、ピクセル単位でテキスト領域を予測するため、曲がった文字や回転した文字にも対応できます。
  2. テキスト認識: 各領域を切り出し、傾きを補正して固定の高さにリサイズし、認識器で文字を読み取ります。CRNNは、切り出した画像をCNNに通し、得られた特徴列を双方向LSTMで左から右へ読み取ります。さらに、コネクショニスト時系列分類(CTC)で、各文字の開始位置をラベル付けせずに列ごとの予測を文字列に対応付けます。MicrosoftのTrOCRなどのTransformer認識器は、代わりにテキストデコーダーで文字を生成します。

画質の悪いスキャンでは、二値化や傾き補正などの前処理が今も役立ちます。後処理では辞書、想定される形式、または言語モデルを使って出力を検証します。EasyOCRは、CRAFT検出器とCRNN認識器の両方を80以上の言語向けにパッケージ化しています。

import easyocr

# Load EasyOCR's CRAFT text detector and English CRNN text recognizer
reader = easyocr.Reader(["en"])

# Detect every text region in the photo, then read the characters inside it
results = reader.readtext("https://ultralytics.com/images/bus.jpg")

# Each result holds a 4-corner box, the recognized string, and a confidence score
for box, text, confidence in results:
    if confidence > 0.5:
        print(f"{text}: {confidence:.2f}")

cero: 0.95とemisiones: 0.99が出力され、バスの側面に描かれた文字を示します。検出器はバスのドットマトリックス式行先表示器や窓の小さな文字も見つけますが、認識器が返す文字列は乱れており、信頼度も0.5未満のため、しきい値によって除外されます。

文書では認識の前にレイアウト処理を追加します。レイアウトモデルがページをブロックに分割し、ブロックの種類ごとに処理してから、読み順に結果を再構成します。そのため、2段組みの記事は列ごとに読み取られます。

精度は、出力を正しいテキストにするために必要な文字の挿入、削除、置換の数を正しいテキストの長さで割った文字誤り率(CER)と、単語単位で同様に算出する単語誤り率(WER)で測定します。

OCRエンジンとモデル#

オープンソースのTesseractエンジンは1980年代にHewlett-Packardで開発が始まり、2005年にオープンソースとして公開されました。2006年から2018年にはGoogleの支援を受けて開発され、バージョン4でLSTMネットワークに基づく認識エンジンが追加されました。Google Cloud VisionやAmazon Textractなどのクラウドサービスは、レイアウト、表、フォームの抽出機能を追加します。ビジョン言語モデルは、文書を最初から最後まで読み取る用途で広く利用されるようになっています。Allen Institute for AIのolmOCRは、微調整済みのビジョン言語モデルを使ってPDFページを整形されたテキストに変換します。また、OCR不要の文書モデルは、先に別個の文字起こしを生成せずにページに関する質問に回答します。

  • 手書き文字認識: 手書きテキスト認識(HTR)またはインテリジェント文字認識(ICR)とも呼ばれ、手書き文字を読み取ります。印刷文字と比べて文字の形に大きなばらつきがあり、文字同士がつながっていることもよくあります。
  • 物体検出: 検出器は一時停止標識を物体として見つけ、OCRは標識に印刷された「S-T-O-P」の文字を読み取ります。OCR独自の検出段階では、テキストを読み取らずにその位置を特定します。
  • 画像分類: 画像全体に「請求書」などのラベルを1つ付けますが、OCRは画像内の文字列を抽出します。
  • インテリジェント文書処理: OCRをレイアウト解析や固有表現認識(NER)と組み合わせ、請求書の日付、取引先、合計金額などの特定の項目を業務システムに取り込みます。

実際のアプリケーション#

  • ナンバープレート認識: 料金徴収、駐車場、交通取締りのシステムでは各プレートを検出してから読み取ります。プレートのボックスで学習したYOLO26モデルで検出し、回転バウンディングボックス版を使って傾いたプレートに合わせた回転ボックスを適用します。これにより、認識前に各切り出し画像の傾きを補正できます。
  • ドキュメントのデジタル化: 銀行、保険会社、政府機関は、フォーム、領収書、アーカイブを検索可能なテキストに変換し、図書館は印刷書籍を大規模にデジタル化します。
  • アクセシビリティと翻訳: スクリーンリーダーやカメラ翻訳アプリは、標識、メニュー、ラベルを音声で読み上げたり、ライブ画像に翻訳を重ねて表示したりします。
  • 製造と物流: カメラは生産ライン上のロットコード、有効期限、シリアル番号を読み取ります。輸送コンテナのコードはISO 6346に準拠し、11文字の末尾にチェックディジットがあります。このチェックディジットは最初の10文字から計算されるため、読み取りミスのほとんどをリーダーが自動的に検出して拒否できます。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう