كيفية التعرف على خط اليد بسهولة باستخدام ذكاء بيانات PlatoBlockchain للتعلم الآلي. البحث العمودي. عاي.

كيفية التعرف على خط اليد بسهولة باستخدام التعلم الآلي

كيفية التعرف على خط اليد بسهولة باستخدام التعلم الآلي

تريد أن تفعل OCR بخط اليد؟ هذه المدونة هي نظرة عامة شاملة على أحدث طرق التعرف على خط اليد باستخدام التعلم العميق. لقد راجعنا أحدث الأبحاث والأوراق وقمنا أيضًا ببناء قارئ للكتابة اليدوية من البداية.


النانو واجهة برمجة تطبيقات OCR لديها الكثير من الاهتمام استخدم حالات. تحدث إلى خبير Nanonets AI لمعرفة المزيد.


المُقدّمة

من المتوقع أن يصل حجم سوق التعرف الضوئي على الحروف (OCR) إلى 13.38 مليار دولار أمريكي بحلول عام 2025 مع نمو سنوي بنسبة 13.7٪. هذا النمو مدفوع بالرقمنة السريعة للعمليات التجارية باستخدام التعرف الضوئي على الحروف لتقليل تكاليف العمالة وتوفير ساعات العمل الثمينة. على الرغم من اعتبار التعرف الضوئي على الحروف مشكلة تم حلها ، إلا أن هناك مكونًا رئيسيًا واحدًا لها ، وهو التعرف على خط اليد (الكتابة اليدوية OCR) أو التعرف على النص المكتوب بخط اليد (HTR) والذي لا يزال يعتبر بيان مشكلة صعبًا. يشكل التباين الكبير في أنماط الكتابة اليدوية بين الأشخاص والجودة الرديئة للنص المكتوب بخط اليد مقارنة بالنص المطبوع عقبات كبيرة في تحويله إلى نص يمكن قراءته آليًا. ومع ذلك ، فإن حلها يعد مشكلة حاسمة في العديد من الصناعات مثل الرعاية الصحية والتأمين والخدمات المصرفية.

كيفية التعرف على خط اليد بسهولة باستخدام التعلم الآلي
المصدر: - https://www.semanticscholar.org/paper/Handwriting-recognition-on-form-document-using-and-Darmatasia-Fanany/

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

في هذه المقالة سوف نتعرف على مهمة التعرف على النص المكتوب بخط اليد ، وتعقيداتها وكيف يمكننا حلها باستخدام تقنيات التعلم العميق.


هل تريد استخراج البيانات من النماذج المكتوبة بخط اليد؟ رئيس لأكثر من النانو وابدأ في بناء نماذج Handwriting OCR مجانًا!


التحديات في التعرف على خط اليد

  1. التباين الشديد والغموض في السكتات الدماغية من شخص لآخر
  2. كما يختلف أسلوب الكتابة اليدوية لشخص ما من وقت لآخر وهو غير متسق
  3. جودة رديئة للوثيقة / الصورة المصدر بسبب التدهور بمرور الوقت
  4. يقع النص في المستندات المطبوعة في خط مستقيم بينما لا يحتاج البشر إلى كتابة سطر نصي في خط مستقيم على ورق أبيض
  5. الكتابة اليدوية تجعل الفصل والتعرف على الشخصيات أمرًا صعبًا
  6. يمكن أن يكون للنص المكتوب بخط اليد استدارة متغيرة إلى اليمين وهو عكس النص المطبوع حيث يكون كل النص مستقيماً
  7. إن جمع مجموعة بيانات جيدة التصنيف للتعلم ليس رخيصًا مقارنة بالبيانات التركيبية

استخدم حالات

الرعاية الصحية والأدوية

تعد رقمنة الوصفات الطبية للمرضى نقطة ألم رئيسية في مجال الرعاية الصحية / صناعة الأدوية. على سبيل المثال ، تتعامل شركة Roche يوميًا مع ملايين البيتابايتات من ملفات PDF الطبية. هناك مجال آخر يكون فيه اكتشاف النص المكتوب بخط اليد له تأثير رئيسي وهو تسجيل المرضى ورقمنة النموذج. من خلال إضافة التعرف على خط اليد إلى مجموعة أدوات الخدمات الخاصة بهم ، يمكن للمستشفيات / المستحضرات الصيدلانية تحسين تجربة المستخدم بشكل كبير

