OCR PBMの全て

写真、スキャン、またはPDF(最大2.5GB)をドロップしてください。ブラウザで直接テキストを抽出します — 無料、無制限で、ファイルがデバイスから離れることはありません。

プライベートで安全

すべてがブラウザで行われます。あなたのファイルが私たちのサーバーに触れることはありません。

超高速

アップロードも待つ必要もありません。ファイルをドロップした瞬間に変換します。

本当に無料

アカウントは必要ありません。隠れたコストもありません。ファイルサイズのトリックもありません。

光学文字認識(OCR)は、テキストの画像(スキャン、スマートフォンの写真、PDF)を機械が読み取れる文字列に、そしてますます 構造化データに変換します。現代のOCRは、画像をクリーンアップし、テキストを見つけ、それを読み取り、豊富なメタデータをエクスポートするパイプラインであり、 下流のシステムがフィールドを検索、索引付け、または抽出できるようにします。広く使用されている2つの出力標準は、 hOCR、テキストとレイアウトのためのHTMLマイクロフォーマット、および ALTO XML、図書館/アーカイブ指向のスキーマです。どちらも位置、読み取り順序、その他のレイアウトの合図を保持し、Tesseractのような人気のあるエンジンでサポートされています。

パイプラインの簡単なツアー

前処理。 OCRの品質は、画像のクリーンアップから始まります:グレースケール変換、ノイズ除去、 しきい値処理(二値化)、および傾き補正。標準的なOpenCVのチュートリアルでは、グローバル、 適応型 および Otsu のしきい値処理が扱われています。これらは、不均一な照明やバイモーダルなヒストグラムを持つドキュメントの定番です。ページ内で照明が変化する場合 (電話のスナップショットを考えてみてください)、適応型メソッドは単一のグローバルしきい値よりも優れていることがよくあります。Otsu はヒストグラムを分析して自動的にしきい値を選択します。傾き補正も同様に重要です:Houghベースの 傾き補正(ハフライン変換)とOtsuの二値化を組み合わせることは、生産前処理パイプラインで一般的で効果的なレシピです。

検出と認識。 OCRは通常、テキスト検出(テキストはどこにあるか ?)とテキスト認識(何が書かれているか?)に分けられます。自然なシーンや多くのスキャンでは、 EAST のような完全畳み込み検出器は、重い提案段階なしで単語または行レベルの四辺形を効率的に予測し、 一般的なツールキット(例: OpenCVのテキスト検出チュートリアル)に実装されています。複雑なページ(新聞、フォーム、書籍)では、行/領域のセグメンテーションと読み取り順序の推論が重要です:Kraken は、従来のゾーン/ラインセグメンテーションとニューラルベースラインセグメンテーションを実装しており、さまざまなスクリプトと方向(LTR / RTL /垂直)を明示的にサポートしています。

認識モデル。 古典的なオープンソースの主力製品である Tesseract (Googleによってオープンソース化され、HPにルーツを持つ)は、文字分類器からLSTMベースのシーケンス 認識器に進化し、検索可能なPDF、 hOCR / ALTOフレンドリーな出力などをCLIから出力できます。現代の認識器は、事前にセグメント化された文字なしでシーケンスモデリングに依存しています。 コネクショニスト時間分類(CTC) は、入力特徴シーケンスと出力ラベル文字列間のアライメントを学習する基礎であり続け、手書きおよびシーンテキストパイプラインで広く 使用されています。

過去数年間で、TransformerはOCRを再構築しました。 TrOCR は、ビジョントランスフォーマーエンコーダーとテキストトランスフォーマーデコーダーを使用し、大規模な合成コーパスでトレーニングされた後、 実際のデータで微調整され、印刷、手書き、シーンテキストのベンチマークで強力なパフォーマンスを発揮します( Hugging Faceのドキュメントも参照)。並行して、一部のシステムは下流の理解のためにOCRを回避します: Donut(Document Understanding Transformer) は、ドキュメント 画像から直接構造化された回答(キーと値のJSONなど)を出力するOCRフリーのエンコーダーデコーダーです(リポジトリ モデルカード)、別のOCRステップがIEシステムにフィードされるときのエラー蓄積を回避します。

エンジンとライブラリ

