معرفی الگوریتم های تشخیص دست خط

اصولاً، تایپ کردن حجم زیادی از متون دست‌نویس، یک چالش بزرگ به حساب می‌آید و زمان زیادی را نیز از شما می‌گیرد. با این حال، به لطف تحقیقات گسترده در این زمینه، فناوری تشخیص دست خط با به کارگیری الگوریتم‌های بسیار پیچیده برای حل این مشکل طراحی شده است. این فناوری می‌تواند اسناد دست‌نوشته را به داده‌های متنی قابل خواندن برای ماشین‌ها تبدیل کند.

ما در این مقاله از اسکنیفای نیز قصد داریم تا توضیحات بیشتری را از الگوریتم تشخیص دست خط، موارد استفاده، چالش‌ها و تکنیک‌های آن به شما ارائه کنیم.

تشخیص دست خط چیست؟

فناوری تشخیص دست خط (Handwritten Text Recognition)، زیرشاخه‌ای از فناوری متن خوان نوری (OCR) است که در آن متن دست‌نویس توسط الگوریتم‌های پیشرفته به داده‌های قابل خواندن برای ماشین تبدیل می‌شود. این فناوری، عمدتاً بر اساس بینایی ماشین از شاخه‌های علوم کامپیوتری و تشخیص الگو (Pattern Recognition) شکل گرفته است.

تشخیص کاراکترهای متن دستخط که می‌تواند به شکل اسناد یا تصاویر اسکن شده باشد، به دلیل این که به الگوریتم‌های یادگیری ماشینی پیشرفته‌تر از فناوری ocr نیاز دارد، با عنوان تشخیص کاراکتر هوشمند (ICR) نیز شناخته می‌شود.

کاربردهای تکنیک تشخیص دست خط

قبل از این که بخواهیم به معرفی الگوریتم‌های تشخیص دست خط بپردازیم، بهتر است ابتدا با کاربردهای این فناوری در جهان امروز آشنا شوید تا درک مناسبی از آن به دست بیاورید.

1. بانکداری

همان‌طور که می‌دانید در بانکداری، بیشتر تراکنش‌های مالی از طریق پر کردن چک‌ها و فرم‌های بانکی انجام می‌شود. مطمئناً، تشخیص این داده‌های متنی و وارد کردن اطلاعات آن به صورت دستی، زمان زیادی را از کارمندان بانک می‌گیرد. در این صورت، استفاده از سیستم‌های تشخیص دست خط فارسی و انگلیسی می‌تواند روند کارها و تبدیل اسناد به متن را سریع و آسان‌تر کند.

2. بیمه

شرکت‌های بیمه، روزانه با تعداد زیادی از اسناد متنی سروکار دارند و تأخیر در بررسی دقیق مطالبات مشتریان می‌تواند بر عملکرد این شرکت‌ها تأثیر بگذارد. سیستم اتوماسیون تشخیص دستخط به دلیل پردازش سریع متون دست‌نوشته، بار این مسائل را از روی دوش کارشناسان بیمه کاهش می‌دهد.

3. مراکز بهداشتی و درمانی

درک نسخه‌های دست‌نویس پزشکان، اغلب برای اپراتور داروخانه‌ها و سایر افراد عادی چالش برانگیز است. استفاده از نرم‌افزار و اپلیکیشن تشخیص دست خط می‌تواند درک این نسخه‌ها را برای داروخانه‌ها آسان‌تر کند.

از طرف دیگر، دیجیتالی کردن فرم‌های ثبت‌نام بیمار با استفاده از الگوریتم‌های تشخیص متن دست‌نویس برای ذخیره و بایگانی اطلاعات ارزشمند بیماران نیز ضروری است.

4. کتابخانه‌ها

در کتابخانه‌ها، عموماً تعداد زیادی از کتاب‌های تاریخی و علمی دست‌نویس وجود دارند که رونویسی یا تایپ اطلاعات ارزشمند آن‌ها نیاز به صرف انرژی و زمان زیادی دارد. در این صورت، تصاویر اسکن شده از اطلاعات متنی این کتاب‌ها و استفاده از فناوری تشخیص متن دست‌نویس (HTR) می‌تواند به رونویسی و انتشار آسان‌تر این اسناد کمک کند.

الگوریتم‌های تشخیص دست خط

به طور کلی، الگوریتم‌های تشخیص دست خط به دو نوع اصلی طبقه‌بندی می‌شوند: الگوریتم‌های آنلاین و آفلاین که در ادامه به بررسی هر یک از آن‌ها می‌پردازیم.

1. الگوریتم‌های آنلاین

