IRONSOFTWAREHOME
他のコンポーネントと比較する

AWS対Google Vision(OCR機能の比較)

Kannaopat Udonpant
Kannapat Udonpant
Updated: 2026年6月28日

Dynamsoft Label Recognizerは、パスポートからのMRZ抽出、車両からのVINスキャン、工業用パッケージからの構造化ラベル読み取りという、極めて優れた機能を持つ1つのことだけを行い、それ以外のことは一切行わない。 その狭い専門知識は、アプリケーションに汎用的な文書OCR機能が必要になった途端、予算上の問題へと変わります。なぜなら、MRZ用のDynamsoft Label Recognizer、QRコード用のDynamsoft Barcode Reader、エッジ検出用のDynamsoft Document Normalizerのライセンスを取得する必要があり、さらにページ全体の文書を処理するための4つ目のライブラリを探し続けなければならないからです。 IronOCRはそれらの機能をすべて単一のNuGetパッケージで$999永続的にカバーします。

Dynamsoft Label Recognizerについて

カナダのバンクーバーに本社を置くDynamsoft Corporationは、ラベル認識製品を"制約のあるフォーマットで機械可読な構造化テキストを確実に認識する"という特定のコンセプトに基づいて開発した。 製品のNuGetパッケージはDynamsoft.DotNet.LabelRecognizerであり、その商用ライセンスは年会費制でのみ運用されており、永続オプションはありません。 現在の価格はDynamsoftにお問い合わせください。

このライブラリの認識モデルはテンプレート駆動型です。 JSON設定API(RecognizeByFileを呼び出します。 結果は、生のテキスト文字列を含む行結果の集合として返されます。 それらの文字列を意味のある構造化データに解析する(フィールドオフセット、日付変換、チェックデジット検証など)のは、すべてあなたの責任です。

Dynamsoft Label Recognizerの主なアーキテクチャ特性:

-テンプレートベースの認識エンジン: MRZ、VIN、およびラベルパターンは、認識前にJSONテンプレートの設定が必要です。

  • 生テキスト出力のみ: LineResultオブジェクトを返します; 構造化フィールドの解析なし -**画像のみの入力:**ネイティブのPDFサポートはありません。 PDFファイルは処理前に外部で画像に変換する必要があります。
  • 年間サブスクリプションライセンス: デバイスごとおよびサーバーごとのティアが利用可能です; 現在の価格はDynamsoftにお問い合わせください; no one-time purchase -**機能ごとに個別の製品:**バーコード読み取り、文書正規化、カメラ最適化にはそれぞれ個別のライセンス製品が必要です -**対応言語が限定的:**ラテン文字のMRZ形式に特化。 幅広い多言語ドキュメントのサポートが必要

JSONランタイム設定API

Dynamsoft Label Recognizerのすべてのワークフローは、テンプレート構成ステップから始まります。たとえば、MRZ認識では、画像処理を開始する前に、認識パラメータ、文字モデル、および領域参照を宣言するJSONドキュメントを読み込む必要があります。

using Dynamsoft.DLR;

public class DynamsoftMrzService : IDisposable
{
    private readonly LabelRecognizer _recognizer;

    public DynamsoftMrzService(string licenseKey)
    {
        // Static license initialization — must precede instance creation
        LabelRecognizer.InitLicense(licenseKey);
        _recognizer = new LabelRecognizer();

        // MRZ requires specific template configuration loaded as JSON
        string mrzTemplate = @"{
            ""LabelRecognizerParameterArray"": [{
                ""Name"": ""MRZ"",
                ""ReferenceRegionNameArray"": [""FullImage""],
                ""CharacterModelName"": ""MRZ""
            }]
        }";
        _recognizer.AppendSettingsFromString(mrzTemplate);
    }

    public string ExtractRawMrz(string passportImagePath)
    {
        var results = _recognizer.RecognizeFile(passportImagePath);

        // Returns raw MRZ text lines only — no field parsing
        var mrzLines = new StringBuilder();
        foreach (var result in results)
        {
            foreach (var lineResult in result.LineResults)
            {
                mrzLines.AppendLine(lineResult.Text);
            }
        }
        return mrzLines.ToString().Trim();
    }

    public void Dispose() => _recognizer?.Dispose();
}

