画像ファイルからテキストを抽出する方法

C#でのテッセラクトの使い方

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

C# での Iron Tesseract は IronTesseract インスタンスを作成し、言語とOCR設定で構成し、画像またはPDFを含む OcrInput オブジェクトで Read() メソッドを呼び出すことで使用されます。 これにより、Tesseract 5 の最適化されたエンジンを使用して、テキストの画像を検索可能なPDFに変換します。

IronOCR は、Iron Tesseract と呼ばれるカスタマイズおよび最適化された Tesseract 5 を利用するための直感的な API を提供します。 IronOCR および IronTesseract を使用することで、テキストの画像やスキャンされたドキュメントをテキストおよび検索可能なPDFに変換できるようになります。 ライブラリは、125の国際言語をサポートし、BarCode読み取りコンピュータビジョンのような高度な機能を含んでいます。

クイックスタート: C#でのIronTesseract構成の設定

この例は、特定の設定で IronTesseract を構成し、1行のコードでOCRを実行する方法を示します。

  1. IronOCR をNuGetパッケージマネージャでインストール

    PM > Install-Package IronOcr
  2. このコード スニペットをコピーして実行します。

    var result = new IronOcr.IronTesseract { Language = IronOcr.OcrLanguage.English, Configuration = new IronOcr.TesseractConfiguration { ReadBarCodes = false, RenderSearchablePdf = true, WhiteListCharacters = "ABCabc123" } }.Read(new IronOcr.OcrInput("image.png"));
  3. 実際の環境でテストするためにデプロイする

    今日プロジェクトで IronOCR を使い始めましょう無料トライアル

    arrow pointer

どのようにIronTesseractインスタンスを作成しますか?

このコードでTesseractオブジェクトを初期化する:

:path=/static-assets/ocr/content-code-examples/how-to/irontesseract-initialize-irontesseract.cs
using IronOcr;

IronTesseract ocr = new IronTesseract();
Imports IronOcr

Dim ocr As New IronTesseract()
$vbLabelText   $csharpLabel

さまざまな言語を選択して、バーコード読み取りを有効にし、文字をホワイトリストまたはブラックリスト化することによって IronTesseract の動作をカスタマイズできます。 IronOCRは、OCRプロセスを微調整するための包括的な設定オプションを提供します:

:path=/static-assets/ocr/content-code-examples/how-to/irontesseract-configure-irontesseract.cs
IronTesseract ocr = new IronTesseract
{
    Configuration = new TesseractConfiguration
    {
        ReadBarCodes = false,
        RenderHocr = true,
        TesseractVariables = null,
        WhiteListCharacters = null,
        BlackListCharacters = "`ë|^",
    },
    MultiThreaded = false,
    Language = OcrLanguage.English,
    EnableTesseractConsoleMessages = true, // False as default
};
Dim ocr As New IronTesseract With {
	.Configuration = New TesseractConfiguration With {
		.ReadBarCodes = False,
		.RenderHocr = True,
		.TesseractVariables = Nothing,
		.WhiteListCharacters = Nothing,
		.BlackListCharacters = "`ë|^"
	},
	.MultiThreaded = False,
	.Language = OcrLanguage.English,
	.EnableTesseractConsoleMessages = True
}
$vbLabelText   $csharpLabel

構成後、Tesseract機能を使用して OcrInput オブジェクトを読み取ることができます。 OcrInputクラスは、さまざまな入力フォーマットを読み込むための柔軟なメソッドを提供します:

:path=/static-assets/ocr/content-code-examples/how-to/irontesseract-read.cs
IronTesseract ocr = new IronTesseract();

using OcrInput input = new OcrInput();
input.LoadImage("attachment.png");
OcrResult result = ocr.Read(input);
string text = result.Text;
Dim ocr As New IronTesseract()

Using input As New OcrInput()
	input.LoadImage("attachment.png")
	Dim result As OcrResult = ocr.Read(input)
	Dim text As String = result.Text
End Using
$vbLabelText   $csharpLabel

複雑なシナリオでは、マルチスレッド機能を活用して複数のドキュメントを同時に処理し、バッチ処理のパフォーマンスを大幅に向上させることができます。

Tesseractの高度な設定変数とは

IronOCR Tesseract インターフェースでは、IronOcr.TesseractConfiguration クラスを通じて Tesseract 構成変数を完全に制御できます。 これらの高度な設定により、低品質スキャンの修正特定のドキュメント タイプの読み取りなど、特定の使用ケースに合わせて OCR のパフォーマンスを最適化できます。

コード内でTesseractコンフィギュレーションを使用するには?

:path=/static-assets/ocr/content-code-examples/how-to/irontesseract-tesseract-configuration.cs
using IronOcr;
using System;

IronTesseract Ocr = new IronTesseract();

Ocr.Language = OcrLanguage.English;
Ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Configure Tesseract Engine
Ocr.Configuration.TesseractVariables["tessedit_parallelize"] = false;

using var input = new OcrInput();
input.LoadImage("/path/file.png");

OcrResult Result = Ocr.Read(input);
Console.WriteLine(Result.Text);
Imports IronOcr
Imports System

Private Ocr As New IronTesseract()