تأمين

تتلقى صناعة التأمين الكبيرة أكثر من 20 مليون مستند يوميًا ويمكن أن يؤثر التأخير في معالجة المطالبة على الشركة بشكل رهيب. يمكن أن تحتوي وثيقة المطالبات على العديد من أنماط الكتابة اليدوية المختلفة ، وسوف تؤدي الأتمتة اليدوية الخالصة لمعالجة المطالبات إلى إبطاء خط الأنابيب تمامًا

كيفية التعرف على خط اليد بسهولة باستخدام التعلم الآلي
المصدر: - https://www.researchgate.net/figure/mages-of-handwritten-bank-cheques-from-different-countries-a-Brazilian-1-b-American_fig2_226705617

البنوك والمصارف

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

مكتبات على الإنترنت

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

طرق

يمكن تصنيف طرق التعرف على خط اليد على نطاق واسع إلى النوعين التاليين

كيفية التعرف على خط اليد بسهولة باستخدام التعلم الآلي
  1. طرق على الانترنت : - الأساليب عبر الإنترنت تتضمن قلمًا رقميًا / قلمًا رقميًا ولها حق الوصول إلى معلومات الخط وموقع القلم أثناء كتابة النص كما هو موضح في الشكل الأيمن أعلاه. نظرًا لأنها تميل إلى الحصول على الكثير من المعلومات فيما يتعلق بتدفق النص الذي تتم كتابته ، فيمكن تصنيفها بدقة عالية جدًا ويصبح الترسيم بين الأحرف المختلفة في النص أكثر وضوحًا
  2. طرق دون اتصال : - تتضمن الطرق غير المتصلة بالإنترنت التعرف على النص بمجرد كتابته ، وبالتالي لن تتوفر معلومات حول الخطوط / الاتجاهات المتضمنة أثناء الكتابة مع إمكانية إضافة بعض ضوضاء الخلفية من المصدر ، مثل الورق.

في العالم الحقيقي ، ليس من الممكن / القابل للتطوير دائمًا حمل قلم رقمي مزود بأجهزة استشعار لالتقاط معلومات السكتة الدماغية ، وبالتالي فإن مهمة التعرف على النص في وضع عدم الاتصال هي مشكلة أكثر صلة. وبالتالي ، سنناقش الآن تقنيات مختلفة لحل مشكلة التعرف على النص غير المتصل بالإنترنت.

تقنيات

تضمنت الأساليب الأولية لحل التعرف على خط اليد طرق التعلم الآلي مثل Hidden Markov Models (HMM) و SVM وما إلى ذلك. بمجرد معالجة النص الأولي مسبقًا ، يتم إجراء استخراج الميزات لتحديد المعلومات الأساسية مثل الحلقات ونقاط الانعطاف ونسبة العرض إلى الارتفاع وما إلى ذلك. ذات طابع فردي. يتم الآن تغذية هذه الميزات التي تم إنشاؤها إلى مصنف يقول HMM للحصول على النتائج. أداء نماذج التعلم الآلي محدود جدًا بسبب مرحلة استخراج الميزات يدويًا وقدرتها المحدودة على التعلم. تختلف خطوة استخراج الميزة لكل لغة على حدة ، وبالتالي فهي غير قابلة للتطوير. مع ظهور التعلم العميق ، جاءت تحسينات هائلة في دقة التعرف على خط اليد. دعونا نناقش القليل من الأبحاث البارزة في مجال التعلم العميق للتعرف على خط اليد

الشبكات العصبية المتكررة متعددة الأبعاد

يمكن لـ RNN / LSTM كما نعلم التعامل مع البيانات المتسلسلة لتحديد الأنماط الزمنية وتوليد النتائج. لكنها تقتصر على التعامل مع بيانات 1D وبالتالي لن تكون قابلة للتطبيق بشكل مباشر على بيانات الصورة. لحل هذه المشكلة ، اقترح المؤلفون في هذه الورقة بنية RNN / LSTM متعددة الأبعاد كما هو موضح في الشكل أدناه