P<GBRSMITH<<JOHN<<<<<<<<<<<<<<<<<<<<<<<<<<<のような生のMRZテキストです。 ExpiryDateを型付プロパティとして取得するには、TD1/TD2/TD3パーサーを自分で実装します。 このリポジトリのDynamsoftドキュメントとソースファイルは、そのパーサーを約150行のパースコードと見積もっています — 文字オフセット、<<名前セパレータ、二桁の年の曖昧さ回避、およびチェックディジットの検証を処理 — いずれもDynamsoftは提供していません。

IronOCRを理解する

IronOCRは、最適化されたTesseract 5エンジンをベースに構築された商用.NET OCRライブラリであり、前処理、入力フォーマット、構造化出力、および特殊なドキュメント解析を処理するマネージドAPIレイヤーを備えています。 インストールは単一のNuGetコマンドです: dotnet add package IronOcr。 ネイティブなバイナリ管理機能はなく、tessdataフォルダの設定も不要で、テンプレート設定ファイルもありません。

主な特徴:

-**汎用および専門用途:**全ページ文書のOCR、複数ページPDF、スキャン画像のバッチ処理、および特殊フォーマット(パスポート、バーコード、ナンバープレート)を同一パッケージで処理します。 -**自動前処理パイプライン:**デスク調整、ノイズ除去、コントラスト調整、二値化、解像度向上は、低品質の入力に対して手動設定なしで実行されます。 -**ネイティブPDFサポート:**スキャンされたPDFやデジタルPDFを、パスワードで保護されたファイルも含め、外部変換手順なしで直接読み込むことができます。 -**構造化された出力階層:**結果には、ページ、段落、行、単語、および信頼度スコア付きの文字境界ボックスが表示されます。

  • 内蔵バーコード読み取り: ocr.Configuration.ReadBarCodes = trueを有効にすると、バーコードが同じパスでテキストと共に抽出されます
  • **125以上の言語パック:**各言語は個別のNuGetパッケージとしてインストールされます。 tessdataフォルダ管理不要
  • 永続ライセンス: $999 Lite、$1,499 Plus、$2,399 Professional — 照会購入、すべてのプラットフォーム、すべての機能を含む -クロスプラットフォーム展開: Windows、Linux、macOS、Docker、AWS、Azureはすべて同じパッケージから動作し、プラットフォーム固有の設定は不要です。

機能比較

フィーチャーDynamsoft ラベル認識ツールIronOCR
一般文書OCRサポートされていませんフルサポート
MRZ抽出専門的な(生テキスト)解析済みフィールドを組み込んでいます
ネイティブPDF入力サポートされていませんはい
バーコード読み取り別製品(Dynamsoft バーコードリーダー)内蔵 (ReadBarCodes)
検索可能なPDF出力サポートされていませんはい
言語サポート限定(ラテン語:MRZ)125以上の言語
ライセンスモデル年間購読のみ永久ライセンス+定期購読オプション
完全なカバーに必要な製品3歳以上1

詳細な機能比較

フィーチャーDynamsoft ラベル認識ツールIronOCR
認識範囲
一般文書OCRサポートされていませんはい
MRZ認識専門はい (ReadPassport)
VIN認識専門はい(標準OCR経由)
工業用ラベルの読み取り専門はい
手書き文字認識サポートされていませんはい
表の抽出サポートされていませんはい
入力フォーマット
画像ファイル(JPG、PNG、TIFF)はいはい
PDF(ネイティブ)サポートされていませんはい
パスワードで保護されたPDFサポートされていませんはい
バイト配列/ストリームはいはい
複数ページにわたる文書手動集計はい(ネイティブ)
出力フォーマット
プレーンテキストはい(生の行)はい
構造化フィールド(解析済み)提供されていませんはい(ページ数、行数、単語数)
検索可能なPDFサポートされていませんはい
hOCRサポートされていませんはい
信頼度スコア行ごと単語ごと、行ごと、ページごと
前処理
自動前処理基本はい(インテリジェントパイプライン)
傾き/回転補正制限的はい
ノイズ除去制限的はい
コントラスト強調制限的はい
DPI正規化提供されていませんはい
統合機能
バーコード読み取り別製品内蔵
文書の正規化別製品不要
地域ベースのOCRはい(テンプレート経由)はい (CropRectangle)
スレッドセーフな並列処理はいはい
プラットフォームと展開
ウィンドウズはいはい
Linuxはいはい
macOSはいはい
Dockerはいはい
Azure / AWSはいはい
エアギャップ/オフラインはいはい
ライセンスと費用
年間サブスクリプションはい (価格についてはDynamsoftにお問い合わせください)オプション
永久ライセンス不可はい ($999 一度きり)
すべての機能を1つのパッケージで提供いいえ(3個以上の商品)はい
無料トライアル30日間はい

