موتور بازشناسی چیست؟

پست شده توسط در اسفند ۱۷, ۱۳۹۱ در OCR | ۰ دیدگاه


موتور بازشناسی یک ماژول نرم افزاری است که با استفاده از تکنیکهای بازشناسی الگو قابلیت شناسایی الگوهای خاص را دارد. به عنوان مثال یک موتور بازشناسی ارقام دستنویس فارسی قادر است با دریافت تصویر یک رقم، آن را شناسایی کرده و کد متناظرش را برگرداند. مهمترین پارامتر یک موتور بازشناسی، دقت یا نرخ بازشناسی صحیح آن است. نرخ بازشناسی بیانگر این است که چند درصد نمونه های دریافتی توسط موتور بازشناسی به درستی شناخته شده اند؛ به عنوان مثال نرخ بازشناسی ۹۶% بیانگر این است که موتور بازشناسی به طور متوسط قادر است از هر ۱۰۰ نمونه دریافتی، ۹۶ تای آنها را به درستی بازشناسی کند و ۴ نمونه را اشتباه تشخیص می دهد.

موتورهای بازشناسی عمدتا بر دو نوعند: ساختاری و هوشمند. موتورهای ساختاری با استفاده از یک سری قوانین ساختاری به بازشناسی الگوها می‌پردازند؛ مثلا رقم ٣ سه دندانه و یک خط تقریبا عمودی در انتهای خود دارد یا رقم ۵ یک شکل تقریبا دایروی است و یا رقم ٧ شامل دو خط مورب است که یک زاویه تقریبا ۴۰ درجه تشکیل می‌دهند و قوانینی از این دست…مشکل روشهای ساختاری این است که حساسیت زیادی به نویز دارند و نیز همواره حالتهایی پیش می‌آید که طراح الگوریتم ممکن است پیش بینی نکرده باشد. از این رو امروزه اقبال چندانی به این روشها نیست.

از سوی دیگر موتورهای بازشناسی هوشمند ابتدا بر اساس مشاهداتی که به آن فرایند آموزش گوییم، نمونه هایی را یاد می‌گیرند و سپس برای بازشناسی نمونه های جدید از آموخته های خود کمک می گیرند (تعمیم). تقریبا فرایندی شبیه به آنچه انسان انجام می دهد. همه ما الفبا را در دبستان با چند قلم تایپی آموخته‌ایم و نیز با دست‌خط معلم و دوستانمان آشنا شده ایم، لیکن الان قادریم هر خط جدیدی را بخوانیم. در واقع قدرت یادگیری و تعمیم ما زیاد است. موتورهای بازشناسی هوشمند طی فرایند آموزش حجم زیادی از داده ها را مشاهده کرده و بر مبنای آن یک سری پارامترها را به روز می کنند؛ هر چه تعداد و تنوع داده های آموزشی بیشتر باشد قدرت تعمیم نهایی موتور بیشتر خواهد بود. به این داده ها، داده های آموزش می گوییم. امروزه روشهای متعددی برای تولید موتورهای بازشناسی هوشمند توسعه یافته است که مهمترین آنها عبارتند از شبکه های عصبی (Neural Networks)، ماشینهای بردار پشتیبان (Support Vector Machines)، مدلهای مخفی مارکوف (Hidden Markov Models) و توابع شعاعی پایه (Radial Basis Functions).

نرخ بازشناسی موتورها بر اساس نمونه های آموزش بیان نمی شود و غالبا روی مجموعه نمونه های جدیدی آزمایش می شوند که به آنها نمونه های آزمایش یا تست گوییم. بر این اساس ممکن است یک موتور بازشناسی به نرخ ۱۰۰% روی نمونه های آموزش برسد ولی روی نمونه های آزمایش ۹۵% جواب بدهد. در اینجا نرخ بازشناسی ۹۵% ملاک قرار خواهد گرفت. هر چه نرخ باشناسی روی نمونه های آزمایش به نرخ نمونه های آموزش نزدیکتر باشد، قدرت تعمیم موتور بهتر است.

برای مثال برای دیدن دمویی از دو موتور بازشناسی ارقام و حروف دستنویس، برنامه ICR Demo را دانلود کنید. دقت موتور بازشناسی ارقام دستنویس حدود ۹۹٫۵% و دقت موتور حروف دستنویس حدود ۹۷% است.

برنامه نمایشی بازشناسی حروف و ارقام دستنویس فارسیاگر شما به دنبال موتورهای بازشناسی قدرتمند برای کاربردهای خاص هستید با ما تماس بگیرید (farsiocr at gmail).