Ocr.Language = OcrLanguage.English
Ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd

' Configure Tesseract Engine
Ocr.Configuration.TesseractVariables("tessedit_parallelize") = False

Dim input = New OcrInput()
input.LoadImage("/path/file.png")

Dim Result As OcrResult = Ocr.Read(input)
Console.WriteLine(Result.Text)
$vbLabelText   $csharpLabel

IronOCRはまた、異なるドキュメントタイプに特化した設定を提供します。例えば、パスポートの読み取りMICR小切手の処理では、特定の前処理フィルターや領域検出を適用して精度を向上させることができます。

財務文書の構成例

:path=/static-assets/ocr/content-code-examples/how-to/iron-tesseract-6.cs
// Example: Configure for financial documents
IronTesseract ocr = new IronTesseract
{
    Language = OcrLanguage.English,
    Configuration = new TesseractConfiguration
    {
        PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock,
        TesseractVariables = new Dictionary<string, object>
        {
            ["tessedit_char_whitelist"] = "0123456789.$,",
            ["textord_heavy_nr"] = false,
            ["edges_max_children_per_outline"] = 10
        }
    }
};

// Apply preprocessing filters for better accuracy
using OcrInput input = new OcrInput();
input.LoadPdf("financial-document.pdf");
input.Deskew();
input.EnhanceResolution(300);

OcrResult result = ocr.Read(input);
Imports IronOcr

' Example: Configure for financial documents
Dim ocr As New IronTesseract With {
    .Language = OcrLanguage.English,
    .Configuration = New TesseractConfiguration With {
        .PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock,
        .TesseractVariables = New Dictionary(Of String, Object) From {
            {"tessedit_char_whitelist", "0123456789.$,"},
            {"textord_heavy_nr", False},
            {"edges_max_children_per_outline", 10}
        }
    }
}

' Apply preprocessing filters for better accuracy
Using input As New OcrInput()
    input.LoadPdf("financial-document.pdf")
    input.Deskew()
    input.EnhanceResolution(300)

    Dim result As OcrResult = ocr.Read(input)
End Using
$vbLabelText   $csharpLabel

すべてのTesseract構成変数の完全なリストは何ですか?

これらは IronTesseract.Configuration.TesseractVariables["key"] = value; を使用して設定できます。 設定変数を使用すると、特定のドキュメントで最適な結果を得るためにOCRの動作を微調整することができます。 OCR パフォーマンスの最適化に関する詳細なガイダンスについては、高速 OCR 設定ガイドを参照してください。

