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

Noteikt un izvilkt iezīmētās zonas no skenētām lapām, izmantojot Python

Atvērta pirmkoda bezmaksas Python balstīts OMR dzinējs, kas atbalsta OMR apstrādi. Tas atbalsta OMR lapu apstrādi, veidņu balstītu noteikšanu un vairāku lapu formu apstrādi un tā tālāk.

Kas ir PyOMR bibliotēka?

Optiskā atzīmes atpazīšana (OMR) ir spēcīga tehnoloģija, ko izmanto, lai no dokumentiem, piemēram, aptaujām, testiem un balsošanas biļetēm, iegūtu cilvēku atzīmētus datus. Lai gan komerciāli OMR risinājumi pastāv, izstrādātāji, kas meklē bezmaksas, atvērtā koda alternatīvu, var izmantot PyOMR – Python bibliotēku, kas paredzēta OMR apstrādei. Pattyjogal izstrādāta PyOMR ļauj programmatūras izstrādātājiem noteikt atzīmētas burbuļus skenētos veidlapās, izmantojot vienkāršu Python kodu un standartizētas attēlu apstrādes metodes. Tā atbalsta atzīmēto apgabalu noteikšanu un izguvi no skenētām lapām, vairākas izvēles veidlapu, aptauju un novērtējumu apstrādi, kā arī OMR veidņu pielāgošanu dažādiem lietošanas gadījumiem.

PyOMR ir Python balstīta OMR dzinējs, kas paredzēts, lai noteiktu aizpildītas atzīmes iepriekš definētās veidlapās, piemēram, MCQ testu lapās vai aptauju atbildēs. Tas izmanto tādas bibliotēkas kā OpenCV attēlu apstrādei un nodrošina veidņu balstītu sistēmu, lai definētu sagaidāmos atzīmju apgabalus uz lapas. Neatkarīgi no tā, vai esat programmatūras izstrādātājs, kas veido vērtēšanas sistēmu, skolotājs, kas automatizē testu novērtēšanu, vai organizācija, kas apkopo aptauju datus, PyOMR ļauj integrēt OMR funkcionalitāti tieši jūsu lietotnē. Ar veidņu balstītu pieeju, OpenCV vadītu noteikšanu un pilnu skriptējamību tas ir ideāls izvēle izstrādātājiem, kas vēlas izveidot automatizētus veidlapu apstrādes rīkus, nepaļaujoties uz trešo pušu pakalpojumiem.

Previous Next

Kā sākt darbu ar PyOMR

Ieteicamais veids, kā instalēt PyOMR bibliotēku, ir izmantojot GitHub. Lūdzu, izmantojiet šādu komandu, lai veiktu gludu instalāciju

Instalējiet PyOMR bibliotēku caur GitHub

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

Instalējiet atbalstītās bibliotēkas caur GitHub

 pip install opencv-python numpy 

Jūs varat lejupielādēt bibliotēku tieši no GitHub

Automātiska attēlu priekšapstrāde ar Python

• Atvērtā koda PyOMR bibliotēka ir iekļāvusi pilnīgu atbalstu automātiskai attēlu apstrādei Python lietojumprogrammās. Bibliotēka ir iekļāvusi iebūvētas funkcijas, piemēram, Deskewing (slīpuma korekciju), lai labotu slīpus skenējumus, Thresholding (sliekšņa noteikšanu), lai pārvērstu attēlus melnbaltā krāsā labākai atzīmju noteikšanai, un trokšņa noņemšanu, lai uzlabotu precizitāti zemākas kvalitātes skenējumos. Turklāt tas ļauj rīkam tikt galā ar biežām problēmām skenētajos veidlapās, piemēram, apgaismojuma nepilnībām, zemu kontrastu vai nelielu neprecizitāti. Zemāk redzams koda piemērs, kas parāda, kā apstrādāt attēlus Python lietojumprogrammās.

Kā apstrādāt attēlu Python lietojumprogrammās?

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

Veidņu balstīta noteikšana ar Python

PyOMR izmanto JSON veidni, lai definētu jūsu atbilžu lapas izkārtojumu. Tas ietver jautājumu skaitu, iespēju skaitu katram jautājumam, pirmā burbuļa sākuma pozīciju, atstarpes starp rindām un kolonnām, kā arī burbuļa dimensijas. Tas padara sistēmu ļoti elastīgu un atkārtoti lietojamu dažādos izkārtojumos. Šeit ir vienkāršs piemērs, kas parāda, kā izveidot JSON veidni, lai norādītu burbuļu pozīcijas, izmantojot Python bibliotēku.

Kā izveidot JSON veidni, lai norādītu burbuļu pozīcijas, un ielādēt to ar 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")

Vairāku lapu formu apstrāde ar Python

PyOMR bibliotēka ietver atbalstu vairāku lapu veidlapu apstrādei Python lietojumprogrammā. Neatkarīgi no tā, vai tiek apstrādātas vienas lapas atbilžu lapas vai vairāku lapu aptaujas, PyOMR var konfigurēt, lai apstrādātu dažādus izkārtojumus. Ieteicams vairāku lapu veidlapām katru lapu apstrādāt atsevišķi: Zemāk redzams koda piemērs, kā programmatūras izstrādātāji var apstrādāt vairāku lapu veidlapas Python lietojumprogrammās.

Kā apstrādāt vairākpuslapas veidlapas ar Python bibliotēku?

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

Trokšņa apstrāde un priekšapstrāde

Atvērtā koda PyOMR bibliotēka nodrošina pilnīgu attēlu priekšapstrādes un trokšņa apstrādes atbalstu Python lietojumprogrammās. Bibliotēka ietver attēlu priekšapstrādi, piemēram, pelēktoņu konvertēšanu, sliekšņa noteikšanu un kontūru noteikšanu, lai uzticami identificētu atzīmes — pat ar trokšņainām skenēm vai nepilnīgu drukāšanu.

 Latviski