كيفية التعرف على خط اليد بسهولة باستخدام التعلم الآلي

التالي هو الفرق بين RNN عام و RNN متعدد الأبعاد. في RNN عام ، تقول الطبقة المخفية أنني أتلقى الحالة من طبقة مخفية سابقة في الوقت i-1. في RNN متعدد الأبعاد ، على سبيل المثال ، RNN ثنائي الأبعاد ، تستقبل الطبقة المخفية (i ، j) حالات من طبقات مخفية سابقة متعددة مثل (i-2 ، j) و (i ، j-1) وبالتالي تلتقط السياق من كليهما الارتفاع والعرض في صورة أمر محوري للحصول على فهم واضح للمنطقة المحلية من خلال الشبكة. يتم توسيع هذا أيضًا للحصول على معلومات ليس فقط من الطبقات السابقة ولكن أيضًا من الطبقات المستقبلية المشابهة لكيفية تلقي BI-LSTM للمعلومات من t-1 و t + 1. وبالمثل ، فإن الطبقة المخفية ثنائية الأبعاد MDRNN يمكنني الآن تلقي المعلومات (i-1 ، j) ، (i ، j-2) ، (i + 1 ، j) ، (i ، j + 1) وبالتالي التقاط السياق في جميع الاتجاهات

كيفية التعرف على خط اليد بسهولة باستخدام التعلم الآلي

تم عرض هيكل الشبكة بالكامل أعلاه. يتم استخدام MDLSTM وهو ليس سوى استبدال كتلة RNN بكتلة LSTM من المناقشة أعلاه لـ MDRNN. المدخلات مقسمة إلى كتل بحجم 3 × 4 والتي يتم تغذيتها الآن في طبقات MDSTM. تحتوي الشبكة على هيكل هرمي لطبقات MDLSTM متبوعًا بطبقات التغذية الأمامية (ANN) جنبًا إلى جنب. ثم يتم تحويل الإخراج النهائي إلى متجه 1D ويتم إعطاؤه لوظيفة CTC لتوليد الإخراج

التصنيف الزمني الارتباطي (CTC) هي خوارزمية تُستخدم للتعامل مع مهام مثل التعرف على الكلام ، والتعرف على خط اليد وما إلى ذلك ، حيث تتوفر فقط بيانات الإدخال ونسخ الإخراج ولكن لا توجد تفاصيل محاذاة متوفرة ، مثل كيفية وجود منطقة معينة في الصوت للكلام أو منطقة معينة في الصور للكتابة اليدوية يتماشى مع شخصية معينة. الاستدلال البسيط مثل إعطاء كل شخصية نفس المنطقة لن ينجح لأن مقدار المساحة التي تستغرقها كل شخصية يختلف في خط اليد من شخص لآخر ومن وقت لآخر.

بالنسبة لحالة استخدام التعرف على خط اليد ، فكر في مناطق صورة الإدخال لجملة معينة كمدخلات X=[x1,x2 ، ... ،س ** ت] بينما كان من المتوقع الناتج كـ Y=[y1,y2 ، ... ،ذ ** يو]. بالنظر إلى X ، من المفترض أن نجد دقة Y. تعمل خوارزمية CTC من خلال أخذ الإدخال X وإعطاء التوزيع على جميع Y الممكنة التي يمكننا من خلالها التنبؤ بالمخرجات النهائية.

يستخدم CTC حرفًا أساسيًا يقول - للتمييز بين الأحرف المكررة والأحرف المكررة في منطقة الإدخال. على سبيل المثال ، يمكن أن يمتد حرف معين إلى مناطق متعددة من الإدخال ، وبالتالي فإن CTC ستخرج نفس الحرف على التوالي. على سبيل المثال: - جامعات الإدخال وإخراج CTC هو jjaammmees. يتم الحصول على الناتج النهائي عن طريق انهيار المخرجات المتكررة وبالتالي نحصل على جيمس. ولكن الآن لتقديم أحرف مكررة تقول "l" مرحبًا ، نحتاج إلى وجود فاصل في مكانه وبالتالي يتم فصل جميع المخرجات بواصلة (-). الآن يمكن أن يكون ناتج hello هو h-ee-ll-lll-oo والذي إذا انهار سيصبح hello وليس helo. يمكن الاطلاع على مزيد من المعلومات حول كيفية عمل CTC هنا لجنة مكافحة الإرهاب.

