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

Aptikti ir išgauti pažymėtas sritis iš nuskenuotų lapų naudojant Python

Atviro kodo nemokamas Python pagrindu sukurtas OMR variklis, palaikantis OMR apdorojimą. Jis palaiko OMR lapų apdorojimą, šablonų pagrindu vykstantį aptikimą ir daugelio puslapių formų tvarkymą ir pan.

Kas yra PyOMR biblioteka?

Optinė žymėjimo atpažinimo (OMR) technologija yra galinga priemonė, naudojama žmonių pažymėtų duomenų surinkimui iš dokumentų, tokių kaip apklausos, testai ir balsavimo lapeliai. Nors egzistuoja komerciniai OMR sprendimai, kūrėjai, ieškantys nemokamos, atviro kodo alternatyvos, gali pasinaudoti PyOMR – Python biblioteka, skirta OMR apdorojimui. Sukurta pattyjogal, PyOMR leidžia programinės įrangos kūrėjams aptikti pažymėtus burbuliukus nuskenuotose formose naudojant paprastą Python kodą ir standartines vaizdo apdorojimo technikas. Ji palaiko pažymėtų sričių aptikimą ir išskyrimą iš nuskenuotų lapų, kelių pasirinkimų formų, apklausų ir vertinimų apdorojimą, taip pat OMR šablonų pritaikymą įvairioms naudojimo situacijoms.

PyOMR yra Python pagrindu veikianti OMR variklis, sukurtas aptikti užpildytus žymėjimus iš anksto apibrėžtuose formatuose, pvz., MCQ testų lapuose arba apklausų atsakymuose. Jis naudoja tokias bibliotekas kaip OpenCV vaizdų apdorojimui ir suteikia šablonų pagrindu veikiančią sistemą, leidžiančią apibrėžti laukiamas žymų sritis lape. Nesvarbu, ar esate programinės įrangos kūrėjas, kuriantis vertinimo sistemą, mokytojas, automatizuojantis testų vertinimą, ar organizacija, renkantis apklausų duomenis, PyOMR leidžia tiesiogiai integruoti OMR funkcionalumą į jūsų programą. Su šablonų pagrindu priėtu požiūriu, OpenCV varoma aptikimu ir visiška skriptų galimybe, tai idealus pasirinkimas kūrėjams, norintiems kurti automatizuotas formų apdorojimo priemones be trečiųjų šalių paslaugų.

Previous Next

Pradžia su PyOMR

Rekomenduojamas būdas įdiegti PyOMR biblioteką yra naudoti GitHub. Norėdami sklandžiai įdiegti, naudokite šią komandą

Įdiekite PyOMR biblioteką per GitHub

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

Įdiekite palaikomas bibliotekas per GitHub

 pip install opencv-python numpy 

Galite atsisiųsti biblioteką tiesiai iš GitHub

Automatinis vaizdų išankstinis apdorojimas naudojant Python

• Atviro kodo PyOMR biblioteka įtraukė visapusišką automatinio vaizdų apdorojimo palaikymą Python programose. Biblioteka turi įmontuotas funkcijas, skirtas iškrypimo (Deskewing) koregavimui, slenkčio (Thresholding) nustatymui, kad konvertuotų į juodai baltą spalvą geresniam žymų aptikimui, ir triukšmo šalinimui, siekiant pagerinti tikslumą prastos kokybės skenavimuose. Be to, ji leidžia įrankiui tvarkyti įprastas problemų skenintuose formatuose, pvz., apšvietimo nenuoseklumą, mažą kontrastą arba nedidelį nesutapimą. Žemiau pateiktas kodo pavyzdys rodo, kaip apdoroti vaizdus Python programose.

Kaip apdoroti vaizdą Python programose?

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

Šablonų pagrindu veikianti aptikimas naudojant Python

PyOMR naudoja JSON šabloną, kad apibrėžtų jūsų atsakymų lapo išdėstymą. Tai apima klausimų skaičių, atsakymų variantų skaičių kiekvienam klausimui, pirmojo burbulo pradžios poziciją, tarpų tarp eilučių ir stulpelių bei burbulo matmenis. Tai daro sistemą itin lankstią ir pakartotinai naudojamą skirtinguose išdėstymuose. Čia pateiktas paprastas pavyzdys, rodantis, kaip sukurti JSON šabloną, nurodantį burbulo pozicijas naudojant Python biblioteką.

Kaip sukurti JSON šabloną, nurodantį burbuliukų pozicijas & Įkelti jį per 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")

Daugelio puslapių formų tvarkymas naudojant Python

PyOMR biblioteka įtraukia palaikymą daugelio puslapių formų tvarkymui Python programoje. Nesvarbu, ar apdorojate vieno puslapio atsakymų lapus, ar daugelio puslapių apklausas, PyOMR galima sukonfigūruoti skirtingų išdėstymų tvarkymui. Rekomenduojama daugelio puslapių formoms apdoroti kiekvieną puslapį atskirai: Žemiau pateiktas kodo pavyzdys rodo, kaip programinės įrangos kūrėjai gali tvarkyti daugelio puslapių formas Python programose.

Kaip tvarkyti kelių puslapių formas per Python biblioteką?

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

Triukšmo tvarkymas ir išankstinis apdorojimas

Atviro kodo PyOMR biblioteka suteikia visapusišką vaizdo išankstinį apdorojimą ir triukšmo valdymą Python programose. Biblioteka apima vaizdo išankstinį apdorojimą, pvz., pilkų tonų konvertavimą, slenkstį ir kontūrų aptikimą, kad patikimai identifikuotų žymas – net su triukšmingais nuskaitymais ar netobliu spausdinimu.

 Lietuvių