Tesseract 設定変数 Default 意味
分類番号cpレベル3クラスプルーナーレベルの数
textord_debug_tabfind0デバッグタブの検出
textord_debug_bugs0タブ検索のバグに関する出力をオンにする
textord_testregion_left-1デバッグレポートの四角形の左端
textord_testregion_top-1デバッグレポートの四角形の上端
テキストコード_テスト領域_右2147483647デバッグ長方形の右端
テキストコード_テスト領域_下2147483647デバッグ用四角形の下端
textord_tabfind_show_partitions0パーティション境界を表示し、>1 の場合は待機します
デバナガリ_スプリット_デバッグレベル0分割された shiro-rekha プロセスのデバッグ レベル。
アウトラインあたりのエッジの最大子数10キャラクターアウトライン内の子の最大数
エッジの最大子レイヤー数5文字アウトライン内のネストされた子の最大レイヤー数
孫あたりのエッジの子数10チャッキングアウトラインの重要度比
エッジの子の数の制限45ブロブに許容される最大穴数
エッジの最小非穴12ボックス内の文字の最小ピクセル数
エッジパス面積比40Max lensq/area for acceptable child outline
textord_fp_chop_error2チョップセルの最大許容曲げ
textord_tabfind_show_images0Show image blobs
textord_skewsmooth_offset4スムーズファクター
textord_skewsmooth_offset21スムーズファクター
テキストードテストx-2147483647検査患者の座標
テキストord_test_y-2147483647検査患者の座標
行内のテキストワードの最小ブロブ数4勾配をカウントする前の最小ブロブ数
テキストードスプライン最小ブロブ8Min blobs in each spline segment
テキストフォードスプライン中央値勝利6Size of window for spline segmentation
テキストオード最大ブロブオーバーラップ4Max number of blobs a big blob can overlap
テキストord_min_xheight10Min credible pixel xheight
textord_lms_line_trials12Number of linew fits to do
古い穴あき損失数10Max lost before fallback line used
pitsync_linear_version6Use new fast algorithm
ピットシンクフェイクデプス1Max advance fake generation
textord_tabfind_show_strokewidths0Show stroke widths
テキストードドットマトリックスギャップ3Max pixel gap for broken pixed pitch
テキストコードデバッグブロック0Block to do debug on
テキストピッチ範囲2Max range test on pitch
テキストワード拒否権5Rows required to outvote a veto
方程式検出_保存_bi_image0Save input bi image
方程式検出_save_spt_image0Save special character image
方程式検出_保存_シード画像0Save the seed image
方程式検出_マージされた画像を保存0Save the merged image
ポリデバッグ0Debug old poly
ポリワイドオブジェクトより良い1More accurate approx on wide things
単語記録表示分割0Display splits
textord_debug_printable0Make debug windows printable
textord_space_size_is_variable0If true, word delimiter spaces are assumed to have variable width, even though characters have fixed pitch.
textord_tabfind_show_initial_partitions0Show partition bounds
textord_tabfind_show_reject_blobs0Show blobs rejected as noise
textord_tabfind_show_columns0Show column bounds
textord_tabfind_show_blocks0Show final block bounds
textord_tabfind_find_tables1run table detection
デバナガリ_スプリット_デバッグイメージ0Whether to create a debug image for split shiro-rekha process.
textord_show_fixed_cuts0Draw fixed pitch cell boundaries
エッジ使用の新しいアウトラインの複雑さ0Use the new outline complexity module
エッジデバッグ0turn on debugging for this module
エッジの子供の修正0Remove boxy parents of char-like children
ギャップマップデバッグ0Say which blocks have tables
ギャップマップの使用終了0Use large space at start and end of rows
ギャップマップ_no_isolated_quanta0Ensure gaps not less than 2quanta wide
テキストードヘビーnr0Vigorously remove noise
textord_show_initial_rows0Display row accumulation
textord_show_parallel_rows0Display page correlated rows
textord_show_expanded_rows0Display rows after expanding
textord_show_final_rows0Display rows after final fitting
textord_show_final_blobs0Display blob bounds after pre-ass
textord_test_landscape0Tests refer to land/port
textord_parallel_baselines1Force parallel baselines
テキストコード_ストレート_ベースライン0Force straight baselines
textord_old_baselines1Use old baseline algorithm
テキストード古いx高さ0Use old xheight algorithm
textord_fix_xheight_bug1Use spline baseline
textord_fix_makerow_bug1Prevent multiple baselines
textord_debug_xheights0Test xheight algorithms
textord_biased_skewcalc1Bias skew estimates with line length
textord_interpolating_skew1Interpolate across gaps
テキストード_新しい_初期_x高さ1Use test xheight mechanism
テキストード_デバッグ_ブロブ0Print test blob information
テキストード_本当に古い_x高さ0Use original wiseowl xheight
textord_oldbl_debug0Debug old baseline generation
textord_debug_baselines0Debug baseline generation
textord_oldbl_paradef1Use para default mechanism
textord_oldbl_split_splines1Split stepped splines
textord_oldbl_merge_parts1Merge suspect partitions
古いbl_corrfix1Improve correlation of heights
古いbl_xhfix0Fix bug in modes threshold for xheights
テキストードオクロプスモード0Make baselines for ocropus
textord_tabfind_only_strokewidths0Only run stroke widths
textord_tabfind_show_initialtabs0Show tab candidates
textord_tabfind_show_finaltabs0Show tab vectors
textord_show_tables0Show table regions
textord_tablefind_show_mark0Debug table marking steps in detail
textord_tablefind_show_stats0Show page stats used in table finding
textord_tablefind_recognize_tables0Enables the table recognizer for table layout and filtering.
textord_all_prop0All doc is proportial text
textord_debug_pitch_test0Debug on fixed pitch test
textord_disable_pitch_test0Turn off dp fixed pitch algorithm
テキストコード_fast_pitch_test0Do even faster pitch algorithm
テキストコード_デバッグ_ピッチ_メトリック0Write full metric stuff
textord_show_row_cuts0Draw row-level cuts
textord_show_page_cuts0Draw page-level cuts
テキストードピッチチート0Use correct answer for fixed/prop
textord_blockndoc_fixed0Attempt whole doc/block fixed pitch
textord_show_initial_words0Display separate words
textord_show_new_words0Display separate words
textord_show_fixed_words0Display forced fixed pitch words
textord_blocksall_fixed0Moan about prop blocks
textord_blocksall_prop0Moan about fixed pitch blocks
textord_blocksall_testing0Dump stats when moaning
テキストードテストモード0Do current test
textord_pitch_rowsimilarity0.08Fraction of xheight for sameness
単語の頭文字0.5Max initial cluster size
単語の頭文字0.15Min initial cluster spacing
単語のデフォルトプロパティ非スペース0.25Fraction of xheight
単語のデフォルト固定スペース0.75Fraction of xheight
単語数のデフォルト制限0.6Allowed size variance
テキストワードの明確な広がり0.3Non-fuzzy spacing region
テキストスペースサイズ比2.8Min ratio space/nonspace
textord_spacesize_ratioprop2Min ratio space/nonspace
テキストord_fpiqr_ratio1.5Pitch IQR/Gap IQR threshold
テキストード最大ピッチiqr0.2Xh fraction noise in pitch
テキストフォードfpの最小幅0.5Min width of decent blobs
テキスト下線オフセット0.1Fraction of x to ignore
ambigs_debug_level0Debug level for unichar ambiguities
デバッグレベルを分類する0Classify debug level
分類規範法1Normalization Method ...
マッチャーデバッグレベル0Matcher Debug Level
マッチャーデバッグフラグ0Matcher Debug Flags
分類学習デバッグレベル0Learning Debug Level:
マッチャー永続クラス最小値1Min # of permanent classes
プロトタイプ作成のためのmatcher_min_examples3Reliable Config Threshold
プロトタイプ作成のための十分な例のマッチング5Enable adaption even if the ambiguities have not been seen
分類_適応_プロト_しきい値230Threshold for good protos during adaptive 0-255
分類_適応_特徴_しきい値230Threshold for good features during adaptive 0-255
分類クラスプルーナーしきい値229Class Pruner Threshold 0-255
分類クラスプルーナー乗数15Class Pruner Multiplier 0-255:
分類_cp_カットオフ_強度7Class Pruner CutoffStrength:
整数マッチャー乗数分類10Integer Matcher Multiplier 0-255:
dawg_debug_level0Set to 1 for general debug info, to 2 for more details, to 3 to see all the debug messages
ハイフンデバッグレベル0Debug level for hyphenated words.
ストッパー_smallword_size2Size of dict word to be treated as non-dict word
ストッパーデバッグレベル0Stopper debug level
tessedit_truncate_wordchoice_log10Max words to keep in list
最大試行回数10000Maximum number of different character choices to consider during permutation. This limit is especially useful when user patterns are specified, since overly generic patterns can result in dawg search exploring an overly large number of options.
修復されていないBLOB1Fix blobs that aren't chopped
チョップデバッグ0Chop debug
チョップスプリット長さ10000Split Length
同じ距離を切り取る2Same distance
最小アウトラインポイントを切り取る6Min Number of Points on Outline
チョップシームパイルサイズ150Max number of seams in seam_pile
チョップインサイドアングル-50Min Inside Angle Bend
最小アウトライン面積2000Min Outline Area
チョップ中央最大幅90Width of (smaller) chopped blobs above which we don't care that a chop is not near the center.
チョップ_x_y_ウェイト3X / Y length weight
wordrec_debug_level0Debug level for wordrec
wordrec_max_join_chunks4Max number of broken pieces to associate
セグメント検索デバッグレベル0SegSearch debug level
セグメント検索最大痛みポイント2000Maximum number of pain points stored in the queue
segsearch_max_futile_classifications20Maximum number of pain point classifications per chunk that did not result in finding a better word choice.
言語モデルのデバッグレベル0Language model debug level
言語モデルngram順序8Maximum order of the character ngram model
言語モデルビタービリストの最大プルーニング可能数10Maximum number of prunable (those for which PrunablePath() is true) entries in each viterbi list recorded in BLOB_CHOICEs
言語モデルビタービリストの最大サイズ500Maximum size of viterbi lists recorded in BLOB_CHOICEs
言語モデルの最小複合長3Minimum length of compound words
ワードレック_ディスプレイ_セグメンテーション0Display Segmentations
tessedit_pageseg_mode6Page seg mode: 0=osd only, 1=auto+osd, 2=auto_only, 3=auto, 4=column, 5=block_vert, 6=block, 7=line, 8=word, 9=word_circle, 10=char,11=sparse_text, 12=sparse_text+osd, 13=raw_line (Values from PageSegMode enum in tesseract/publictypes.h)
tessedit_ocr_engine_mode2Which OCR engine(s) to run (Tesseract, LSTM, both). Defaults to loading and running the most accurate available.
ページeg_devanagari_split_strategy0Whether to use the top-line splitting process for Devanagari documents while performing page-segmentation.
ocr_devanagari_split_strategy0Whether to use the top-line splitting process for Devanagari documents while performing ocr.
bidi_debug0Debug level for BiDi
適用ボックスデバッグ1Debug level
適用ボックスページ0Page number to apply boxes from
tessedit_bigram_debug0Amount of debug output for bigram correction.
デバッグノイズ除去0Debug reassignment of small outlines
ノイズ最大ブロブ8Max diacritics to apply to a blob
単語あたりのノイズ最大値16Max diacritics to apply to a word
デバッグ_x_ht_レベル0Reestimate debug
品質_最小_初期_アルファ値_必要2alphas in a good word
tessedit_tess_adaption_mode39Adaptation decision algorithm for tess
マルチ言語デバッグレベル0Print multilang debug info.
段落デバッグレベル0Print paragraph debug info.
tessedit_preserve_min_wd_len2Only preserve wds longer than this
クランチレーティングマックス10For adj length in rating per ch
クランチポットインジケーター1How many potential indicators needed
クランチ_leave_lc_strings4Don't crunch words with long lower case strings
クランチ_leave_uc_strings4Don't crunch words with long lower case strings
クランチロングレペティション3Crunch words with long repetitions
crunch_debug0As it says
fixsp_non_noise_limit1How many non-noise blbs either side?
fixsp_done_mode1What constitues done for spacing
デバッグ修正スペースレベル0Contextual fixspace debug
x_ht_許容値8Max allowed deviation of blob top outside of font data
x_ht_min_change8Min change in xht before actually trying it
上付き文字デバッグ0Debug level for sub & superscript fixer
jpg_品質85Set JPEG quality level
ユーザー定義dpi0Specify DPI for input image
試す最小文字数50Specify minimum characters to try during OSD
suspect_level99Suspect marker level
suspect_short_words2Don't suspect dict wds longer than this
tessedit_reject_mode0Rejection algorithm
tessedit_image_border2Rej blbs near image edge limit
最小の正気のx高さピクセル8Reject any x-ht lt or eq than this
tessedit_ページ番号-1-1 -> All pages, else specific page to process
tessedit_parallelize1Run in parallel where possible
lstm_choice_mode2Allows to include alternative symbols choices in the hOCR output. Valid input values are 0, 1 and 2. 0 is the default value. With 1 the alternative symbol choices per timestep are included. With 2 alternative symbol choices are extracted from the CTC process instead of the lattice. The choices are mapped per character.
lstm_choice_iterations5Sets the number of cascading iterations for the Beamsearch in lstm_choice_mode. Note that lstm_choice_mode must be set to a value greater than 0 to produce results.
tosp_debug_level0Debug data
中央値に十分なスペースのサンプル数3or should we use mean
tosp_redo_kern_limit10No.samples reqd to reestimate for row
tosp_few_samples40No.gaps reqd with 1 large gap to treat as a table
tosp_short_row20No.gaps reqd with few cert spaces to use certs
tosp_sanity_method1How to avoid being silly
テキストード最大ノイズサイズ7Pixel size of noise
テキストコード_ベースライン_デバッグ0Baseline debug level
textord_noise_sizefraction10Fraction of size for maxima
テキストードノイズトランスリミット16Transitions for normal blob
テキストードノイズカウント1super norm blobs to save row
適応のための曖昧さの使用0Use ambigs for deciding whether to adapt to a character
優先順位付け部門0Prioritize blob division over chopping
分類_有効_学習1Enable adaptive classifier
tess_cn_matching0Character Normalized Matching
tess_bn_マッチング0Baseline Normalized Matching
分類_有効_適応_マッチャー1Enable adaptive classifier
事前に適応されたテンプレートを使用して分類する0Use pre-adapted classifier templates
適応したテンプレートを分類して保存する0Save adapted templates to a file
分類_有効_適応型デバッガー0Enable match debugger
非線形ノルムを分類する0Non-linear stroke-density normalization
disable_character_fragments1Do not include character fragments in the results of the classifier
分類デバッグ文字フラグメント0Bring up graphical debugging windows for fragments training
マッチャーデバッグ分離ウィンドウ0Use two different windows for debugging the matching: One for the protos and one for the features.
分類_bln_数値_モード0Assume the input is numbers [0-9].
ロードシステムドッグ1Load system word dawg.
ロード頻度1Load frequent word dawg.
ロード_unambig_dawg1Load unambiguous word dawg.
ロードパンクドッグ1Load dawg with punctuation patterns.
ロード番号_dawg1Load dawg with number patterns.
ロードビグラムドッグ1Load dawg with special word bigrams.
uft8の最初のステップのみを使用する0Use only the first UTF8 step of the given string when computing log probabilities.
ストッパー_受け入れられない選択肢0Make AcceptableChoice() always return false. Useful when there is a need to explore all segmentations
セグメント非アルファベット文字0Don't use any alphabetic-specific tricks. Set to true in the traineddata config file for scripts that are cursive or inherently fixed-pitch
ドキュメントの単語を保存0Save Document Words
マトリックス内のフラグメントのマージ1Merge the fragments in the ratings matrix and delete them after merging
wordrec_enable_assoc1Associator Enable
強制単語連想0force associator to run regardless of what enable_assoc is. This is used for CJK where component grouping is necessary.
チョップを有効にする1Chop enable
チョップ垂直クリープ0Vertical creep
新しいシームパイルを切り刻む1Use new seam_pile
固定ピッチ文字セグメントを想定0include fixed-pitch heuristics in char segmentation
単語記録スキップなし真実のない単語0Only run OCR for words that had truth recorded in BlamerBundle
wordrec_debug_blamer0Print blamer debug messages
wordrec_run_blamer0Try to set the blame for errors
代替選択肢を保存する1Save alternative paths found during chopping and segmentation search
language_model_ngram_on0Turn on/off the use of character ngram model
language_model_ngram_use_ only_first_uft8_step0Use only the first UTF8 step of the given string when computing log probabilities.
言語モデルngram空間_区切り言語1Words are delimited by space
言語モデル使用シグモイド確実性0Use sigmoidal score for certainty
tessedit_resegment_from_boxes0Take segmentation and labeling from box file
tessedit_resegment_from_line_boxes0Conversion of word/line box file to char box file
tessedit_train_from_boxes0Generate training data from boxed chars
tessedit_make_boxes_from_boxes(箱から箱を作る0Generate more boxes from boxed chars
tessedit_train_line_recognizer0Break input into lines and remap boxes if present
tessedit_dump_pageseg_images0Dump intermediate images made during page segmentation
tessedit_do_invert1Try inverting the image in LSTMRecognizeWord
tessedit_ambigs_training0Perform training for ambiguities
tessedit_adaption_debug0Generate and print debug information for adaption
applybox_learn_chars_and_char_frags_mode0Learn both character fragments (as is done in the special low exposure mode) as well as unfragmented characters.
applybox_learn_ngrams_mode0Each bounding box is assumed to contain ngrams. Only learn the ngrams whose outlines overlap horizontally.
tessedit_display_outwords0Draw output words
tessedit_dump_choices0Dump char choices
tessedit_timing_debug0Print timing stats
tessedit_fix_fuzzy_spaces1Try to improve fuzzy spaces
tessedit_unrej_any_wd0Don't bother with word plausibility
tessedit_fix_hyphens1Crunch double hyphens?
tessedit_enable_doc_dict1Add words to the document dictionary
tessedit_debug_fonts0Output font info per char
tessedit_debug_block_rejection0Block and Row stats
tessedit_enable_bigram_correction1Enable correction based on the word bigram dictionary.
tessedit_enable_dict_correction0Enable single word correction based on the dictionary.
ノイズ除去を有効にする1Remove and conditionally reassign small outlines when they confuse layout analysis, determining diacritics vs noise
tessedit_minimal_rej_pass10Do minimal rejection on pass 1 output
tessedit_test_adaptation0Test adaption criteria
テストpt0Test for point
段落テキストベース1Run paragraph detection on the post-text-recognition (more accurate)
lstm_use_matrix1Use ratings matrix/beam search with lstm
テセディット_良質_アンレジ1Reduce rejection on good docs
tessedit_use_reject_spaces1Reject spaces?
tessedit_preserve_blk_rej_perfect_wds1Only rej partially rejected words in block rejection
tessedit_preserve_row_rej_perfect_wds1Only rej partially rejected words in row rejection
tessedit_dont_blkrej_good_wds0Use word segmentation quality metric
tessedit_dont_rowrej_good_wds0Use word segmentation quality metric
tessedit_row_rej_good_docs1Apply row rejection to good docs
tessedit_reject_bad_qual_wds1Reject all bad quality wds
tessedit_debug_doc_rejection0Page stats
tessedit_debug_quality_metrics0Output data to debug file
bland_unrej0unrej potential with no checks
unlv_tilde_crunching0Mark v.bad words for tilde crunch
hocr_font_info0Add font info to hocr output
hocr_char_boxes0Add coordinates for each character to hocr output
クランチ早期マージテス失敗1Before word crunch?
クランチ_アーリー_コンバート_バッド_unlv_chs0Take out ~^ early?
ひどいゴミ1As it says
クランチ_leave_ok_strings1Don't touch sensible strings
crunch_accept_ok1Use acceptability in okstring
crunch_leave_accept_strings0Don't pot crunch sensible strings
crunch_include_numerals0Fiddle alpha figures
tessedit_prefer_joined_punct0Reward punctuation joins
tessedit_write_block_separators0Write block separators in output
tessedit_write_rep_codes0Write repetition char code
tessedit_write_unlv0Write .unlv output file
tessedit_create_txt0Write .txt output file
tessedit_create_hocr0Write .html hOCR output file
tessedit_create_alto0Write .xml ALTO file
tessedit_create_lstmbox0Write .box file for LSTM training
tessedit_create_tsv0Write .tsv output file
tessedit_create_wordstrbox0Write WordStr format .box output file
tessedit_create_pdf0Write .pdf output file
textonly_pdf0Create PDF with only one invisible text layer
suspect_constrain_1Il0UNLV keep 1Il chars rejected
tessedit_minimal_rejection0Only reject tess failures
tessedit_zero_rejection0Don't reject ANYTHING
tessedit_word_for_word0Make output have exactly one word per WERD
tessedit_zero_kelvin_rejection0Don't reject ANYTHING AT ALL
tessedit_rejection_debug0Adaption debug
tessedit_flip_0O1Contextual 0O O0 flips
rej_trust_doc_dawg0Use DOC dawg in 11l conf. detector
rej_1Il_use_dict_word0Use dictword test
rej_1Il_trust_permuter_type1Don't double check
rej_use_tess_accepted1Individual rejection control
rej_use_tess_blanks1Individual rejection control
良いパーミッションの使用を拒否1Individual rejection control
rej_use_sensible_wd0Extend permuter check
承認番号のアルファベット順0Extend permuter check
tessedit_create_boxfile0Output text with boxes
tessedit_write_images0Capture the image from the IPE
インタラクティブ表示モード0Run interactively?
tessedit_override_permuter1According to dict_word
tessedit_use_primary_params_model0In multilingual mode use params model of the primary language
textord_tabfind_show_vlines0Debug line finding
textord_use_cjk_fp_model0Use CJK fixed pitch model
poly_allow_detailed_fx0Allow feature extractors to see the original outline
tessedit_init_config_only0Only initialize with the config file. Useful if the instance is not going to be used for OCR but say only for layout analysis.
テキスト式検出0Turn on equation detector
textord_tabfind_vertical_text1Enable vertical detection
テキストord_tabfind_force_vertical_text0Force using vertical text page mode
単語間のスペースを保持する0Preserve multiple interword spaces
pageseg_apply_music_mask1Detect music staff and remove intersecting components
テキストコードシングルハイトモード0Script has no xheight, so use a single mode
tosp_old_to_method0Space stats use prechopping?
TOSP_OLD_TO_CONSTRIN_SP_KN0Constrain relative values of inter and intra-word gaps for old_to_method.
tosp_only_use_prop_rows1Block stats to use fixed pitch rows?
tosp_force_wordbreak_on_punct0Force word breaks on punct to break long lines in non-space delimited langs
tosp_use_pre_chopping0Space stats use prechopping?
tosp_old_to_bug_fix0Fix suspected bug in old code
tosp_block_use_cert_spaces1Only stat OBVIOUS spaces
tosp_row_use_cert_spaces1Only stat OBVIOUS spaces
tosp_narrow_blobs_not_cert1Only stat OBVIOUS spaces
tosp_row_use_cert_spaces11Only stat OBVIOUS spaces
tosp_recovery_isolated_row_stats1Use row alone when inadequate cert spaces
tosp_only_small_gaps_for_kern。0Better guess
tosp_all_flips_fuzzy0Pass ANY flip to context?
tosp_fuzzy_limit_all1Don't restrict kn->sp fuzzy limit to tables
textord_no_rejects0Don't remove noise blobs
textord_show_blobs0Display unsorted blobs
テキスト表示ボックス0Display unsorted blobs
テキストワードノイズ1Reject noise-like words
テキストードノイズ再行1Reject noise-like rows
テキストコードノイズデバッグ0Debug row garbage detector
分類学習デバッグ文字列Class str to debug learning
ユーザー単語ファイルA filename of user-provided words.
ユーザー単語の接尾辞A suffix of user-provided words located in tessdata.
ユーザーパターンファイルA filename of user-provided patterns.
ユーザーパターンサフィックスA suffix of user-provided patterns located in tessdata.
出力曖昧語ファイルOutput file for ambiguities found in the dictionary
デバッグ用の単語Word for which stopper debug information should be printed to stdout
tessedit_char_ブラックリストBlacklist of chars not to recognize
tessedit_char_whitelistWhitelist of chars to recognize
tessedit_char_ブラックリスト解除List of chars to override tessedit_char_ブラックリスト
tessedit_write_params_to_fileWrite all parameters to the given file.
ボックス露出パターンを適用する.expExposure value follows this pattern in the image filename. The name of the image files are expected to be in the form [lang].[fontname].exp [num].tif
chs_leading_punct('`"行頭の句読点
chs_trailing_punct1).,;:?!1st Trailing punctuation
chs_trailing_punct2)'`"2nd Trailing punctuation
アウトライン_奇数%|標準外のアウトライン数
outlines_2ij!?%":;標準外のアウトライン数
数値句読点.,Punct. chs expected WITHIN numbers
認識されない文字|Output char for unidentified blobs
ok_repeated_ch_non_alphanum_wds-?*=Allow NN to unrej
競合セットI_l_1イル1 []Il1 conflict set
ファイルタイプ.tifFilename extension
tessedit_load_sublangsList of languages to load with this one
ページセパレーターPage separator (default is form feed control character)
文字の標準範囲を分類する0.2Character Normalization Range ...
分類最大評価比率1.5Veto ratio between classifier ratings
分類最大確実性マージン5.5Veto difference between classifier certainties
マッチャーの良好なしきい値0.125Good Match (0-1)
マッチャー_信頼性の高い適応結果0Great Match (0-1)
マッチャー完全しきい値0.02Perfect Match (0-1)
マッチャー_悪い_マッチ_パッド0.15Bad Match Pad (0-1)
マッチャーレーティングマージン0.1New template margin (0-1)
マッチャー平均ノイズサイズ12Avg. noise blob length
マッチャークラスタリング最大角度デルタ0.015Maximum angle delta for prototype clustering
不適合ジャンクペナルティの分類0Penalty to apply when a non-alnum is vertically out of its expected textline position
評価スケール1.5Rating scaling factor
確実性スケール20Certainty scaling factor
tessedit_class_miss_scale0.00390625Scale factor for features not used
適応剪定係数を分類する2.5Prune poor adapted results this much worse than best result
適応剪定しきい値の分類-1Threshold at which 適応剪定係数を分類する starts
文字断片分類_ガベージ確実性しきい値-3Exclude fragments that do not look like whole characters from training and adaption
スペックル_large_max_size0.3Max large speckle size
スペックル評価ペナルティ10Penalty to add to worst rating for noise
xheight_penalty_subscripts0.125Score penalty (0.1 = 10%) added if there are subscripts or superscripts in a word, but it is otherwise OK.
xheight_penalty_inconsistent0.25Score penalty (0.1 = 10%) added if an xheight is inconsistent.
セグメントペナルティ辞書頻出単語1Score multiplier for word matches which have good case and are frequent in the given language (lower is better).
セグメントペナルティ辞書ケースOK1.1Score multiplier for word matches that have good case (lower is better).
セグメントペナルティ辞書ケース不良1.3125Default score multiplier for word matches, which may have case issues (lower is better).
セグメントペナルティ辞書非単語1.25Score multiplier for glyph fragment segmentations which do not match a dictionary word (lower is better).
確実性スケール20Certainty scaling factor
stopper_nondict_certainty_base-2.5Certainty threshold for non-dict words
stopper_phase2_certainty_rejection_offset1Reject certainty offset
stopper_certainty_per_char-0.5Certainty to add for each dict char above small word size.
stopper_allowable_character_badness3Max certaintly variation allowed in a word (in sigma)
doc_dict_pending_threshold0Worst certainty for using pending dictionary
doc_dict_確実性しきい値-2.25Worst certainty for words that can be inserted into the document dictionary
tessedit_certainty_threshold-2.25Good blob limit
chop_split_dist_knob0.5Split length adjustment
chop_overlap_knob0.9Split overlap adjustment
chop_center_knob0.15Split center adjustment
chop_sharpness_knob0.06Split sharpness adjustment
chop_width_change_knob5Width change adjustment
chop_ok_split100OK split limit
chop_good_split50Good split limit
セグメント検索最大文字数比率2最大文字幅と高さの比率