أثناء فك تشفير ناتج CTC بناءً على الاستدلال البسيط لأعلى احتمالية لكل موقع ، قد نحصل على نتائج قد لا تكون منطقية في العالم الحقيقي. لحل هذه المشكلة ، قد نستخدم وحدة فك ترميز مختلفة لتحسين النتائج. دعونا نناقش أنواع مختلفة من فك التشفير

  1. أفضل مسار لفك التشفير : - هذا هو فك التشفير العام الذي ناقشناه حتى الآن. في كل موضع نأخذ ناتج النموذج ونجد النتيجة ذات الاحتمال الأكبر.
  2. بحث شعاع فك : - بدلاً من أخذ خرج واحد من الشبكة في كل مرة يقترح البحث في الحزمة الحفاظ على مسارات إخراج متعددة مع أعلى كل الاحتمالات وتوسيع السلسلة بمخرجات جديدة وإسقاط المسارات ذات الاحتمالات الأقل للحفاظ على حجم الحزمة ثابتًا. النتائج التي تم الحصول عليها من خلال هذا النهج أكثر دقة من استخدام النهج الجشع
  3. بحث شعاع مع نموذج اللغة : - يوفر البحث بالأشعة نتائج أكثر دقة من البحث الشبكي ولكنه مع ذلك لن يحل مشكلة الحصول على نتائج ذات مغزى. لحل هذه المشكلة ، يمكننا استخدام نموذج اللغة جنبًا إلى جنب مع البحث الشعاعي باستخدام كل من الاحتمالات من النموذج ونموذج اللغة لتوليد النتائج النهائية.

يمكن الاطلاع على مزيد من التفاصيل في إنشاء نتائج دقيقة لفك التشفير في هذا البند

التشفير وفك التشفير وشبكات الانتباه

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

المسح والحضور والقراءة

في هذا العمل الأساسي ، المسح والحضور والقراءة (SAR) ، اقترح المؤلفون استخدام نموذج قائم على الانتباه للتعرف على خط اليد من طرف إلى طرف. تتمثل المساهمة الرئيسية للبحث في النسخ التلقائي للنص دون تقسيمه إلى أسطر كخطوة معالجة مسبقة ، وبالتالي يمكنه مسح صفحة كاملة وإعطاء النتائج.

كيفية التعرف على خط اليد بسهولة باستخدام التعلم الآلي

يستخدم SAR بنية قائمة على MDLSTM مماثلة لتلك التي ناقشناها أعلاه مع تغيير صغير واحد في الطبقة النهائية. بعد آخر طبقة خطية ، أي كتلة Sum النهائية في الشكل أعلاه ، يتم طي خرائط المعالم في البعد الرأسي ويتم تطبيق وظيفة softmax النهائية للحصول على المخرجات.

كيفية التعرف على خط اليد بسهولة باستخدام التعلم الآلي

تتكون بنية SAR من بنية MDLSTM التي تعمل كمستخرج للميزات. يتم استبدال وحدة الانهيار النهائية ذات الإخراج softmax وفقدان CTC بوحدة الانتباه وفك التشفير LSTM. نموذج الانتباه المستخدم هو مزيج هجين من الاهتمام القائم على المحتوى والاهتمام القائم على الموقع والذي تم شرحه بمزيد من التفصيل في الورقة التالية. تأخذ وحدات LSTM لوحدة فك التشفير الحالة السابقة وخريطة الانتباه السابقة وميزات المشفر لتوليد حرف الإخراج النهائي ومتجه الحالة للتنبؤ التالي.

الالتفاف والحضور والتهجئة

تقترح هذه الورقة نموذج تسلسل إلى تسلسل قائم على الانتباه للتعرف على الكلمات المكتوبة بخط اليد. تتكون البنية المقترحة من ثلاثة أجزاء رئيسية: جهاز تشفير ، يتألف من CNN و GRU ثنائي الاتجاه ، وهي آلية اهتمام مكرسة للتركيز على الميزات ذات الصلة وفك التشفير المكون من GRU أحادي الاتجاه ، والقادر على تهجئة الكلمة المقابلة ، حرف بحرف.

كيفية التعرف على خط اليد بسهولة باستخدام التعلم الآلي

يستخدم برنامج التشفير شبكة CNN لاستخراج الميزات المرئية. يتم استخدام بنية VGG-19-BN المدربة مسبقًا كمستخرج للميزات. يتم تحويل صورة الإدخال إلى خريطة المعالم X والتي يتم إعادة تشكيلها بعد ذلك إلى X 'عن طريق تقسيم جميع القنوات حسب العمود ودمجها للحصول على المعلومات المتسلسلة. يتم تحويل X 'إلى H باستخدام وحدة GRU ثنائية الاتجاه. GRU هي شبكة عصبية مشابهة لـ LSTM في الطبيعة ويمكنها التقاط معلومات زمنية.

علاوة على ذلك ، يتم استخدام نموذج الانتباه أثناء التنبؤ بالإخراج من وحدة فك التشفير. تناقش الورقة نوعين مختلفين من آليات الانتباه التي تم استكشافها.

  1. الاهتمام القائم على المحتوى : - الفكرة من وراء ذلك هي إيجاد التشابه بين الحالة المخفية الحالية لوحدة فك التشفير وخريطة الميزة من المشفر. يمكننا العثور على متجهات المعالم الأكثر ارتباطًا في خريطة المعالم الخاصة بجهاز التشفير ، والتي يمكن استخدامها للتنبؤ بالحرف الحالي في الخطوة الزمنية الحالية. يمكن رؤية مزيد من التفاصيل حول كيفية عمل آلية الانتباه من هنا انتباه
  2. الاهتمام القائم على الموقع : - يتمثل العيب الرئيسي لآليات الموقع المستندة إلى المحتوى في وجود افتراض ضمني بأن معلومات الموقع مضمنة في إخراج المشفر. وإلا فلا توجد طريقة للتمييز بين مخرجات الحرف التي تتكرر من وحدة فك التشفير. على سبيل المثال ، ضع في اعتبارك كلمة Charmander ، حيث يتم تكرار الحرف a مرتين فيها وبدون معلومات الموقع ، لن يتمكن جهاز فك التشفير من التنبؤ بها كأحرف منفصلة. للتخفيف من هذا ، يتم توقع المحاذاة الخاصة بالحرف الحالي باستخدام كل من إخراج المشفر والمحاذاة السابقة. مزيد من التفاصيل حول كيفية رؤية أعمال الحضور المعتمدة على الموقع هنا.

وحدة فك التشفير هي GRU ذات اتجاه واحد متعدد الطبقات. في كل خطوة زمنية ، تتلقى مدخلات من الخطوة الزمنية السابقة ومتجه السياق من وحدة الانتباه. يتم استكشاف فك التشفير متعدد الحدود وتجانس التسمية في التدريب لتحسين القدرة على التعميم.

موديلات المحولات

على الرغم من أن شبكات وحدة فك التشفير والتشفير كانت جيدة جدًا في تحقيق نتائج للتعرف على خط اليد ، إلا أنها تعاني من عنق الزجاجة في التدريب بسبب طبقات LSTM المعنية وبالتالي لا يمكن موازنتها. لقد حققت المحولات مؤخرًا نجاحًا كبيرًا واستبدلت LSTM في حل المهام المختلفة المتعلقة باللغة. دعونا نناقش الآن كيف يمكن تطبيق النماذج القائمة على المحولات للتعرف على خط اليد.

انتبه لما تقرأ

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

كيفية التعرف على خط اليد بسهولة باستخدام التعلم الآلي

تتكون بنية الشبكة من المكونات التالية

  1. التشفير المرئي : - لاستخراج الميزات ذات الصلة وتطبيق الانتباه الذاتي البصري متعدد الرؤوس على مواقع الشخصيات المختلفة
  2. ناسخ النص : - يقوم بمهمة أخذ إدخال النص وترميزه وتطبيق الاهتمام الذاتي للغة متعددة الرؤوس وتطبيق الاهتمام المتبادل على كل من الميزات المرئية والنصية.
التشفير المرئي

يتم استخدام العمود الفقري Resnet50 لإضافة الميزات كما يتضح من الشكل أعلاه. يتم تمرير ناتج خريطة المعالم ثلاثية الأبعاد من Resnet3 Fc إلى وحدة التشفير المؤقتة التي تعيد تشكيلها إلى 50d عن طريق الحفاظ على نفس العرض ومن ثم الشكل (fxh، w). يتم إدخال هذا في طبقة متصلة بالكامل لتقليل الشكل إلى (f ، w) ويكون الناتج الناتج هو Fc '. بالإضافة إلى ذلك ، تمت إضافة ترميز موضعي TE إلى Fc للاحتفاظ بمعلومات الموقع كما هو مذكور في ورقة Transformer بواسطة Vaswani. يمكن رؤية مزيد من المعلومات حول كيفية تصميم بنية المحولات هنا. يتم تمرير المخرجات عبر طبقة متصلة بالكامل للحصول على خريطة المعالم النهائية بالشكل (f ، w). يتم تمرير الإخراج النهائي من خلال وحدة انتباه متعددة الرؤوس مع 8 رؤوس للحصول على خريطة ميزات غنية بصرية

ناسخ النص

يتم تمرير نص الإدخال من خلال برنامج تشفير يقوم بإنشاء حفلات الزفاف على مستوى الحرف. يتم دمج هذه الزخارف مع الموقع الزمني على غرار الطريقة في Visual Encoder باستخدام وحدة التشفير المؤقت. يتم بعد ذلك تمرير هذه النتيجة إلى وحدة الانتباه الذاتي للغة متعددة الرؤوس والتي تشبه وحدة الانتباه في برنامج التشفير المرئي. يتم تمرير ميزات النص التي تم إنشاؤها على طول الميزات المرئية من برنامج التشفير المرئي إلى وحدة الاهتمام المتبادل التي تتمثل مهمتها في محاذاة ودمج الميزات المكتسبة من كل من الصور ومدخلات النص. يتم تمرير الإخراج من خلال وظيفة softmax للحصول على النتيجة النهائية.

عند التقييم على بيانات الاختبار ، لا تتوفر النسخ. وبالتالي ، يتم تمرير رمز البداية فقط كمدخل ويتم إرجاع الحرف الأول المتوقع إلى النظام ، والذي ينتج الحرف الثاني المتوقع. تتكرر عملية الاستدلال هذه في حلقة حتى يتم إنتاج رمز نهاية التسلسل <E> أو عند الوصول إلى الحد الأقصى لطول الإخراج N.

إنشاء نص بخط اليد

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

سكرابل جان

يتبع ScrabbleGAN نهجًا شبه خاضع للإشراف لتجميع صور نصية مكتوبة بخط اليد ومتعددة الاستخدامات في الأسلوب والمعجم. لديها القدرة على إنشاء صور ذات أطوال متفاوتة. يمكن للمولد أيضًا معالجة نمط النص الناتج والذي يسمح لنا بتقرير ما إذا كان يجب أن يكون النص متصلًا أو تحديد مدى سمك / نحافة ضربة القلم

كيفية التعرف على خط اليد بسهولة باستخدام التعلم الآلي

تتكون الهندسة المعمارية من مولد تلافيفي بالكامل يعتمد على BigGAN. لكل حرف في الإدخال يتم اختيار مرشح مناظر ويتم ربط جميع القيم معًا ثم يتم ضربها بواسطة متجه الضوضاء z الذي يتحكم في نمط النص الذي تم إنشاؤه. كما يتضح أعلاه ، تتداخل المناطق التي تم إنشاؤها لكل حرف فردي مما يساعد في إنشاء نص تعاودي متصل بالإضافة إلى السماح بمرونة أحجام الأحرف المختلفة. على سبيل المثال ، تشغل m مساحة كبيرة بينما تأخذ e و t مساحة محدودة. من أجل الحفاظ على نفس النمط للكلمة أو الجملة بأكملها ، يتم الحفاظ على متجه النمط z ثابتًا لجميع الأحرف.

