更新済み 2025年2月16日
共有:

IronOCRを使用して写真を読み取る方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

カーティス・チャウによる

大量のドキュメント、特にTIFFファイルのようなスキャン画像を扱う際、手動でのテキスト抽出は時間がかかり、人為的なミスが発生しやすくなります。 こちらは光学文字認識(OCR)が行われる場所です(OCR (光学式文字認識))画像からテキストを正確にデジタルデータに変換する自動化された方法を提供します。 OCR技術は、スキャンされた文書や写真などの画像の複雑さに対処し、それらを検索可能で編集可能なテキストに変換することができます。 これは、文書処理を迅速化するだけでなく、手動による書き写しと比較して、より正確なデータ抽出を保証します。

TIFFのような形式でのOCRの使用は、サイズ、色深度、圧縮などにより読み取りが難しい可能性がありますが、企業や開発者が大量のデータを迅速にデジタル化および管理することを可能にします。 IronOCRのReadPhoto機能のようなOCRソリューションを使用すると、開発者は画像からテキストを抽出し、キーワードの検索やスキャンしたデータを検索可能なPDFに変換するなどの高度な操作を実行することもできます。 この技術は、効率的なデータ検索が重要な法的文書、アーカイブ、または領収書を扱う業界に特に有用です。

このチュートリアルでは、ReadPhoto の使用方法と結果オブジェクトの操作方法について、入力例を簡単に紹介します。 開発者が通常のIronOCRのReadの代わりにReadPhotoを使用する状況もあります。

申し訳ありませんが、翻訳するコンテンツのテキストを提供してください。その後、英語から日本語に翻訳いたします。!-- RENDER.PHP -- NUGET LIBRARY DOWNLOAD DIRECTIVE TAG :: START -->

今日から無料トライアルでIronOCRをあなたのプロジェクトで使い始めましょう。

最初のステップ:
green arrow pointer

申し訳ありませんが、翻訳するコンテンツのテキストを提供してください。その後、英語から日本語に翻訳いたします。!-- RENDER.PHP -- NUGET ライブラリ ダウンロード ディレクティブ タグ :: 終了 -->

この機能を使用するには、もインストールする必要があります。IronOcr.Extension.AdvancedScanパッケージ。

写真を読む例

IronOCRを使用すると、tiffgifなどの高品質の写真フォーマットの読取は比較的簡単です。 まず、新しい変数を作成し、それをOcrInputとして割り当て、その後LoadImageFrameを使用して画像を読み込みます。 最後に、ReadPhotoメソッドを使用して結果を取得します。

次の内容にご注意ください。

  • Tiffには1つの画像内に複数のフレームが含まれているため、frameNumberパラメーターが必要です。 さらに、インデックスは1ではなく0から始まります。
  • このメソッドは現在、英語、中国語、日本語、韓国語、ラテンアルファベットにのみ対応しています。
  • 高度なスキャンを .NET Framework で使用するには、プロジェクトを x64アーキテクチャで実行する必要があります。

入力

ほとんどのブラウザーがTIFF形式をネイティブにサポートしていないため、TIFF入力をダウンロードできます。これ. TIFFファイルを表示するために、それをWEBP形式に変換します。

入力

コード

:path=/static-assets/ocr/content-code-examples/how-to/read-photo-read-photo.cs
using IronOcr;
using IronSoftware.Drawing;
using System;

// Instantiate OCR engine
var ocr = new IronTesseract();

using var inputPhoto = new OcrInput();
inputPhoto.LoadImageFrame("ocr.tiff", 0);

// Read photo
OcrPhotoResult result = ocr.ReadPhoto(inputPhoto);

// Index number refer to region order in the page
int number = result.TextRegions[0].FrameNumber;

// Extract the text in the first region
string textinregion = result.TextRegions[0].TextInRegion;

//Extract the co_ordinates of the first text region
Rectangle region = result.TextRegions[0].Region;

var output = $"Text in First Region: {textinregion}\n"
             + $"Text Region:\n"
             + $"Starting X: {region.X}\n"
             + $"Starting Y: {region.Y}\n"
             + $"Region Width: {region.Width}\n"
             + $"Region Height: {region.Height}\n"
             + $"Result Confidence: {result.Confidence}\n\n"
             + $"Full Scnned Photo Text: {result.Text}";

Console.WriteLine(output);
Imports Microsoft.VisualBasic
Imports IronOcr
Imports IronSoftware.Drawing
Imports System