多くのスクリプトでバッテリー付属のテキスト読み取りが必要な場合は、 EasyOCR が80以上の言語モデルを備えたシンプルなAPIを提供し、ボックス、テキスト、信頼度を返します。これはプロトタイプや 非ラテン文字のスクリプトに便利です。歴史的な文書の場合、 Kraken はベースラインセグメンテーションとスクリプト対応の読み取り順序で優れています。柔軟な行レベルのトレーニングには、 Calamari がOcropyの系統に基づいて構築されています(Ocropy)(マルチ)LSTM + CTC認識器とカスタムモデルを微調整するためのCLIを備えています。

データセットとベンチマーク

一般化はデータにかかっています。手書きの場合、 IAM手書きデータベース は、トレーニングと評価のために作家の多様な英語の文章を提供します。これは、 行と単語の認識のための長年の参照セットです。シーンテキストの場合、 COCO-Text は、MS-COCOに広範な注釈を重ね、印刷/手書き、判読可能/判読不能、スクリプト、および 完全な転写のラベルを付けました(元の プロジェクトページも参照)。この分野はまた、合成事前トレーニングに大きく依存しています: SynthText in the Wild は、リアルなジオメトリと照明でテキストを写真にレンダリングし、事前トレーニング 検出器と認識器に大量のデータを提供します(参照 コードとデータ)。

ICDARのRobust Reading の傘下での競争は、評価を現実的なものに保ちます。最近のタスクは、エンドツーエンドの検出/読み取りを強調し、単語を フレーズにリンクすることを含み、公式コードは 精度/再現率/ Fスコア、和集合上の積集合 (IoU)、および文字レベルの編集距離メトリックを報告します。これは、実践者が追跡すべきことを反映しています。

出力形式と下流での使用

OCRはめったにプレーンテキストで終わりません。アーカイブやデジタルライブラリは ALTO XML を好みます。なぜなら、コンテンツとともに物理的なレイアウト(座標を持つブロック/行/単語)をエンコードし、 METSパッケージングとうまく連携するからです。 hOCR マイクロフォーマットは、対照的に、ocr_line ocrx_wordなどのクラスを使用して同じアイデアをHTML / CSSに埋め込み、Webツールで簡単に表示、編集、変換できるようにします。Tesseractは両方を公開しています。たとえば、 CLIから直接hOCRまたは検索可能なPDFを生成します(PDF出力ガイド)。 pytesseract のようなPythonラッパーは利便性を高めます。リポジトリに固定の取り込み 標準がある場合、hOCRとALTOの間で変換するためのコンバーターが存在します。この厳選されたリストを参照してください OCRファイル形式ツール

実践的なガイダンス

  • データと清潔さから始めましょう。 画像が電話の写真や品質の低いスキャンである場合は、 モデルの調整を行う前に、しきい値処理(適応型とOtsu)と傾き補正(Hough)に投資してください。認識器を交換するよりも、堅牢な前処理レシピから得られるものの方が大きいことがよくあります。
  • 適切な検出器を選択してください。 通常の列を持つスキャンされたページの場合、ページセグメンター(ゾーン→ 行)で十分な場合があります。自然な画像の場合、 EAST のようなシングルショット検出器は強力なベースラインであり、多くのツールキットにプラグインします(OpenCVの例)。
  • テキストに一致する認識器を選択してください。 印刷されたラテン語の場合、 Tesseract(LSTM / OEM) は頑丈で高速です。マルチスクリプトまたは迅速なプロトタイプの場合、 EasyOCR は生産的です。手書きまたは歴史的な書体の場合、 Kraken または Calamari を検討し、微調整を計画してください。ドキュメントの理解(キーと値の抽出、VQA)との緊密な結合が必要な場合は、 スキーマで TrOCR (OCR)と Donut (OCRフリー)を比較評価します。Donutは統合ステップ全体を削除する可能性があります。
  • 重要なことを測定します。 エンドツーエンドシステムの場合、検出 Fスコアと認識CER / WER(どちらもレーベンシュタイン 編集距離に基づく。 CTCを参照)を報告します。レイアウトの多いタスクの場合、 ICDAR RRC 評価キットのように、IoU /タイトネスと文字レベルの正規化された編集距離を追跡します。
  • 豊富な出力をエクスポートします。 hOCR /ALTO (または両方)を優先して、座標と読み取り順序を保持します。これは、検索ヒットの強調表示、テーブル/フィールド の抽出、および来歴に不可欠です。TesseractのCLIと pytesseract は、これをワンライナーにします。