最良の結果を得るためには、OCRを適用する前にIronOCRの画像前処理フィルターを使用することをお勧めします。 これらのフィルタは、特に低品質スキャンのような複雑なドキュメントを扱うときに、劇的に精度を向上させることができます。

よくある質問

C#でのOCRのためのIronTesseractの設定方法は?

IronTesseractを設定するには、IronTesseractインスタンスを作成し、LanguageやConfigurationなどのプロパティを設定します。OCR言語(125のサポート言語から)を指定し、BarCode読み取りを有効にし、検索可能なPDF出力を設定し、文字のホワイトリストを設定することができます。例えば: var tesseract = new IronOcr.IronTesseract { Language = IronOcr.OcrLanguage.English, Configuration = new IronOcr.TesseractConfiguration { ReadBarCodes = false, RenderSearchablePdf = true } }.};

IronTesseractはどのような入力フォーマットに対応していますか?

IronTesseractはOcrInputクラスを通して様々な入力フォーマットを受け入れます。画像(PNG、JPGなど)、PDFファイル、スキャンしたドキュメントを処理することができます。OcrInputクラスは、これらの異なるフォーマットを読み込むための柔軟なメソッドを提供しており、テキストを含むほぼ全てのドキュメントに対してOCRを簡単に実行することができます。

