Ճանաչեք OMR նշանները՝ օգտագործելով VintaSoft Forms Processing .NET...

Բլոգի կատեգորիա՝ Ձևերի մշակում.NET

28.07.2025

Այսօրվա աշխարհում, որտեղ թղթային և էլեկտրոնային ձևերի քանակը միլիոնավոր է՝ հարցաթերթիկներից մինչև քննական ձևեր և քվեաթերթիկներ, դրանց արագ և ճշգրիտ մշակման պահանջները տարեցտարի աճում են: Այս գործընթացների ավտոմատացման հիմնական գործիքներից մեկը դարձել է օպտիկական նշանների ճանաչումը (OMR):

OMR-ը (օպտիկական նշանների ճանաչում) տեխնոլոգիա է, որը թույլ է տալիս ծրագրային ապահովմանը գրանցել և վերլուծել հատուկ նշանների (սովորաբար՝ ստուգիչ նշաններ,լցված քառակուսիներ կամ շրջանակներ) նախապես որոշված ​​վայրերում թղթի կամ էլեկտրոնային փաստաթղթերի վրա: Սա թույլ է տալիս արագ մշակել մեծ քանակությամբ տվյալներ առանց ձեռքով մուտքագրման, նվազագույնի հասցնելով սխալները և արագացնելով աշխատանքային հոսքերը:



OMR-ի առաջացման և զարգացման համառոտ պատմություն

Օպտիկական նշանների ճանաչման տեխնոլոգիան սկսեց զարգանալ 20-րդ դարի երկրորդ կեսին, երբ առաջացավ մեծ թվով նմանատիպ ձևերի, հարցաթերթիկների և քննական թերթիկների մշակման ավտոմատացման հարցը: Առաջին արդյունաբերական համակարգերը հայտնվեցին ԱՄՆ-ում կրթական հաստատությունների կարիքների համար, որտեղ ուսանողների զանգվածային թեստավորումը պահանջում էր արդյունքների արագացված և հուսալի հաշվարկ:

OMR-ի մշակման վաղ փուլերում օգտագործվում էին հատուկ սարքավորումներ՝ սկաներներ մեծ լուսազգայուն սենսորներով, որոնք գրանցում էին ստվերված տարածքներ թղթի վրա (լցված փուչիկներ կամ ուղղանկյուններ): Սա թույլ տվեց զգալիորեն կրճատել պատասխանների ստուգման համար անհրաժեշտ ժամանակը ձեռքով ստուգման համեմատ և տվյալների վերլուծությունն ավելի օբյեկտիվ դարձրեց:

Տեխնոլոգիան հետագայում զարգացավ թվային պատկերի մշակմանը անցնելու հետ մեկտեղ: Անձնական համակարգիչների և ծրագրային ապահովման ի հայտ գալով, OMR-ը հասանելի դարձավ անկախ սկաների կամ տպիչի տեսակից: Սա բացեց հնարավորություններ զանգվածային կիրառման համար բիզնեսում, կրթության, կառավարման ոլորտում՝ ամենուր, որտեղ պահանջվում էր մեծ ծավալի ստանդարտ փաստաթղթերի արագ և ճշգրիտ մշակում:

Այսօր ժամանակակից OMR լուծումները թույլ են տալիս ավտոմատացնել աշխատանքը ոչ միայն թղթային ձևերի, այլև էլեկտրոնային փաստաթղթերի հետ՝ ինտեգրելով OMR տեխնոլոգիաները միասնական թվային հարթակներում: Սա ապահովում է վերջնական տվյալների ավելի մեծ ճկունություն, արտադրողականություն և որակ:


Ինչպես է գործում OMR-ը և որտեղ է այն կիրառվում

OMR-ը հիմնված է ձևաթղթի վրա գնահատականների համար տարածքներ ընտրելու սկզբունքի վրա (օրինակ՝ հարցաթերթիկում կամ թեստային ձևաթղթում) և այնուհետև դրանք ավտոմատ կերպով սկանավորելու սկզբունքի վրա՝ օգտագործելով հատուկ ծրագրային ապահովում: Սա թույլ է տալիս.