今後の展望

最も強力なトレンドは収束です:検出、認識、言語モデリング、さらにはタスク固有のデコードまで が統一されたTransformerスタックに統合されています。 大規模な合成コーパス での事前トレーニングは、依然として力の乗数です。OCRフリーモデルは、ターゲットが逐語的な転写ではなく構造化された出力である場所ならどこでも積極的に競争します。 ハイブリッド展開も期待してください:長文テキスト用の軽量検出器とTrOCRスタイルの 認識器、およびフォームとレシート用のDonutスタイルのモデル。

参考文献とツール

Tesseract (GitHub) · Tesseractドキュメント · hOCR仕様 · ALTOの背景 · EAST検出器 · OpenCVテキスト検出 · TrOCR · Donut · COCO-Text · SynthText · Kraken · Calamari OCR · ICDAR RRC · pytesseract · IAM手書き · OCRファイル形式ツール · EasyOCR

よくある質問

OCRとは何ですか?

光学的文字認識(OCR)は、さまざまな形式のドキュメント(スキャンされた紙のドキュメント、PDFファイル、デジタルカメラで撮影された画像など)を編集可能で検索可能なデータに変換するために使用される技術です。

OCRはどのように機能しますか?

OCRは入力画像またはドキュメントをスキャンし、画像を個々の文字に分割し、各文字を形状認識または特徴認識を使用して文字形状のデータベースと比較します。

OCRの実用的な用途は何ですか?

OCRは印刷文書のデジタル化、テキストから音声へのサービスの活用、データ入力プロセスの自動化、視覚障害のあるユーザーがテキストとより良く対話できるようにするなど、さまざまな業界とアプリケーションで使用されています。

OCRは常に100%正確ですか?

OCR技術は大幅に進歩していますが、それが無敵ではありません。精度は、元のドキュメントの品質と使用されているOCRソフトウェアの特性によって異なることがあります。

OCRは手書き文字を認識できますか?

OCRは主に印刷されたテキストを認識するように設計されていますが、一部の高度なOCRシステムは明瞭で一貫性のある手書き文字も認識することができます。ただし、個々の文字スタイルの変動幅が広いため、手書き文字の認識は通常、印刷されたテキストの認識よりも精度が低いです。

OCRは複数の言語を処理できますか?

はい、 多くのOCRソフトウェアは複数の言語を認識できます。ただし、特定の言語がサポートされていることを確認する必要があります。

OCRとICRとの違いは何ですか?

OCRはOptical Character Recognition(光学的文字認識)の略で、印刷されたテキストを認識します。一方、ICRはIntelligent Character Recognition(知能的文字認識)の略で、より進んだ技術を使用して手書きのテキストを認識します。

OCRはすべてのフォントと文字サイズを処理できますか?

OCRはクリアで読みやすいフォントと標準的な文字サイズを処理するのに最も適しています。それはさまざまなフォントとサイズを処理する能力を持っていますが、非常に小さい文字サイズや一般的でないフォントを処理するときには、その精度が下がる可能性があります。

OCR技術の制限は何ですか?

OCRは低解像度のドキュメント、複雑なフォント、印刷品質が悪いテキスト、手書きのテキスト、またはテキストが含まれている背景からの混乱を処理するのに問題を抱えている可能性があります。さらに、それは多言語を处理する能力を持っていますが、すべての言語を完全にカバーすることはできない可能性があります。

OCRはカラーテキストまたはカラーバックグラウンドをスキャンできますか?

はい、OCRはカラーテキストとカラーバックグラウンドをスキャンすることができますが、通常は黒いテキストと白いバックグラウンドといった高いコントラストの色の組み合わせに対して最も効果的です。テキストとバックグラウンドの色のコントラストが不十分な場合、その精度が下がる可能性があります。

PBM フォーマットとは何ですか?

ポータブルビットマップフォーマット(白黒)