يتم استخدام المُميِّز التلافيفي المستند إلى بنية BigGAN لتصنيف ما إذا كان نمط إنشاء الصور يبدو مزيفًا أم حقيقيًا. لا يعتمد المُميِّز على التعليقات التوضيحية على مستوى الحرف وبالتالي لا يعتمد على فئة GAN الشرطية. ميزة هذا الوجود ليست هناك حاجة للبيانات المسمى ، وبالتالي يمكن استخدام البيانات من مجموعة غير مرئية والتي ليست جزءًا من بيانات التدريب لتمييز التدريب. جنبًا إلى جنب مع أداة التمييز ، يتم تدريب أداة التعرف على النص R لتصنيف ما إذا كان النص الذي تم إنشاؤه له معنى حقيقي في العالم أم أنه هراء. تعتمد أداة التعرف على معماريات CRNN مع إزالة الرأس المتكرر لجعل أداة التعرف أضعف قليلاً وعدم التعرف على النص حتى لو كان غير واضح. تتم مقارنة النص الذي تم إنشاؤه في إخراج R مع نص الإدخال المعطى للمولد ويتم إضافة عقوبة مقابلة إلى وظيفة الخسارة.

يتم عرض المخرجات التي تم إنشاؤها بواسطة ScrabbleGAN أدناه

كيفية التعرف على خط اليد بسهولة باستخدام التعلم الآلي

مجموعات البيانات: -

  1. IAM : - تحتوي مجموعة بيانات IAM على حوالي 100 ألف صورة من الكلمات من اللغة الإنجليزية مع كلمات كتبها 657 مؤلفًا مختلفًا. تحتوي مجموعة القطار والاختبار والتحقق من الصحة على كلمات كتبها مؤلفون حصريون لبعضهم البعض رابط: - http://www.fki.inf.unibe.ch/databases/iam-handwriting-database
  2. CVL : - تتكون مجموعة بيانات CVL من سبع وثائق مكتوبة بخط اليد كتبها حوالي 310 مشاركًا ، مما أدى إلى محصول حوالي 83 ألف كلمة ، مقسمة إلى مجموعات تدريب واختبار الرابط: - https://cvl.tuwien.ac.at/research/cvl-databases/an-off-line-database-for-writer-retrieval-writer-identification-and-word-spotting/
  3. RIMES : - تحتوي على كلمات من اللغة الفرنسية حوالي 60 ألف صورة كتبها 1300 مؤلف مقابل حوالي 5 رسائل بريدية كتبها كل شخص. Link: - http://www.a2ialab.com/doku.php?id=rimes_database:start

المقاييس: -

معدل خطأ الحرف : - يتم حسابها على أنها مسافة Levenshtein وهي مجموع استبدالات الأحرف (Sc) والإدخالات (Ic) والحذف (Dc) اللازمة لتحويل سلسلة إلى أخرى ، مقسومة على إجمالي عدد الأحرف في جراوند تروث (Nc)

كيفية التعرف على خط اليد بسهولة باستخدام التعلم الآلي

معدل خطأ الكلمة : - يتم حسابها على أنها مجموع استبدالات الكلمة (Sw) والإدخالات (Iw) والحذف (Dw) المطلوبة لتحويل سلسلة إلى أخرى ، مقسومة على العدد الإجمالي للكلمات في Groundtruth (Nw)

كيفية التعرف على خط اليد بسهولة باستخدام التعلم الآلي

تدريب نموذج التعرف على خط اليد الخاص بك

لنرى الآن كيف يمكننا تدريب نموذج التعرف على النص المكتوب بخط اليد. سنقوم بالتدريب على مجموعة بيانات IAM ولكن يمكنك تدريب النموذج على مجموعة البيانات الخاصة بك أيضًا. دعونا نناقش الخطوات المتبعة في إعداد هذا

البيانات