OMR-ը սկսվում է հատուկ ձևանմուշի ստեղծմամբ՝ գնահատականների համար նախատեսված տարածքներով։ Երբ ձևը լրացվում և սկանավորվում է (կամ էլեկտրոնային եղանակով ստացվում), ծրագիրը վերլուծում է պատկերը, որոշում է յուրաքանչյուր OMR գոտու դիրքը և սահմանները և գրանցում օգտատիրոջ կողմից դրված գնահատականները։

Ամբողջ գործընթացը բաղկացած է մի քանի տեխնոլոգիական փուլերից՝

Որտեղ է օգտագործվում.

OMR-ը կիրառվում է բոլոր այն ոլորտներում, որտեղ անհրաժեշտ է արագ և ճշգրիտ թվայնացնել նմանատիպ թղթային կամ էլեկտրոնային տվյալների մեծ հոսքերը:


Որո՞նք են VintaSoft Forms Processing .NET Plug-in-ի առանձնահատկությունները OMR-ի համար:

Պիտակների ճանաչման ժամանակակից լուծումները ոչ միայն արագ են, այլև ճկուն են կարգավորման մեջ: Այս ոլորտի տեխնոլոգիական առաջատարներից մեկը VintaSoft Forms Processing .NET Plug-in-ն է:

Այս SDK-ն ապահովում է ձևաթղթերի ավտոմատացված նույնականացման և հավասարեցման, օպտիկական նշանների ճանաչման, ինչպես նաև տեքստի և շտրիխ կոդերի դաշտերի ճանաչման լիարժեք աջակցություն: Հիմնական առանձնահատկություններն են՝


Ինչու՞ են բիզնեսները ընտրում OMR-ը VintaSoft-ի հետ

Ընկերությունների համար մեծ թվով հարցաթերթիկների, թեստերի կամ ստանդարտ ձևերի մշակումը ոչ միայն ճշգրտություն պահանջող խնդիր է, այլև բիզնես գործընթացները օպտիմալացնելու պատճառ։VintaSoft Forms Processing .NET Plug-in-ի օգտագործումը թույլ է տալիս.


Տեխնոլոգիական տեսակետ. Ինչպես է OMR-ը աշխատում VintaSoft-ում

Գործողության ընթացքում ծրագիրը նախ որոշում է, թե ստացված ձևի պատկերը որ ձևանմուշին է պատկանում, հավասարեցնում է այն և միայն դրանից հետո սկսում է վերլուծել OMR դաշտերը։ Այս ճարտարապետությունը թույլ է տալիս մշակել ձևերը, նույնիսկ եթե դրանք սկանավորվել են պտտմամբ, շեղումով կամ մասշտաբի փոփոխություններով։

Ձևանմուշները ստեղծվում են WinForms կամ WPF հավելվածների ներսում ինչպես կոդի, այնպես էլ տեսողական խմբագրիչների միջոցով։ Մշակողը կարող է հարմարեցնել OMR դաշտերի տեսակն ու տեսքը, ընդլայնել ճարտարապետությունը՝ համապատասխանեցնելով դրանք իր սեփական առաջադրանքներին և փաստաթղթերի ձևաչափերին:

Օպտիկական նշանների ճանաչումը (OMR) ժամանակակից ստանդարտ է զանգվածային թղթային և էլեկտրոնային փաստաթղթերի արագ և հուսալի մշակման համար: VintaSoft Forms Processing .NET Plug-in-ի միջոցով գործընթացը դառնում է ճկուն, ճշգրիտ, ինտեգրվող ցանկացած կորպորատիվ համակարգի մեջ և լիովին համապատասխանում է թվային բիզնեսի վերափոխման պահանջներին:


Ահա C# կոդ, որը ցույց է տալիս, թե ինչպես նույնականացնել և ճանաչել 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));
                }
            }
        }
    }
}