بخشی از مقاله
*** اين فايل شامل تعدادي فرمول مي باشد و در سايت قابل نمايش نيست ***
شناسایی حروف فارسی با استفاده از شبکه های عصبی فازی و دامنه واژگان
چکیده
به علت وجود دستخط های مختلف، بازشناسی حروف یک مساله پیچیده است. در این فرآیند استخراج ویژگیهای حروف به صورت صحیح، گامی مهم در جهت تشخیص درست حروف خواهد بود. این مقاله از روشی جدید به صورت تلفیقی از سیستم های عصبی و فازی استفاده می نماید بدین ترتیب با توجه به اینکه اطلاعات در خط های مختلف متفاوت می باشد و از فونت با شخصی به فونت یا شخص دیگر فرق می کند.پردازش اطلاعات نیز باید بصورت فازی باشد. بدین منظور با ارائه الگوریتمی جدید و استفاده از شبکه های عصبی دیگر انجمنی و قانون هب " و با استفاده از قاب بندی و بعد از طی مراحلی، با استفاده از روش برون خطه و راهکار مبتنی بر شناسایی، حروف را شناسایی می نماییم و سپس با استفاده از سیستم فازی حروف را بازشناسی کرده، که با استفاده از روش جدید ارائه شده میزان کارایی تشخیص حروف تا ۹۹ درصد برای حروف مختلف با فونت های مختلف که دستاوردی در این مبحث می باشد خواهد رسید و سپس با استفاده از دامنه واژگان صحت و سقم حروف شناسایی شده مورد بررسی قرار گرفته و با استفاده از این قسمت در نهایت میزان کارایی شبکه تا ۹۹/۹ درصد بهبود می یابد.
کلمات کلیدی بازشناسی حروف - عصبی فازی - شبکه عصبی دیگر انجمنی - قانون هب - قالب بندی - دامنه واژگان
۱- مقدمه
تشخیص حروف کاربرد زیادی دارد، مثلا در مرتب کردن بسته های پستی، دفتر کار خودکار، پلاک خودرو و تصاویر اسکن شده و یا تصاویر دیگر از حروف و دست نوشته ها بوده که در عمده ترین کاربرد آن یعنی تشخیص پلاک خودرو دارای کاربردهای فراوانی از جمله اخذ عوارض، محاسبه مدت سفر، اندازه گیری سرعت متوسط و ... استفاده می شود. بنابر این سیستم باید از یک نرخ دقت بالا، سرعت زیاد و کاربرد آسان بهره مند باشد. تا به حال روش های مختلفی ارائه شده است که چون دارای دقت مناسبی نبوده اند مورد قبول واقع نشده است. در یکی از این روش ها ترکیبی از assembly neural network و پرسپترون استفاده شده است [1].
در ۲۱ آمروری بر تکنیک های نرمال سازی و استخراج الگو صورت گرفته است. در [۳] یک نگاشت جدید برای تشخیص حروف بر اساس روش قطعه بنديبرای فائق آمدن بر مشکلات همپوشانی افقی حروف عربی بیان می کند. مساله اصلی در مورد جداسازی حروف چاپی عربی وابستگی حروف به موقعیت آنها در کلمه است. اخیرا یک روش جدید جهت جداسازی حروف چاپی عربی مطرح شده است (۴). در [۵] از روش یادگیری فعال برای ساختن و آموزش کمیته ای از دسته بندها استفاده شده است. در [۶]ترکیبی از شبکه عصبی هم گذار و پرسپترون برای تشخیص استفاده شده است. در این مقاله در مرحله استخراج ویژگی ها از روش قاب بندی استفاده شده است. در [7] مروری بر تکنیک های نرمال سازی و استخراج ویژگی صورت گرفته است. در [۱۸ یک روش جداسازی و دسته بندی نواحی موجود در یک سند با استفاده از سیستم Nero-fuzzy و با توجه به یکسری ویژگیها شروع به برچسب زدن هر کدام از نواحی می کند. پیش زمینه مراحل تشخیص کاراکترها در یک سیستم OCR شامل اسکن کردن مناسب تصویر و پردازش و آماده سازی آن برای تشخیص، سپس قطعه بندی آن به خطوط و کلمات و کاراکترها و بعد از آن تشخیص قطعات از هم تفکیک شده می باشد. در مرحله آخر می توان با بررسی های صورت گرفته در دامنه واژگان به با معنی بودن کلمات بدست آمده و یا حتی بالاتر از آن به تصحیح از روی گرامر جملات زبان پرداخت [۹]. شکل (۱) خطای حاصله از هر کدام از مراحل بالا تاثیر مستقیم روی نتیجه خواهد داشت. لذا کار روی هر کدام از این مراحل خود مستلزم تحقیقات بسیاری می باشد. در این مقاله عمده تحقیق روی قطعه بندی حروف و الگوریتم ارائه شده جهت تشخیص حروف و سپس بازشناسی حروف توسط سیستم فازی و در نهایت استفاده از دامنه واژگان برای بررسی پاسخ نهایی شبکه خواهد بود.
۱-۲- قطعه بندی کارکترها.
قطعه بندی مرحله ای مهم است که در آن اجزاء تصویر متنی که باید به مرحله شناسایی تحویل داده شوند از یکدیگر جدا می شوند. هیچ روش عمومی برای حروف كلمات فارسی هنوز ابداع نشده است زیرا تفسیر هر حرف مورد نظر متقابلا به حروف اطاف خود بستگی دارد. در بعضی روش های تشخیص حروف با الزام کاربر به نوشتن در مرکز خانه تا حدودی قطعه بندی را میسر می سازند که به دلیل ویژگی متصل بودن حروف به یکدیگر این کار برای متون فارسی عملی نیست [۱۰ او حروف ممکن است هم پوشانی کنند. قطعه بندی در روش های قبل و همچنین مراحل اولیه روش جدید ارائه شده در مقاله، در چهار سطح انجام می گیرد؛ در شکل (۲) اولین مرحله و تشخیص محدوده افقی خطوط را می توان مشخص نمود، در شکل (۳) دومین مرحله از این روش و تشخیص محدوده عمودی خطوط را مشخص می نماید و در مرحله سوم تشخیص محدوده کلمات را همانند شکل (۴) می توان مشخص نمود و در مرحله چهارم می توان قطعه بندی کلمات را به صورت مجزا انجام داد(شکل (۵)). برای تشخیص و ردیابی خطوط متن می توان با استفاده از فضاهای خالی موجود و چگالی افقی نقاط این امر را میسر نمود، در نتیجه با استفاده از هیستوگرام افقی می توان فاصله بین سطرها را مرز بندی نمود. بعد از جدا کردن خطوط و متن، می توان وظیفه جدا نمودن حروف کلمات خط را با بازرسی شکاف های عمودی و هیستوگرام عمودی تعیین نمود. ارزش متوسط آستانه ای محاسبه شده از تمام شکاف های عمودی برای تعیین این که آیا فاصله عمودی بین قسمت ها فاصله درون کلمه ای است یا بین دو کلمه مجزا است بکار می رود.
الگوی تهیه مقالات برای اولین کنفرانس ملی نوآوری در مهندسی کامپیوتر و فناوری اطلاعات عواد به آموزی عالی خیر انخاعی سنی تنکابن شکل (۲):تشخیص محدوده افقی خطوط
در این مقاله برای قطعه بندی حروف یکی از برترین روش های قطعه بندی در [۱۱] استفاده شده است که به تشریح آن می پردازیم: خط مبنا را برای کلمه (یا کلمه فرعی) معین تعیین کنید. یافتن خط مبنا مبتنی بر تحلیل چگالی افقی نقاط (هیستوگرام افقی) بوده و تعیین بیشترین مقدار آن است. یافتن برآمدگی حروف بر روی کلمه را با جمع کردن پیکسل های حروف به صورت عمودی انجام دهید. یا به عبارتی هیستوگرام عمودی کلمه را بیابید. کلمه را از راست به چپ پویش کنید و هر قسمت از کلمه که دارای میزان برآمدگی کمتر از متوسط برآمدگی می باشد به عنوان مرزهای بالقوه حروف علامتگذاری کنید. این نقاط متناظر با خط زمینه می باشند. مرزهای بالقوه را برای تعیین مرزهای واقعی حروف بررسی کنید. مرزهای واقعی جایی هستند که قطعه بندی باید در آنجا انجام گیرده. هر مرز بالقوه باید در صورتی به مرز واقعی تبدیل شود که یکی از شرایط زیر را تامین کند ۱- عرض هر حروف نباید بسیار کوچک باشد(بسیار کوچکتر از میانگین عرض حروف)
۲- یک تغییر محسوس در هیستوگرام عمودی و در همسایگی
مرزهای بالقوه صورت گرفته باشد اولین شرط لازم است زیرا بعضی حروف مانند "س" هم مرزهای بالقوه بدست می دهند و باید مرزهای دندانه ای آنها نادیده گرفته شود و در حقیقت دندانه ها با هم ترکیب شوند. شرط دوم برای این وضع گشته است که حروف در اشکال آغازین و میانی، با ارزش بالایی از برآمدگی عمودی، دارای مرز عرض کوچکی می باشند. یعنی حرفی مانند "T" دارای عرض کمی است که با شرط اول حذف خواهد شد. تفاوت این حروف با دندانه ها در طول زیاد آنها است. بعد از تعیین مرز واقعی حروف منتهی الیه سمت چپ به عنوان نقطه ای انتخاب می گردد که قطعه بندی در انجا صورت خواهد گرفت.
۲- مرحله پیش پردازش
پس از انجام عملیات قطعه بندی کاراکترها و تبدیل هر کاراکتر به حروف قابل تشخیص در فارسی نوبت به طی مراحلی جهت آماده سازی حروف می باشد. در پیش پردازش حروف بعد انجام دو مرحله کی تصحیح خطوط کج و منحنی ها، نرمال سازی آماده جهت استفاده در ماتریس قاب بندی شده بوده و قابل تشخیص توسط الگوریتم ارائه شده می باشند.
۲-۱- تصحیح منحنی ها و کجی ها حروف
بسته نوع فونت در یک جهت خوابیده شده اند. برای رفع این مشکل هر حرف را به دو قسمت بالایی و پایینی تقسیم کرده و سپس مركز تجمع پیکسل ها را در هر دو نیمه به دست می آوریم. این دو مرکز توسط یک خط به هم متصل می شوند. شیب خط متصل کننده دو مرکز در یک پنجره شیب حرف را مشخص می کند. با استفاده از فرمول (۱) می توان اصلاح را انجام داد (۱۲ آدر این تبدیل def میزان انحنای نرمال داده هاست. x و y مختصات نقاط قبل از تصحیح و از بین بردن شیب کاراکتر می باشند. 'X و Y مختصات همان نقاط تصویر بعد از تصحیح هستند. و نیز شیب خط متصل کننده در مرکز تجمع پیکسل ها در نیمه بالای و پایینی تصویر است.
۲-۲- نرمال سازی
بعد از تبدیل تصویر به یک تصویر دودویی صفرهای زیادی یعنی نقاط سفید که مربوط به زمینه می باشند. و حاوی هیچ اطلاعاتی نیستند در چهار طرف وجود دارد. برای شروع باید چهار وجهی که اطلاعات زیادی دارند حذف شوند و حرف محصور به یک چهار وجهی شود. مانند شکل
شکل ۶: نمونه ای از ارقام بعد از نرمال سازی و حذف نقاط زمینه که بدون اطلاعات هستند با مقیاس بزرگتر ۳- روش قاب بندی و استفاده از الگوریتم ارائه شده برای شناسایی کاراکترها این الگوریتم، فضای تصویر حرف را به ۶۴ جعبه مساوی برای استخراج ویژگی های تقسیم می کند. این کار به وسیله یک ماتریس ۸۸ صورت می پذیرد؛ که به تشریح الگوریتم ارائه شده با استفاده از شبکه های عصبی دیگر انجمنی و قانون هب ارائه شده در مقاله خواهیم پرداخت. در مثال ارائه شده ، ماتریس وزن برای ذخیره سازی اولین جفت الگو، با ضرب خارجی بردارهای (و و ۰و۱) =S و (۰و۱) =t به دست می آید. همان گونه که اشاره شد، ضرب خارجی مربوطه به جفت بردار فوق در واقع معادل ضرب ماتریسی بردار آموزشی که به صورت بردار ستونی نوشته شده و شبیه به یک ماتریس 1*n شده است) و بردار هدف که به صورت بردار سطری نوشته شده و شبیه به یک ماتریس m*۱ شده است) در شکل (۷) مشاهده می نمایید.