1. منتجات
  2.   OMR
  3.   Python
  4.   PyOMR
 
  

اكتشاف واستخراج المناطق المحددة من الأوراق الممسوحة ضوئياً عبر بايثون

محرك OMR مجاني ومفتوح المصدر مبني على بايثون يدعم معالجة OMR. يدعم معالجة أوراق OMR، الكشف القائم على القوالب ومعالجة النماذج متعددة الصفحات وما إلى ذلك.

ما هي مكتبة PyOMR؟

التعرف البصري على العلامات (OMR) هو تقنية قوية تُستخدم لالتقاط البيانات التي يضعها البشر على المستندات مثل الاستطلاعات والاختبارات والبطاقات الانتخابية. بينما توجد حلول OMR تجارية، يمكن للمطورين الذين يبحثون عن بديل مجاني ومفتوح المصدر الاستفادة من PyOMR، وهي مكتبة بايثون مصممة لمعالجة OMR. تم تطوير PyOMR بواسطة pattyjogal، وتمكن مطوري البرمجيات من اكتشاف الفقاعات المحددة على النماذج الممسوحة ضوئياً باستخدام كود بايثون بسيط وتقنيات معالجة الصور القياسية. تدعم المكتبة اكتشاف واستخراج المناطق المحددة من الأوراق الممسوحة، ومعالجة نماذج الاختيار المتعدد، والاستطلاعات، والتقييمات، بالإضافة إلى تخصيص قوالب OMR لمختلف حالات الاستخدام.

PyOMR هو محرك OMR مبني على بايثون صُمم لاكتشاف العلامات المملوءة على النماذج المحددة مسبقًا، مثل أوراق الاختبارات المتعددة الخيارات أو استجابات الاستطلاعات. يستخدم مكتبات مثل OpenCV لمعالجة الصور ويوفر نظامًا قائمًا على القوالب لتحديد مناطق العلامات المتوقعة على الورقة. سواء كنت مطور برامج يبني نظام تقييم، أو معلمًا ي automatisation تقييم الاختبارات، أو منظمة تجمع بيانات الاستطلاعات، يتيح لك PyOMR دمج وظيفة OMR مباشرةً في تطبيقك. بفضل النهج القائم على القوالب، واكتشاف مدعوم بـ OpenCV، وإمكانية البرمجة الكاملة، فهو خيار مثالي للمطورين الذين يرغبون في بناء أدوات معالجة نماذج تلقائية دون الاعتماد على خدمات طرف ثالث.

Previous Next

البدء مع PyOMR

الطريقة الموصى بها لتثبيت مكتبة PyOMR هي باستخدام GitHub. يرجى استخدام الأمر التالي لتثبيت سلس

تثبيت مكتبة PyOMR عبر GitHub

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

تثبيت المكتبات المدعومة عبر GitHub

 pip install opencv-python numpy 

يمكنك تنزيل المكتبة مباشرةً من GitHub

المعالجة التلقائية للصور عبر بايثون

• لقد شملت مكتبة PyOMR المفتوحة المصدر دعمًا كاملاً لمعالجة الصور تلقائيًا داخل تطبيقات بايثون. تتضمن المكتبة وظائف مدمجة لتصحيح الميل (Deskewing) لتصحيح المسحات المائلة، والعتبة (Thresholding) لتحويلها إلى أبيض وأسود لتحسين اكتشاف العلامات وإزالة الضوضاء لتحسين الدقة في المسحات منخفضة الجودة. علاوة على ذلك، تسمح الأداة بالتعامل مع المشكلات الشائعة في النماذج الممسوحة ضوئيًا مثل عدم تناسق الإضاءة، انخفاض التباين، أو الانحراف الطفيف. يوضح مثال الشيفرة التالي كيفية معالجة الصور داخل تطبيقات بايثون.

كيف يتم معالجة الصورة داخل تطبيقات بايثون؟

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

الكشف القائم على القوالب عبر بايثون

يستخدم PyOMR قالب JSON لتحديد تخطيط ورقة الإجابة الخاصة بك. يشمل ذلك عدد الأسئلة، عدد الخيارات لكل سؤال، موضع البداية للفقاعة الأولى، المسافة بين الصفوف والأعمدة وأبعاد الفقاعات. يجعل ذلك النظام مرنًا للغاية وقابلًا لإعادة الاستخدام عبر تخطيطات مختلفة. إليك مثالًا بسيطًا يوضح كيفية إنشاء قالب JSON لتحديد مواضع الفقاعات باستخدام مكتبة بايثون.

كيف تنشئ قالب JSON لتحديد مواضع الفقاعات و تحميله عبر بايثون؟

{
  "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")

معالجة النماذج متعددة الصفحات عبر بايثون

توفر مكتبة PyOMR دعمًا لمعالجة النماذج متعددة الصفحات داخل تطبيقات بايثون. سواءً كنت تعالج أوراق الإجابة ذات الصفحة الواحدة أو الاستطلاعات متعددة الصفحات، يمكن تكوين PyOMR للتعامل مع تخطيطات مختلفة. يُنصح بالنسبة للنماذج متعددة الصفحات بمعالجة كل صفحة على حدة: يوضح مثال الشيفرة التالي كيف يمكن للمطورين التعامل مع النماذج متعددة الصفحات داخل تطبيقات بايثون.

كيف تتعامل مع النماذج متعددة الصفحات عبر مكتبة بايثون؟

# 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 المفتوحة المصدر دعمًا كاملاً لمعالجة الصور المسبقة ومعالجة الضوضاء داخل تطبيقات بايثون. تشمل المكتبة معالجة مسبقة للصور مثل تحويلها إلى تدرج الرمادي، والعتبة، واكتشاف الحدود لتحديد العلامات بدقة—حتى مع المسحات الضوضائية أو الطباعة غير المثالية.

 عربي