スペシャリストとジェネラリストの業務範囲

Dynamsoftが下した最も重要な設計上の決定は、汎用型ではなく専門型の開発を目指したことだ。この決定は、MRZやラベル読み取りから始まり、最終的にそれ以上の機能を必要とするあらゆるアプリケーションに直接的な影響を与える。

Dynamsoftのアプローチ

Dynamsoft Label Recognizerは、JSONテンプレートに記述されている内容のみを処理し、それ以外の処理は一切行いません。 Dynamsoftを基盤としたパスポート処理アプリケーションが、実際の文書ワークフローを処理するには、以下の3つの製品が必要です。

// Dynamsoft passport processing — MULTIPLE PRODUCTS REQUIRED

using Dynamsoft.DLR;  // Label Recognizer — for MRZ (annual subscription)
using Dynamsoft.DBR;  // Barcode Reader — for any barcodes (additional license)
// Plus: a separate OCR library — for full page text (more budget)

public class DynamsoftPassportProcessor : IDisposable
{
    private readonly LabelRecognizer _mrzRecognizer;
    private readonly BarcodeReader _barcodeReader;
    // private readonly SomeOtherOcrLibrary _fullTextOcr;  // third product

    public DynamsoftPassportProcessor(
        string mrzLicenseKey,
        string barcodeLicenseKey)
    {
        // License each product independently
        LabelRecognizer.InitLicense(mrzLicenseKey);
        _mrzRecognizer = new LabelRecognizer();

        // Configure MRZ template — JSON required before any recognition
        string mrzTemplate = @"{
            ""LabelRecognizerParameterArray"": [{
                ""Name"": ""MRZ_Passport"",
                ""ReferenceRegionNameArray"": [""FullImage""],
                ""CharacterModelName"": ""MRZ""
            }]
        }";
        _mrzRecognizer.AppendSettingsFromString(mrzTemplate);

        // Second product, second license key
        BarcodeReader.InitLicense(barcodeLicenseKey);
        _barcodeReader = new BarcodeReader();
    }

    public PassportResult ProcessPassport(string imagePath)
    {
        // Step 1: MRZ抽出 — raw text only, no field parsing
        var mrzResults = _mrzRecognizer.RecognizeFile(imagePath);
        var mrzText = new StringBuilder();
        foreach (var r in mrzResults)
            foreach (var line in r.LineResults)
                mrzText.AppendLine(line.Text);

        // Step 2: Parse MRZ manually — your 150-line TD3 parser here
        var parsedMrz = ParseMrzManually(mrzText.ToString());

        // Step 3: Barcodes — second product, second API
        var barcodeResults = _barcodeReader.DecodeFile(imagePath);

        // Step 4: Full page text — THIRD library, no Dynamsoft option
        // var fullText = _fullTextOcr.ReadImage(imagePath);

        return new PassportResult
        {
            ParsedMrz = parsedMrz,
            Barcodes = barcodeResults.Select(b => b.BarcodeText).ToList(),
            FullPageText = null  // requires a fourth product
        };
    }

    public void Dispose()
    {
        _mrzRecognizer?.Dispose();
        _barcodeReader?.Dispose();
    }
}
C#

上記のコードでは、PDF入力はまだ処理できません。 パスポートのスキャンデータがJPEGではなくPDF形式で届いた場合は、これらの処理を実行する前にPDFレンダリングライブラリを追加する必要があります。 実際のパスポートワークフローのための完全な統合:4つの製品、4つのライセンスキー、4つのメンテナンス画面。

IronOCRのアプローチ

IronOCRは、MRZ解析、ページ全体のOCR処理、バーコード処理、PDF入力といったパスポート関連のワークフローを、すべて1つのパッケージで処理します。

using IronOcr;

public class IronOcrPassportProcessor
{
    private readonly IronTesseract _ocr;