این روش، مستلزم تبدیل خودکار متنی است که بر روی یک دستگاه دیجیتایزر خاص تایپ می‌شود. حروف دست‌نویس با استفاده از یک قلم دیجیتالی لمسی بر روی یک صفحه دیجیتالی نوشته می‌شوند و الگوریتم‌های آنلاین تشخیص دستخط شروع به تطبیق الگوهای دستخط برای تبدیل آن‌ها به متون دیجیتالی می‌کنند. در حقیقت، صفحه دیجیتالی، فشار قلم و حرکات ضربه‌ای را به عنوان نقاط داده دریافت می‌کند. به این صورت که حرکات نوک قلم برای ارزیابی دست خط بر اساس کیفیت خط، سرعت نوشتن و سبک نوشتن مورد بررسی قرار می‌گیرد تا سیگنال‌های دستخط تشخیص داده شود. سپس، سیگنال حاصل به کدهای متناظر با حروف دیجیتالی تبدیل می‌شود که از خروجی آن می‌توان در رایانه و برنامه‌های پردازش متن مانند ورد استفاده کرد.

به طور کلی، الگوریتم‌های آنلاین تشخیص متن به سه دسته طبقه‌بندی می‌شوند. این دسته‌ها، روند تشخیص متن دست‌نوشته را مشخص می‌کنند و شامل مراحل پیش پردازش، استخراج ویژگی و طبقه‌بندی می‌شوند. این مراحل به شرح زیرند:

مرحله پیش پردازش

هدف این مرحله از پیش پردازش، حذف اطلاعات نامربوط از داده‌های دریافتی است که ممکن است در شناسایی درست متن اختلال ایجاد کنند. به طور خلاصه، این مرحله در مورد سرعت و دقت کار است و اغلب شامل باینریزه کردن (binarization)، نمونه‌برداری، نرمال سازی، هموارسازی و حذف داده‌های نویزدار می‌شود.

مرحله استخراج ویژگی

در این مرحله، کیفیت‌های مهمی مورد بررسی قرار می‌گیرند که باعث تمایز حروف از یکدیگر می‌شوند. هدف این مرحله، تأکید بر روی اطلاعات کلیدی برای مدل تشخیص حروف است. این اطلاعات ممکن است شامل فشار قلم، سرعت یا تغییر جهت نوشتن قلم باشد.

مرحله طبقه‌بندی و شناخت

این مرحله از مراحل تصمیم‌گیری الگوریتم آنلاین تشخیص دستخط است. مدل‌های مختلفی برای ترسیم ویژگی‌های استخراج‌شده مرحله قبل و در نتیجه برای شناسایی حروف یا کلمات استفاده می‌شوند.

2. الگوریتم‌های آفلاین

این روش شامل تشخیص متن دست‌نویس از روی تصاویر و اسناد اسکن شده است. در این روش برای تشخیص متن، نیازی به اطلاعات ضربه‌ای نیست؛ بلکه داده‌ها مستقیماً از تصاویر استاتیک به دست می‌آیند و ورودی متن به طور خودکار به کد حروف دیجیتالی تبدیل می‌شود. سپس از این کدهای حروف در کامپیوتر و برنامه‌های پردازش متن استفاده می‌شود.

این الگوریتم، بیشتر برای دیجیتالی کردن داده‌های تاریخی و تحقیقاتی مورد استفاده قرار می‌گیرد و شامل دو نوع رویکرد سنتی و مدرن می‌شود که در ادامه به بررسی آن‌ها می‌پردازیم:

روش سنتی

روش سنتی تشخیص دست خط آفلاین، شامل سه مرحله زیر است:

  • استخراج کاراکتر: به این معنی است که کاراکترهای منفرد در تصویر اسکن شده باید استخراج شوند. گاهی اوقات، ممکن است کاراکترهای متصل به هم نیز به صورت یک کاراکتر منفرد در نظر گرفته شوند که این یک نقص به حساب می‌آید و از مسائل مهم در مرحله شناسایی صحیح حروف است.
  • تشخیص کاراکتر: پس از استخراج کاراکترهای منفرد، از یک سیستم تشخیص برای شناسایی کاراکترهای دیجیتالی متناظر با آن استفاده می‌شود.
  • استخراج ویژگی: این مرحله از عملیات کاملاً خودکار به حساب نمی‌آید و برنامه نویسان باید انتخاب کنند که کدام ویژگی به هر یک از کدهای حرفی مربوط است. درواقع، عملکرد استخراج ویژگی با سیستم شناسایی شبکه عصبی قابل مقایسه است.

روش مدرن

