Ajuste dos parâmetros de pré-processamento, análise, reconhecimento e síntese de página
O processamento de documentos no ABBYY FineReader Engine consiste em várias etapas: pré-processamento de página, análise, reconhecimento, síntese de página, síntese de documento e exportação. Esta seção aborda o pré-processamento de página, a análise, o reconhecimento e a síntese de página/documento. Para obter detalhes sobre os parâmetros de exportação, consulte Ajuste dos parâmetros de exportação.Vamos considerar as etapas de processamento em ordem:
Pré-processamento de página Durante esta etapa, o FineReader Engine melhora automaticamente a qualidade da imagem e corrige defeitos que podem interferir no OCR: orientação da página, imagens invertidas e distorções geométricas.
Análise de layout Durante a análise, o FineReader Engine identifica áreas que contêm diferentes tipos de dados. Essas áreas são chamadas de “blocos”.
Reconhecimento As partes da imagem contidas nos blocos são reconhecidas de maneiras que dependem do tipo de bloco.
Síntese de página As cores do texto e do plano de fundo, os hiperlinks e outras formatações são detectados.
Síntese de documento Por fim, os estilos de fonte e a estrutura lógica do documento são recriados: o FineReader Engine detecta títulos no documento reconhecido, reconstrói o sumário, detecta legendas de imagens e tabelas, além de outros elementos da estrutura do documento.
Antes do processamento, você pode definir os parâmetros de pré-processamento de página, análise, reconhecimento e síntese com a ajuda de objetos de parâmetro. O principal objeto que fornece acesso a todos os parâmetros de processamento é o objeto DocumentProcessingParams. Ele tem um conjunto de subobjetos que influenciam diferentes etapas do processamento.Dependendo da etapa de processamento, o ponteiro para um objeto DocumentProcessingParams ou ponteiros para seus subobjetos podem ser passados aos métodos de processamento como parâmetros de entrada e, assim, afetar os resultados do processamento. Os objetos FRDocument e FRPage fornecem métodos de pré-processamento de página, análise, reconhecimento e síntese.Os processos de pré-processamento de página, análise, reconhecimento e síntese também podem ser ajustados usando perfis, e os cenários mais comuns já são contemplados por perfis predefinidos bem testados. Consulte Trabalhando com perfis para obter mais detalhes.
Para definir os parâmetros de processamento de cada página, use as propriedades do subobjeto PageProcessingParams do objeto DocumentProcessingParams. O objeto PageProcessingParams é o objeto pai de um grupo de objetos usados para configurar os parâmetros de processamento da página:
O objeto PageProcessingParams também permite ativar ou desativar qualquer uma das etapas de processamento. Por exemplo, você pode definir a propriedade PerformAnalysis do objeto PageProcessingParams como FALSE se pretender especificar os blocos manualmente e não precisar da análise de layout.
Para definir os parâmetros do processamento de documentos, além dos parâmetros de processamento de páginas, você também precisa definir os parâmetros da síntese do documento por meio do objeto SynthesisParamsForDocument. Durante a síntese do documento, os estilos de fonte e a formatação são detectados. Os objetos do FineReader Engine que lidam com fontes e estilos do documento só passam a ter significado após a síntese do documento.Você pode omitir a etapa de síntese do documento nos seguintes casos:
Se for exportar o texto reconhecido para o formato TXT. Ao exportar para esse formato, as informações de síntese não são usadas.
Se for exportar um documento para o formato PDF ImageOnly. As informações de texto reconhecido e de layout não são usadas nesse modo.
Em todos os outros casos, a síntese do documento deve ser executada. Omitir a síntese do documento causará erros durante a exportação.
Os métodos que contêm a palavra “Process” no nome (por exemplo, IFRDocument::Process ) incluem a etapa de síntese do documento. Os métodos de processamento do objeto FRPage não incluem essa etapa; portanto, depois de usá-los e antes de exportar, você deve chamar explicitamente algum método que execute a síntese do documento.
Você pode acelerar a etapa de síntese do documento e reduzir o uso de memória. Se definir a propriedade DetectFontFormattingAtPageLevel do objeto SynthesisParamsForPage como TRUE durante a síntese da página, poderá desativar a detecção dos parâmetros de fonte e da estrutura do documento durante a síntese do documento (DetectFontFormatting e DetectDocumentStructure do objeto SynthesisParamsForDocument). No entanto, a qualidade pode ser prejudicada.Sempre que o texto ou o layout do documento for alterado (por exemplo, quando um bloco for removido ou adicionado, ou quando o texto for editado), recomendamos chamar novamente um método de síntese do documento. Observe que o método SynthesizePages do FRDocument permite especificar a coleção de páginas do documento que foram alteradas, para que apenas os dados necessários sejam recalculados.
Configure as propriedades necessárias do subobjeto PageProcessingParams. Não é necessário configurar todas as propriedades de todos os subobjetos, pois, na criação, elas são inicializadas com valores padrão adequados. Você só precisa ajustar as propriedades para as quais deseja definir valores diferentes dos padrão.
Ao configurar os parâmetros a serem usados pelas funções de análise de layout, não se esqueça de definir os valores corretos das propriedades dos subobjetos de PageProcessingParams que afetam o reconhecimento. Isso é recomendado porque todos esses parâmetros são copiados para os blocos criados durante a análise de layout e depois são usados para reconhecimento, e também porque a análise de determinadas partes da imagem pode envolver reconhecimento.
Se necessário, configure as propriedades necessárias do subobjeto SynthesisParamsForDocument. Não é necessário configurar todas as propriedades de todos os objetos e subobjetos, pois, na criação, elas são inicializadas com valores padrão adequados. Você só precisa ajustar as propriedades para as quais deseja definir valores diferentes dos padrão. Verifique se o valor da propriedade PerformSynthesis do objeto DocumentProcessingParams é true.
Você pode passar o objeto DocumentProcessingParams ou um conjunto de seus subobjetos para um dos métodos de processamento dos objetos FRDocument, FRPage e Engine.
Para reconhecer um documento, sugerimos usar os métodos de processamento do objeto FRDocument. Esse objeto oferece uma ampla variedade de métodos de processamento. O método mais conveniente, que permite realizar pré-processamento, análise, reconhecimento e síntese usando apenas um método, é o método Process. Ele também usa os recursos de processamento simultâneo de sistemas multiprocessadores e multicore da forma mais eficiente. No entanto, você também pode executar o pré-processamento, a análise, o reconhecimento e a síntese de forma sequencial usando os métodos correspondentes.
Código C#
FREngine.IEngine engine;FREngine.IFRDocument frdoc;// Presumimos que o documento foi criado e que imagens foram adicionadas ao documento// Crie DocumentProcessingParams e defina os parâmetrosFREngine.IDocumentProcessingParams dpp = engine.CreateDocumentProcessingParams();FREngine.IPageProcessingParams ppp = dpp.PageProcessingParams;ppp.PagePreprocessingParams.CorrectOrientationMode = COM_Auto;// Use os parâmetros para processamentofrDoc.Process( dpp );
Procedimentos semelhantes são usados nos exemplos de código a seguir: