1. Termékek
  2.   OMR
  3.   Python
  4.   PyOMR
 
  

Jelölt területek felismerése és kinyerése beolvasott lapokról Python segítségével

Nyílt forráskódú ingyenes Python-alapú OMR motor, amely támogatja az OMR feldolgozást. Támogatja az OMR lapok feldolgozását, sablon-alapú felismerést és többoldalas űrlapok kezelését, stb.

Mi a PyOMR könyvtár?

Az optikai jelölésfelismerés (OMR) egy hatékony technológia, amelyet emberi jelölésekkel ellátott adatok rögzítésére használnak olyan dokumentumokból, mint a felmérések, tesztek és szavazólapok. Bár kereskedelmi OMR megoldások léteznek, a fejlesztők, akik ingyenes, nyílt forráskódú alternatívát keresnek, a PyOMR-t használhatják, egy OMR feldolgozásra tervezett Python könyvtárat. A pattyjogal által fejlesztett PyOMR lehetővé teszi a szoftverfejlesztők számára, hogy egyszerű Python kóddal és szabványos képfeldolgozási technikákkal észleljék a beolvasott űrlapokon a megjelölt buborékokat. Támogatja a megjelölt területek felismerését és kinyerését a beolvasott lapokról, a többválaszos űrlapok, felmérések és értékelések feldolgozását, valamint az OMR sablonok testreszabását különféle felhasználási esetekhez.

A PyOMR egy Python-alapú OMR motor, amelyet előre definiált űrlapokon, például feleletválasztós tesztlapokon vagy felmérési válaszokon kitöltött jelölések felismerésére terveztek. Kihasználja az OpenCV-hez hasonló könyvtárakat képfeldolgozáshoz, és sablonalapú rendszert biztosít a várt jelölési területek meghatározásához az űrlapon. Akár szoftverfejlesztő vagy, aki értékelő rendszert épít, tanár, aki automatizálja a tesztek kiértékelését, vagy szervezet, amely felmérési adatokat gyűjt, a PyOMR lehetővé teszi, hogy az OMR funkciót közvetlenül az alkalmazásodba integráld. A sablonalapú megközelítés, az OpenCV-alapú detektálás és a teljes szkriptelhetőség miatt ideális választás azoknak a fejlesztőknek, akik automatizált űrlapfeldolgozó eszközöket szeretnének építeni harmadik fél szolgáltatások nélkül.

Previous Next

Első lépések a PyOMR-rel

A PyOMR könyvtár telepítésének ajánlott módja a GitHub használata. Kérjük, használd a következő parancsot a zökkenőmentes telepítéshez

Telepítse a PyOMR könyvtárat a GitHubon

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

Telepítse a támogatott könyvtárakat a GitHubon

 pip install opencv-python numpy 

A könyvtárat közvetlenül letöltheted a GitHub oldalról

Automatikus képelőfeldolgozás Python segítségével

• Az nyílt forráskódú PyOMR könyvtár teljes támogatást nyújt az automatikus képfeldolgozáshoz Python alkalmazásokon belül. A könyvtár beépített funkciókat tartalmaz a ferde szkenek korrigálásához (Deskewing), a fekete-fehér konvertáláshoz (Thresholding) a jobb jelölésfelismerés érdekében, valamint a zajeltávolításhoz az alacsony minőségű szkenek pontosságának javítása céljából. Emellett lehetővé teszi az eszköz számára, hogy kezelje a beolvasott űrlapok gyakori problémáit, mint a megvilágítási eltérések, alacsony kontraszt vagy kisebb eltolódás. Az alábbi kódrészlet bemutatja, hogyan lehet képeket feldolgozni Python alkalmazásokban.

Hogyan dolgozzuk fel a képet Python alkalmazásokban?

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

Sablon alapú detektálás Python segítségével

PyOMR egy JSON sablont használ a válaszlap elrendezésének meghatározásához. Ez magában foglalja a kérdések számát, kérdésenkénti lehetőségek számát, az első buborék kezdőpozícióját, a sorok és oszlopok közti távolságot, valamint a buborékok méreteit. Ez a rendszert rendkívül rugalmasá és újrahasználhatóvá teszi különböző elrendezések esetén. Itt egy egyszerű példa, amely bemutatja, hogyan lehet JSON sablont létrehozni a buborékpozíciók meghatározásához Python könyvtár használatával.

Hogyan hozzunk létre JSON sablont a buborékpozíciók megadásához, és töltsük be Pythonon keresztül?

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

Többoldalas űrlapok kezelése Python segítségével

A PyOMR könyvtár tartalmaz támogatást a többoldalas űrlapok kezelésére Python alkalmazáson belül. Akár egyoldalas válaszlapokat, akár többoldalas felméréseket dolgoz fel, a PyOMR konfigurálható különböző elrendezések kezelésére. Ajánlott a többoldalas űrlapok esetén minden oldalt külön feldolgozni: Az alábbi kódrészlet bemutatja, hogyan kezelhetik a szoftverfejlesztők a többoldalas űrlapokat Python alkalmazásokban.

Hogyan kezeljünk többoldalas űrlapokat a Python könyvtáron keresztül?

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

Zajkezelés és előfeldolgozás

Az nyílt forráskódú PyOMR könyvtár teljes körű támogatást nyújt a képelőfeldolgozásra és a zajkezelésre Python alkalmazásokban. A könyvtár olyan képelőfeldolgozási funkciókat tartalmaz, mint a szürkeárnyalatos átalakítás, a küszöbölés és a kontúrdetektálás, amelyek megbízhatóan azonosítják a jelöléseket – még zajos beolvasások vagy hibás nyomtatás esetén is.

 Magyar