IronTesseractを使ってテキストと一緒にBarCodeを読むことはできますか?

IronTesseractには高度なバーコード読み取り機能があります。TesseractConfigurationでReadBarCodes = trueを設定することでバーコード検出を有効にすることができます。これにより、一度のOCR操作で同じドキュメントからテキストとバーコードの両方のデータを抽出することができます。

スキャンした文書から検索可能なPDFを作成するには?

IronTesseractは、TesseractConfigurationでRenderSearchablePdf = trueを設定することで、スキャンした文書や画像を検索可能なPDFに変換することができます。これにより、元のドキュメントの外観を維持したまま、テキストが選択可能で検索可能なPDFファイルが作成されます。

IronTesseractはどの言語のOCRをサポートしていますか?

IronTesseractはテキスト認識のために125の国際言語をサポートしています。IronOcr.OcrLanguage.English、スペイン語、中国語、アラビア語など、IronTesseractインスタンスのLanguageプロパティを設定することで言語を指定することができます。

OCR時に認識される文字を制限することはできますか?

はい、IronTesseractではTesseractConfigurationのWhiteListCharactersプロパティを通して文字のホワイトリストとブラックリストが可能です。この機能は、認識対象を英数字のみに限定するなど、想定される文字セットがわかっている場合に精度の向上に役立ちます。

