光学文字認識(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ファイル形式ツール。
最も強力なトレンドは収束です:検出、認識、言語モデリング、さらにはタスク固有のデコードまで が統一された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)は、さまざまな形式のドキュメント(スキャンされた紙のドキュメント、PDFファイル、デジタルカメラで撮影された画像など)を編集可能で検索可能なデータに変換するために使用される技術です。
OCRは入力画像またはドキュメントをスキャンし、画像を個々の文字に分割し、各文字を形状認識または特徴認識を使用して文字形状のデータベースと比較します。
OCRは印刷文書のデジタル化、テキストから音声へのサービスの活用、デ ータ入力プロセスの自動化、視覚障害のあるユーザーがテキストとより良く対話できるようにするなど、さまざまな業界とアプリケーションで使用されています。
OCR技術は大幅に進歩していますが、それが無敵ではありません。精度は、元のドキュメントの品質と使用されているOCRソフトウェアの特性によって異なることがあります。
OCRは主に印刷されたテキストを認識するように設計されていますが、一部の高度なOCRシステムは明瞭で一貫性のある手書き文字も認識することができます。ただし、個々の文字スタイルの変動幅が広いため、手書き文字の認識は通常、印刷されたテキストの認識よりも精度が低いです。
はい、 多くのOCRソフトウェアは複数の言語を認識できます。ただし、特定の言語がサポートされていることを確認する必要があります。
OCRはOptical Character Recognition(光学的文字認識)の略で、印刷されたテキストを認識します。一方、ICRはIntelligent Character Recognition(知能的文字認識)の略で、より進んだ技術を使用して手書きのテキストを認識します。
OCRはクリアで読みやすいフォントと標準的な文字サイズを処理するのに最も適しています。それはさまざまなフォントとサイズを処理する能力を持っていますが、非常に小さい文字サイズや一般的でないフォントを処理するときには、その精度が下がる可能性があります。
OCRは低解像度のドキュメント、複雑なフォント、印刷品質が悪いテキスト、手書きのテキスト、またはテキストが含まれている背景からの混乱を処理するのに問題を抱えている可能性があります。さらに、それは多言語を处理する能力を持っていますが、すべての言語を完全にカバーすることはできない可能性があります。
はい、OCRはカラーテキストとカラーバックグラウンドをスキャンすることができますが、通常は黒いテキストと白いバックグラウンドといった高いコントラストの色の組み合わせに対して最も効果的です。テキストとバックグラウンドの色のコントラストが不十分な場合、その精度が下がる可能性があります。
MATLABで一般的に使用されるMAT画像フォーマットは、MathWorksによって開発された高レベル言語およびインタラクティブ環境であるMATLABに関連付けられていますが、JPEGやPNGのような従来の画像フォーマットではありません。代わりに、MATLABで一般的に使用される行列、変数、およびその他のデータ型を格納するためのファイルフォーマットです。MATフォーマットはMATLAB MATファイルの略です。このファイルフォーマットは、MATLABユーザーにとって不可欠であり、変数、関数、配列、さらには画像を、MATLABワークスペースに簡単にロードして、さらなる分析や処理を行うことができるフォーマットで格納および管理できます。
MATファイルは、多次元配列やスカラーデータを含む複数の変数を保持できるバイナリデータコンテナです。画像に関しては、MATLABは各ピクセル値を行列内の要素として格納された行列として扱います。グレースケール画像の場合、これは2次元行列ですが、カラー画像の場合、赤、緑、青のカラーコンポーネントのレイヤーが別々にある3次元行列です。MATフォーマットは、科学的および工学的なアプリケーションに不可欠なデータの正確な数値精度と構造を保持するため、そのような画像データを格納するのに特に役立ちます。
MATファイルフォーマットは時間の経過とともに進化しており、MATLABが更新されるにつれてさまざまなバージョンがリリースされています。最も一般的なバージョンはMATファイルバージョン4、5、7で、私の知識の範囲では2023年時点でバージョン7.3が最新です。各バージョンでは、複雑なデータの格納と管理のための広く使用されているデータモデル、ライブラリ、およびファイルフォーマットであるHDF5(階層データフォーマットバージョン5)とのデータ容量、圧縮、互換性の点で改善が導入されていま す。
MATファイルバージョン4は最も単純で古いフォーマットであり、データ圧縮や複雑な階層構造をサポートしていません。主に古いバージョンのMATLABとの互換性のために使用されます。バージョン5は、データ圧縮、Unicode文字エンコーディング、複素数とオブジェクトのサポートなどの機能を導入したより高度なフォーマットです。バージョン7では、圧縮の向上やより大きな配列を格納する機能など、さらに多くの機能強化が追加されました。バージョン7.3はHDF5標準と完全に統合されており、MATファイルはHDF5の高度な機能(より大規模なデータストレージやより複雑なデータ編成など)を活用できます。
MATファイル、特に画像データを扱う場合は、MATLABが画像をどのように処理するかを理解することが重要です。MATLABは画像を数値の配列として表し、各数値はグレースケール画像のピクセルの強度またはRGB画像のカラーコードに対応します。たとえば、8ビットグレースケール画像は、0から255の範囲の値を持つ行列として格納されます。ここで、0は黒、255は白、その間の値はグレースケールの濃淡を表します。カラー画像の場合、MATLABは最初の2つの次元がピクセルの位置に対応し、3番目の次元がカラーチャンネルに対応する3次元配列を使用します。
MATLABでMATファイルを作成するには、「save」関数を使用できます。この関数を使用すると、ユーザーはファイルの名前と保存する変数を指定できます。たとえば、'img'という名前の画像行列を'imageData.mat'という名前のMATファイルに保存するには、「save('imageData.mat', 'img')」というコマンドを実行します。このコマンドは、後で「load」関数を使用してMATLABにロードできる画像データを含むMATファイルを作成します。
MATLABでMATファイルをロードするのは簡単です。「load」関数は、ファイルからデータを読み取ってMATLABワークスペースに取り込みます。たとえば、「load('imageData.mat')」を実行すると、「imageData.mat」の内容がワークスペースにロードされ、ユーザーは格納された画像データにアクセスして操作できます。「whos」コマンドは、ロード後に使用して、ロードされた変数に関する情報(サイズ、形状、データ型など)を表示できます。
MATフォーマットの主な利点の1つは、データをコンパクトかつ効率的に格納できることです。データをMATファイルに保存すると、MATLABは圧縮を適用してファイルサイズを小さくできます。これは、特に高解像度の画像や大規模な画像データセットを扱う場合に非常に大規模になる可能性がある画像データに役立ちます。MATファイルで使用される圧縮はロスレスであり、データがMATLABにロードされると、精度や品質が低下することなく元のデータと同じになります。
MATファイルはメタデータの格納もサポートしており、データの起源、作成日、使用されたMATLABバージョン、およびその他の関連する詳細情報を含めることができます。このメタデータは、データを他の人と共有したり、将来使用するためにデータをアーカイブしたりする場合に非常に貴重です。コンテキストを提供し、データが正確に解釈され、再現されることを保証するためです。
数値配列や画像データに加えて、MATファイルは構造体、セル配列、テーブル、オブジェクトなど、さまざまな他のデータ型を格納でき ます。この柔軟性により、MATファイルはMATLABユーザーにとって用途の広いツールとなり、さまざまなデータ型と構造を1つのファイルにカプセル化できます。これは、関連するすべてのデータを一貫性のある整理された方法で保存できるため、複数のタイプのデータを含む複雑なプロジェクトに特に役立ちます。
MATLAB以外のMATファイルと対話する必要があるユーザー向けに、MathWorksはMATファイルI/Oライブラリを提供しています。これにより、C、C++、Fortranで記述されたプログラムはMATファイルの読み書きができます。このライブラリは、MATLABデータを他のアプリケーションと統合したり、MATファイルデータにアクセスする必要があるカスタムソフトウェアを開発したりするのに役立ちます。さらに、Pythonなどの他のプログラミング言語用のサードパーティライブラリとツールが利用可能であり、より広範なアプリケーションでMATファイルを使用できます。
バージョン7.3でMATファイルをHDF5標準と統合したことで、フォーマットの機能が大幅に拡張されました。HDF5は大量のデータを格納して整理するように設計されており、この標準を採用することで、MATファイルは以前よりもはるかに大規模なデータセットを処理できるようになりました。これは、大量のデータが一般的な機械学習、データマイニング、ハイパフォーマンスコンピューティングなどの分野で特に重要です。HDF5統合により、MATファイルはHDF5互換ツールを使用してアクセスできるようになり、他のシステムやソフトウェアとの相互運用性がさらに向上します。
MATフォーマットには多くの利点がありますが、考慮すべき点がいくつかあります。1つはバージョン互換性の問題です。MATLABが進化するにつれてMATファイルフォーマットも進化し、新しいバージョンで保存されたファイルは古いバージョンのMATLABと互換性がない場合があります。ユーザーは、使用しているMATLABのバージョンとロードしようとしているMATファイルのバージョンを認識する必要があります。MATLABには、保存時にMATファイルのバージョンをチェックして指定する関数が用意されており、これによりさまざまなMATLABリリース間の互換性を維持できます。
もう1つの考慮事項は、MATフォーマットの独自性です。これはMathWorksによって十分に文書化され、サポートされていますが、他のデータフォーマットのようなオープンスタンダードではありません。MATLABまたは互換性のあるソフトウェアにアクセスできないユーザーとデータを共有する場合、これは課題となる可能性があります。ただし、HDF5はオープンスタンダードであり、HDF5ファイルを使用するためのツールが数多くあるため、HDF5との統合によりこの問題はある程度緩和されています。
結論として、MAT画像フォーマットは、MATLABで画像データやその他の変数を格納するための強力で柔軟な方法です。数値精度を維持し、さまざまなデータ型をサポートし、HDF5標準と統合する機能により、特に科学的および工学的な分野で作業するMATLABユーザーにとって貴重なツールになります。バージョン互換性とフォーマットの独自性に関する考慮事項はありますが、データの格納と交換にMATファイルを使用することの利点は大きいです。MATLABが進化し続けるにつれて、MATフォーマットも進化し続け、複雑なデータを管理するためのさらに多く の機能と機能を提供する可能性があります。
このコンバーターはブラウザ内で完全に動作します。ファイルを選択すると、メモリに読み込まれ、選択したフォーマットに変換されます。その後、変換されたファイルをダウンロードできます。
変換は瞬時に開始され、ほとんどのファイルは1秒以内に変換されます。大きなファイルの場合、時間がかかる場合があります。
ファイルは決してサーバにアップロードされません。ブラウザ内で変換され、変換されたファイルがダウンロードされます。ファイルは見られません。
画像フォーマット間の変換すべてに対応しています。JPEG、PNG、GIF、WebP、SVG、BMP、TIFFなどです。
このコンバーターは完全に無料で、永久に無料のままです。ブラウザ内で動作するた め、サーバを用意する必要がないので、料金を請求する必要がありません。
はい、一度に複数のファイルを変換できます。追加時に複数のファイルを選択してください。