PBM(ポータブルビットマップ)形式は、モノクロ画像の保存に使用される最もシンプルで初期のグラフィックファイル形式の1つです。グレースケール画像用のPGM(ポータブルグレイマップ)とカラー画像用のPPM(ポータブルピックスマップ)も含まれるNetpbmスイートの一部です。PBM形式は、プログラムで非常に簡単に読み書きでき、明確で曖昧でないように設計されています。スタンドアロン形式ではなく、さまざまな画像形式間を変換するための最小公分母です。

PBM形式は、白黒(1ビット)画像のみをサポートします。画像内の各ピクセルは1つのビットで表されます。白は0、黒は1です。形式が単純なので、特殊な画像処理ライブラリを必要とせずに、基本的なテキスト編集ツールやプログラミング言語を使用して操作できます。ただし、この単純さにより、PBMファイルは、ファイルサイズを削減するための圧縮アルゴリズムを使用するJPEGやPNGなどのより洗練された形式よりも大きくなる可能性があります。

PBM形式には、P1と呼ばれるASCII(プレーン)形式と、P4と呼ばれるバイナリ(ロー)形式の2つのバリエーションがあります。ASCII形式は人間が読める形式で、簡単なテキストエディタで作成または編集できます。バイナリ形式は人間が読める形式ではありませんが、スペース効率が高く、プログラムによる読み書きが高速です。保存方法の違いにもかかわらず、どちらの形式も同じタイプの画像データを表しており、情報を失うことなく相互に変換できます。

ASCII形式のPBMファイルの構造は、ファイルの種類を識別する2バイトのマジックナンバーで始まります。PBM ASCII形式の場合、これは「P1」です。マジックナンバーの後に空白(ブランク、タブ、CR、LF)があり、その後に幅の指定(画像内の列の数)が続き、さらに空白があり、その後に高さの指定(画像内の行の数)が続きます。高さの指定の後にさらに空白があり、ピクセルデータが始まります。

ASCII PBMファイルのピクセルデータは一連の「0」と「1」で構成され、各「0」は白いピクセルを表し、各「1」は黒いピクセルを表します。ピクセルは行に配置され、各ピクセル行は新しい行にあります。ピクセルデータ内の2文字シーケンス内を除いて、空白はピクセルデータ内の任意の場所に許可されます(シーケンスの2文字の間には許可されません)。ファイルの終わりは、width*heightビットを読み取った後に達します。

対照的に、バイナリPBM形式は「P1」ではなく「P4」のマジックナンバーで始まります。マジックナンバーの後は、ピクセルデータが始まるまで、形式はASCIIバージョンと同じです。バイナリピクセルデータはバイトに詰め込まれ、各バイトの最上位ビット(MSB)が左端のピクセルを表し、各ピクセル行は最後のバイトを埋めるために必要に応じてパディングされます。パディングビットは重要ではなく、その値は無視されます。

バイナリ形式は、少なくとも8バイト(ピクセルあたりの1文字と空白)を使用するASCII形式とは対照的に、1バイト全体を使用して8ピクセルを表すため、スペース効率が高くなります。ただし、バイナリ形式は人間が読める形式ではなく、画像を表示または編集するにはPBM形式を理解するプログラムが必要です。

PBMファイルをプログラムで作成するのは比較的簡単です。Cなどのプログラミング言語では、書き込みモードでファイルを開き、適切なマジックナンバーを出力し、空白で区切られたASCII数値として幅と高さを書き込み、ピクセルデータを出力します。ASCII PBMの場合、ピクセルデータは適切な改行を使用して一連の「0」と「1」として書き込むことができます。バイナリPBMの場合、ピクセルデータはバイトに詰め込まれ、バイナリモードでファイルに書き込まれる必要があります。

PBMファイルの読み取りも簡単です。プログラムはマジックナンバーを読み取って形式を決定し、空白をスキップし、幅と高さを読み取り、さらに空白をスキップし、ピクセルデータを読み取ります。ASCII PBMの場合、プログラムは一度に1文字を読み取ってピクセル値として解釈できます。バイナリPBMの場合、プログラムはバイトを読み取って個々のビットにアンパックし、ピクセル値を取得する必要があります。