    public IronOcrPassportProcessor()
    {
        _ocr = new IronTesseract();
        _ocr.Configuration.ReadBarCodes = true;  // barcodes included
    }

    public CompletePassportResult ProcessPassport(string imagePath)
    {
        // Structured MRZ fields — no manual parsing required
        var mrzData = _ocr.ReadPassport(imagePath);

        // Full page OCR + barcodes in the same call
        var fullResult = _ocr.Read(imagePath);

        return new CompletePassportResult
        {
            // MRZ fields are already parsed properties
            DocumentType    = mrzData.DocumentType,
            IssuingCountry  = mrzData.IssuingCountry,
            Surname         = mrzData.Surname,
            GivenNames      = mrzData.GivenNames,
            PassportNumber  = mrzData.DocumentNumber,
            Nationality     = mrzData.Nationality,
            DateOfBirth     = mrzData.DateOfBirth,
            ExpiryDate      = mrzData.ExpiryDate,
            RawMrz          = mrzData.MRZ,

            // Full page text from same package
            FullPageText    = fullResult.Text,

            // Barcodes alongside text — no separate product
            Barcodes        = fullResult.Barcodes.Select(b => b.Value).ToList(),

            Confidence      = fullResult.Confidence
        };
    }
}

パッケージは1つ、ライセンスキーも1つ、APIも1つ。 パスポート読み取りガイドバーコード読み取り機能については、 IronOCRのドキュメントで両方とも同じ製品コンテキストで説明されています。これは、これらが同一製品であるためです。

複数製品のコストと複雑性

倉庫在庫スキャナーを構築することは、コストモデルの相違を最も明確に示す事例となる。 システムは、製品ラベル(テキスト)を読み取り、バーコード(QR/EAN)をスキャンし、添付された出荷PDFを処理する必要があります。 Dynamsoftの場合、それはそれぞれ独立したライセンスを持つ3つの製品であり、それぞれ異なる初期化パターンが用いられます。

Dynamsoftのアプローチ

// Dynamsoft warehouse scanner — THREE products, THREE license keys

using Dynamsoft.DLR;  // Label Recognizer — product labels
using Dynamsoft.DBR;  // Barcode Reader — product barcodes
using Dynamsoft.DDN;  // Document Normalizer — document edge detection

public class DynamsoftWarehouseScanner : IDisposable
{
    private readonly LabelRecognizer _labelRecognizer;
    private readonly BarcodeReader _barcodeReader;
    private readonly DocumentNormalizer _documentNormalizer;

    public DynamsoftWarehouseScanner(
        string labelLicenseKey,
        string barcodeLicenseKey,
        string documentLicenseKey)
    {
        LabelRecognizer.InitLicense(labelLicenseKey);
        _labelRecognizer = new LabelRecognizer();

        BarcodeReader.InitLicense(barcodeLicenseKey);
        _barcodeReader = new BarcodeReader();

        DocumentNormalizer.InitLicense(documentLicenseKey);
        _documentNormalizer = new DocumentNormalizer();
    }

    public WarehouseItemResult ScanItem(string imagePath)
    {
        // Three separate API calls, three result types to aggregate manually
        var labelResults   = _labelRecognizer.RecognizeFile(imagePath);
        var barcodeResults = _barcodeReader.DecodeFile(imagePath);
        var docResults     = _documentNormalizer.Normalize(imagePath);

        // Merge three result sets into one model — your code
        return AggregateResults(labelResults, barcodeResults, docResults);
    }

    public void Dispose()
    {
        _labelRecognizer?.Dispose();
        _barcodeReader?.Dispose();
        _documentNormalizer?.Dispose();
    }
}

出荷用PDFには依然として4つ目の製品が必要となる。DynamsoftにはネイティブのPDF OCR機能がないからだ。 Dynamsoft製品3種類の年間ライセンス料(サーバー単位):年間5,997ドル以上。 PDFライブラリを追加すると、ビジネスロジックを一行も記述する前から年間6,300ドル以上かかることになる。

IronOCRのアプローチ

using IronOcr;

public class IronOcrWarehouseScanner
{
    private readonly IronTesseract _ocr;

    public IronOcrWarehouseScanner()
    {
        _ocr = new IronTesseract();
        _ocr.Configuration.ReadBarCodes = true;  // barcodes in same pass
    }

