التَّعرّف الضَّوئيُّ على الحروف OCR
التَّعرّف الضَّوئيُّ على الحروف OCR
* مقدّمة
كم من الوقت تحتاج لترجمة عشر صفحات من كتابٍ ورقيٍّ إلى اللُّغة الإنجليزيَّة؟
وإذا طلب منك مديرُك في العمل أن تقوم بتفريغ البريد إلى ملف word فما عساك تفعل؟
سنتحدّث في هذه المقالة عن التِّقنيِّة التي يمكنها أن تساعدنا في حلّ مثل هذه المشكلات بسرعة كبيرة, وهي تقنيّة الـ OCR.
* تعريف:
التَّعرُّف الضَّوئيُّ على الحروف اختصارها(OCR)
واسمها بالإنجليزية
: (Optical character reconiyion)
هي تقنيَّة استخراج النُّصوص الموجودة في صورةٍ من الصُّورة، فيصبح بالإمكان معالجةُ هذه النُّصوص حاسوبيًّا، وتعديلُها والبحثُ فيها عن كلمةٍ معيَّنةٍ. فعلى سبيل المثال: يستطيع الطَّالب تصوير صفحة من كتاب، باستخدام كاميرة الجوَّال، ثم يمرّرها إلى نظام OCR ليحصلَ منه على ملفٍ نصِّيٍّ بمحتويات تلك الصَّفحة، ثمّ يقوم بعد ذلك بتمرير هذا الملف إلى نظام ترجمةٍ آليٍّ مثلاً.
* ما الفرق بين الصُّورة image والنّص text بالنِّسبة للحاسب؟
ببساطة، النّص هو متتالية من المحارف، أمَّا الصُّورة فهي خريطة من النُّقاط اللَّونيَّة. فصورةٌ مكتوبٌ فيها اسم (محمد)، هي عبارة عن مصفوفة أبعادها 600×600، أي 360 ألف نقطة لونيَّة (pixel). في حين أنَّ كلمة (محمد) ذاتها نصًّا، ما هي إلَّا عبارة عن 4 محارف فقط (م، ح، م، د).
* تطبيقات عملية:
1- التَّفريغ النّصّي: الإنسان الَّذي بمقدوره أن (ينسخ) 200 حرفٍ في الدَّقيقة يُعتَبرُ بمثابة السُّلَحْفاة أمام أبسط نظام OCR، قادرٍ على تمييز 1200 حرف في الثَّانية.
ففي أحد تقارير منظمة International Data Corporation (IDC)
ذكر فيه أنَّ حوالي 55% من عمليَّات نسخِ المعلومات في مراكز العمل، تَتُمُّ يدويًّا وهذا فيه هدرٌ كبير للوقت.
2- بعضُ التَّطبيقاتِ الهاتفيَّةِ تتيح حلَّ المعادلات الرِّياضيَّة من خلال تصويرها بكاميرة الهاتف ثمَّ حلِّها وعرضِ الحلِّ على المُستَخدم. وهذا يوفِّر على المستخدمِ الوقتَ والجَهدَ في إدخال محارف المعادلة يدويًّا.
3- واحدةٌ من أهمِّ فوائد تقنيَّة الـ OCR هي تقليلُ مساحة التَّخزين. فعوضًا عن تخزين ألفِ ملفِّ صورةٍ، فإنَّنا سنقوم بتخزين ألف ملفٍّ نصٍّيٍّ.
ومعلوم أنَّ حجم الملفِّ النَّصِّيِّ غالبًا أقلُّ بعشرةِ أضعافٍ على الأقلِّ من حجم الصُّورة العاديَّة.
4- مساعدة المكفوفين على القراءة: يستطيع المكفوف أن يرتدي نظَّارةً فيها نظام OCR مدمج، يقوم بمسح الصَّفحة المفتوحة من الكتاب، واستخراج النَّصِّ منها وتمريره إلى نظام TTS (Text-To-Speech) الَّذي يقوم بدوره بلفظ هذه الكلمات، فيدرُكها المستخدمُ عن طريق السَّمع.
* كيف يعمل نظام OCR؟
1- معالجة أوليَّة (Pre-processing): هنا يتمُّ تطبيقُ تقنياتِ تحسينِ الصُّورة (زيادة التباين بين الألوان وإزالة البقع الضَّبابيَّة de-blurring) ثمّ تحويل الصُّورة من صورةٍ ملوّنة إلى صورة بالأبيض والأسود (binarization)، ويتمُّ أيضاً التَّخلُّصَ من محتويات الصُّورة غير المفيدة مثلَ الخطوط الطَّويلة. ويتم أيضاً تحليل الصُّورة.
على سبيل المثال: إذا تمَّ رصدُ وجودِ جدولٍ مائلٍ في الصُّورة فيقوم النِّظام بتدوير الصُّورة، بحيث تصبح خطوطُ الجداول أُفقيَّةً وعموديَّةً فقط. كما يقوم أيضاً بتقليل عرض الخطوط (thinning). وبالتَّالي يَنتجُ عن هذه المرحلة تحديدُ مناطقَ جديرةٍ بالاهتمام.
وعلى ضوء تحليل الصَّفحة يتمُّ تقسيمها إلى عدَّة أجزاء، ومعالجة كلِّ جزءٍ على حدى.
2- التعرّف على الحروف (Character recognition): غالباً تتمُّ هذه العمليَّة على مرحلتين، بحيث يمهِّدُ المسحُ الأوليُّ الطريقَ للمسح الثَّاني النِّهائيِّ.
أ- في المسح الأوَّل يتمُّ البحث عن الحروف الواضحة في الصُّورة من خلال تمرير قوالبِ الأحرف النِّظاميَّة على الصُّورة لاستخراج تلك الأحرف المكتوبة بخطِّ اليد.
فمثلاً قالب الحرف (A) يتمُّ تمريره على الحروف والحرف الَّذي تحصَل عنده أعلى استجابةٍ يتمُّ اعتباره (A).
وكذلك الأمر بالنِّسبة للعلامات المُمَيِّزة، مثل إشارة الاستفهام وغيرها. كما يقوم النِّظام بتحويل جميع الحروف إلى حجم واحد من خلال تدويرِها وتصغيرِها أو تكبيرِها.
وفي نهاية هذه المرحلة يحصل النِّظام على عيِّناتٍ من الخطِّ المُستَخدمِ في كتابة النَّصَّ. وقد تحصل بعض المشكلات أثناء المعالجة، مثل عدم التقاط بعض الأحرف إذا كانت موصولةً برسوم.
ب- يتمُّ استخدام العيِّنات التي حصل عليها النِّظام في المسح الأوَّل للبحث في قاموس صغير مخزّن مسبقاً في النظام. وفيه أنواع كثيرة من الخطوط, فيتمُّ البحث عن أكثر خطٍّ مشابه للخطِّ المستخدم في الصُّورة.
ج- حديثاً، صارت تُستخدم أنظمةُ تعلُّم الآلة machine learning (مدرّبة بالإشراف supervised, مثل الشَّبكات العصبونيَّة neural networks, أقرب k مجاور أو KNN, بايز naïve Bayes وغيرها) يتمُّ فيها إطعام النظام حرفاً مكتوباً بخطِّ اليد، ومهمّة النظام أن يصنِّف هذا الحرف إلى أحد حروف اللغة ال26 (بالنِّسبة للُّغة الإنجليزيَّة).
3- معالجة نهائيَّة (Post-processing): التَّأكُّد من الكلمات التي تمّ التَّعرف عليها من خلال مطابقتها مع قاموس اللُّغة المُحمَّل في النِّظام، من أجل تصحيح الكلمة التي فيها خطأ إملائيٌّ.
* كم هي صعبة هذه المسألة؟
يوجد الكثير من الأنواع والأحجام للخطوط، وكذلك الصَّفحة المرادُ مسحَها قد تكون رديئة وقد تكون جيِّدة. ولهذه الأسباب وغيرها لا يوجد نظامُ OCR شاملٌ قادرٌ على استخراج النُّصوص بكفاءة من كافَّة أنواع الصُّور.
وتختلف دقّة أنظمة ال OCR بحسب المسألة، فبعض الأنظمة تحقِّق دقّةً تتجاوز الـ90%، وبعضها الآخر لا يتعدّى سقف الـ80%. كذلك بعض الأنظمة تنجز مهمّتها في اللَّحظة نفسها التي تُلتقط فيها الصُّورة تقريباً (real time). وبعضها الآخر يستغرق وقتاً أطول في المعالجة (off-line) وبالتَّالي يعطينا دقّة أعلى في النَّتائج. وتجدر الإشارة إلى أن نظام الـ OCR كلَّما كان مخصصاً أكثر، كان أداؤه أفضل. كما لو أنّه مخصَّص فقط لاستخراج المعادلات الرياضيّة من الصور.
* المراجع
Eikvil, L. (1993). Optical character recognition.
Impedovo, S., Ottaviano, L., & Occhinegro, S. (1991). Optical character recognition—a survey.