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

Detekovat a extrahovat označené oblasti ze skenovaných listů pomocí Pythonu

Open source bezplatný OMR engine založený na Pythonu, který podporuje zpracování OMR. Podporuje zpracování OMR listů, detekci založenou na šablonách a práci s více stránkovými formuláři a podobně.

Co je knihovna PyOMR?

Optické rozpoznávání značek (OMR) je výkonná technologie používaná k zachycení lidsky označených dat z dokumentů, jako jsou průzkumy, testy a hlasovací lístky. Ačkoli existují komerční OMR řešení, vývojáři hledající bezplatnou open-source alternativu mohou využít PyOMR, Python knihovnu určenou pro zpracování OMR. Vyvinutá uživatelem pattyjogal, PyOMR umožňuje vývojářům softwaru detekovat označené bubliny na naskenovaných formulářích pomocí jednoduchého Python kódu a standardních technik zpracování obrazu. Podporuje detekci a extrakci označených oblastí ze skenovaných listů, zpracování formulářů s výběrem více možností, průzkumů a hodnocení, stejně jako přizpůsobení OMR šablon pro různé případy použití.

PyOMR je OMR engine založený na Pythonu, navržený k detekci vyplněných značek na předdefinovaných formulářích, jako jsou testové listy s výběrovými otázkami (MCQ) nebo odpovědi v průzkumech. Využívá knihovny jako OpenCV pro zpracování obrazu a poskytuje systém založený na šablonách pro definování očekávaných oblastí značek na listu. Ať už jste vývojář softwaru budující systém hodnocení, učitel automatizující vyhodnocování testů, nebo organizace sbírající data z průzkumů, PyOMR vám umožní integrovat OMR funkčnost přímo do vaší aplikace. Díky přístupu založenému na šablonách, detekci poháněné OpenCV a plné skriptovatelnosti je to ideální volba pro vývojáře, kteří chtějí vytvářet automatizované nástroje pro zpracování formulářů bez spoléhání se na služby třetích stran.

Previous Next

Začínáme s PyOMR

Doporučený způsob instalace knihovny PyOMR je pomocí GitHubu. Pro hladkou instalaci použijte následující příkaz

Nainstalujte knihovnu PyOMR přes GitHub

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

Nainstalujte podporované knihovny přes GitHub

 pip install opencv-python numpy 

Můžete si stáhnout knihovnu přímo z GitHubu

Automatické předzpracování obrazu pomocí Pythonu

• Open‑source knihovna PyOMR zahrnuje kompletní podporu automatického zpracování obrázků v Python aplikacích. Knihovna obsahuje vestavěné funkce pro deskewing (narovnání) k opravě nakloněných skenů, thresholding (práh) pro převod na černobílý pro lepší detekci značek a odstraňování šumu pro zlepšení přesnosti u nízkokvalitních skenů. Navíc umožňuje nástroji řešit běžné problémy ve skenovaných formulářích, jako jsou nesrovnalosti osvětlení, nízký kontrast nebo drobné nesoulady. Následující ukázkový kód ukazuje, jak zpracovávat obrázky v Python aplikacích.

Jak zpracovat obrázek v Python aplikacích?

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

Detekce založená na šabloně pomocí Pythonu

PyOMR používá JSON šablonu k definování rozvržení vašeho odpovědního listu. To zahrnuje počet otázek, počet možností u každé otázky, počáteční pozici první bubliny, rozestupy mezi řádky a sloupci a rozměry bublin. To dělá systém vysoce flexibilní a znovupoužitelný napříč různými rozvrženími. Zde je jednoduchý příklad, který ukazuje, jak vytvořit JSON šablonu pro určení pozic bublin pomocí Python knihovny.

Jak vytvořit JSON šablonu pro určení pozic bublin a načíst ji pomocí Pythonu?

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

Zpracování vícestránkových formulářů pomocí Pythonu

Knihovna PyOMR zahrnuje podporu pro zpracování vícestránkových formulářů v Python aplikacích. Ať už zpracováváte jednostránkové odpovědní listy nebo vícestránkové průzkumy, lze PyOMR nakonfigurovat tak, aby zvládal různé rozvržení. Pro vícestránkové formuláře se doporučuje zpracovávat každou stránku samostatně: Následující ukázkový kód ukazuje, jak mohou vývojáři softwaru zpracovávat vícestránkové formuláře v Python aplikacích.

Jak zpracovat vícestránkové formuláře pomocí Python knihovny?

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

Zpracování šumu a předzpracování

Open source knihovna PyOMR poskytuje kompletní podporu předzpracování obrazu a odstraňování šumu v Python aplikacích. Knihovna zahrnuje předzpracování obrazu, jako je převod na odstíny šedi, prahování a detekci kontur, aby spolehlivě identifikovala značky – i při šumivých skenech nebo nedokonalém tisku.

 Čeština