    public WarehouseItemResult ScanItem(string imagePath)
    {
        // One call: text + barcodes + structured word positions
        var result = _ocr.Read(imagePath);

        return new WarehouseItemResult
        {
            AllText    = result.Text,
            Barcodes   = result.Barcodes.Select(b => new BarcodeInfo
                         { Format = b.Format.ToString(), Value = b.Value }).ToList(),
            Confidence = result.Confidence
        };
    }

    public string ScanLabelRegion(string imagePath, int x, int y, int width, int height)
    {
        // Target a specific label area — no template JSON required
        var region = new CropRectangle(x, y, width, height);
        using var input = new OcrInput();
        input.LoadImage(imagePath, region);
        input.Deskew();
        input.Contrast();

        return _ocr.Read(input).Text;
    }

    public string ProcessShipmentPdf(string pdfPath)
    {
        // Native PDF — no external library, no page conversion loop
        return _ocr.Read(pdfPath).Text;
    }
}

地域ベースのOCRドキュメントPDF入力ガイドについては、 IronOCRは追加製品なしで両方に対応しています。

展開モデル

両ライブラリともオンプレミスで運用されており、ドキュメントデータのクラウド送信は行っていません。 主な導入上の違いは、初期化パターン、構成ファイルの管理、および各ライブラリが導入成果物に同梱する内容にあります。

Dynamsoftのアプローチ

Dynamsoftでは、インスタンスを作成する前に、SDKクラスに対して静的初期化呼び出しを行う必要があります。 各製品にはそれぞれ独自の初期化パターンがあり、ライセンスキーはその特定の製品のみを有効化します。 テンプレート設定ファイル — MRZ、VIN、またはカスタムラベルパターン用のJSON設定文書 — は実行時に存在し、正しく参照されている必要があります。Label RecognizerおよびBarcode Readerを含むデプロイメントは、2つのアクティベーションフロー、2つのテンプレートセット、および2つのDisposeチェーンを管理します。

倉庫やキオスクへの展開の場合、構成ファイルの依存関係により、バイナリファイルに加えて展開アーティファクトが追加されます。 JSONテンプレートは別ファイルであり、パッケージにはコンパイルされません。 新しいサーバーでテンプレートパスを誤設定すると、認識は静かに空の結果を返すか、実行時にAppendSettingsFromStringコール中にスローされます。

IronOCRのアプローチ

IronOCRは単一のNuGetパッケージとしてデプロイされます。 ライセンス認証は、1行の文字列による割り当てです。

// Application startup — one line, works for all features
IronOcr.License.LicenseKey = Environment.GetEnvironmentVariable("IRONOCR_LICENSE");

テンプレートファイルがありません。 ネイティブなバイナリ管理機能はありません。 tessdataフォルダがありません。 Docker展開ガイドはLinux上でlibgdiplusのみを必要とします — Dockerfileの1つのapt-get install行です。

FROM mcr.microsoft.com/dotnet/aspnet:8.0
RUN apt-get update && apt-get install -y libgdiplus
COPY --from=build /app/publish /app
WORKDIR /app
ENTRYPOINT ["dotnet", "YourApp.dll"]
Text

同じパッケージで、プラットフォーム固有の設定なしに、 LinuxAWS LambdaAzure App Serviceをサポートします。 CI/CDパイプラインを実行しているチームの場合、バージョン管理や成果物のデプロイを個別に行うためのテンプレートファイルは存在しません。

APIマッピングリファレンス

Dynamsoft ラベル認識ツールIronOCR相当値
LabelRecognizer.InitLicense(key)IronOcr.License.LicenseKey = key
new LabelRecognizer()new IronTesseract()
_recognizer.AppendSettingsFromString(json)不要 — エンジンが自動構成します
_recognizer.RecognizeFile(path)ocr.Read(path)
_recognizer.RecognizeByFile(path, "")ocr.Read(path)
result.LineResults[i].Textresult.Lines[i].Text
手動 TD3 MRZ パーサー (150 行以上)ocr.ReadPassport(path).Surname など。
BarcodeReader.InitLicense(key) (別製品)ocr.Configuration.ReadBarCodes = true
_barcodeReader.DecodeFile(path)result.Barcodes (OCRと同じコール)
barcode.BarcodeFormatStringbarcode.Format.ToString()
barcode.BarcodeTextbarcode.Value
DocumentNormalizer.InitLicense(key) (別製品)不要
PDFはサポートされていませんocr.Read("document.pdf")
検索可能なPDF出力はありませんresult.SaveAsSearchablePdf(path)
recognizer.Dispose()using var ocr = new IronTesseract()