' Instantiate OCR engine
Private ocr = New IronTesseract()

Private inputPhoto = New OcrInput()
inputPhoto.LoadImageFrame("ocr.tiff", 0)

' Read photo
Dim result As OcrPhotoResult = ocr.ReadPhoto(inputPhoto)

' Index number refer to region order in the page
Dim number As Integer = result.TextRegions(0).FrameNumber

' Extract the text in the first region
Dim textinregion As String = result.TextRegions(0).TextInRegion

'Extract the co_ordinates of the first text region
Dim region As Rectangle = result.TextRegions(0).Region

Dim output = $"Text in First Region: {textinregion}" & vbLf & $"Text Region:" & vbLf & $"Starting X: {region.X}" & vbLf & $"Starting Y: {region.Y}" & vbLf & $"Region Width: {region.Width}" & vbLf & $"Region Height: {region.Height}" & vbLf & $"Result Confidence: {result.Confidence}" & vbLf & vbLf & $"Full Scnned Photo Text: {result.Text}"

Console.WriteLine(output)
VB   C#

出力

出力

OCR入力から抽出されたテキスト。

信頼度: すべての文字の平均における統計的な精度信頼度を示す「double」プロパティで、1が最も高く、0が最も低い値です。

TextRegions: 入力内のOCRテキストとその位置を示すプロパティ「TextRegions」のリスト。 上記の例では、フレーム番号とテキストを含む矩形を印刷しました。


ReadPhotoRead の違い

この readPhoto メソッドと標準の read メソッドとの主な違いは、結果オブジェクトとそれが受け取るファイル形式です。 LoadImageFrame は特に tiffgif のみを受け入れ、Jpeg などの形式は受け入れません。いくつかの理由があります。

TiffとJpg画像の比較

Tiffというファイル形式は非圧縮で、通常、複数のページや複数のフレームを1つの形式にまとめるために使用されます。 それは通常、高品質で複数のイメージを保存するために使用されます。(例えば、法的文書や医療画像). それは標準的なjpg形式よりもはるかに複雑であり、そのために完全にテキストを抽出するには異なる方法が必要です。

さらに、Tiff画像は異なる圧縮方法を使用するため、IronOCRはテキストを解読するための特殊な方法を使用しなければなりません。

ここで、tiff と jpg の間の比較をさらに説明します。

機能 TIFF (タグ付き画像ファイル形式) JPG/JPEG(Joint Photographic Experts Group)
圧縮 ロスレスまたは非圧縮(品質を保つ) 非可逆圧縮(ファイルサイズを小さくするために品質を低下させる)
ファイルサイズ 高品質で圧縮を省略できるため大容量 より小さく、ウェブ利用に最適化され、素早く読み込まれます
画質 高(プロフェッショナルユースに最適で、すべての詳細を保持) 低品質(不可逆圧縮による品質の一部が犠牲になるため)
カラーデプス 高い色深度をサポート(チャネルあたり最大16ビットまたは32ビット) 24ビットカラー(1670万色)
ユースケース プロフェッショナルフォトグラフィー、出版、スキャン、アーカイブ Web画像、ソーシャルメディア、日常の写真
透明性 透明性とアルファチャンネルをサポート するではない透明性をサポート
編集 複数の編集に適しており、再保存しても品質が低下しません 繰り返し編集や保存を行うと品質が劣化します
互換性 プロフェッショナルソフトウェアで広くサポートされています すべてのプラットフォームとデバイスで普遍的にサポートされています
アニメーション アニメーションをサポートしていません アニメーションをサポートしていません
メタデータ 広範なメタデータ(EXIF、レイヤーなど)を保存します。 EXIFメタデータを保存しますが、より限定されています。

異なるシナリオ

開発者は、各ユースケースを考慮して、アプリケーションが効果的に動作するようにさらに最適化する必要があります。 readPhotoは上述のようなTiffのような複雑なイメージに適していますが、結果の処理は遅くなります。 一方、jpgは品質が低い可能性がありますが、操作は一般的に高速になります。 しかし、ノイズがあるなど画像の品質が悪い場合、OCRの信頼率が低くなる可能性があります。

クラス IOcrResult を使用する OcrPhotoResults などのクラス内で、confidence プロパティを使用すると、結果の精度についてのアイデアを得ることができ、開発者は必要に応じてテスト、再評価、最適化を行うことができます。

開発者は効率性と正確性の間の適切なバランスを見つけ、画像が一貫性のある基準に達していることを確認するべきです。