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

Havaitse ja poimi merkityt alueet skannatuista lomakkeista Pythonin avulla

Avoimen lähdekoodin ilmainen Python-pohjainen OMR-moottori, joka tukee OMR-käsittelyä. Se tukee OMR-lomakkeiden käsittelyä, mallipohjaista havaitsemista ja monisivuisien lomakkeiden käsittelyä ym.

Mikä on PyOMR-kirjasto?

Optinen merkintätunnistus (OMR) on tehokas teknologia, jota käytetään ihmisten merkitsemien tietojen keräämiseen asiakirjoista, kuten kyselyistä, testeistä ja äänestyspapereista. Vaikka kaupallisia OMR-ratkaisuja on olemassa, kehittäjät, jotka etsivät ilmaista, avoimen lähdekoodin vaihtoehtoa, voivat hyödyntää PyOMR:ää, Python-kirjastoa, joka on suunniteltu OMR-käsittelyyn. Pattyjogalin kehittämä PyOMR mahdollistaa ohjelmistokehittäjille merkittyjen kuplien havaitsemisen skannatuissa lomakkeissa yksinkertaisella Python-koodilla ja tavallisilla kuvankäsittelytekniikoilla. Se tukee merkittyjen alueiden havaitsemista ja poimintaa skannatuista arkeista, monivalintalomakkeiden, kyselyiden ja arviointien käsittelyä sekä OMR-mallien mukauttamista erilaisiin käyttötapauksiin.

PyOMR on Python-pohjainen OMR-moottori, joka on suunniteltu havaitsemaan täytetyt merkinnät ennalta määritellyillä lomakkeilla, kuten monivalintakokeiden vastauslomakkeilla tai kyselyvastauksissa. Se hyödyntää kirjastoja kuten OpenCV kuvan käsittelyyn ja tarjoaa mallipohjaisen järjestelmän odotettujen merkintäalueiden määrittämiseen lomakkeella. Olitpa sitten ohjelmistokehittäjä, joka rakentaa arviointijärjestelmää, opettaja, joka automatisoi kokeiden arviointia, tai organisaatio, joka kerää kyselytietoja, PyOMR mahdollistaa OMR-toiminnallisuuden liittämisen suoraan sovellukseesi. Mallipohjaisen lähestymistavan, OpenCV-pohjaisen tunnistuksen ja täyden skriptattavuuden ansiosta se on ihanteellinen valinta kehittäjille, jotka haluavat rakentaa automatisoituja lomakekäsittelytyökaluja ilman kolmannen osapuolen palveluita.

Previous Next

Aloittaminen PyOMR:n kanssa

Suositeltu tapa asentaa PyOMR-kirjasto on käyttää GitHubia. Käytä seuraavaa komentoa sujuvaa asennusta varten.

Asenna PyOMR-kirjasto GitHubin kautta

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

Asenna tuetut kirjastot GitHubin kautta

 pip install opencv-python numpy 

Voit ladata kirjaston suoraan GitHub.

Automaattinen kuvan esikäsittely Pythonin avulla

• Avoimen lähdekoodin PyOMR-kirjasto sisältää täyden tuen automaattiselle kuvankäsittelylle Python-sovelluksissa. Kirjasto tarjoaa sisäänrakennettuja toimintoja, kuten Deskewing vinon skannauksen korjaamiseksi, Thresholding muuntamiseksi mustavalkoiseksi paremman merkintähavainnon vuoksi ja kohinan poisto tarkkuuden parantamiseksi heikkolaatuisissa skannauksissa. Lisäksi työkalu pystyy käsittelemään yleisiä skannattujen lomakkeiden ongelmia, kuten valaistuksen epätasaisuuksia, heikkoa kontrastia tai pieniä kohdistusvirheitä. Seuraava koodiesimerkki näyttää, miten kuvia käsitellään Python-sovelluksissa.

Kuinka käsitellä kuvaa Python-sovelluksissa?

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'}")

Mallipohjainen havaitseminen Pythonin avulla

PyOMR käyttää JSON-mallia määrittääkseen vastauslomakkeen asettelun. Tämä sisältää kysymysten määrän, vaihtoehtojen määrän per kysymys, ensimmäisen kuplan aloituspaikan, rivien ja sarakkeiden välin sekä kuplan mitat. Tämä tekee järjestelmästä erittäin joustavan ja uudelleenkäytettävän eri asetteluissa. Tässä on yksinkertainen esimerkki, joka näyttää, miten luodaan JSON-malli kuplan sijaintien määrittämiseksi Python-kirjastoa käyttäen.

Kuinka luoda JSON-malli kuplien sijaintien määrittämiseksi ja ladata se Pythonin avulla?

{
  "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")

Monisivuisien lomakkeiden käsittely Pythonin avulla

PyOMR-kirjasto sisältää tuen monisivuisien lomakkeiden käsittelyyn Python-sovelluksissa. Olipa kyseessä yhden sivun vastauslomakkeet tai monisivuiset kyselyt, PyOMR voidaan konfiguroida eri asettelujen käsittelemiseksi. Monisivuisia lomakkeita suositellaan käsittelemään sivu kerrallaan: Seuraava koodiesimerkki näyttää, miten ohjelmistokehittäjät voivat käsitellä monisivuisia lomakkeita Python-sovelluksissa.

Kuinka käsitellä monisivuisia lomakkeita Python-kirjaston avulla?

# 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)

Kohinan käsittely ja esikäsittely

Avoimen lähdekoodin PyOMR-kirjasto tarjoaa täyden tuen kuvankäsittelyyn ja kohinan hallintaan Python-sovelluksissa. Kirjasto sisältää kuvankäsittelyn, kuten harmaasävyyn muunnoksen, raja-arvon asettamisen ja ääriviivojen tunnistuksen, jotta merkinnät voidaan tunnistaa luotettavasti – jopa kohinaisissa skannauksissa tai epätäydellisessä tulostuksessa.

 Suomen