チームがDynamsoftからIronOCRへの移行を検討する際

適用範囲はMRZやラベルを超えて拡大

移行の大部分は、プロジェクトが"パスポートのMRZを読み取るだけ"といった狭い範囲で開始され、その後製品要件が提示されたときに発生します。クライアントは、スキャンしたパスポートを検索可能なPDFとしてアーカイブしたいと考えています。 コンプライアンスチームはビザスタンプをOCR処理したいと考えています。 サポートキューには、Dynamsoftが取り込めないPDFに関するチケットが寄せられています。その場合、チームはMRZ用のDynamsoftにPlus、それ以外のすべてのファイルに対応する別のOCRライブラリを維持管理します。 同じコードベース内に、2つのライセンス契約、2つのメンテナンス手順、2つのAPIパターンが存在する。 IronOCRは元のMRZ要件をIronTesseractインスタンスを通じて扱います。 2つのライブラリシステムから1つのパッケージに移行したチームは、通常、統合レイヤーのコードが30~40%削減されたと報告している。

年間購読料は持続可能ではない

複数製品のDynamsoftライセンスコストは毎年累積されます — 現在の価格はDynamsoftにお問い合わせください。 複数年にわたり、複数製品の年間サブスクリプション料金の合計がIronOCRの$999一度きりのコストを大幅に超えることがあります。永続ライセンシングモデルは商用製品寿命が定義された製品にとって最も重要です — 7年間動作する政府の文書処理システムは、コアコンポーネント用の専門ベンダーへの年次更新依存性を望んでいません。

PDF入力は必須です

Dynamsoft Label Recognizerは、PDFをネイティブでサポートしていません。 PDF形式で配信されるすべての文書には、前処理ステップが必要です。各ページを画像にレンダリングし、その画像をDynamsoftに通し、結果を収集して再構成します。 そのパイプラインでは、PDFレンダリングへの依存関係、ページ反復ループ、そして認識結果を元のPDFジオメトリに関連付ける必要がある場合は座標マッピングの問題が発生します。 IronOCRはPDFをネイティブに読み取り — result.Pagesがページごとのテキスト、単語、信頼スコアへのアクセスを提供します。 入力データの20%以上がPDFファイルであるチームにとって、Dynamsoftの回避策は、PDFレンダリングライブラリが更新されるたびに、かなりのメンテナンス負担を追加することになります。

複数製品統合税が高すぎる

追加のDynamsoft製品ごとに、管理する独立した静的初期化コール、独立したDisposeチェーン、そして独立したJSON設定ファイルがあります。 Dynamsoftの3つの製品を統合したチームは、統合に伴う主なメンテナンスコストは認識品質ではなく、統合面にあると報告している。 ライセンスキーのローテーション、SDKバージョンのアップグレード、およびテンプレートファイルの展開は、3つの製品すべてにおいて同時に調整する必要があります。 IronOCRのシングルパッケージモデルは、アプリケーションが使用するOCR機能の数に関係なく、アップグレードするバージョンは1つ、ローテーションするライセンスキーは1つ、維持管理するAPIインターフェースも1つで済むことを意味します。

国際文書の種類が必要です

Dynamsoft Label Recognizerは、ICAO Doc 9303に準拠したラテン文字のMRZフォーマットに基づいて構築されています。そのため、CJK言語の身分証明書、アラビア文字のパスポート、または多言語の出荷ラベルを処理するアプリケーションは、すぐに言語対応の限界に達してしまいます。 IronOCRは、アラビア語、中国語(簡体字)、中国語(繁体字)、日本語、韓国語など、125以上の言語パックを個別のNuGetパッケージとして提供しています。 それぞれdotnet add package IronOcr.Languages.Arabicを通じて認識コードを変更せずにインストールされます。 多言語対応ガイドでは、数行の設定で同時多言語認識を実現する方法を解説しています。

一般的な移行の考慮事項

MRZパーサーの置き換え