PBM形式は、圧縮やエンコードの形式をサポートしていないため、ファイルサイズは画像内のピクセル数に正比例します。これにより、高解像度の画像では非常に大きなファイルになる可能性があります。ただし、形式が単純であるため、画像処理の学習、ファイルサイズよりも画像の忠実度が重要な状況での使用、または画像変換プロセスでの中間形式としての使用に最適です。

PBM形式の利点の1つは、そのシンプルさと操作の容易さです。たとえば、PBM画像を反転する(すべての黒いピクセルを白に変換し、その逆も同様)には、ピクセルデータ内のすべての「0」を「1」に置き換え、すべての「1」を「0」に置き換えるだけです。これは、簡単なテキスト処理スクリプトまたはプログラムで行うことができます。同様に、回転やミラーリングなどの他の基本的な画像操作は、簡単なアルゴリズムで実装できます。

その単純さにもかかわらず、PBM形式は一般的な画像の保存や交換には広く使用されていません。これは主に、圧縮がないため、大規模な画像の保存や、帯域幅が問題になる可能性のあるインターネット上での使用には非効率的であることが原因です。JPEG、PNG、GIFなどのより最新の形式は、さまざまな形式の圧縮を提供し、これらの目的により適しています。ただし、PBM形式は、ソフトウェア開発のシンプルなグラフィックスや、画像処理の概念の教育ツールとして、一部のコンテキストでまだ使用されています。

PBM形式を含むNetpbmスイートは、PBM、PGM、PPMファイルを操作するためのツールのコレクションを提供します。これらのツールを使用すると、Netpbm形式と他の一般的な画像形式との間で変換したり、スケーリング、クロッピング、カラー操作などの基本的な画像処理操作を実行したりできます。このスイートは、新しい機能を追加するためのシンプルなインターフェイスを備えており、簡単に拡張できるように設計されています。

結論として、PBM画像形式は、モノクロビットマップ画像を保存するためのシンプルで無駄のないファイル形式です。そのシンプルさにより、理解と操作が容易になり、教育目的や簡単な画像処理タスクに役立ちます。圧縮がないため、すべてのアプリケーションに適しているわけではなく、その結果、ファイルサイズが大きくなりますが、その強みが最も有益な特定のコンテキストでは依然として有用な形式です。PBM形式は、Netpbmスイートの他の部分とともに、基本的な画像処理と形式変換に取り組む人々にとって貴重なツールであり続けています。

対応フォーマット

AAI.aai

AAI Dune 画像

AI.ai

Adobe Illustrator CS2

AVIF.avif

AV1 画像ファイルフォーマット

BAYER.bayer

Raw ベイヤー画像

BMP.bmp

Microsoft Windows ビットマップ画像

CIN.cin

Cineon 画像ファイル

CLIP.clip

画像クリップマスク

CMYK.cmyk

Raw シアン、マジェンタ、イエロー、黒サンプル

CUR.cur

Microsoft アイコン

DCX.dcx

ZSoft IBM PC マルチページ Paintbrush

DDS.dds

Microsoft DirectDraw Surface

DPX.dpx

SMTPE 268M-2003 (DPX 2.0) 画像

DXT1.dxt1

Microsoft DirectDraw Surface

EPDF.epdf

カプセル化されたポータブルドキュメントフォーマット

EPI.epi

Adobe カプセル化PostScriptインターチェンジフォーマット

EPS.eps

Adobe カプセル化PostScript

EPSF.epsf

Adobe カプセル化PostScript

EPSI.epsi

Adobe カプセル化PostScriptインターチェンジフォーマット

EPT.ept

TIFFプレビュー付きカプセル化PostScript

EPT2.ept2

TIFFプレビュー付きカプセル化PostScript Level II

EXR.exr

高ダイナミックレンジ(HDR)画像

FF.ff

Farbfeld

FITS.fits

フレキシブル画像転送システム

GIF.gif

CompuServe グラフィックス交換フォーマット

HDR.hdr

高ダイナミックレンジ画像

HEIC.heic

高効率画像コンテナ

HRZ.hrz

スロースキャンテレビジョン

ICO.ico

Microsoft アイコン

ICON.icon

Microsoft アイコン

J2C.j2c

JPEG-2000 コードストリーム

J2K.j2k

JPEG-2000 コードストリーム

JNG.jng

