بخشی از مقاله
خلاصه :
تشخیص اعداد فارسی از اهمیت ویژه ای برخوردار است و دارای کاربردهای مهمی است. از طرفی که متدهای ارایه شده تاکنون معمولا پیچیده هستند و نیاز به زمان پردازش بالایی دارند. در این مقاله راهبرد جدیدی برای تشخیص ارقام فارسی ارائه می شود که دارای پیچیدگی کم و دقت قابل قبولی می باشد.
مقدمه :
تشخیص اعداد با استفاده از پردازش تصویر دارای سابقه طولانی است و یکی از اولین موضوعاتی بود که در پردازش تصویر مطرح شد. در جهت تشخیص اعداد فارسی و عربی نیز تحقیقات نسبتا وسیعی صورت گرفته و مقاله هایی نیز ارایه شده است. روش هایی که تاکنون ارائه شده دارای پیچیدگی نسبتا بالایی است و با توجه به محدودیت های سخت افزاری در این زمینه ، اجرای این روش ها در عمل با مشکلاتی روبرو می شود. در این مقاله یک روش جدید برای تشخیص ارقام فارسی ارائه شده است که در عین سادگی از قدرت بالایی برای تشخیص صحیح ارقام برخوردار است.
معمولا برای تشخیص الگو از شبکه های عصبی استفاده می شود. اگر بخواهیم کلیه اعداد را با این روش به طور یکجا تشخیص دهیم، نیاز به محاسبات و پردازش های زیادی خواهد بود. در این روش پیشنهادی از متد درختی استفاده می شود. به این معنا که ابتدا اعداد بر اساس ویژگی های خاصی - که به آن در ادامه مقاله اشاره خواهد شد - در دسته های مختلفی جای می گیرند. این کار تا جای ممکن ادامه می یابد و در نهایت از یک شبکه عصبی ساده برای تشخیص اعداد استفاده می شود. این کار پیچیدگی های موجود را به طور قابل ملاحظه ای کاهش داده و منجر به ساده تر شدن تشخیص شبکه عصبی می شود.
در حالت کلی می توان اعداد فارسی را به دو دسته کلی تقسیم کرد. دسته اول اعدادی مانند 9،6،4،3،2،1 هستند که هر خط افقی در نیمه پایینی آن ها تنها یک بار عدد را قطع می کند. دسته دوم اعدادی هستند که هر خط افقی در نیمه پایینی اعداد بیش از یک بار آن ها را قطع می نماید. اعداد 8،7،0،5 از این دسته اند. بنابراین اولین تقسیم بندی مشخص می شود.
حال ما فقط نیاز داریم که اعداد هر دسته را تشخیص دهیم. بنابراین تشخیص اعداد ساده تر خواهد بود.
در شکل 1 نمای کلی و نحوه تشخیص اعداد نمایش داده شده است. مراحل کار به طور مشروح در قسمت های بعدی شرح داده می شود.
شکل 1 :نمای کلی الگوریتم درختی پیشنهادی
تشخیص با استفاده از تقسیم بندی : - zoning -
برای تشخیص اعداد در هر دسته از روش تقسیم بندی استفاده می کنیم. این روش قبلا برای این منظور استفاده شده است.[2] اما در این مقاله از نحوه تشخیص با استفاده از روش متفاوتی صورت می گیرد.
ابتدا همانند شکل 2 تصویر را به 9 قسمت مساوی تقسیم می کنیم به طوری که کل تصویر دارای 3 ستون و 3 سطر باشد. سپس مانند شکل 2، نواحی را شماره گذاری می کنیم.
شکل:2 نحوه تقسیم بندی نواحی
در مرحله بعد از الگوی زیر استفاده می کنیم که در نهایت منجر به تعیین بردار الگو خواهد شد. در رابطه زیر x بیانگر میزان پیکسل در نقطه مورد نظر است.
پس از تعریف بالا قادر به تشکیل بردار الگو خواهیم بود. بردار الگو برای اعداد دسته اول به صورت زیر خواهد بود.
سپس اگر مقدار هر یک از سلول های ماتریس مثبت باشد مقدار 1 و اگر منفی باشد مقدار 0 را به آن نسبت می دهیم.
پس از بردار الگو ما نیاز به تعریف کلاس الگو برای مقایسه خواهیم داشت، که پس از انجام آزمایش های متعدد به صورت زیر بدست آمده است.
برای اعداد واقع در دسته دوم بردار الگوی متفاوتی انتخاب می کنیم که به صورت زیر است.
کلاس های الگو هم به صورت زیر بدست آمده است.
توجه داشته باشید که کلاس الگوهای بالا بر اساس آستانه گذاری بدست آمده است. به این معنا که اگر عدد بدست آمده از تفریق میانگین محدوده ها مثبت بود به عدد یک و اگر منفی بود به عدد صفر نظیر می شود. این کار باعث سادگی بیشتر انجام عملیات مقایسه می شود.
اعداد 6 و 4 در فارسی به دو شکل کاملا متفاوت نوشته می شوند. در محاسبه بردار الگوی قسمت قبل شکل صحیح آن ها در نظر گرفته شده اند. برای اعدادی که مطابق شکل 3 نوشته می شوند کلاس الگوی زیر بدست آمده است.
شکل :3 نوشتارهای دیگر عدد 4 و 6
نکته قابل توجه دیگر این است که برای دو عدد 2 و 3 یک بردار الگو بدست آمده است. در این صورت تشخیص میان این دو عدد ممکن نیست. برای حل این مشکل میزان آستانه درایه سوم ماتریس را تغییر می دهیم. به این صورت که مقدار آستانه درایه سوم را از یک به عدد تغییر می دهیم. بنابراین کلاس الگو به صورت زیر تغییر می کند.
تشخیص اعداد صفر و یک :
همانطور که در قسمت قبل اشاره شد نحوه تشخیص اعداد 2 تا 9 با استفاده از روش پیشنهادی ارائه شد. برای تشخیص دو عدد باقیمانده یعنی اعداد 0 و 1 از روش نسبت طول به عرض استفاده می کنیم.
خوشبختانه این دو عدد در تقسیم بندی اولیه در دو گروه متفاوت قرار می گیرند که این کار تشخیص را ساده تر می کند. به این صورت که نسبت طول به عرض بالای 3.7 را عدد یک و نسبت طول به عرض کم تر از 1.4 عدد صفر تشخیص داده می شود.
نتایج :
نکته مهمی که باید به آن توجه داشت این است که هدف از ارائه این الگوریتم سرعت بالای آن است و به طور حتم انتظار می رود دقت کم تری نسبت به سایر الگوریتم های ارائه شده داشته باشد.
بر اساس آزمایش های انجام شده که 100 نمونه از هر عدد با دست خط های مختلف بررسی گردیده است، نتایج به صورت جدول شماره 1 بدست آمده است.