最も直接的な移行手順は、DynamsoftのReadPassportに置き換えることです。 Dynamsoftの抽出経路はP<GBRSMITH<<JOHN<<<<<<<<<<<<<<<<<<<<<<<<<<のような生テキストを返し、TD3形式のために150行以上の文字オフセットパースが必要です。 IronOCRの代替ソフト:

// Before: Dynamsoft raw extraction + manual 150-line parser
var results = _recognizer.RecognizeFile(imagePath);
var rawMrz = string.Join("\n", results.SelectMany(r => r.LineResults).Select(l => l.Text));
var parsed = MyTd3Parser.Parse(rawMrz);  // delete this file

// After: IronOCR parsed output directly
var passportData = new IronTesseract().ReadPassport(imagePath);
string surname  = passportData.Surname;
string docNum   = passportData.DocumentNumber;
DateTime? dob   = passportData.DateOfBirth;

手動パーサーは完全に削除されました。 TD1(IDカード)、TD2(ビザ)、およびTD3(パスポート)フォーマット検出はReadPassport内で自動的に行われます。 パスポートの読み取り方法に関する説明書には、返されたすべての項目が記載されています。

複数製品の初期化の統合

Dynamsoftのマルチ製品アプリケーションは起動時に複数の静的InitLicenseコールがあり、それぞれに固有のキーが必要です。 これらを単一のIronOCRライセンス行に統合し、製品ごとの初期化ブロックを削除します。

// Before: three static initializations
LabelRecognizer.InitLicense(mrzKey);
BarcodeReader.InitLicense(barcodeKey);
DocumentNormalizer.InitLicense(documentKey);

// After: one line, all capabilities enabled
IronOcr.License.LicenseKey = Environment.GetEnvironmentVariable("IRONOCR_LICENSE");

var ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;  // barcodes included automatically

サービスクラス内の既存のDynamsoftIronTesseractブロック、またはDIコンテナに登録された1つの再利用されるインスタンスで置き換えるべきです。 IronTesseractのセットアップガイドでは、両方のパターンについて説明しています。

PDFサポートを追加

移行中にチームが新たに獲得する最も一般的な機能は、ネイティブのPDF入力機能です。これはDynamsoftがこれまで提供していなかった機能です。 PDFから画像への変換ループを削除した後、ネイティブなPDF読み取りには、入力パス以外のコード変更は不要です。

// Before: PDF rendering loop (50+ lines with external library)
var pdfDoc = PdfDocument.Load(pdfPath);
foreach (var page in pdfDoc.Pages)
{
    var bitmap = page.RenderAsBitmap(150);
    var results = _labelRecognizer.RecognizeFile(SaveBitmapToTemp(bitmap));
    // aggregate...
}

// After: native PDF — no loop, no external library
var result = new IronTesseract().Read(pdfPath);
string fullText = result.Text;
result.SaveAsSearchablePdf("searchable-output.pdf");

スキャンされた入力から検索可能なPDFアーカイブを作成する必要があるチームにとって、SaveAsSearchablePdfは単一のメソッドコールです。 検索可能なPDF形式のハウツーガイドには、出力オプションの詳細が記載されています。

工業用ラベル品質のための前処理

Dynamsoftのテンプレートエンジンは、ラベルの条件を厳密に管理できるように最適化されています。 劣化した画像(摩耗したラベル、コントラストの低いパッケージ、歪んだ工業用スキャン画像など)の場合、IronOCRの前処理パイプラインがそのギャップを埋めます。画像品質補正ガイドでは、各フィルターについて詳しく説明しています。 ラベル固有のワークフローにおいて、Contrastが最も有用です:

using var input = new OcrInput();
input.LoadImage(labelImagePath);
input.Deskew();    // correct rotation from handheld scanner
input.Contrast();  // recover faded label text
input.DeNoise();   // remove packaging texture interference

var labelText = new IronTesseract().Read(input).Text;
Console.WriteLine($"Confidence: {new IronTesseract().Read(input).Confidence}%");

IronOCRの追加機能

上記のセクションでは触れられていないものの、移行後にチームが頻繁に使用する機能:

-**手書き文字認識手書きのメモや注釈を印刷されたテキストと並べて処理します。これはDynamsoftにはない機能です。 -スキャン文書処理複数ページのPDFスキャンをページごとに自動前処理 -テーブル抽出:**請求書、マニフェスト、データシートから表形式データを検出して抽出します。

  • hOCRエクスポート認識結果をHTML形式でエクスポートし、後続のレイアウト分析のために境界ボックス座標を含める。 -非同期OCR ASP.NETおよび高スループットのサーバーアプリケーション向けの非ブロッキング認識 -**進捗状況の追跡:**進捗コールバックを使用して、複数ページのバッチジョブを監視します。
  • **125以上の言語インデックス:**非ラテン文字を含む、サポートされている言語NuGetパックの完全なリスト
  • **MICR/小切手読み取り金融文書処理のための磁気インク文字認識 — 1つのパッケージで処理されるもう1つの専門的なユースケース -単語ごとの信頼度スコア:**自動文書レビューパイプラインのためのきめ細かな品質シグナル

.NETの互換性と将来の準備

IronOCRは、 .NET 8および.NET 9を主要なサポート対象ランタイムとして指定し、 .NET Framework 4.6.2および.NET Core 3.1との完全な下位互換性を備えています。このライブラリは単一のNuGetパッケージとして提供され、NuGetのランタイム識別子グラフを通じて、Windows x64、Windows x86、Linux x64、macOS x64、およびmacOS ARM用の適切なプラットフォームバイナリを自動的に解決します。条件付きパッケージ参照やプラットフォーム固有のプロジェクトファイルは不要です。 Dynamsoft Label Recognizerも同様に最新 for .NETランタイムをサポートしていますが、マルチプロダクトモデルを採用しているため、各製品 for .NET互換性は個別に検証および更新する必要があります。 IronOCRの活発な開発サイクルにより、 NuGetパッケージの更新は各.NETリリースサイクルに合わせて行われ、シングルパッケージモデルを採用しているため、2026年後半に予定されている.NET 10との互換性は、製品ごとの追跡なしにすべての機能に一律に適用されます。

結論

Dynamsoft Label Recognizerは、技術的に優れた専門ツールです。パスポートのMRZのみを処理するキオスク端末や、VINコードのみを読み取る組立ラインのステーションなど、特定の用途向けに、テンプレート駆動型の認識エンジンが信頼性の高い処理を実現します。 問題は、実際の応用例は狭い範囲にとどまることはほとんどないということだ。 パスポートは、データページ全体をOCR処理する必要があります。 配送ラベルはPDFファイルで届きます。 在庫管理システムでは、バーコードとテキストを同じ処理で取得する必要があります。 事業範囲を拡大するたびに、新たなDynamsoft製品、新たな年間ライセンス、そして新たなAPIインターフェースの保守が必要になります。

コストモデルはこれを具体的に示す。 Dynamsoftの年間サブスクリプションモデルを使用する開発チームによるMRZとバーコード読み取りの複数年の合計は、かなりの額になります。 IronOCRは両方の機能をカバーしており、ネイティブPDF、検索可能なPDF出力、完全なドキュメントOCR、125以上の言語、および前処理も含まれます — ocr.Readに置き換え、手動のTD3 MRZパーサーを削除し、ReadBarCodes = trueを有効にし、外部PDFレンダリングループを削除します。

アーキテクチャ上の違いはコストだけではありません。Dynamsoftの設計では、チームは機能ではなく製品という観点から考えることを強いられます。つまり、コードを書く前に"どのDynamsoft製品がこれを処理できるのか?"と自問自答する必要があるのです。 IronOCRの設計はそれを逆転させています。文書の内容に関係なく、インスタンスは1つ、設定も1つ、結果オブジェクトも1つです。 その差は、プロジェクトの進行に伴い要件が増えるにつれて、ますます大きくなる。

MRZ認識、バーコード読み取り、一般的な文書OCR、またはPDF処理のいずれかの組み合わせを必要とする新規アプリケーションを開発するチームにとって、IronOCRのオールインワンモデルは、最初から複数製品間の連携問題を解消します。 現在、複数のDynamsoft製品と別途OCRライブラリを併用しているチームにとって、この移行パスは、それらの依存関係を単一のものに統合するものです。 IronOCRのドキュメントハブには、ここで説明したすべての機能が、動作するコード例と導入ガイドとともに網羅されています。

ご注意: DynamsoftとTesseractはそれぞれの所有者の登録商標です。 このサイトはDynamsoftやGoogleから提携、承認、提供されていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。