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

Erkennen & Extrahieren markierter Bereiche von gescannten Blättern mit Python

Open-Source‑freie, Python-basierte OMR-Engine, die OMR-Verarbeitung unterstützt. Sie unterstützt die Verarbeitung von OMR‑Blättern, template-basierte Erkennung und die Handhabung mehrseitiger Formulare und vieles mehr.

Was ist die PyOMR-Bibliothek?

Optische Markierungserkennung (OMR) ist eine leistungsstarke Technologie, die verwendet wird, um von Menschen markierte Daten aus Dokumenten wie Umfragen, Tests und Stimmzetteln zu erfassen. Während kommerzielle OMR-Lösungen existieren, können Entwickler, die nach einer kostenlosen, Open‑Source-Alternative suchen, PyOMR nutzen, eine in Python geschriebene Bibliothek für die OMR‑Verarbeitung. Entwickelt von pattyjogal ermöglicht PyOMR Softwareentwicklern, markierte Kreise auf gescannten Formularen mithilfe einfachen Python‑Codes und standardmäßiger Bildverarbeitungstechniken zu erkennen. Sie unterstützt das Erkennen und Extrahieren markierter Bereiche aus gescannten Blättern, die Verarbeitung von Multiple‑Choice‑Formularen, Umfragen und Bewertungen sowie das Anpassen von OMR‑Vorlagen für verschiedene Anwendungsfälle.

PyOMR ist eine Python-basierte OMR-Engine, die entwickelt wurde, um ausgefüllte Markierungen auf vordefinierten Formularen zu erkennen, wie z. B. Multiple-Choice-Testbögen oder Umfrageantworten. Sie nutzt Bibliotheken wie OpenCV für die Bildverarbeitung und bietet ein vorlagenbasiertes System, um erwartete Markierungsbereiche auf dem Blatt zu definieren. Ob Sie ein Softwareentwickler sind, der ein Benotungssystem erstellt, ein Lehrer, der Testauswertungen automatisiert, oder eine Organisation, die Umfragedaten sammelt – PyOMR ermöglicht es Ihnen, OMR-Funktionalität direkt in Ihre Anwendung zu integrieren. Mit einem vorlagenbasierten Ansatz, OpenCV‑gestützter Erkennung und voller Skriptbarkeit ist es die ideale Wahl für Entwickler, die automatisierte Formularverarbeitungstools bauen wollen, ohne auf Drittanbieterdienste zurückzugreifen.

Previous Next

Erste Schritte mit PyOMR

Der empfohlene Weg, die PyOMR-Bibliothek zu installieren, ist über GitHub. Bitte verwenden Sie den folgenden Befehl für eine reibungslose Installation.

Installieren Sie die PyOMR-Bibliothek über GitHub

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

Installieren Sie unterstützte Bibliotheken über GitHub

 pip install opencv-python numpy 

Sie können die Bibliothek direkt von GitHub herunterladen

Automatische Bildvorverarbeitung mit Python

• Die Open-Source-PyOMR-Bibliothek bietet vollständige Unterstützung für die automatische Bildverarbeitung in Python-Anwendungen. Die Bibliothek enthält integrierte Funktionen für das Deskewing zur Korrektur von schiefen Scans, das Thresholding zur Umwandlung in Schwarz‑Weiß für bessere Markierungserkennung und die Rauschunterdrückung zur Verbesserung der Genauigkeit bei Scans von geringer Qualität. Darüber hinaus ermöglicht das Tool die Handhabung gängiger Probleme in gescannten Formularen wie Beleuchtungsinkonsistenzen, niedrigen Kontrast oder leichte Fehlstellungen. Das folgende Codebeispiel zeigt, wie Bilder in Python-Anwendungen verarbeitet werden können.

Wie verarbeitet man Bilder in Python-Anwendungen?

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

Vorlagenbasierte Erkennung mit Python

PyOMR verwendet eine JSON-Vorlage, um das Layout Ihres Antwortbogens zu definieren. Dies umfasst die Anzahl der Fragen, die Anzahl der Optionen pro Frage, die Startposition der ersten Blase, den Abstand zwischen Zeilen und Spalten sowie die Abmessungen der Blasen. Dadurch ist das System äußerst flexibel und wiederverwendbar für verschiedene Layouts. Hier ein einfaches Beispiel, das zeigt, wie man mit der Python‑Bibliothek eine JSON‑Vorlage erstellt, um die Positionen der Blasen festzulegen.

Wie erstellt man eine JSON-Vorlage, um Blasenpositionen anzugeben, und lädt sie mit 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")

Verarbeitung von mehrseitigen Formularen mit Python

Die PyOMR-Bibliothek enthält Unterstützung für die Verarbeitung von mehrseitigen Formularen in Python-Anwendungen. Egal, ob einzelne Antwortbögen oder mehrseitige Umfragen verarbeitet werden, kann PyOMR so konfiguriert werden, dass verschiedene Layouts gehandhabt werden. Für mehrseitige Formulare wird empfohlen, jede Seite separat zu verarbeiten: Das folgende Codebeispiel zeigt, wie Softwareentwickler mehrseitige Formulare in Python-Anwendungen handhaben können.

Wie verarbeitet man mehrseitige Formulare mit der Python-Bibliothek?

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

Rauschbehandlung und Vorverarbeitung

Die Open-Source-PyOMR-Bibliothek bietet vollständige Unterstützung für Bildvorverarbeitung und Rauschunterdrückung in Python-Anwendungen. Die Bibliothek umfasst Bildvorverarbeitung wie Graustufen-Konvertierung, Schwellenwertbestimmung und Konturerkennung, um Markierungen zuverlässig zu identifizieren – selbst bei verrauschten Scans oder fehlerhaftem Druck.

 Deutsch