複数の文書を同時にOCRするにはどうすればよいですか?

IronTesseractはバッチ処理のためのマルチスレッド機能をサポートしています。並列処理を活用して複数のドキュメントを同時にOCRすることができ、大量の画像やPDFを扱う際のパフォーマンスを大幅に向上させます。

IronOCRはどのバージョンのTesseractを使用していますか?

IronOCRは、Iron Tesseractとして知られるTesseract 5のカスタマイズされ最適化されたバージョンを使用しています。この強化されたエンジンは、.NETアプリケーションとの互換性を維持しながら、標準的なTesseractの実装に比べて精度とパフォーマンスを向上させています。

IronOCRはデータ精度をどのように向上させますか?

IronOCRはその高度な認識アルゴリズムと画像補正機能により、信頼性が高く正確なテキスト抽出プロセスを保証します。

IronOCRの無料トライアルを利用できますか?

はい、Iron SoftwareはIronOCRの無料トライアルを提供しており、ユーザーが購入決定をする前にその機能と能力をテストできます。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

レビュー済み
Jeff Fritz
Jeffrey T. Fritz
プリンシパルプログラムマネージャー - .NETコミュニティチーム
Jeffはまた、.NETとVisual Studioチームのプリンシパルプログラムマネージャーです。彼は.NET Conf仮想会議シリーズのエグゼクティブプロデューサーであり、週に二回放送される開発者向けライブストリーム『Fritz and Friends』のホストを務め、テクノロジーについて話すことや視聴者と一緒にコードを書くことをしています。Jeffはワークショップ、プレゼンテーション、およびMicrosoft Build、Microsoft Ignite、.NET Conf、Microsoft MVPサミットを含む最大のMicrosoft開発者イベントのコンテンツを企画しています。
準備はできましたか?
Nuget ダウンロード 6,151,372 | バージョン: 2026.7 リリースされたばかり
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronOcr
サンプルを実行 あなたの画像が検索可能なテキストになるのをご覧ください。