لتنزيل مجموعة بيانات IAM ، سجل من هنا. بمجرد تسجيل تنزيل word.tgz من هنا. يحتوي هذا على مجموعة بيانات من صور الكلمات المكتوبة بخط اليد. قم أيضًا بتنزيل ملف التعليقات التوضيحية Words.txt من هنا.

إذا كنت ترغب في استخدام مجموعة البيانات الخاصة بك ، فأنت بحاجة إلى اتباع هيكلة البيانات لمجموعة بيانات IAM.

كيفية التعرف على خط اليد بسهولة باستخدام التعلم الآلي

يوضح ما ورد أعلاه كيف تبدو بنية مجلد مجموعة بيانات AIM. هنا تمثل a01 و a02 وما إلى ذلك المجلدات الرئيسية التي يحتوي كل منها على مجلدات فرعية من البيانات. يحتوي كل مجلد فرعي على مجموعة من الصور لها اسم المجلد الذي تمت إضافته كبادئة لاسم الملف الخاص به.

بالإضافة إلى ذلك ، نحتاج إلى ملف تعليق توضيحي لذكر المسارات إلى ملفات الصور والنسخ المقابلة. ضع في اعتبارك على سبيل المثال الصورة أعلاه مع ترشيح النص ، سيكون ما يلي هو التمثيل في ملف التعليقات التوضيحية Words.txt

a01-000u-01-00 ok 156 VBG الترشيح

  1. a01-000u-01-00 -> معرف الكلمة لخط في شكل a01-000u
  2. ok / err -> مؤشر جودة إخراج التجزئة
  3. 156 -> المستوى الرمادي لترميز السطر الذي يحتوي على هذه الكلمة بالتردد الثنائي
  4. 395 -> المربع المحيط حول هذه الكلمة بتنسيق x ، y ، w ، h
  5. VBG -> العلامة النحوية لهذه الكلمة. ها هو فعل جيروند
  6. ترشيح -> نسخ هذه الكلمة

هندسة معمارية :-

سنقوم بتدريب بنية قائمة على CRNN مع فقدان CTC. يتم استخدام CNN لاستخراج الميزات المرئية التي يتم تمريرها إلى RNN ويتم تطبيق خسارة CTC حتى النهاية باستخدام وحدة فك ترميز جشعة للحصول على الإخراج.

كيفية التعرف على خط اليد بسهولة باستخدام التعلم الآلي

قادة الإيمان

سنستخدم رمز CRNN من هنا لتدريب نموذجنا. اتبع الخطوات الواردة أدناه لإعداد البيانات

python checkDirs.py

قم بتشغيل الأمر أعلاه وسترى إخراجًا مثل أدناه

[موافق] كلمات /
[موافق] الكلمات / a01 / a01-000u /
[موافق] Words.txt
[موافق] test.png
[OK] words/a01/a01-000u/a01-000u-00-00.png

أنت الآن جاهز لبدء التدريب.

انتقل إلى الدليل الجذر وتنفيذ

python main.py --train

النتائج

بعد التدريب لنحو 50 حقبة ، كان معدل الخطأ في الشخصية (CER) هو 10.72٪ بينما معدل خطأ الكلمات (WER) هو 26.45٪ وبالتالي دقة الكلمات 73.55٪. يمكن رؤية بعض التوقعات في الشكل أدناه.

كيفية التعرف على خط اليد بسهولة باستخدام التعلم الآلي

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

نبذة عامة

على الرغم من وجود تطورات مهمة في التكنولوجيا التي تساعد في التعرف بشكل أفضل على النص المكتوب بخط اليد ، إلا أن HTR بعيدة كل البعد عن كونها مشكلة محلولة مقارنة بـ OCR وبالتالي لم يتم استخدامها على نطاق واسع في الصناعة. على الرغم من وتيرة التطور التكنولوجي ومع إدخال نماذج مثل المحولات ، يمكننا أن نتوقع أن تصبح نماذج HTR شائعة قريبًا.

للحصول على مزيد من البحث حول هذا الموضوع ، يمكنك البدء من خلاله هنا

لمزيد من القراءة

الطابع الزمني:

اكثر من الذكاء الاصطناعي والتعلم الآلي