Ανίχνευση & Εξαγωγή Σημειωμένων Περιοχών από Σαρωμένα Φύλλα μέσω Python
Δωρεάν ανοιχτού κώδικα μηχανή OMR βασισμένη στην Python που υποστηρίζει την επεξεργασία OMR. Υποστηρίζει την επεξεργασία φύλλων OMR, ανίχνευση βάσει προτύπου και διαχείριση πολυ-σελίδων φορμών κ.ά.
Τι είναι η βιβλιοθήκη PyOMR;
Η τεχνολογία Optical Mark Recognition (OMR) είναι μια ισχυρή τεχνολογία που χρησιμοποιείται για την καταγραφή δεδομένων που σημειώνονται από ανθρώπους σε έγγραφα όπως έρευνες, τεστ και ψηφοδέλτια. Ενώ υπάρχουν εμπορικές λύσεις OMR, οι προγραμματιστές που αναζητούν μια δωρεάν, ανοιχτού κώδικα εναλλακτική λύση μπορούν να αξιοποιήσουν το PyOMR, μια βιβλιοθήκη Python σχεδιασμένη για επεξεργασία OMR. Αναπτυγμένη από τον pattyjogal, το PyOMR επιτρέπει στους προγραμματιστές λογισμικού να ανιχνεύουν τις σημειωμένες φυσαλίδες σε σαρωμένες φόρμες χρησιμοποιώντας απλό κώδικα Python και τυπικές τεχνικές επεξεργασίας εικόνας. Υποστηρίζει την ανίχνευση και εξαγωγή των σημειωμένων περιοχών από σαρωμένα φύλλα, την επεξεργασία φορμών πολλαπλής επιλογής, ερευνών και αξιολογήσεων, καθώς και την προσαρμογή προτύπων OMR για διάφορες περιπτώσεις χρήσης.
Το PyOMR είναι μια μηχανή OMR βασισμένη στην Python, σχεδιασμένη για την ανίχνευση σημειώσεων σε προ-καθορισμένες φόρμες, όπως φύλλα εξετάσεων MCQ ή απαντήσεις ερευνών. Χρησιμοποιεί βιβλιοθήκες όπως η OpenCV για επεξεργασία εικόνας και παρέχει ένα σύστημα βασισμένο σε πρότυπα για τον ορισμό των αναμενόμενων περιοχών σημείωσης στο φύλλο. Είτε είστε προγραμματιστής λογισμικού που δημιουργεί σύστημα βαθμολόγησης, εκπαιδευτικός που αυτοματοποιεί την αξιολόγηση των εξετάσεων, είτε οργανισμός που συλλέγει δεδομένα ερευνών, το PyOMR σας επιτρέπει να ενσωματώσετε τη λειτουργία OMR απευθείας στην εφαρμογή σας. Με μια προσέγγιση βασισμένη σε πρότυπα, ανίχνευση με την OpenCV και πλήρη δυνατότητα scriptability, είναι μια ιδανική επιλογή για προγραμματιστές που θέλουν να δημιουργήσουν αυτοματοποιημένα εργαλεία επεξεργασίας φορμών χωρίς εξάρτηση από υπηρεσίες τρίτων.
Ξεκινώντας με το PyOMR
Ο προτεινόμενος τρόπος εγκατάστασης της βιβλιοθήκης PyOMR είναι μέσω του GitHub. Παρακαλώ χρησιμοποιήστε την παρακάτω εντολή για ομαλή εγκατάσταση
Εγκατάσταση της βιβλιοθήκης PyOMR μέσω GitHub
git clone https://github.com/pattyjogal/pyomr.git
cd pyomr
Εγκατάσταση υποστηριζόμενων βιβλιοθηκών μέσω GitHub
pip install opencv-python numpy Μπορείτε να κατεβάσετε τη βιβλιοθήκη απευθείας από GitHub
Αυτόματη προεπεξεργασία εικόνας μέσω Python
• Η ανοιχτού κώδικα βιβλιοθήκη PyOMR περιλαμβάνει πλήρη υποστήριξη για αυτόματη επεξεργασία εικόνας μέσα σε εφαρμογές Python. Η βιβλιοθήκη περιλαμβάνει ενσωματωμένες λειτουργίες για Deskewing για διόρθωση κλίσης σκαναρισμένων εικόνων, Thresholding για μετατροπή σε ασπρόμαυρο για καλύτερη ανίχνευση σημείων και αφαίρεση θορύβου για βελτίωση της ακρίβειας σε χαμηλής ποιότητας σκαναρίσματα. Επιπλέον, επιτρέπει στο εργαλείο να αντιμετωπίζει κοινά προβλήματα σε σκαναρισμένες φόρμες όπως ασυνέπειες φωτισμού, χαμηλή αντίθεση ή μικρές παραμορφώσεις. Το παρακάτω παράδειγμα κώδικα δείχνει πώς να επεξεργαστείτε εικόνες μέσα σε εφαρμογές Python.
Πώς να επεξεργαστείτε εικόνα μέσα σε εφαρμογές Python;
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'}")
Ανίχνευση βάσει προτύπου μέσω Python
Το PyOMR χρησιμοποιεί ένα πρότυπο JSON για να ορίσει τη διάταξη του φύλλου απαντήσεων σας. Αυτό περιλαμβάνει τον αριθμό των ερωτήσεων, τον αριθμό των επιλογών ανά ερώτηση, τη θέση έναρξης της πρώτης φούσκας, την απόσταση μεταξύ γραμμών και στηλών και τις διαστάσεις της φούσκας. Αυτό καθιστά το σύστημα εξαιρετικά ευέλικτο και επαναχρησιμοποιήσιμο σε διαφορετικές διατάξεις. Εδώ είναι ένα απλό παράδειγμα που δείχνει πώς να δημιουργήσετε ένα πρότυπο JSON για να καθορίσετε τις θέσεις των φουσκών χρησιμοποιώντας τη βιβλιοθήκη Python.
Πώς να δημιουργήσετε ένα πρότυπο JSON για τον καθορισμό θέσεων φυσαλίδων & να το φορτώσετε μέσω 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")
Διαχείριση φορμών πολλαπλών σελίδων μέσω Python
Η βιβλιοθήκη PyOMR περιλαμβάνει υποστήριξη για τη διαχείριση φορμών πολλαπλών σελίδων μέσα σε εφαρμογές Python. Είτε επεξεργάζεστε φύλλα απαντήσεων μίας σελίδας είτε έρευνες πολλαπλών σελίδων, το PyOMR μπορεί να ρυθμιστεί ώστε να χειρίζεται διαφορετικές διατάξεις. Συνιστάται για φόρμες πολλαπλών σελίδων να επεξεργάζεστε κάθε σελίδα ξεχωριστά: Το παρακάτω παράδειγμα κώδικα δείχνει πώς οι προγραμματιστές λογισμικού μπορούν να διαχειριστούν φόρμες πολλαπλών σελίδων μέσα σε εφαρμογές Python.
Πώς να διαχειριστείτε φόρμες πολλαπλών σελίδων μέσω της βιβλιοθήκης Python;
# 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)
Διαχείριση θορύβου και προεπεξεργασία
Η ανοιχτού κώδικα βιβλιοθήκη PyOMR παρέχει πλήρη υποστήριξη προεπεξεργασίας εικόνας και διαχείρισης θορύβου μέσα σε εφαρμογές Python. Η βιβλιοθήκη περιλαμβάνει προεπεξεργασία εικόνας όπως μετατροπή σε κλίμακα του γκρι, οριοθέτηση και ανίχνευση περιγραμμάτων για την αξιόπιστη αναγνώριση σημείων—ακόμη και με θορυβώδεις σαρώσεις ή ατελή εκτύπωση.