JPEG ネットワークグラフィックス

JP2.jp2

JPEG-2000 ファイルフォーマット構文

JPE.jpe

JPEG JFIFフォーマット

JPEG.jpeg

JPEG JFIFフォーマット

JPG.jpg

JPEG JFIFフォーマット

JPM.jpm

JPEG-2000 ファイルフォーマット構文

JPS.jps

JPEG JPSフォーマット

JPT.jpt

JPEG-2000 ファイルフォーマット構文

JXL.jxl

JPEG XL画像

MAP.map

マルチレゾリューションシームレス画像データベース(MrSID)

MAT.mat

MATLAB レベル5画像フォーマット

PAL.pal

Palm ピクスマップ

PALM.palm

Palm ピクスマップ

PAM.pam

一般的な2次元ビットマップフォーマット

PBM.pbm

ポータブルビットマップフォーマット(白黒)

PCD.pcd

フォトCD

PCT.pct

Apple Macintosh QuickDraw/PICT

PCX.pcx

ZSoft IBM PC ペイントブラシ

PDB.pdb

Palm 画像ビューアフォーマット

PDF.pdf

ポータブルドキュメントフォーマット

PDFA.pdfa

ポータブルドキュメントアーカイブフォーマット

PFM.pfm

ポータブルフロートフォーマット

PGM.pgm

ポータブルグレイマップフォーマット(グレースケール)

PGX.pgx

JPEG 2000 非圧縮フォーマット

PICT.pict

Apple Macintosh QuickDraw/PICT

PJPEG.pjpeg

JPEG JFIFフォーマット

PNG.png

ポータブルネットワークグラフィックス

PNG00.png00

オリジナル画像からビット深度、カラータイプを継承したPNG

PNG24.png24

不透明またはバイナリ透過24ビットRGB(zlib 1.2.11)

PNG32.png32

不透明またはバイナリ透過32ビットRGBA

PNG48.png48

不透明またはバイナリ透過48ビットRGB

PNG64.png64

不透明またはバイナリ透過64ビットRGBA

PNG8.png8

不透明またはバイナリ透過8ビットインデックスカラー

PNM.pnm

ポータブルエニーマップ

PPM.ppm

ポータブルピクスマップフォーマット(カラー)

PS.ps

Adobe PostScriptファイル

PSB.psb

Adobe 大容量ドキュメントフォーマット

PSD.psd

Adobe Photoshop ビットマップ

RGB.rgb

Raw 赤、緑、青サンプル

RGBA.rgba

Raw 赤、緑、青、アルファサンプル

RGBO.rgbo

Raw 赤、緑、青、不透明度サンプル

SIX.six

DEC SIXELグラフィックスフォーマット

SUN.sun

Sunラスタファイル

SVG.svg

スケーラブルベクターグラフィックス

TIFF.tiff

TIFF(タグ付き画像ファイルフォーマット)

VDA.vda

Truevision Targa画像

VIPS.vips

VIPS画像

WBMP.wbmp

ワイヤレスビットマップ(レベル0)画像

WEBP.webp

WebP画像フォーマット

YUV.yuv

CCIR 601 4:1:1 または 4:2:2

よくある質問

これはどのように機能しますか?

このコンバーターはブラウザ内で完全に動作します。ファイルを選択すると、メモリに読み込まれ、選択したフォーマットに変換されます。その後、変換されたファイルをダウンロードできます。

ファイルの変換にかかる時間は?

変換は瞬時に開始され、ほとんどのファイルは1秒以内に変換されます。大きなファイルの場合、時間がかかる場合があります。

ファイルの扱いは?

ファイルは決してサーバにアップロードされません。ブラウザ内で変換され、変換されたファイルがダウンロードされます。ファイルは見られません。

変換できるファイルタイプは?

画像フォーマット間の変換すべてに対応しています。JPEG、PNG、GIF、WebP、SVG、BMP、TIFFなどです。

料金はかかりますか?

このコンバーターは完全に無料で、永久に無料のままです。ブラウザ内で動作するため、サーバを用意する必要がないので、料金を請求する必要がありません。

一度に複数のファイルを変換できますか?

はい、一度に複数のファイルを変換できます。追加時に複数のファイルを選択してください。