در حالی که رویکردهای سنتی بر روی شناسایی کاراکترهای منفرد تمرکز می‌کنند؛ رویکردهای مدرن بر روی شناسایی همه کاراکترهای مربوط به یک قسمتی از متن تمرکز می‌کنند. بنابراین، این رویکردها از الگوریتم‌های یادگیری ماشین به جای استخراج ویژگی برای یادگیری ویژگی‌های بصری استفاده می‌کنند. به عبارت دیگر، رویکردهای مدرن از شبکه‌های کانولوشن برای استخراج اطلاعات بصری استفاده می‌کنند. بنابراین، استخراج ویژگی در این رویکردها به طور خودکار صورت می‌گیرد.

تکنیک‌های تشخیص متن دست خط

سیستم تشخیص دست خط نیاز به مدیریت جریان داده (Data Stream) دارد؛ به این صورت که یک ورودی منفرد به خروجی‌های متعدد تبدیل می‌شود. به عنوان مثال، ما یک ورودی داریم (مثلاً یک تصویر به عنوان ورودی) و می‌خواهیم با استفاده از الگوریتم تشخیص متن دست خط، گروهی از کاراکترها، کلمات و خطوط این تصویر را شناسایی کنیم. این بدان معناست که وقتی یک کاراکتر را شناسایی می‌کنیم، کاراکتر بعدی نمی‌تواند یک کاراکتر تصادفی باشد. به عبارت دیگر ما با داده‌های متوالی سروکار داریم.

از این‌رو، راه‌حل‌های مختلفی برای ایجاد “جریان داده” برای تشخیص دست خط وجود دارند که مهم‌ترین آن‌ها را در ادامه بررسی می‌کنیم:

  • شبکه‌های عصبی بازگشتی (RNN): نقطه‌ضعف اصلی RNN ها این است که اطلاعات وضعیت قبلی را برای محاسبه وضعیت فعلی نیاز دارند. این بدان معناست که واحد پردازشگر گرافیکی (GPU) باید اکثر منابع خود را بر روی بخش خاصی از کار متمرکز کند. به علاوه این که این شبکه‌ها امکان پردازش موازی و همزمان ورودی را ندارند.
  • ترانسفورمر (Transformer Model): این مدل یادگیری عمیق از یک مفهوم اساسی به نام “Attention” یا مکانیزم “توجه” استفاده می‌کند. در نتیجه، سرعت پردازش و استنتاج بالا از مزایای اصلی این مدل نسبت به شبکه‌های RNN به حساب می‌آید.

چالش‌های تشخیص متن دست خط

سبک دست خط هر فردی با فرد دیگر متفاوت است؛ این امر، چالش‌هایی را برای سیستم تشخیص دستخط در ایجاد الگوها برای استخراج متن دست‌نویس ایجاد می‌کند. در راستای این مسئله، ما در ادامه مطلب، قصد داریم به تعدادی از این چالش‌ها اشاره کنیم:

  • حجم زیادی از داده‌های نوشتاری به زبان‌های مختلف با علائم نگارشی خاص که در بخش‌های مختلف متن قرار گرفته‌اند، دامنه الگوریتم تشخیص دست خط را محدود می‌کند.
  • خط شکسته می‌تواند سیستم تشخیص دستخط را در مراحل تفکیک و شناسایی کاراکترها دچار مشکل کند.
  • نوشتن به حالت “ایتالیک” که در آن متن نوشته شده به سمت راست یا چپ، کج شده است نیز باعث ایجاد ابهام در درک دست خط افراد می‌شود.
  • اسناد نوشته شده به مرور زمان کهنه و فرسوده می‌شوند و این امر، کیفیت تصاویر را پایین می‌آورد. در این صورت، الگوریتم‌های تشخیص متن دست خط نمی‌توانند خروجی دقیقی از این تصاویر ارائه دهند.

جمع‌بندی

فناوری تشخیص دست خط، یک شاخه تحقیقاتی مهم در حوزه هوش مصنوعی و سیستم ocr برای تبدیل متون دست‌نوشته به دیجیتالی است. امروزه، با پیشرفت‌های صورت گرفته در فناوری‌های یادگیری عمیق و یادگیری ماشین، الگوریتم‌های تشخیص دستخط روز به روز در حال توسعه و گسترش‌اند تا کیفیت خروجی خوبی را به شما ارائه دهند و خطاهای احتمالی در تشخیص دست‌نوشته را کاهش دهند.

منابع:
https://medium.com/@xnaksdn/handwriting-recognition-an-innovative-technology-using-machine-learning-d5c3c1ab98ef
https://www.baeldung.com/cs/ai-handwriting-recognition

اسکرول به بالا