تشخیص کاراکتر با استفاده از شبکه عصبی lvq
مقدمه
شبیه سازی فعالیت های انسان توسط ماشین ها یکی از زمینه های تحقیقاتی از زمان اختراع کامپیوترهای دیجیتال بوده است . در برخی زمینه ها که نوع خاصی از هوشمندی را نیاز داشته ؛ مانند بازی شطرنج ؛ پیشرفت های خوبی صورت گرفته است اما در مسائلی مانند بینایی ماشین حتی قدرتمندترین کامپیوترها نیز به راحتی از انسان شکست می خورند . شبیه سازی خواندن انسان نیز یکی از بخشهای جذابی است که طی سه دهه گذشته موضوع تحقیقات بسیاری از دانشمندان بوده و هنوز تا تکامل آن راه بسیاری در پیش است .
شبیه سازی خواندن و تشخیص متن توسط ماشین به 2 گروه کلی تقسیم می شود :
1. جمع آوری اطلاعات برای تشخیص :
الف. Offline : شامل تصاویری است که از نوشته ها تهیه می شود . مانند عکس توسط دوربین دیجیتالی ، اسکن نامه ها و صفحه های کتاب و از این دست تصاویر .
ب. Online : در این مدل تشخیص متن ، همزمان با نوشتن آن ، متن ِ نوشته شده تشخیص داده شده و تبدیل به کاراکترهای آن می شود . مانند تشخیص دست خط در handled ها و یا در TabletPC ها .
2. نوع متن
الف. دست نویس
ب. متن تایپ شده که توسط ماشین چاپ شده است ، مانند کتابها ، مجلات و ...
عملیات تشخیص متن عموما ً شامل مراحل زیر است :
1. پیش پردازش : شامل روش های مختلف پردازش تصویر است که تصویری بدون نویز و مناسب برای قطعه بندی را آماده می کند .
2. قطعه بندی : مهمترین و مشکلترین کاری که برای تشخیص متن باید انجام شود قطعه بندی تصویر به قطعاتی است که توسط قسمت تشخیص متن باید به کاراکتر یا کلمه تفسیر شود . قطعه بندی اشتباه تصویر منجر به تفسیری اشتباه از کاراکتر نقاشی شده در آن می شود . انواع قطعه بندی به شرح زیر است :
الف. External Segmentation : هدف در این نوع قطعه بندی جدا کردن اجزای کلی متن مانند پاراگراف و سطرها می باشد . امکان برچسب زنی بر روی اجزای صفحه ، مانند عنوان یا چکیده نیز در این نوع قطعه بندی می تواند وجود داشته باشد .
ب. Internal Segmentation : برای جدا کردن کاراکترها از یکدیگر استفاده می شود .
یک. Implicit segmentation : تشخیص کاراکترها با توجه به معانی که از قطعات جدا شده قابل تفسیر است صورت می گیرد .
دو. Explicit Segmentation : جدا کردن کاراکترها با توجه مشخصه هایی که برای آنها قابل تصور است . مثلا ً horizontal projection که از روی قله ها یا دره ها در هیستوگرام افقی یا عمودی سطر، کلمه یا حرف را پیدا می کند .
3. آموزش و تشخیص کاراکترها : بعد از قطعه بندی ، تصویر قطعه قطعه شده می بایست توسط الگوریتمی به متن تفسیر شود . روشهای مختلفی برای این کار وجود دارد که هر کدام از آنها را می توان با دو دیدگاه اجرایی کرد. در دیدگاه اول قطعات تصویر حاوی "کلمه" های متن اصلی هستند و الگوریتم باید کلمه ها را تشخیص دهد . در این دیدگاه دایره لغات کم خواهد بود ولی مشکل قطعه قطعه کردن تصویر کمتر است . برای تفسیر دست خط با توجه به تعدد روش نوشتن یک کلمه ، نرخ تفسیر کمتری از متن تایپی دارد . روش دوم روشهای analytic است که از پایین به بالا عمل کرده و سعی می کند کاراکترها را شناسایی کرده و با ترکیب آنها لغت ها را بسازد . در عمل از ترکیب روشهای زیر استفاده می شود :
الف. Template Matching : تعدادی template از کاراکترها یا کلمات از قبل حاضر شده است . عکسهای قطعه قطعه شده با این template ها مقایسه می شود و با توجه به شباهت برنده انتخاب می شود .
ب. روشهای آماری : با استفاده از برخی مشخصه های آماری و توابع تصمیم گیری آماری کار تشخیص نوع هر کدام از تصاویر قطعه قطعه شده را انجام می دهد . روشهای non-paramteric ، parametric ، cluster analysis و hidden markov modeling از انواع این روش است .
پ. روشهای ساختاری : با توجه به تعدادی الگوی پایه که از قبل تعریف شده است و میزان استفاده هر کدام از تصاویر از این الگوهای پایه عملیات تشخیص انجام می شود . Grammatical methods و graphical methods از انواع این روشها می باشد .
ت. شبکه های عصبی : با توجه به خاصیت شبکه های عصبی که قابلیت تطبیق پذیری با اطلاعات جدید و مختلف را در حد بالایی دارند ، از آنها برای تشخیص استفاده می شود .
4. پس پردازش : بعد از بدست آوردن متن از تصویر می توان آنها را با توجه به اطلاعاتی که درباره آن عکس داریم تصحیح کرد. مثلا ً با توجه به موضوع متن ، لغت هایی که احتمالا ً اشتباهی جزو متن تشخیص داده شده را حذف یا تصحیح کرد . استفاده از لغت نامه نیز یکی از ابزارهایی است که در این مرحله قابل استفاده می باشد .
در ادامه خلاصه ای از تئوری شبکه عصبی LVQ و مباحث مربوطه به قطعه بندی شامل بهبود تصویر و روش projection افقی و عمودی شرح داده شده است . پس از آن روش پیاده سازی و نمونه اجرایی در حالت تک کاراکتر و تصویر اسکن شده آمده است .
شبکه عصبی LVQ
Learning Vector Quantization یا LVQ یک روش کلاس بندی الگو است که هر کدام از خروجی ها نمایش دهنده یک کلاس می باشند و هر کدام توسط بردار وزن آن کلاس مشخص می شود . بردار وزن هر کدام از کلاسها توسط یکی مجموعه های آموزشی مقدار دهی اولیه شده و سپس توسط الگوریتم های یادگیری (با نظارت) بهینه می شود. بعد از یادگیری ، شبکه LVQ ورودی را به کلاسی که برداری با نزدیک ترین فاصله به آن باشد ، نسبت می دهد .
ساختار شبکه های LVQمانند شکل زیر است :
مولفه های بردار ورودی در x_i ها قرار می گیرد و y_i ها کلاسهای خروجی است . بردار وزن های کدام از کلاسهای خروجی ارتباط بین مولفه های ورودی و خروجی را برقرار می کند .
الگوریتم یادگیری در LVQ به شکلی است که می خواهیم در صورت هم کلاس بودن ورودی و کلاس تشخیص داده شده ، وزنهای بردار مشخصه را به سمت ورودی نزدیک کنیم و اگر هم کلاس نبودند آنها را از هم دور کنیم .
در الگوریتم یادگیری LVQ از عبارتهای زیر استفاده شده است :
X بردار ورودی
T کلاس صحیح برای بردار آموزشی
بردار وزن برای J امین کلاس
کلاس برای J امین واحد خروجی
فاصله اقلیدسی بین بردار ورودی و J امین خروجی
الگوریتم :
مرحله اول : بردار وزن اولیه و مقدار نرخ یادگیری انتخاب شود .
مرحله دوم : تا زمانی که شرط خروج مثبت نشده باشد مراحل 2 تا 6 را انجام دهد .
مرحله سوم : J را به نحوی انتخاب کند که
حداقل باشد .
مرحله چهارم :
را به شکل زیر بروز رسانی کند
مرحله پنجم : نرخ یاد گیری را کاهش دهد .
مرحله ششم : شرط خروجی را کنترل کند ( می تواند تعداد چرخش یا رسیدن نرخ یادگیری به یک حداقلی باشد ).
شبکه عصبی LVQ مشتقات مختلفی دارد . LVQ2 ، LVQ2.1 و LVQ3 سه مشتق از الگوریتم اولیه هستند که در آنها به غیر از کلاس برنده ، کلاس دوم نیز آموزش می بیند . در این سه ، با توجه به فاصله کلاس اول و دوم و هم کلاس بودن با بردار ورودی نوع آموزش متفاوت است .