Reconhecer marcas OMR usando o VintaSoft Forms Processing.Plug-in .NET

Categoria do blog: Processamento de formulários.NET

28.07.2025

No mundo atual, onde o número de formulários em papel e eletrônicos chega aos milhões - de questionários a formulários de exames e cédulas de votação -, a necessidade de seu processamento rápido e preciso aumenta a cada ano. Uma das principais ferramentas para automatizar esses processos tornou-se o reconhecimento óptico de marcas (OMR).

OMR (Reconhecimento Óptico de Marcas) é uma tecnologia que permite que o software registre e analise a presença ou ausência de marcas especiais (geralmente marcas de seleção, quadrados preenchidos ou círculos) em locais predeterminados em documentos em papel ou eletrônicos. Isso permite o processamento rápido de grandes quantidades de dados sem entrada manual, minimizando erros e agilizando os fluxos de trabalho.



Breve histórico do surgimento e desenvolvimento do OMR

A tecnologia de reconhecimento óptico de marcas (OMR) começou a se desenvolver na segunda metade do século XX, quando surgiu a questão da automatização do processamento de um grande número de formulários, questionários e folhas de exame semelhantes. Os primeiros sistemas industriais surgiram nos EUA para atender às necessidades de instituições de ensino, onde a aplicação de testes em massa a estudantes exigia o cálculo rápido e confiável dos resultados.

Nos estágios iniciais do desenvolvimento do OMR, utilizavam-se equipamentos especiais – scanners com grandes fotossensores que registravam áreas sombreadas no papel (bolhas preenchidas ou retângulos). Isso permitiu uma redução significativa no tempo necessário para verificar as respostas em comparação com a verificação manual e tornou a análise de dados mais objetiva.

A tecnologia evoluiu posteriormente com a transição para o processamento digital de imagens. Com o advento dos computadores pessoais e softwares, a leitura óptica de imagens (OMR) tornou-se disponível independentemente do tipo de scanner ou impressora. Isso abriu oportunidades para sua aplicação em massa em empresas, educação, governo — em qualquer lugar que exigisse o processamento rápido e preciso de documentos padronizados em grandes volumes.

Atualmente, as soluções OMR modernas permitem automatizar o trabalho não apenas com formulários em papel, mas também com documentos eletrônicos, integrando tecnologias OMR em plataformas digitais unificadas. Isso garante ainda mais flexibilidade, produtividade e qualidade dos dados finais.


Como funciona o OMR e onde é aplicado

O OMR baseia-se no princípio de selecionar áreas para marcações em um formulário (por exemplo, em um questionário ou formulário de teste) e, em seguida, digitalizá-las automaticamente usando um software específico. Isso permite:

O processo OMR começa com a criação de um modelo de formulário específico com áreas designadas para marcações. Após o preenchimento e digitalização do formulário (ou recebimento eletrônico), o software analisa a imagem, determina a posição e os limites de cada zona OMR e registra as marcações feitas pelo usuário.

Todo o processo consiste em várias etapas tecnológicas:

Onde é utilizado:

A tecnologia OMR é utilizada em todas as áreas onde é necessário digitalizar de forma rápida e precisa grandes fluxos de dados semelhantes, sejam eles em papel ou eletrônicos.


Quais são os recursos do VintaSoft Forms Processing .NET Plug-in para OMR?

As soluções modernas para reconhecimento de etiquetas não são apenas rápidas, mas também flexíveis em sua configuração. Um dos líderes tecnológicos nessa área é o VintaSoft Forms Processing .NET Plug-in.

Este SDK oferece suporte completo para identificação e alinhamento automatizados de formulários, reconhecimento óptico de marcas e reconhecimento de campos de texto e código de barras. Os principais recursos incluem:


Por que as empresas escolhem OMR com a VintaSoft

Para empresas, processar um grande número de questionários, testes ou formulários padrão não é apenas uma tarefa que exige precisão, mas também um motivo para otimizar processos de negócios. O uso do VintaSoft Forms Processing .NET Plug-in permite:


Visão tecnológica: Como o OMR funciona na VintaSoft

Durante a operação, o software primeiro determina a qual modelo a imagem da forma recebida pertence, a alinha e somente então inicia a análise dos campos OMR. Essa arquitetura permite o processamento de formas mesmo que tenham sido digitalizadas com alterações de rotação, deslocamento ou escala.

Os modelos de formulário são criados usando código e editores visuais em aplicativos WinForms ou WPF. O desenvolvedor pode personalizar o tipo e a aparência dos campos OMR, expandir a arquitetura para suas próprias tarefas e formatos de documento.

O Reconhecimento Óptico de Marcas (OMR) é um padrão moderno para o processamento rápido e confiável de grandes volumes de documentos em papel e eletrônicos. Com o VintaSoft Forms Processing .NET Plug-in, o processo torna-se flexível, preciso, integrável a qualquer sistema corporativo e totalmente compatível com os requisitos da transformação digital dos negócios.


Aqui está um código C# que demonstra como identificar e reconhecer um formulário preenchido que contém marcas OMR:
/// <summary>
/// Recognizes the form with OMR fields.
/// </summary>
/// <param name="formRecognitionManager">The form recognition manager.</param>
/// <param name="image">The image.</param>
public static void RecognizeFormWithOmrFields(
    Vintasoft.Imaging.FormsProcessing.FormRecognitionManager formRecognitionManager,
    Vintasoft.Imaging.VintasoftImage image)
{
    // if your form template contains OCR fields,
    // make sure OCR engine manager is initialized before recognition
    // (otherwise recognition will return null (Nothing)),
    // see OCR field recognition examples

    // recognize filled form in an image
    Vintasoft.Imaging.FormsProcessing.FormRecognitionResult recognitionResult = 
        formRecognitionManager.Recognize(image);

    // get the result of image comparison
    Vintasoft.Imaging.FormsProcessing.TemplateMatching.ImageImprintCompareResult imageCompareResult =
        recognitionResult.TemplateMatchingResult.ImageCompareResult;
    // if result is not reliable
    if (!imageCompareResult.IsReliable)
    {
        // matching template is not found
        System.Console.WriteLine("Matching template is not found.");
    }
    else
    {
        // get recognized page
        Vintasoft.Imaging.FormsProcessing.FormRecognition.FormPage recognizedPage = 
            recognitionResult.RecognizedPage;
        // get form field count
        if (recognizedPage.Items.Count == 0)
        {
            System.Console.WriteLine("No form fields were recognized.");
        }
        else
        {
            System.Console.WriteLine(string.Format(
                "Recognized form field count: {0}",
                recognizedPage.Items.Count));
            // for each recognized form field
            foreach (Vintasoft.Imaging.FormsProcessing.FormRecognition.FormField recognizedField in recognizedPage.Items)
            {
                if (recognizedField is Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr.OmrField)
                {
                    Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr.OmrField omrField = 
                        (Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr.OmrField)recognizedField;
                    // write field info
                    System.Console.WriteLine(string.Format(
                        "  OMR field: name: {0}; state: {1}; confidence: {2:F1}%",
                        omrField.Name,
                        omrField.State,
                        omrField.Confidence * 100));
                }
            }
        }
    }
}