Optical Character Recognition (OCR)
يحوّل التعرّف البصري على الأحرف (OCR) النصوص في الصور الممسوحة ضوئيًا والصور الفوتوغرافية إلى أحرف قابلة للقراءة آليًا. تعرّف إلى مرحلتي الكشف والتعرّف، مع أمثلة برمجية.
التعرّف الضوئي على الحروف (OCR) هو تحويل النص الموجود في الصور، مثل الصفحات الممسوحة ضوئيًا والصور الفوتوغرافية ولقطات الشاشة وإطارات الفيديو، إلى محارف قابلة للقراءة آليًا يمكن للبرامج البحث فيها وتحريرها وتحليلها. كانت الأنظمة المبكرة تطابق كل محرف مع قوالب مخزّنة لخطوط معروفة. أما OCR الحديث فيستخدم التعلّم العميق لـالعثور على النص في أي موضع من الصورة وقراءة الكلمات والأسطر كاملةً دفعة واحدة، ما يتيح التعامل مع الخطوط المتنوعة والدقة المنخفضة والمنظور والخلفيات المزدحمة. ويشمل OCR كلاً من نصوص المستندات، مثل الفواتير والكتب، ونصوص المشاهد، مثل اللافتات وملصقات المنتجات ولوحات التسجيل.
آلية عمل OCR#
تشغّل معظم أنظمة OCR نموذجين بالتتابع:
- اكتشاف النص: يعثر الكاشف على مناطق الصورة التي تحتوي على نص، ويُخرج صندوقًا أو مضلعًا لكل كلمة أو سطر. وتتنبأ كواشف نصوص المشاهد مثل EAST وCRAFT وDBNet بمناطق النص بكسلًا تلو الآخر، ما يتيح التعامل مع النص المنحني والمائل.
- التعرّف على النصوص: تُقصّ كل منطقة وتُصحَّح استقامتها ويُعاد تحجيمها إلى ارتفاع ثابت، ثم يقرأ نموذج التعرّف محارفها. يمرّر تصميم CRNN القصاصة عبر CNN، ويقرأ أعمدة السمات الناتجة من اليسار إلى اليمين باستخدام شبكة LSTM ثنائية الاتجاه، ويفكّ ترميزها باستخدام التصنيف الزمني الترابطي (CTC)، الذي يوائم التنبؤات الخاصة بكل عمود مع سلسلة من المحارف من دون تحديد موضع بدء كل محرف. أما نماذج التعرّف القائمة على Transformer، مثل TrOCR من Microsoft، فتولّد المحارف باستخدام مفكّك ترميز نصي بدلًا من ذلك.
لا تزال المعالجة المسبقة، مثل التحويل إلى صورة ثنائية وتصحيح الميل، مفيدةً للمسوح الضوئية الرديئة، وتتحقق المعالجة اللاحقة من الخرج بمقارنته بالقواميس أو التنسيقات المتوقعة أو نموذج لغوي. تجمع EasyOCR المرحلتين، أي كاشف CRAFT ومُعرِّف CRNN، لدعم أكثر من 80 لغة:
import easyocr
# Load EasyOCR's CRAFT text detector and English CRNN text recognizer
reader = easyocr.Reader(["en"])
# Detect every text region in the photo, then read the characters inside it
results = reader.readtext("https://ultralytics.com/images/bus.jpg")
# Each result holds a 4-corner box, the recognized string, and a confidence score
for box, text, confidence in results:
if confidence > 0.5:
print(f"{text}: {confidence:.2f}")يطبع cero: 0.95 وemisiones: 0.99، وهما الكلمتان المكتوبتان على جانب الحافلة. ويكتشف الكاشف أيضًا لافتة الوجهة ذات مصفوفة النقاط على الحافلة والنص الصغير على نوافذها، لكن المُعرِّف يعيد سلاسل مشوّهة لهما بدرجات ثقة أقل من 0.5، فتستبعدهما العتبة.
تضيف المستندات خطوة لتحديد التخطيط قبل التعرّف. يقسّم نموذج التخطيط الصفحة إلى كتل، ويُعالَج كل نوع من الكتل بطريقة خاصة، ثم تُعاد تجميع النتائج حسب ترتيب القراءة، بحيث تُقرأ المقالة ذات العمودين عمودًا تلو الآخر:
يُقاس مستوى الدقة بمعدل خطأ المحارف (CER)، أي عدد عمليات إدراج المحارف وحذفها واستبدالها اللازمة لتحويل الخرج إلى النص الصحيح، مقسومًا على طول النص الصحيح، وبمعدل خطأ الكلمات (WER)، المحسوب بالطريقة نفسها على مستوى الكلمات.
محركات OCR ونماذجه#
نشأ محرك Tesseract مفتوح المصدر في Hewlett-Packard خلال ثمانينيات القرن العشرين، وأُطلق بصفته مفتوح المصدر عام 2005، وطُوّر برعاية Google من 2006 إلى 2018؛ وأضاف الإصدار 4 محركًا للتعرّف يستند إلى شبكة LSTM. تتيح الخدمات السحابية مثل Google Cloud Vision وAmazon Textract استخراج تخطيطات الصفحات والجداول والنماذج. وتزداد قدرة نماذج الرؤية واللغة على قراءة المستندات من البداية إلى النهاية: يحوّل olmOCR من Allen Institute for AI صفحات PDF إلى نص نظيف باستخدام نموذج رؤية ولغة جرى ضبطه بدقة، وتجيب نماذج المستندات التي لا تعتمد على OCR عن أسئلة حول صفحة من دون إنشاء تفريغ نصي منفصل أولًا.
OCR والمصطلحات ذات الصلة#
- التعرّف على الكتابة اليدوية: يُعرف أيضًا باسم التعرّف على النص المكتوب بخط اليد (HTR) أو التعرّف الذكي على الحروف (ICR)، ويقرأ الكتابة اليدوية التي تتباين فيها أشكال الحروف بدرجة أكبر بكثير من النص المطبوع، وغالبًا ما تتصل فيها الأحرف.
- اكتشاف الكائنات: يمكن للكاشف العثور على إشارة توقف بوصفها كائنًا، بينما يقرأ OCR الأحرف S-T-O-P المطبوعة عليها. وتحدد مرحلة الاكتشاف الخاصة بـOCR مواقع النص من دون قراءته.
- تصنيف الصور: يسند تسمية واحدة إلى صورة كاملة، مثل «فاتورة»، بينما يستخرج OCR تسلسل المحارف الموجود فيها.
- المعالجة الذكية للمستندات: توسّع نطاق OCR بإضافة تحليل التخطيط والتعرّف على الكيانات المُسمّاة (NER) لاستخراج حقول محددة، مثل تاريخ الفاتورة واسم المورّد والإجمالي، وإدخالها في أنظمة الأعمال.
تطبيقات عملية#
- التعرّف على لوحات التسجيل: تكتشف أنظمة تحصيل الرسوم ومواقف السيارات وإنفاذ قوانين المرور كل لوحة، ثم تقرؤها. يتولى نموذج YOLO26 المدرّب على صناديق اللوحات مرحلة الاكتشاف، وتلائم نسخته ذات الصناديق الإحاطية الموجّهة الصناديقَ المائلة على اللوحات لتقويم كل قصاصة قبل التعرّف عليها.
- رقمنة المستندات: تحوّل البنوك وشركات التأمين والجهات الحكومية النماذج والإيصالات والأرشيفات إلى نصوص قابلة للبحث، كما ترقمن المكتبات الكتب المطبوعة على نطاق واسع.
- إمكانية الوصول والترجمة: تقرأ قارئات الشاشة وتطبيقات الترجمة بالكاميرا اللافتات والقوائم والملصقات بصوت عالٍ، أو تعرض ترجمةً فوق الصورة المباشرة.
- التصنيع والخدمات اللوجستية: تقرأ الكاميرات رموز الدفعات وتواريخ انتهاء الصلاحية والأرقام التسلسلية على خطوط الإنتاج. وتتبع رموز حاويات الشحن المعيار ISO 6346، إذ تنتهي محارفها الـ11 برقم تحقق يُحتسب من المحارف العشرة الأولى، ما يتيح للقارئ رفض معظم الرموز المقروءة خطأً تلقائيًا.










