1. Produkter
  2.   OMR
  3.   Python
  4.   PyOMR
 
  

Registrer og udtræk markerede områder fra scannede ark via Python

Open source gratis Python-baseret OMR-motor, der understøtter OMR-behandling. Den understøtter behandling af OMR-ark, skabelonbaseret detektion og håndtering af flersidede formularer og så videre.

Hvad er PyOMR-biblioteket?

Optisk mærkegenkendelse (OMR) er en kraftfuld teknologi, der bruges til at indfange menneskeskrevne data fra dokumenter som spørgeskemaer, tests og stemmeblanketter. Selvom der findes kommercielle OMR-løsninger, kan udviklere, der søger et gratis, open source-alternativ, udnytte PyOMR, et Python-bibliotek designet til OMR-behandling. Udviklet af pattyjogal gør PyOMR det muligt for softwareudviklere at opdage markerede bobler på scannede formularer ved hjælp af simpel Python-kode og standard billedbehandlingsteknikker. Det understøtter at opdage og udtrække markerede områder fra scannede ark, behandle multiple-choice-formularer, spørgeskemaer og vurderinger samt tilpasse OMR-skabeloner til forskellige anvendelsestilfælde.

PyOMR er en Python-baseret OMR-motor designet til at opdage udfyldte mærker på foruddefinerede formularer, såsom MCQ-testark eller spørgeskemasvar. Den udnytter biblioteker som OpenCV til billedbehandling og leverer et skabelonbaseret system til at definere forventede mærkeområder på arket. Uanset om du er en softwareudvikler, der bygger et bedømmelsessystem, en lærer, der automatiserer testvurderinger, eller en organisation, der indsamler spørgeskemadata, gør PyOMR det muligt at integrere OMR-funktionalitet direkte i din app. Med en skabelonbaseret tilgang, OpenCV-drevet detektion og fuld scriptbarhed er det et ideelt valg for udviklere, der ønsker at bygge automatiserede formularbehandlingsværktøjer uden at stole på tredjepartstjenester.

Previous Next

Kom i gang med PyOMR

Den anbefalede måde at installere PyOMR-biblioteket på er via GitHub. Brug venligst følgende kommando for en problemfri installation

Installer PyOMR-biblioteket via GitHub

 git clone https://github.com/pattyjogal/pyomr.git
cd pyomr
 

Installer understøttede biblioteker via GitHub

 pip install opencv-python numpy 

Du kan downloade biblioteket direkte fra GitHub

Automatisk billedforbehandling via Python

• Det open source PyOMR-bibliotek har inkluderet fuld support for automatisk billedbehandling i Python-applikationer. Biblioteket indeholder indbyggede funktioner til Deskewing (rettelse af skæve scanninger), Thresholding (konvertering til sort/hvid for bedre mærke-detektion) og støjfjernelse for at forbedre nøjagtigheden i lavkvalitets scanninger. Desuden gør det værktøjet i stand til at håndtere almindelige problemer i scannede formularer som lysinkonsistens, lav kontrast eller mindre fejljustering. Følgende kodeeksempel viser, hvordan man behandler billeder i Python-applikationer.

Hvordan behandler man billeder i Python‑apps?

from omr import omr_engine

# File paths
template_path = "config.json"
image_path = "answer_sheet.jpg"

# Run the OMR process
results = omr_engine.process_image(image_path, template_path)

# Output the results
for i, response in enumerate(results, 1):
    print(f"Q{i}: {response if response else 'No mark detected'}")

Skabelonbaseret detektion via Python

PyOMR bruger en JSON-skabelon til at definere layoutet af dit svarark. Dette inkluderer antallet af spørgsmål, antallet af svarmuligheder pr. spørgsmål, startpositionen for den første boble, afstanden mellem rækker og kolonner samt bobledimensionerne. Dette gør systemet meget fleksibelt og genanvendeligt på tværs af forskellige layouts. Her er et enkelt eksempel, der viser, hvordan man opretter en JSON-skabelon til at specificere boblepositioner ved hjælp af Python-biblioteket.

Hvordan opretter man en JSON‑skabelon til at specificere boblepositioner & indlæse den via Python?

{
  "bubbles": [
    {"question": "Q1", "options": ["A", "B", "C", "D"], "coords": [100, 150, 30, 30]},
    {"question": "Q2", "options": ["A", "B", "C", "D"], "coords": [100, 200, 30, 30]}
  ],
  "reference_marks": [[50, 50], [500, 50], [50, 700]]
}
#Load template
omr.load_template("template.json")

Håndtering af flersidede formularer via Python

PyOMR-biblioteket har inkluderet support til håndtering af flersidede formularer i Python-applikationer. Uanset om du behandler enkelt-sides svarark eller flersidede undersøgelser, kan PyOMR konfigureres til at håndtere forskellige layout. Det anbefales for flersidede formularer at behandle hver side separat: Følgende kodeeksempel viser, hvordan softwareudviklere kan håndtere flersidede formularer i Python-applikationer.

Hvordan håndterer man flersidede formularer via Python‑biblioteket?

# for multi-page forms, process each page separately:

for page in omr.multi_page_scan("multi_page_form.pdf"):
    page.preprocess()
    answers = page.read_answers()
    print(answers)

Støjhåndtering og forbehandling

Det open source PyOMR-bibliotek har leveret komplet support til billedforbehandling og støjhåndtering i Python-applikationer. Biblioteket inkluderer billedforbehandling såsom konvertering til gråtoner, tærskelværdier og konturdetektion for pålideligt at identificere mærker – selv med støjende scanninger eller ufuldstændig udskrivning.

 Dansk