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.
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.