Python vasitəsilə Skan edilmiş Səhifələrdə İşarələnmiş Sahələri Aşkar Edin və Çıxarın
Açıq mənbəli pulsuz Python‑əsaslı OMR mühərriki, OMR emalını dəstəkləyir. O, OMR Səhifələrinin emalını, şablon‑əsaslı aşkarlanmasını və çoxsəhifəli formaların idarə edilməsini dəstəkləyir və s.
PyOMR Kitabxanası nədir?
Optik İşarə Tanıma (OMR) sorğular, testlər və səsvermələr kimi sənədlərdə insan tərəfindən işarələnmiş məlumatları əldə etmək üçün güclü bir texnologiyadır. Kommersiya OMR həlləri mövcud olsa da, pulsuz, açıq mənbəli alternativ axtaran inkişafçılar PyOMR‑dən istifadə edə bilərlər; bu, OMR emalı üçün nəzərdə tutulmuş Python kitabxanasıdır. pattyjogal tərəfindən hazırlanmış PyOMR, proqram inkişaf etdiricilərinə sadə Python kodu və standart şəkil emalı texnikaları ilə skan edilmiş formalarda işarələnmiş baloncukları aşkar etməyə imkan verir. Bu, skan edilmiş vərəqlərdə işarələnmiş sahələri aşkar etməyi və çıxarmağı, çoxseçimli formaları, sorğuları və qiymətləndirmələri emal etməyi, həmçinin müxtəlif istifadə halları üçün OMR şablonlarını fərdiləşdirməyi dəstəkləyir.
PyOMR, əvvəlcədən təyin edilmiş formalar, məsələn, MCQ test vərəqləri və ya sorğu cavabları üzərində doldurulmuş işarələri aşkar etmək üçün hazırlanmış Python əsaslı OMR mühərrikidir. O, şəkil emalı üçün OpenCV kimi kitabxanalardan istifadə edir və vərəqdə gözlənilən işarə bölgələrini təyin etmək üçün şablon‑əsaslı sistem təqdim edir. İstər qiymətləndirmə sistemi yaradan proqram inkişafçısı, istər test qiymətləndirməsini avtomatlaşdıran müəllim, istərsə də sorğu məlumatlarını toplayan təşkilat olun, PyOMR OMR funksionallığını birbaşa tətbiqinizə əlavə etməyə imkan verir. Şablon‑əsaslı yanaşma, OpenCV‑güclü aşkarlama və tam skriptlənə bilənliyi ilə, üçüncü tərəf xidmətlərinə ehtiyac duymadan avtomatlaşdırılmış forma emalı alətləri yaratmaq istəyən inkişafçılar üçün ideal seçimdir.
PyOMR ilə Başlamaq
PyOMR Kitabxanasını quraşdırmağın tövsiyə olunan yolu GitHub‑dan istifadə etməkdir. Zəhmət olmasa, problemsiz quraşdırma üçün aşağıdakı əmri istifadə edin
GitHub vasitəsilə PyOMR Kitabxanasını quraşdırın
git clone https://github.com/pattyjogal/pyomr.git
cd pyomr
GitHub vasitəsilə Dəstəklənən Kitabxanaları quraşdırın
pip install opencv-python numpy Kitabxananı birbaşa GitHub saytından yükləyə bilərsiniz.
Python vasitəsilə Avtomatik Şəkil Ön İşlənməsi
• Açıq mənbəli PyOMR kitabxanası Python tətbiqlərində avtomatik şəkil emalı üçün tam dəstəyi daxil edib. Kitabxana meyilli skanları düzəltmək üçün Deskewing, işarələrin daha yaxşı aşkarlanması üçün qara və ağ rəngə çevirmək üçün Thresholding və aşağı keyfiyyətli skanlarda dəqiqliyi artırmaq üçün səs-küyün aradan qaldırılması kimi daxili funksiyaları ehtiva edir. Bundan əlavə, alət işıqlandırma uyğunsuzluqları, aşağı kontrast və ya kiçik yanlılıqlar kimi skan edilmiş formalardakı ümumi problemlərlə başa çıxmağa imkan verir. Aşağıdakı kod nümunəsi Python tətbiqlərində şəkillərin necə emal olunacağını göstərir.
Python Tətbiqlərində Şəkli Necə Emal Etmək Olar?
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 vasitəsilə Şablon-əsaslı Aşkarlama
PyOMR cavab vərəqinizin tərtibatını müəyyən etmək üçün JSON şablonundan istifadə edir. Bu, sualların sayı, hər sual üçün variantların sayı, ilk balonun başlanğıc mövqeyi, sətirlər və sütunlar arasındakı boşluq və balon ölçülərini əhatə edir. Bu, sistemi müxtəlif tərtibatlarda yüksək dərəcədə elastik və təkrar istifadə oluna bilən edir. Burada Python kitabxanası ilə balon mövqelərini təyin edən JSON şablonunun necə yaradılacağını göstərən sadə bir nümunə var.
Bubble Mövqelərini təyin edən JSON Şablonunu Necə Yaratmaq və Python vasitəsilə Yükləmək?
{
"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 vasitəsilə Çox Səhifəli Formların İdarə Edilməsi
PyOMR kitabxanası Python tətbiqində çoxsaylı səhifəli formaların işlənməsi üçün dəstək təmin edir. Tək səhifəli cavab vərəqləri və ya çoxsaylı səhifəli sorğuların işlənməsi fərq etməz, PyOMR müxtəlif layoutları idarə etmək üçün konfiqurasiya oluna bilər. Çoxsaylı səhifəli formalar üçün tövsiyə olunur ki, hər səhifə ayrı-ayrılıqda işlənsin: Aşağıdakı kod nümunəsi proqram inkişaf etdiricilərinin Python tətbiqlərində çoxsaylı səhifəli formaları necə idarə edə biləcəyini göstərir.
Python Kitabxanası vasitəsilə Çox Səhifəli Formları Necə İdarə Etmək Olar?
# 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)
Səs-küyün İdarə Edilməsi və Ön İşlənməsi
Açıq mənbəli PyOMR kitabxanası Python tətbiqlərində tam şəkil ön işləmə və səs-küy idarəetməsi dəstəyi təqdim edir. Kitabxana, işarələri etibarlı şəkildə müəyyən etmək üçün boz tonlu çevirmə, həddə çatdırma və kontur aşkarlanması kimi şəkil ön işləməsini ehtiva edir — hətta səs-küylü skanlar və ya qüsurlu çapla belə.