Python ile Taralı Sayfalardan İşaretlenmiş Alanları Algıla ve Çıkar
Açık Kaynak Ücretsiz Python tabanlı OMR Motoru, OMR İşlemesini Destekler. OMR Sayfalarının İşlenmesi, Şablon Tabanlı Algılama ve Çok Sayfalı Formların Yönetimi gibi özellikleri destekler.
PyOMR Kütüphanesi nedir?
Optik İşaret Tanıma (OMR), anketler, testler ve oy pusulaları gibi belgelerden insan tarafından işaretlenmiş verileri yakalamak için kullanılan güçlü bir teknolojidir. Ticari OMR çözümleri mevcut olsa da, ücretsiz ve açık kaynaklı bir alternatif arayan geliştiriciler, OMR işleme için tasarlanmış bir Python kütüphanesi olan PyOMR'yi kullanabilirler. pattyjogal tarafından geliştirilen PyOMR, yazılım geliştiricilerin taranmış formlardaki işaretli balonları basit Python kodu ve standart görüntü işleme teknikleriyle tespit etmelerini sağlar. Tarama sayfalarından işaretli alanları tespit etmeyi ve çıkarmayı, çoktan seçmeli formları, anketleri ve değerlendirmeleri işlemeyi ve çeşitli kullanım senaryoları için OMR şablonlarını özelleştirmeyi destekler.
PyOMR, MCQ test kağıtları veya anket yanıtları gibi önceden tanımlanmış formlarda doldurulmuş işaretleri tespit etmek için tasarlanmış Python tabanlı bir OMR motorudur. Görüntü işleme için OpenCV gibi kütüphanelerden yararlanır ve sayfada beklenen işaret bölgelerini tanımlamak için şablon tabanlı bir sistem sunar. İster bir notlandırma sistemi geliştiren bir yazılım geliştiricisi, ister test değerlendirmelerini otomatikleştiren bir öğretmen, ister anket verileri toplayan bir organizasyon olun, PyOMR OMR işlevselliğini doğrudan uygulamanıza entegre etmenizi sağlar. Şablon tabanlı yaklaşım, OpenCV destekli algılama ve tam betiklenebilirlik sayesinde, üçüncü taraf hizmetlere güvenmeden otomatik form işleme araçları oluşturmak isteyen geliştiriciler için ideal bir seçimdir.
PyOMR'ye Başlarken
PyOMR Kütüphanesini kurmanın önerilen yolu GitHub kullanmaktır. Sorunsuz bir kurulum için lütfen aşağıdaki komutu kullanın.
GitHub üzerinden PyOMR Kütüphanesini Kurun
git clone https://github.com/pattyjogal/pyomr.git
cd pyomr
GitHub üzerinden Desteklenen Kütüphaneleri Kurun
pip install opencv-python numpy Kütüphaneyi doğrudan GitHub üzerinden indirebilirsiniz.
Python ile Otomatik Görüntü Ön İşleme
• Açık kaynaklı PyOMR kütüphanesi, Python uygulamaları içinde otomatik görüntü işleme için tam destek sağlamaktadır. Kütüphane, eğik taramaları düzeltmek için Deskewing, işaret tespiti için siyah beyaza dönüştürme amacıyla Thresholding ve düşük kaliteli taramalarda doğruluğu artırmak için gürültü giderme gibi yerleşik işlevler içermektedir. Ayrıca, aydınlatma tutarsızlıkları, düşük kontrast veya hafif hizalama hataları gibi taranmış formlardaki yaygın sorunlarla başa çıkmayı mümkün kılar. Aşağıdaki kod örneği, Python uygulamaları içinde görüntülerin nasıl işleneceğini göstermektedir.
Python Uygulamalarında Görüntüyü Nasıl İşlersiniz?
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 ile Şablon Tabanlı Algılama
PyOMR, cevap kağıdınızın düzenini tanımlamak için bir JSON şablonu kullanır. Bu, soru sayısı, her soru için seçenek sayısı, ilk balonun başlangıç konumu, satırlar ve sütunlar arasındaki boşluk ve balon boyutlarını içerir. Bu, sistemi farklı düzenlerde son derece esnek ve yeniden kullanılabilir kılar. İşte Python kütüphanesini kullanarak balon konumlarını belirten bir JSON şablonu oluşturmayı gösteren basit bir örnek.
Balon Pozisyonlarını Belirlemek İçin JSON Şablonu Nasıl Oluşturulur ve Python ile Yüklenir?
{
"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 ile Çok Sayfalı Formları İşleme
PyOMR kütüphanesi, Python uygulamaları içinde çok sayfalı formların işlenmesi için destek içerir. Tek sayfalı cevap kağıtları ya da çok sayfalı anketler işlenirken, PyOMR farklı düzenleri yönetebilecek şekilde yapılandırılabilir. Çok sayfalı formlar için her sayfayı ayrı ayrı işlemek önerilir: Aşağıdaki kod örneği, yazılım geliştiricilerin Python uygulamaları içinde çok sayfalı formları nasıl ele alabileceklerini gösterir.
Python Kütüphanesi ile Çok Sayfalı Formlar Nasıl Yönetilir?
# 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)
Gürültü İşleme ve Ön İşleme
Açık kaynaklı PyOMR kütüphanesi, Python uygulamaları içinde görüntü ön işleme ve gürültü yönetimi için tam destek sunar. Kütüphane, işaretleri güvenilir bir şekilde tanımlamak için gri tonlama dönüşümü, eşikleme ve kontur tespiti gibi görüntü ön işleme adımlarını içerir—gürültülü taramalar ya da kusurlu baskılarla bile.