.net ABBYY FineReader SDK如何定义最小识别率
是否有人与fineReader abbyy sdk 10合作?我很好奇,在图像ocr处理之后,是否有可能获得数据挖掘的成功率 对于我们有从图像收集数据的工作流的场景,如果识别结果小于90%,则我们将批次放入视觉验证/校正 对于sdk处理,我使用的是.net-了解它并不重要,但是。。。以防万一.net ABBYY FineReader SDK如何定义最小识别率,.net,ocr,abbyy,finereader,.net,Ocr,Abbyy,Finereader,是否有人与fineReader abbyy sdk 10合作?我很好奇,在图像ocr处理之后,是否有可能获得数据挖掘的成功率 对于我们有从图像收集数据的工作流的场景,如果识别结果小于90%,则我们将批次放入视觉验证/校正 对于sdk处理,我使用的是.net-了解它并不重要,但是。。。以防万一 我怎样才能达到这个数字?感谢您的建议,没有这样的“全局置信度”值,但您可以通过对每个字符的置信度取平均值,很容易获得此值。 不过,我认为您应该直接向ABBYY的论坛或支持电子邮件地址提出请求,看看他们的建议
我怎样才能达到这个数字?感谢您的建议,没有这样的“全局置信度”值,但您可以通过对每个字符的置信度取平均值,很容易获得此值。 不过,我认为您应该直接向ABBYY的论坛或支持电子邮件地址提出请求,看看他们的建议是什么 如果我使用这个引擎,我真的不可能告诉你我会得到多大程度的信心,因为所有这些都是如此依赖于图像的质量、字体的大小等等:行业没有“普通文档”作为数据的基础
祝你好运 IMHO没有这样的“全局置信度”值,但是你可以通过计算每个角色的置信度并对总置信度取平均值来很容易地获得这个值。 不过,我认为您应该直接向ABBYY的论坛或支持电子邮件地址提出请求,看看他们的建议是什么 如果我使用这个引擎,我真的不可能告诉你我会得到多大程度的信心,因为所有这些都是如此依赖于图像的质量、字体的大小等等:行业没有“普通文档”作为数据的基础 祝你好运 不存在“全球认可信心”属性。开发人员应使用自己的置信度标准自行计算。最简单的方法是遍历每个字符,检查CharParams.issupicious属性。下面是FREngine 11的代码示例(C#)
//Statistics counters
//Count of all suspicious symbols in layout
private int suspiciousSymbolsCount;
//Count of all unrecognized symbols in layout
private int unrecognizedSymbolsCount;
//Count of all nonspace symbols in layout
private int allSymbolsCount;
//Count of all words in layout
private int allWordsCount;
//Count of all not dictionary word in layout
private int notDictionaryWordsCount;
private void processImage()
{
// Create document
FRDocument document = engineLoader.Engine.CreateFRDocument();
try {
// Add image file to document
displayMessage( "Loading image..." );
string imagePath = Path.Combine( FreConfig.GetSamplesFolder(), @"SampleImages\Demo.tif" );
document.AddImageFile( imagePath, null, null );
//Recognize document
displayMessage( "Recognizing..." );
document.Process( null );
// Calculate text statistics
displayMessage( "Calculating statistics..." );
clearStatistics();
for( int i = 0; i < document.Pages.Count; i++ ) {
calculateStatisticsForLayout( document.Pages[i].Layout );
}
//show calculated statistics
displayStatistics();
} catch( Exception error ) {
MessageBox.Show( this, error.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error );
}
finally {
// Close document
document.Close();
}
}
private void calculateStatisticsForLayout( Layout layout )
{
LayoutBlocks blocks = layout.Blocks;
for( int index = 0; index < blocks.Count; index++ ) {
calculateStatisticsForBlock( blocks[index] );
}
}
void calculateStatisticsForBlock( IBlock block )
{
if( block.Type == BlockTypeEnum.BT_Text ) {
calculateStatisticsForTextBlock( block.GetAsTextBlock() );
} else if( block.Type == BlockTypeEnum.BT_Table ) {
calculateStatisticsForTableBlock( block.GetAsTableBlock() );
}
}
void calculateStatisticsForTextBlock( TextBlock textBlockProperties )
{
calculateStatisticsForText( textBlockProperties.Text );
}
void calculateStatisticsForTableBlock( TableBlock tableBlockProperties )
{
for( int index = 0; index < tableBlockProperties.Cells.Count; index++ ) {
calculateStatisticsForBlock( tableBlockProperties.Cells[index].Block );
}
}
void calculateStatisticsForText( Text text )
{
Paragraphs paragraphs = text.Paragraphs;
for( int index = 0; index < paragraphs.Count; index++ ) {
calculateStatisticsForParagraph( paragraphs[index] );
}
}
void calculateStatisticsForParagraph( Paragraph paragraph )
{
calculateCharStatisticsForParagraph( paragraph );
calculateWordStatisticsForParagraph( paragraph );
}
void calculateCharStatisticsForParagraph( Paragraph paragraph )
{
for( int index = 0; index < paragraph.Text.Length; index++ )
{
calculateStatisticsForChar( paragraph, index );
}
}
void calculateStatisticsForChar( Paragraph paragraph, int charIndex )
{
CharParams charParams = engineLoader.Engine.CreateCharParams();
paragraph.GetCharParams( charIndex, charParams );
if( charParams.IsSuspicious )
{
suspiciousSymbolsCount++;
}
if( isUnrecognizedSymbol( paragraph.Text[charIndex] ) )
{
unrecognizedSymbolsCount++;
}
if( paragraph.Text[charIndex] != ' ' )
{
allSymbolsCount++;
}
}
void calculateWordStatisticsForParagraph( Paragraph paragraph )
{
allWordsCount += paragraph.Words.Count;
for( int index = 0; index < paragraph.Words.Count; index++ )
{
if( !paragraph.Words[index].IsWordFromDictionary )
{
notDictionaryWordsCount ++;
}
}
}
bool isUnrecognizedSymbol( char symbol )
{
//it is special constant used by FREngine recogniser
return ( symbol == 0x005E );
}
void displayStatistics()
{
labelAllSymbols.Text = "All symbols: " + allSymbolsCount.ToString();
labelSuspiciosSymbols.Text = "Suspicious symbols: " + suspiciousSymbolsCount.ToString();
labelUnrecognizedSymbols.Text = "Unrecognized symbols: " + unrecognizedSymbolsCount.ToString();
labelAllWords.Text = "All words: " + allWordsCount.ToString();
labelNotDictionaryWords.Text = "Non-dictionary words: " + notDictionaryWordsCount.ToString();
}
//统计计数器
//布局中所有可疑符号的计数
私人int可疑符号计数;
//布局中所有未识别符号的计数
私有int未识别符号计数;
//布局中所有非空格符号的计数
私有整数符号计数;
//版面中所有单词的计数
私人国际电话;
//版面中所有非词典单词的计数
私人int NotDictionary或Scont;
私有void processImage()
{
//创建文档
FRDocument document=engineLoader.Engine.CreateFRDocument();
试一试{
//将图像文件添加到文档
显示消息(“正在加载图像…”);
字符串imagePath=Path.Combine(FreConfig.GetSamplesFolder(),@“SampleImages\Demo.tif”);
document.AddImageFile(imagePath,null,null);
//识别文件
显示消息(“识别…”);
文件处理(空);
//计算文本统计信息
显示消息(“计算统计…”);
统计学();
对于(int i=0;i