تاریخچه OCRدر ایران

 ocr در ایران چگونه آغاز شد؟ 

ماجرا از ثبت‌نام داوطلبان آزمون «سازمان ملی پرورش استعدادهای درخشان (تیزهوشان)» در سال 1380 ‎آغاز شد. ثبت‌نام از روی فرم‌هایی كه توسط دانش‌آموزان تكمیل می‌شد انجام می‌گرفت. دانش‌آموزان شركت‌كننده در آزمون ــ مانند آزمون‌های سراسری ــ باید نام، نام خانوادگی، نام پدر، نام شهرستان محل تولد و سكونت، نام مدرسه و دین خود را در داخل كادرهای مربعی شكل و به صورت حروف مقطع (یعنی هر حرف داخل یك كادر) می‌نوشتند. وقتی كه همة فرم‌ها از طریق پست به سازمان مركزی برگزاركننده آزمون می‌رسید، عدة زیادی تایپیست متن آنها را دوباره وارد رایانه می‌كردند. در واقع همان حرف‌های داخل كادر را دوباره تایپ می‌كردند تا اطلاعات شناسنامه‌ای هر دانش‌آموز به صورت دیجیتالی درآید. این روش هم بسیار زمان‌بُر بود و هم نیاز به تعداد زیادی تایپیست داشت. احتمال داشت كه تایپیست‌ها هم هنگام تایپ اشتباه كنند و با ثبت نادرست یك نام، مشخصات فردی در رایانه مركزی وارد شود كه اصلاً متولد نشده است! مثلاً فرض كنید تایپیست محترم نام «جواد» را، كه داخل كادرها به صورت «ج.و.ا.د» نوشته شده بود،« فؤاد» تایپ می‌كرد؛ در آن صورت در كارت شناسایی جواد سابق، فؤاد فعلی ثبت می‌شد! (جوادِ موجود حذف می‌شد و فؤاد ناموجود وارد فهرست داوطلبان می‌شد!) افزون بر این، هزینة كار نیز بسیار زیاد بود.
به علت همین مشكلات، در بهمن‌ماه 1380، نخستین طرح OCR برای بازشناسی حروف فارسی توسط كامپیوتر ارائه شد و در سال‌های 1381 و 1382 نیز ثبت‌نام آزمون تیزهوشان به یاری این نرم‌افزار انجام شد.
در زبان‌های دیگر، به ویژه زبان‌هایی كه با حروف لاتینی نوشته می‌شوند، سال‌هاست كه از OCR استفاده می‌شود. اما در ایران تازه دو سه سالی است كه به فكر استفاده از OCR در زبان فارسی افتاده‌ایم.
و اما OCR چند نوع است: یا تایپی است یا دست‌نویس. یعنی یا باید یك متن قبلاً تایپ شده را (مثل كتاب‌ها و روزنامه‌های چندین سال قبل، یا حتی متنی را كه فایل تایپی آن موجود نیست و فقط پرینت آن را داریم) وارد رایانه كنیم، یا متن دست‌نویس را. متن‌های دست‌نویس هم به دو صورت «گسسته» و «پیوسته» وجود دارند: متن «دست‌نویس پیوسته» مثل همان چیزهایی است كه ما هر از گاهی كه دلمان تنگ می‌شود روی كاغذ می‌نویسیم، یا یك نامه، یا یك قطعه شعر و … اما متن «دست‌نویس گسسته» همان نوشته‌‌هایی است كه حروف آن جدا از هم و به صورت گسسته نوشته شده‌اند، مثل نام و نام‌خانوادگی كه در فرم‌های آزمون ثبت‌نام، به صورت هر حرف داخل یك كادر، نوشته می‌شوند. طراحی OCR گسستة فارسی تقریباً در مراحل پایانی كار قرار دارد ولی، OCR پیوسته ظاهراً سال‌های زیادی كار می‌برد. «رضا صدیق» و «پرویز رزازی»، كه در رشتة مخابرات تحصیل كرده‌اند و مسئولان یك شركت كامپیوتری به نام «اندیشه نرم‌افزار پایا» هستند، برای اولین بار به طور جدی پروژة OCR فارسی را دنبال كرده‌اند. رزازی كه دانشجوی مخابرات و مسئول بخش پردازش سیگنال شركت «پایا» و مدیر پروژة OCR در این شركت است، می‌گوید : « OCR در دنیا موضوعی ناشناخته نیست، و بر روی آن زیاد كار شده است، ولی در ایران با آنكه مدت‌هاست روی آن كار شده، اما بسیاری از این كارها در حد كارهای دانشگاهی و مقاله‌های علمی باقی‌مانده بود و تبدیل به یك محصول كاربردی در ابعاد وسیع (مثل ثبت‌نام آزمون‌های بزرگ) نشده بود. ما بر روی این طرح كار كردیم و هدفمان هم این بود كه محصول را به شكل صنعتی آن تولید كنیم. البته غیر از شركت «پایا»، دو شركت دیگر نیز با حمایت دبیرخانه طرح «تكفا» (توسعه كاربرد فناوری اطلاعات و ارتباطات) مشغول پژوهش و آزمایش بر روی OCR فارسی هستند. یكی از این شركت‌ها «داده‌پردازان دوران نوین» نام دارد كه مدیریت آن را دكتر «حسام فیلی» بر عهده دارد. دكتر فیلی متخصص در رشتة هوش مصنوعی، از دانشگاه صنعتی شریف، است و شركت «دوران نوین» را از سال 1381، با هدف كار تخصصی بر روی پروژه‌های هوش مصنوعی تأسیس كرده است. او دربارة چگونگی پیوستن شركتش به این طرح می‌گوید: «از تیرماه سال 82 با شروع فعالیت طرح «تكفا» و حمایت‌های مالی آنها، این شركت تصمیم گرفت كه در زمینة طراحی OCR فارسی پژوهش و فعالیت كند. این پروژه در شركت «دوران نوین» با همكاری آقای دكتر «ابراهیمی مقدم» كه او هم از دانشجویان دورة دكتری هوش مصنوعی دانشگاه صنعتی شریف است، انجام می‌گیرد.
ﭘﻴﺪﺍﻳﺶ ﻋﻠﻮﻡ ﻭ ﻓﻨﻮﻥ ﺟﺪﻳﺪ، ﺟﻮﺍﻣﻊ ﺑﺸﺮﻱ ﺭﺍ ﺑﺎ ﺷﻜﻠﻬﺎﻱ ﻣﺨﺘﻠﻔﻲ ﺍﺯ اطلاعات ﺭﻭﺑﺮﻭ ﻧﻤﻮﺩﻩ است ﺳﻄﺢ ﺗﻮﺳﻌﺔ ﻳﻚ ﺟﺎﻣﻌﻪ ﺭﺍ ﻣﻲ ﺗﻮﺍﻥ ﺑﺎ ﻣﻘﺪﺍﺭ اطلاعات ﻭ ﺩﺍﻧﺶ ﺗﻮﻟﻴﺪ ﺷﺪﻩ ﺩﺭ ﺁﻥ ﺍﺭﺯﻳﺎﺑﻲ ﻛﺮﺩ. ﺗﻮﻟﻴﺪ ﻓﺰﺍﻳﻨﺪﺓ اطلاعات ﺑﻪ ﺷﻜﻠﻬﺎﻱ ﻣﺨﺘﻠﻒ ﺻﻮﺭﺕ ﻣﻲ گیرد و با درجات متفاوتی ﺍﺯ ﭘﻴﭽﻴﺪﮔﻲ ﻫﻤﺮﺍﻩ می باشد. ﺩﺭ ﻧﺘﻴﺠﻪ ﻧﻴﺎﺯ ﺑﻪ ﺳﻴﺴﺘﻤﻬﺎﻱ ﭘﺮﺩﺍﺯﺵ اطلاعات ﺑﺼﻮﺭﺕ ﺭﻭﺯﺍﻓﺰﻭﻥ ﺍﻓﺰﺍﻳﺶ ﻣﻲ یابد یكی از ﻣﺴﺎﺋﻞ ﻣﻬﻢ ﺩﺭ ﻃﺮﺍﺣﻲ ﺳﻴﺴﺘﻤﻬﺎﻱ ﻣﺪﺭﻥ ﺍﻃﻼﻋﺎﺗﻲ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺧﻮﺩﻛﺎﺭ ﺍﻟﮕﻮﻫﺎ می باشد.

ﺑﺮخی ﻭﻳﮋﮔﻴﻬﺎی ﻣﺘﻮﻥ ﭼﺎپی ﻓﺎﺭسی

ﻧﮕﺎﺭﺵ ﻓﺎﺭﺳﻲ ﻭﻳﮋﮔﻴﻬﺎﻱ ﻣﻨﺤﺼﺮ ﺑﻪ ﻓﺮﺩﻱ ﺩﺍﺭﺩ ﻛﻪ ﺁﻥ ﺭﺍ ﻛﺎﻣﻼً ﺍﺯ ﻧﮕﺎﺭﺵ لاتین ﻣﺘﻤﺎﻳﺰ ﻣﻲسازد.
ﺑﻤﻨﻈﻮﺭ ﻓﻌﺎﻟﻴﺖ ﺩﺭ ﺯﻣﻴﻨﺔ OCR فارسی ﺁﮔﺎﻫﻲ ﺍﺯ ﻗﻮﺍﻧﻴﻦ ﻧﮕﺎﺭﺷﻲ ﻭ ﻧﺤﻮﺓ ﭼﺎﭖ ﺣﺮﻭﻑ ﺩﺭ ﺍﻳﻦ ﺯﺑﺎﻥ ﺍﻣﺮﻱ ﺿﺮﻭﺭﻱ ﺍﺳﺖ. ﺩﺭ ﺍﻳﻨﺠﺎ ﺑﻪ ﻭﻳﮋﮔﻴﻬﺎﻱ ﻛﻠﻲ ﻧﮕﺎﺭﺵ ﻓﺎﺭﺳﻲ ﺍﺷﺎﺭﻩ ﻣﻲ ﺷﻮﺩ :

1-    ﻣﺘﻮﻥ ﻓﺎﺭﺳﻲ ﺑﺮﺧﻼﻑ متون لاتین ﺍﺯ ﭼﭗ ﺑﻪ ﺭﺍﺳﺖ ﻧﻮﺷﺘﻪ ﻣﻲشود.
2-     ﺩﺭ ﻛﻠﻤﺎﺕ ﻓﺎﺭﺳﻲ ﺑﺮﺧﻲ ﺍﺯ ﺣﺮﻭﻑ ﺍﺯ ﻳﻚ ﻳﺎ ﺩﻭ ﻃﺮﻑ ﺑﻪ ﺣﺮﻭﻑ ﻣﺠﺎﻭﺭ ﺧﻮﺩ ﺍﺗﺼﺎﻝ ﺩﺍﺷﺘﻪ ﻭ ﺑﺮﺧﻲ ﻧﻴﺰ ﺑﺼﻮﺭﺕ ﻣﺠﺰﺍ ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮﻧﺪ. ﺩﺭ ﻧﺘﻴﺠﻪ ﻫﺮ ﻛﻠﻤﻪ ﻣﻤﻜﻦ ﺍﺳﺖ ﺷﺎﻣﻞ ﻳﻚ ﻳﺎ ﭼﻨﺪ ﺑﺨﺶ ﻣﺘﺼﻞ ﺑﺎﺷﺪ ﻛﻪ « ﺯﻳﺮﻛﻠﻤﻪ » ﻧﺎﻣﻴﺪﻩ ﻣﻲ ﺷﻮﻧﺪ. (الف)
3-    ﺣﺮﻭﻑ ﻓﺎﺭﺳﻲ ﻣﻲﺗﻮﺍﻧﻨﺪ ﭼﻬﺎﺭ ﻣﻮﻗﻌﻴﺖ ﻣﺠﺰﺍ ﻭ ﺩﺭ ﻧﺘﻴﺠﻪ ﭼﻬﺎﺭ ﺷﻜﻞ ﻣﺘﻔﺎﻭﺕ ﻧﮕﺎﺭﺵ ﺩﺍﺷﺘﻪ باشند. ﺣﺮﻭﻑ ﺍﺑﺘﺪﺍﻳﻲ، ﻣﻴﺎﻧﻲ، ﺍﻧﺘﻬﺎﻳﻲ ﻭ ﻣﺠﺰﺍ. (ب)
4-     ﺣﺮﻭﻑ ﻭﺍﻗﻊ ﺩﺭ ﻳﻚ ﻛﻠﻤﻪ ﻣﻤﻜﻦ ﺍﺳﺖ ﻫﻤﭙﻮﺷﺎﻧﻲ ﺩﺍﺷﺘﻪ ﺑﺎﺷﻨﺪ، ﺑﺪﻳﻦ ﻣﻌﻨﻲ ﻛﻪ ﻧﺘﻮﺍﻥ ﺑﺎ ﺭﺳﻢ ﺧﻄﻮﻁ ﻋﻤﻮﺩﻱ، ﺣﺮﻭﻑ ﺭﺍ ﺑﻄﻮﺭ ﻛﺎﻣﻞ ﺍﺯ ﻳﻜﺪﻳﮕﺮ ﻣﺠﺰﺍ ﻧﻤﻮﺩ. (ج)
5-    ﺑﺮﺧﻲ ﺍﺯ ﻓﻮﻧﺘﻬﺎ ﺑﻌﻀﻲ ﺍﺯ ﺣﺮﻭﻑ ﺩﺭ ﺩﻭ ﻣﺤﻞ ﺑﻪ ﻳﻜﺪﻳﮕﺮ ﺍﺗﺼﺎﻝ ﺩﺍﺭﻧﺪ (د)
6-    ﺑﺮﺧﻲ ﺍﺯ ﺣﺮﻭﻑ ﺑﻴﻦ ﻳﻚ ﺗﺎ ﺳﻪ ﻋﺪﺩ ﻧﻘﻄﻪ ﺩﺍﺭﻧﺪ ﻛﻪ ﻣﻤﻜﻦ ﺍﺳﺖ ﺩﺭ ﺑﺎﻻ ﻳﺎ ﭘﺎﻳﻴﻦ ﺑﺪﻧﺔ ﺣﺮﻑ ﻭﺍﻗﻊ ﺑﺎﺷﻨﺪ.
7-    ﺩﺭ ﺑﻌﻀﻲ ﺍﺯ ﺣﺮﻭﻑ ﺑﺪﻧﺔ ﻣﺸﺎﺑﻪ ﺩﺍﺭﻧﺪ ﻭ ﺗﻔﺎﻭﺕ ﺁﻧﻬﺎ ﺗﻨﻬﺎ ﺩﺭ ﺗﻌﺪﺍﺩ ﻭ ﻣﺤﻞ ﻗﺮﺍﺭﮔﻴﺮﻱ ﻧﻘﺎﻁ ﺁﻧﻬﺎﺳﺖ (ﻩ)
8-    ﺣﺮﻭﻑ ﻓﺎﺭﺳﻲ ﻣﻲ ﺗﻮﺍﻧﻨﺪ ﺩﺭ ﺑﺎﻻ ﻳﺎ ﭘﺎﻳﻴﻦ ﺑﺪﻧﺔ ﺧﻮﺩ ﺩﺍﺭﺍﻱ ﺍﻋﺮﺍﺏ ﺑﺎﺷﻨﺪ. سه اعراب ﺩﺭ ﺯﺑﺎﻥ ُ  ِ  َ در زبان فارسی ﺍﻋﺮﺍﺑﻬﺎﻱ ﺍﺻﻠﻲ ﺑﻮﺩﻩ و ﺍﻋﺮﺍﺏ ً ﺩﺭ ﺑﺮﺧﻲ ﻛﻠﻤﺎﺕ ﻋﺮﺑﻲ ﺭﺍﻳﺞ ﺩﺭ ﺯﺑﺎﻥ ﻓﺎﺭﺳﻲ ﺩﻳﺪﻩ ﻣﻲ ﺷﻮﺩ. ﻛﻠﻤﺎﺕ ﻋﺮﺑﻲ ﺩﺍﺭﺍﻱ اعراب  ٍ   ٌ  ﺩﺭ ﺯﺑﺎﻥ ﻓﺎﺭﺳﻲ ﻋﻤﻮﻣﻴﺖ ندارد.
9-    ﺩﺭ ﺑﺎﻻﻱ ﺑﺪﻧﺔ ﻳﻚ ﺣﺮﻑ ﻣﻤﻜﻦ ﺍﺳﺖ ﻋﻼﻣﺖ ﺗﺸﺪﻳﺪ ﻭﺟﻮﺩ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ.
10-ﺑﺮﺧﻲ ﺍﺯ ﺣﺮﻭﻑ ﺷﺎﻣﻞ ﻫﻤﺰﻩ ﻫﺴﺘﻨﺪ.
11-ﺣﺮﻭﻓﻲ ﻛﻪ ﺍﺯ ﻃﺮﻑ ﭼﭗ ﻗﺎﺑﻠﻴﺖ ﺍﺗﺼﺎﻝ ﺑﻪ ﺣﺮﻑ ﻣﺠﺎﻭﺭ ﺧﻮﺩ ﺭﺍ ﺩﺍﺭﻧﺪ، ﻣﻲ ﺗﻮﺍﻧﻨﺪ ﺑﺼﻮﺭﺕ ﻛﺸﻴﺪﻩ ﻧﻮﺷﺘﻪ ﺷﻮﻧﺪ.
ﺑﺎﺯﺷﻨﺎﺳﻲ ﺣﺮﻭﻑ ﺧﻮﺩ ﺯﻳﺮﻣﺠﻤﻮﻋﻪ ﺍﺯ ﺩﺳﺘﺔ بزرگی از ﺗﻜﻨﻴﻜﻬﺎ ﺑه نامﺁﻧﺎﻟﻴﺰ ﺍﺳﻨﺎﺩ ﺍﺳﺖ ﻛﻪ ﻣﺒﺤﺚ ﺍﺻﻠﻲ ﺍﻳﻦ ﻃﺮﺡ می باشد.
هدف از مبحث آنالیز اسناد، شناسایی اجزای متنی، گرافیكی و عكس در تصاویر اسناد و استخراج اطلاعات مورد نظر از آنها می باشد. آنایز اسناد مشتمل بر كلیه مراحل پردازشی است كه محتویات یك سند اسكن یا دورنگاری شده چند صفحه ای را به یك فرم الكترونیكی مناسب كد می كنند. این كد كردن می توان چندین شكل داشته باشد : یك توصیف قابل ویرایش، یك نمایش فشرده كه تصویر سند از ان قابل بازیابی باشد و یا یك توصیف معناشناختی سطح بالا كه به منظور پاسخگویی به پرس و جوها می توان بكار رود.
منبع

تاریخچه سیستمهای OCR

از جنبه تاریخی سیستم های OCR تا کنون سه مرحله تکاملی را پشت سر گذاشته اند:

ﺍﻟﻒ ) ﻣﺮحله ﺗﻜﻮﻳﻦ : (از سال 1900 تا 1980)

ﺭﺩ ﭘﺎﻱ ﺍﻭﻟﻴﺔ ﺍﻗﺪﺍﻣﺎﺕ ﺻﻮﺭﺕ ﮔﺮﻓﺘﻪ ﺩﺭ ﺯﻣﻴﻨﺔ ﺑﺎﺯﺷﻨﺎﺳﻲ حروف را ﺩﺭ ﺳﺎﻟﻬﺎﻱ ﺍﻭﻝ ﺩﻫﺔ 1900 می ﺗﻮﺍﻥ ﻳﺎﻓﺖ ﻭ ﺁﻥ ﺯﻣﺎﻧﻲ ﺍﺳﺖ ﻛﻪ Tyuring ﺩﺍﻧﺸﻤﻨﺪ ﺭوسی بر آن بود  ﻛﻪ ﺑﻪ ﺍﻓﺮﺍﺩ ﻣﺒﺘﻼ ﺑﻪ ﻧﺎﺭﺳﺎﻳﻴﻬﺎﻱ ﺑﻴﻨﺎﻳﻲ ﻛﻤﻚ ﻧﻤﺎﻳﺪ و ﺍﻭﻟﻴﻦ ﺍﺧﺘﺮﺍﻉ های ﺛﺒﺖ ﺷﺪﻩ ﺩﺭ ﺍﻳﻦ ﺯﻣﻴﻨﻪ مربوط به سالهای 1929 و 1933 هستند
ﺍﻳﻦ ﺳﻴﺴﺘﻢ ﻫﺎ ﺣﺮﻭﻑ ﭼﺎﭘﻲ ﺭﺍ ﺑﺎ ﺭﻭﺵ ﺗﻄﺎﺑﻖ ﻗﺎﻟﺒﻲ ﺷﻨﺎﺳﺎﻳﻲ ﻣﻲ كردند. ﻣﺎﺳﻜﻬﺎﻱ ﻣﻜﺎﻧﻴﻜﻲ ﻣﺨﺘﻠﻔﻲ ﺍﺯ ﻣﻘﺎﺑﻞ ﺗﺼﻮﻳﺮ ﺣﺮﻑ ﻋﺒﻮﺭ می ﻛﺮﺩﻧﺪ و نور از یك سو ﺑﻪ ﺁﻥ ﺗﺎﺑﺎﻧﺪﻩ ﺷﺪﻩ ﻭ ﺍﺯ ﺳﻮﻱ ﺩﻳﮕﺮ ﺗﻮﺳﻂ ﻳﻚ ﺁﺷﻜﺎﺭﺳﺎﺯ ﻧﻮﺭﻱ ﺩﺭﻳﺎﻓﺖ ﻣﻲ شد. وقتی یك انطباق كامل صورت می گرفت ﻧﻮﺭ ﺑﻪ ﺁﺷﻜﺎﺭﺳﺎﺯ ﻧﻤﻲ ﺭﺳﻴﺪ ﻭ ﺣﺮﻑ ﻭﺭﻭﺩﻱ ﺑﺎﺯﺷﻨﺎﺳﻲ ﻣﻲ شد. این ﺍﺧﺘﺮﺍﻉ ﺑﻪ ﺩﻟﻴﻞ ﺗﻜﻨﻮﻟﻮﮊﻱ ﺍﭘﺘﻮﻣﻜﺎﻧﻴﻜﻲ ﻣﻮﺭﺩ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺁﻧﻬﺎ ﻛﺎﺭﺑﺮﺩﻱ ﻧﺒﻮﺩ و ﺗﺼﻮﺭ ﺩﺳﺘﺮﺳﻲ ﺑﻪ ﺩﺳﺘﮕﺎﻫﻲ ﺑﺮﺍﻱ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺣﺮﻭﻑ ﺗﺎ ﺩﻫﻪ 1940 ﻣﻴﻼﺩﻱ ﻭ ﻇﻬﻮﺭ ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎﻱ ﺩﻳﺠﻴﺘﺎﻝ ﺑﺼﻮﺭﺕ ﻳﻚ ﺭﺅﻳﺎ ﺑﺎﻗﻲ ﻣﺎﻧﺪ.
ﺍﻗﺪﺍﻣﺎﺕ ﺍﻭﻟﻴﻪ ﺩﺭ ﺯﻣﻴﻨﺔ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺣﺮﻭﻑ، ﺑﺮ ﺭﻭﻱ ﻣﺘﻮﻥ ﭼﺎﭘﻲ ﻭ ﻳﺎ ﻣﺠﻤﻮﻋﺔ ﻛﻮﭼﻜﻲ ﺍﺯ ﺣﺮﻭﻑ ﻭ ﻧﻤﺎﺩﻫﺎﻱ ﺩﺳﺘﻨﻮﻳﺲ ﻛﻪ ﺑﺮﺍﺣﺘﻲ ﻗﺎﺑﻞ ﺗﺸﺨﻴﺺ ﺑﻮﺩﻧﺪ، ﻣﺘﻤﺮﻛﺰ ﮔﺮﺩﻳﺪﻩ ﺑﻮﺩ. ﺳﻴﺴﺘﻤﻬﺎﻱ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺣﺮﻭﻑ ﭼﺎﭘﻲ ﻛﻪ ﺩﺭ ﺍﻳﻦ ﻣﻘﻄﻊ ﺯﻣﺎﻧﻲ ﻣﻌﺮﻓﻲ ﺷﺪﻧﺪ، ﻋﻤﺪﺗﺎً ﺍﺯ ﺭﻭﺵ ﺗﻄﺎﺑﻖ ﻗﺎﻟﺒﻲ ﺍﺳﺘﻔﺎﺩﻩ می نمودند ﻛﻪ ﺩﺭ ﺁﻥ ﺗﺼﻮﻳﺮ ﻭﺭﻭﺩﻱ ﺑﺎ ﻛﺘﺎﺑﺨﺎﻧﻪ ای از تصاویر ﺣﺮﻭﻑ ﻣﻮﺭﺩ ﻣﻘﺎﻳﺴﻪ ﻗﺮﺍﺭ ﻣﻲ گرفت. در ﻣﻮﺭﺩ ﻣﺘﻮﻥ ﺩﺳﺘﻨﻮﻳﺲ ﻧﻴز ﺍﻟﮕﻮﺭﻳﺘﻤﻬﺎﻱ ﭘﺮﺩﺍﺯﺵ ﺗﺼﻮﻳﺮ ﻛﻪ ﻭﻳﮋﮔﻴﻬﺎﻱ ﺳﻄﺢ ﭘﺎﻳﻴﻦ را از تصاویر ﺍﺳﺘﺨﺮﺍﺝ ﻣﻲ كنند، ﺑﻪ ﺗﺼﺎﻭﻳﺮ ﺩﻭﺩﻭﻳﻲ ﺍﻋﻤﺎﻝ ﻣﻲ ﺷﺪ ﺗﺎ ﺑﺮﺩﺍﺭﻫﺎﻱ ﻭﻳﮋﮔﻲ ﺍﺳﺘﺨﺮﺍﺝ ﮔﺮﺩﻧﺪ. ﺳﭙﺲ ﺍﻳﻦ ﺑﺮﺩﺍﺭﻫﺎﻱ ﻭﻳﮋﮔﻲ ﺑﻪ ﻃﺒﻘﻪ ﻛﻨﻨﺪﻩ ﺁﻣﺎﺭﻱ ﺳﭙﺮﺩﻩ ﻣﻲ ﺷﺪﻧﺪ.
ﺩﺭ ﺍﻳﻦ ﺩﻭﺭﻩ، ﺗﺤﻘﻴﻘﺎﺕ ﻣﻮﻓﻖ ﺍﻣﺎ ﻣﻘﻴﺪﻱ ﺑﻴﺸﺘﺮ ﺑﺮ ﺭﻭﻱ ﺣﺮﻭﻑ ﻭ ﺍﻋﺪﺍﺩ لاتین ﺍﻧﺠﺎﻡ ﮔﺮﻓﺖ با ﺍﻳﻦ ﻭﺟﻮﺩ ﻣﻄﺎﻟﻌﺎﺕ ﭼﻨﺪﻱ ﻧﻴﺰ ﺩﺭ ﺯﻣﻴﻨﺔ ﺣﺮﻭﻑ ﮊﺍﭘﻨﻲ، ﭼﻴﻨﻲ، ﻋﺒﺮﻱ، ﻫﻨﺪﻱ، ﺳﻴﺮﻳﻠﻴﻜﻲ، ﻳﻮﻧﺎﻧﻲ ﻭ ﻋﺮﺑﻲ ﺩﺭ ﻫﺮ ﺩﻭ ﺯﻣﻴﻨﺔ ﺣﺮﻭﻑ ﭼﺎﭘﻲ ﻭ ﺩﺳﺘﻨﻮﻳﺲ ﺁﻏﺎﺯ ﮔﺮﺩﻳﺪ ﺑﺎ ﻇﻬﻮﺭ ﺻﻔﺤﺎﺕ ﺭﻗﻮﻣﻲ كننده ( ﺩﻳﺠﻴﺘﺎﻳﺰﺭﻫﺎ ) در دهه 1950 كه ﻗﺎﺩﺭ ﺑﻪ ﺗﺸﺨﻴﺺ ﻣﺨﺘﺼﺎﺕ ﺣﺮﻛﺘﻲ ﻧﻮﻙ ﻳﻚ ﻗﻠﻢ ﻣﺨﺼﻮﺹ ﺑﻮﺩﻧﺪ، ﺳﻴﺴﺘﻤﻬﺎﻱ OCR ﺗﺠﺎﺭﻱ ﻧﻴﺰ ﺍﻣﻜﺎﻥ ﻋﺮﺿﻪ ﻳﺎﻓﺘﻨﺪ. ﺍﻳﻦ ﻧﻮﺁﻭﺭﻱ ﺳﺒﺐ ﺷﺪ ﻛﻪ ﻣﺤﻘﻘﺎﻥ ﺑﺘﻮﺍﻧﻨﺪ ﺩﺭ ﺯﻣﻴﻨﺔ بازشناسایی حروف دست نویس فعالیت خود را آغاز نمایند.

ب ) ﻣﺮحله توسعه: (از سال 1980 تا 1990) 

ﻣﻄﺎﻟﻌﺎﺕ ﺻﻮﺭﺕ ﮔﺮﻓﺘﻪ ﺗﺎ ﻗﺒﻞ ﺍﺯ ﺳﺎﻝ 1980 ﺍﺯ ﻓﻘﺪﺍﻥ سخت افزارهای ﻛﺎﻣﭙﻴﻮﺗﺮﻱ ﻗﺪﺭﺗﻤﻨﺪ ﻭ ﺩﺳﺘﮕﺎﻫﻬﺎﻱ ﺍﺧﺬ ﺩﺍﺩﻩها رنج می بردند. در ﺍﻳﻦ ﺩﻫﻪ ﺑﻮﺍﺳﻄﺔ ﺭﺷﺪ ﺍﻧﻔﺠﺎﺭﮔﻮﻧﺔ ﺗﻜﻨﻮﻟﻮﮊﻱ اطلاعات، ﻭﺿﻌﻴﺖ ﺑﺴﻴﺎﺭ ﻣﻨﺎﺳﺒﻲ ﺑﺮﺍﻱ ﺯﻣﻴﻨﻪ ﻫﺎﻱ ﺗﺤﻘﻴﻘﺎﺗﻲ ﻣﺨﺘﻠﻒ ﺍﺯ ﺟﻤﻠﻪ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺣﺮﻭﻑ ﻓﺮﺍﻫﻢ ﮔﺮﺩﻳﺪ. ﺭﻭﺷﻬﺎﻱ ﺳﺎﺧﺘﺎﺭﻱ ﺑﻪ ﻫﻤﺮﺍﻩ ﺭﻭﺷﻬﺎﻱ ﺁﻣﺎﺭﻱ ﺩﺭ ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﺳﻴﺴﺘﻤﻬﺎ ﻇﺎﻫﺮ ﮔﺮﺩﻳﺪﻧﺪ.  ﺗﺤﻘﻴﻘﺎﺕ ﺩﺭ ﺯﻣﻴﻨﺔ OCR ﺍﺳﺎﺳﺎً ﺗﻮﺟﻪ ﺧﻮﺩ ﺭﺍ ﺑﻪ ﺭﻭﺷﻬﺎﻱ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺍﺷﻜﺎﻝ ﺑﺪﻭﻥ ﺗﻮﺟﻪ ﺑﻪ ﻫﺮﮔﻮﻧﻪ اطلاعات ﻣﻌﻨﺎﺷﻨﺎﺧﺘﻲ ﻣﻌﻄﻮﻑ ﻧﻤﻮﺩ. این مسئله سبب ﮔﺮﺩﻳﺪ ﻛﻪ ﻧﺮﺥ ﺑﺎﺯﺷﻨﺎﺳﻲ نتواند ﺍﺯ ﻳﻚ ﺣﺪ ﺧﺎﺹ ﻓﺮﺍﺗﺮ بروﺩ. ﻛﻪ ﺩﺭ ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﻛﺎﺭﺑﺮﺩﻫﺎﻱ OCR ﻗﺎﺑﻞ ﻗﺒﻮﻝ ﻧﺒﻮﺩ.

ج ) ﻣﺮحله بهبود: (از سال 1990 به بعد) 

ﺩﺭ ﺍﻳﻦ ﻣﻘﻄﻊ ﺯﻣﺎﻧﻲ ﺑﻮﺩ ﻛﻪ ﺑﺎ ﺗﻜﻮﻳﻦ ﺍﺑﺰﺍﺭﻫﺎ ﻭ ﺗﻜﻨﻴﻜﻬﺎﻱ ﭘﺮﺩﺍﺯﺷﻲ ﺟﺪﻳﺪ، ﭘﻴﺸﺮﻓﺖ ﻭﺍﻗﻌﻲ ﺳﻴﺴﺘﻤﻬﺎﻱ OCR ﻣﺤﻘﻖ ﮔﺮﺩﻳﺪ. ﺩﺭ ﺍﻭﺍﻳﻞ ﺩﻫﺔ 1990 ﺭﻭﺷﻬﺎﻱ ﭘﺮﺩﺍﺯﺵ ﺗﺼﻮﻳﺮ ﻭ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺍﻟﮕﻮ ﺑﺎ ﺗﻜﻨﻴﻜﻬﺎﻱ ﻛﺎﺭﺁﻣﺪ ﻫﻮﺵ ﻣﺼﻨﻮﻋﻲ (AI) ﺍﺩﻏﺎﻡ ﮔﺸﺘﻨﺪ. ﻣﺤﻘﻘﺎﻥ ﺍﻟﮕﻮﺭﻳﺘﻤﻬﺎﻱ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺣﺮﻭﻑ ﭘﻴﭽﻴﺪﻩ ﺭﺍ ﺍﺑﺪﺍع ﻧﻤﻮﺩﻧﺪ ﻛﻪ ﻗﺎﺩﺭ بودند ﺩﺍﺩﻩ ﻫﺎﻱ ﻭﺭﻭﺩﻱ ﺑﺎ ﺗﻔﻜﻴﻚ پذیری ﺑﺎﻻ ﺭﺍ ﺩﺭﻳﺎﻓﺖ ﻛﻨﻨﺪ ﻭ ﺩﺭ ﻣﺮﺣﻠﺔ ﭘﻴﺎﺩﻩ سازی، ﻣﺤﺎﺳﺒﺎﺕ ﺑﺴﻴﺎﺭ ﺯﻳﺎﺩﻱ ﺭﺍ ﺑﺮ ﺭﻭﻱ ﺩﺍﺩﻩ ﺍﻧﺠﺎﻡ ﺩﻫﻨﺪ. كه عبارتند از شبكه های عصبی ، منطق فازی و پردازش زبانهای طبیعی و غیره.

منبع

ﺑﺨﺸﻬﺎی ﻣﺨﺘﻠﻒ ﻳک ﺳﻴﺴﺘﻢ OCRﻛﺎﻣﻞ و انواع آن

ﺍﻧﻮﺍﻉ ﺳﻴﺴﺘﻤﻬﺎی OCR

ﺩﺭ ﻳﻚ ﺗﻘﺴﻴﻢ كلی می توان سیستمهای OCR را به ﻟﺤﺎﻅ ﻧﻮﻉ ﺍﻟﮕﻮﻱ ﻭﺭﻭﺩﻱ ﺑﻪ ﺩﻭ ﮔﺮﻭﻩ ﺍﺻﻠﻲ ﺗﻘﺴﻴﻢ ﻛﺮﺩ :
الف ) ﺳﻴﺴﺘم های ﺑﺎﺯﺷﻨﺎﺳﻲ ﻣﺘﻮﻥ ﭼﺎﭘﻲ
ب ) ﺳﻴﺴﺘم های ﺑﺎﺯﺷﻨﺎﺳﻲ ﻣﺘﻮﻥ ﺩﺳﺘﻨﻮﻳﺲ
ﻫﺮ ﻳﻚ ﺍﺯ ﺍﻳﻦ ﮔﺮﻭﻫﻬﺎ ﺗﻜﻨﻴﻜﻬﺎﻱ ﺧﺎﺹ ﺧﻮﺩ ﺭﺍ ﺩﺍﺭﻧﺪ. همچنین ﺍﺯ ﺟﻨﺒﺔ ﻧﺤﻮﺓ ﻭﺭﻭﺩ اطلاعات، سیستمهای OCR به دو دسته زیر تقسیم میﺷﻮﻧﺪ :
الف ) ﺳﻴﺴﺘﻤﻬﺎﻱ ﺑﺮﺧﻂ (OnLine)
ﺩﺭ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺑﺮﺧﻂ، حروف در همان زمان نگارش ﺗﻮﺳﻂ ﺳﻴﺴﺘﻢ ﺗﺸﺨﻴﺺ ﺩﺍﺩه می شوند. دستگاههای ورودی ﺍﻳﻦ ﺳﻴﺴﺘﻤﻬﺎ ﻳﻚ ﻗﻠﻢ ﻧﻮﺭﻱ ﺍﺳﺖ. ﺩﺭ ﺍﻳﻦ ﺭﻭﺵ ﻋﻼﻭﻩ ﺑﺮ اطلاعات ﻣﺮﺑﻮﻁ ﺑﻪ ﻣﻮﻗﻌﻴﺖ قلم، اطلاعات ﺯﻣﺎﻧﻲ ﻣﺮﺑﻮﻁ ﺑﻪ ﻣﺴﻴﺮ ﻗﻠﻢ ﻧﻴﺰ ﺩﺭ ﺍﺧﺘﻴﺎﺭ می باشد. ﺍﻳﻦ اطلاعات ﻣﻌﻤﻮﻻً ﺗﻮﺳﻂ ﻳﻚ صفحه Digitizer اخذ می شوند.
ﺩﺭ ﺍﻳﻦ ﺭﻭﺵ ﻣﻲ توان ﺍﺯ اطلاعات ﺯﻣﺎﻧﻲ، ﺳﺮﻋﺖ، شتاب، ﻓﺸﺎﺭ ﻭ ﺯﻣﺎﻥ برداشتن و گذاشتن قلم روی صفحه در بازشناسایی استفاده كرد.
ب ) ﺳﻴﺴﺘﻤﻬﺎﻱ ﺑﺮﻭﻥ ﺧﻂ (OutLine)
ﺩﺭ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺑﺮﻭﻥ خط، ﺍﺯ ﺗﺼﻮﻳﺮ ﺩﻭ ﺑﻌﺪی ﻣﺘﻦ ﻭﺭﻭﺩی ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲشود. ﺩﺭ ﺍﻳﻦ ﺭﻭﺵ ﺑﻪ ﻫﻴﭻ ﻧﻮﻉ ﻭﺳﻴﻠﻪ ﻧﮕﺎﺭﺵ ﺧﺎﺻﻲ ﻧﻴﺎﺯ ﻧﻴﺴﺖ ﻭ ﺗﻔﺴﻴﺮ ﺩﺍﺩﻩ ﻣﺴﺘﻘﻞ ﺍﺯ ﻓﺮﺁﻳﻨﺪ ﺗﻮﻟﻴﺪ ﺁﻧﻬﺎ ﺗﻨﻬﺎ ﺑﺮﺍﺳﺎﺱ ﺗﺼﻮﻳﺮ ﻣﺘﻦ ﺻﻮﺭﺕ ﻣﻲ’گیرد. ﺍﻳﻦ ﺭﻭﺵ ﺑﻪ ﻧﺤﻮﺓ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺗﻮﺳﻂ انسان ﺷﺒﺎﻫﺖ ﺑﻴﺸﺘﺮﻱ ﺩﺍﺭﺩ.


ﺑﺨﺸﻬﺎی ﻣﺨﺘﻠﻒ ﻳﻚ ﺳﻴﺴﺘﻢ OCR ﻛﺎﻣﻞ 

ﻳﻚ ﺳﻴﺴﺘﻢ OCR ﻛﺎﻣﻞ مركب از 5 ﻗﺴﻤﺖ ﺍﺻﻠﻲ زیر می باشد :

الف ) ﭘﻴﺶ ﭘﺮﺩﺍﺯﺵ  (Preprocessing):
ﺷﺎﻣﻞ ﻛﻠﻴه ﺍﻋﻤﺎﻟﻲ ﻛﻪ ﺭﻭﻱ ﺳﻴﮕﻨﺎﻝ ﺗﺼﻮﻳﺮﻱ ﺧﺎﻡ ﺻﻮﺭﺕ ﻣﻲ ﮔﻴﺮﻧﺪ ﺗﺎ موجب ﺗﺴﻬﻴﻞ ﺭﻭﻧﺪ ﺍﺟﺮﺍﻱ ﻓﺎﺯﻫﺎﻱ ﺑﻌﺪﻱﮔﺮﺩﻧﺪ؛ ﻣﺎﻧﻨﺪ ﺑﺎﻳﻨﺮﻱ ﻛﺮﺩﻥ ﺗﺼﻮﻳﺮ ، ﺣﺬﻑ ﻧﻮﻳﺰ ، ﻫﻤﻮﺍﺭﺳﺎﺯﻱ، ﻧﺎﺯﻛﺴﺎﺯﻱ ، ﺗﺸﺨﻴﺺ ﺯﺑﺎﻥ ﻭ ﻓﻮﻧﺖ ﻛﻠﻤﺎﺕ و ﻧﻈﺎﻳﺮ ﺍﻳﻨﻬﺎ.

ب) قطعه بندی (Segmentation) :
ﻋﺒﺎﺭﺕ ﺍﺳﺖ ﺍﺯ ﺭﻭﺷﻬﺎﻳﻲ ﻛﻪ ﺑﺨﺸﻬﺎﻱ ﻣﺨﺘﻠﻔﻲ ﻫﻤﭽﻮﻥ ﭘﺎﺭﺍﮔﺮﺍﻓﻬﺎ، ﺟﻤﻼﺕ ﻳﺎ ﻛﻠﻤﺎﺕ ﻭ ﺣﺮﻭﻑ ﺭﺍ ﺍﺯ ﺗﺼﻮﻳﺮﺳﻨﺪ ﺍﺳﺘﺨﺮﺍﺝ ﻣﻲ کنند.

ج ) ﺍﺳﺘﺨﺮﺍﺝ ﻭﻳﮋﮔﻴﻬﺎ (Feature Extraction) :
ﻣﺠﻤﻮﻋﺔ از ﻛﻠیه ﻣﺤﺎﺳﺒﺎﺗﻲ است ﻛﻪ ﺭﻭﻱ ﺍﻟﮕﻮﻫﺎﻱ ﺑﺪﺳﺖ ﺁﻣﺪﻩ ﺍﺯ ﻣﺮحله ﭘﻴﺶ پردازش ﺍﻧﺠﺎﻡ ﻣﻲ شود ﺗﺎ ﺑﺮﺩﺍﺭ ﻭﻳﮋﮔﻴﻬﺎﻱ ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﻫﺮ ﺍﻟﮕﻮ ﺗﻌﻴﻴﻦ گردد.

د ) ﺑﺎﺯﺷﻨﺎﺳﻲ ﺑﺎ ﻳﻚ ﻳﺎ ﭼﻨﺪ ﻃﺒﻘﻪ بندی كننده (Classification & Recognition):
ﺷﺎﻣﻞ ﺭﻭﺷﻬﺎﻳﻲ ﺑﺮﺍﻱ ﻣﺘﻨﺎﻇﺮ ﺳﺎﺧﺘﻦ ﻫﺮ ﻳﻚ ﺍﺯ ﺍﻟﮕﻮﻫﺎﻱ ﺑﺪﺳﺖ ﺁﻣﺪﻩ ﺍﺯ ﻣﺮﺣﻠﺔ ﺍﺳﺘﺨﺮﺍﺝ ﻭﻳﮋﮔﻴﻬﺎ ﺑﺎ ﻳﻜﻲ ﺍﺯ ﻛﻼﺳﻬﺎﻱ ﻓﻀﺎﻱ ﺍﻟﮕﻮﻫﺎﻱ ﻣﻮﺭﺩ ﺑﺤﺚ ﺍﺳﺖ ﻛﻪ ﺍﺯ ﻃﺮﻳﻖ ﻛﻤﻴﻨﻪ ﺳﺎﺧﺘﻦ ﻓﺎصله ﺑﺮﺩﺍﺭ ﻭﻳﮋﮔﻴﻬﺎی ﻫﺮ ﺍﻟﮕﻮ ﻧﺴﺒﺖ ﺑﻪ ﻳﻜﻲ ﺍﺯ ﺑﺮﺩﺍﺭﻫﺎﻱ ﻣﺮﺟﻊ ﻣﻮﺟﻮﺩ ﺩﺭ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ های ﺳﻴﺴﺘﻢ ﺍﻧﺠﺎﻡ ﻣﻲ ﮔﻴﺮﺩ.

هـ ) ﺑﻜﺎﺭﮔﻴﺮﻱ اطلاعات ﺟﺎﻧﺒﻲ (ﭘﺲ ﭘﺮﺩﺍﺯﺵ) :
ﻣﺎﻧﻨﺪ ﻣﺠﻤﻮﻋﻪ اطلاعات ﺁﻣﺎﺭﻱ ﻣﺮﺑﻮﻁ به رخداد حروف ، اطلاعات ﺩﺳﺘﻮﺭﻱ ﻭ ﻣﻌﻨﺎﻳﻲ.

منبع

خوانش پلاک خودرو از تصاویر جاده‌ای

(پیاده سازی شده برای پلاک های ایرانی)

این الگوریتم (تشخیص پلاک خودرو) با نرم افزار MATLAB 2011 نوشته شده است برای خواندن پلاک که بدون نویز و خرابی هستند خوب جواب میدهد…البته دیتا بیس کاراکترها رو خودتون به راحتی میتوانید بیشتر کنید تا پاسخ دهی قویتر شود …فعلا فقط یک تصویر به عنوان آزمایش جهت تست برنامه قرار داده شده .

همچنین به علت ضیق وقت قسمت شناسای کاراکترها و تبدیل آنها به عدد و حروف فارسی رو قوی نکردم…شما میتونید این قسمت را برای جوابدهی بهتر دستکاری کنید… در ضمن اگر خواستین از نحوه فرمولبندی و کارکرد برنامه سر دربیارید حدود 20 صفحه هم گزارش تهیه شده ، فایل پاور پوینتی که برای ارائه پروژه تشخیص پلاک خودرو آماده شده نیز آپلود گردیده است.

فقط قبل از اجرای برنامه این مراحل رو طی کنید:
1- مسیر عکس خودرو(glx.jpg) رو وارد کنید
2-دیتا بیس (فایل زیپ) رو دانلود کنید
3-مسیر دیتا-بیس کاراکترها رو درست وارد کنید.
4-برنامه رو اجرا کنید-نتایج رو صفحه کامند matlab نمایش داده میشود.
5-هر جا خواستید از پشت دستور imshow و figure علامت % رو حذف کنید تا کارهای که روی تصویر انجام میشود رو مرحله به مرحله ببینید.
6-برنامه را اجرا کنید و نتایج را در صفحه متلب ببیند.

 

موضوع: آموزش تشخیص پلاک خودرو های ایرانی توسط نرم افزار متلب

تعداد صفحات پی دی اف : 18

تعداد صفحات پاور پوینت : 18

سورس کد : نرم افزار متلب Matlab

قیمت : رایگان

کلمه عبور فایل : behsanandish.com

 

دانلود

 

 

 

نکته : شرکت بهسان اندیش تولید کننده سامانه های هوشمند مفتخر به تولید یکی از دقیقترین و سریعترین سامانه های جامع کنترل تردد خودرو می باشد که می توانید جهت آشنایی با این محصول به لینک :سامانه جامع کنترل تردد خودرو بهسان(پلاک خوان) مراجعه فرمایید.

سورس برنامه در نرم افزار متلب:


clear all
close all
clc

p0=imread('E:\NIT\DIP\dip data proj\car\glx.jpg');
p=rgb2gray(p0);
p=im2double(p);

f=fspecial('gaussian');
pf=imfilter(p,f,'replicate');
%imshow(pf)
%figure
Pm=mean2(pf); %Average or mean of matrix elements
Pv=((std2(pf))^2); %the variance of an M-by-N matrix is the square of the standard deviation
T=Pm+Pv;

% taerife astane............................................
[m n]=size(pf);
for j=1:n
 for i=1:m
 if pf(i,j)>T;
 pf(i,j)=1;
 else
 pf(i,j)=0;
 end
 end
end

ps=edge(pf,'sobel');
%imshow(ps)
%figure
pd=imdilate(ps,strel('diamond',1));
pe=imerode(pd,strel('diamond',1));
pl=imfill(pe,'holes');
[m n]=size(pl);

%barchasb gozary..............................................
pll=bwlabel(pl);
stat =regionprops(pll,'Area','Extent','BoundingBox','Image','Orientation','Centroid');
index = (find([stat.Area] == max([stat.Area]))); %meghdare barchasb dakhele bozorgtarin masahat ra mikhanad
ppout=stat(index).Image;
%imshow(ppout);
%figure

% biron keshidane mokhtasate pelak.............................
x1 = floor(stat(index).BoundingBox(1)); %shomare stone awalin pixel (B = floor(A) rounds the elements of A to the nearest integers less than or equal to A)
x2 = ceil(stat(index).BoundingBox(3)); %pahnaye abject dar sathe ofoghi(B = ceil(A) rounds the elements of A to the nearest integers greater than or equal to A)
y1 = ceil(stat(index).BoundingBox(2)); %shomare satre avalin pixel(B = ceil(A) rounds the elements of A to the nearest integers greater than or equal to A)
y2 = ceil(stat(index).BoundingBox(4)); %pahnaye abject dar sathe amodi(B = ceil(A) rounds the elements of A to the nearest integers greater than or equal to A)
bx=[y1 x1 y2 x2];
ppc=imcrop(p0(:,:,:),[x1,y1,x2,y2]);
%imshow(ppc)
%figure
ppg=imcrop(p(:,:),[x1,y1,x2,y2]);
%imshow(ppg)
%figure

%plate enhancment..............................................
ppcg=rgb2gray(ppc);
ppcg=imadjust(ppcg, stretchlim(ppcg), [0 1]); % specify lower and upper limits that can be used for contrast stretching image(J = imadjust(I,[low_in; high_in],[low_out; high_out]))
ppg=im2double(ppcg);
pb=im2bw(ppg);%im2bw(I, level) converts the grayscale image I to a binary image
%imshow(pb)
%figure

%rotate correction..............................................
if abs(stat(index).Orientation) >=1; %The orientation is the angle between the horizontal line and the major axis of ellipse=angle
 ppouto=imrotate(ppout,-stat(index).Orientation); %B = imrotate(A,angle) rotates image A by angle degrees in a counterclockwise direction around its center point. To rotate the image clockwise, specify a negative value for angle.
 pbo=imrotate(pb,-stat(index).Orientation);
 angle = stat(index).Orientation;
else
 pbo=pb;
end;
%imshow(pbo)

pbod=imdilate(pbo,strel('line',1,0));
pbodl=imfill(pbod,'holes');
px = xor(pbodl , pbod);

pz= imresize(px, [44 250]); % 4*(57*11)=(chahar barabar size plake khodroye irani)

%barchasb zanye plak..........................................
stat1 = regionprops(bwlabel(pz,4),'Area','Image');
index1 = (find([stat1.Area] == max([stat1.Area])));
maxarea =[stat1(index1).Area];%braye hazfe neweshteye iran va khatahaye ehtemali
pzc=bwareaopen(pz,maxarea-200); %maxarea(1,1) meghdare structur ra adres dehi mikonad,va migoyad object haye ka mte z an ra hazf konad
%histogram plak......
%v=sum(pzc);
%plot(v);

%biron keshidan karakterha......................................
stat2=regionprops(pzc,'Area','BoundingBox','Image','Orientation','Centroid');
cx=cell(1,8);
for i=1:8
 x=stat2(i).Image;
 rx=imresize(x, [60 30]);
 %imshow(rx)
 %figure
 cx{1,i}=rx;
 %fx=mat2gray(cx{1,1});
 %imshow(cx{1,2})
 
 imwrite(rx,['E:\NIT\DIP\dip data proj\char\car\glx\' num2str(i) '.jpg']);
end

%khandane karakterha.........mini database1...................

for i=1:1
 for j=1:8
 temp=imread(['E:\NIT\DIP\dip data proj\char\car\glx\' num2str(j) '.jpg']);
 temp=im2bw(temp);
 nf1=temp.*cx{1,i};
 nf2=sum(sum(nf1));
 nf(j)=nf2/(sum(sum(temp)));
 mx=max(nf(j));
 
 
 if nf(1,1)== mx
 disp(1);
 else
 if nf(1,2)== mx
 disp(5);
 else
 if nf(1,3)== mx
 disp('j');
 else
 if nf(1,4)== mx
 disp(6);
 else
 if nf(1,5)== mx
 disp(3);
 else
 if nf(1,6)== mx
 disp(1);
 else
 if nf(1,7)== mx
 disp(7);
 else
 if nf(1,8)== mx
 disp(2);
 
 
 end
 end
 end
 end
 end
 end
 
 end
 
 end
 
 
 end
 
end

 

ترجمه لغات پردازش‌تصویر

فهرست بعضی از لغات در زمینه هوش مصنوعی و پردازش تصویر عبارت اند از:

فهرست واژگان:

A
accuracy دقت action اقدام action-value function تابع اقدام-مقدار

activation function تابع فعالیت

active learning یادگیری فعال

adaptive control theory نظریه کنترل تطبیقی

adaptive dynamic برنامه نویسی پویای تطبیقی

programming (ADP)

algebraic expressions اصطلاحات جبری

applicability قابلیت اعمال

approximation algorithm الگوریتم تقریب

arbitrary دلخواه

arithmetic unknown مجهول حسابی

assertion اظهار

assumption فرض

attribute صفت

attribute-based language زبان مبتنی بر صفت

availability در دسترس بودن

B

background knowledge دانش زمینه

back-propagate پس-انتشار

backtrack عقب گرد

backward proof process فرایند اثبات رو به عقب

backward-chaining قضیه زنجیره ای رو به عقب

theorem

bandit problems مسائل قمار

bang-bang control کنترل بنگ-بنگ

basis functions توابع پایه ای

Bayes’ rule قانون بیز

Bayesian learning یادگیری بیزین

Bayesian network شبکه بیزین

Bellman equations معادلات بلمن

beta distribution توزیع بتا

bias weight وزن بایاس

Booleanclassification دسته بندی بولی(دودویی)

Boosting algorithm الگوریتم بوستینگ

boundary set مجموعه کران

branching factor فاکتور انشعاب

bump برامدگی

C

candidate definition تعریف مطلوب

candidate elimination حذف مطلوب

cart-pole balancing problem مسأله تنظیم میله ارابه

classification دسته بندی

clause بند

complete data داده های کامل

complexity پیچیدگی

component مؤلفه (جزء)

compression تراکم

computation محاسبه

computational complexity پیچیدگی محاسباتی

computational learning نظریه یادگیری محاسباتی

theory

computational عصب شناسی محاسباتی

neuroscience

conditional probability احتمال شرطی

conjugate prior مزدوج اول

conjunct عطف

Conjunction ترکیب عطفی

connectionism پیوندگرایی

consistency سازگاری

consistent hypothesis فرض سازگار

constraint equation معادله محدودیت

constructive الگوریتم های استقرای سازنده

induction algorithms

continuous-valued پیوسته مقدار

contradiction تناقض

convergence همگرایی

Cross-validation اعتبارسنجی متقابل

cumulative learning یادگیری فزاینده

current state حالت جاری

current-best- جستجوی بهترین فرض جاری

hypothesis search

D

debate مباحثه

decision list لیست تصمیم

decision stumps ریشه های تصمیم

decision theory نظریه تصمیم

Decision tree درخت تصمیم

declarative bias بایاس اعلانی

definition تعریف

delta rule قانون دلتا

density estimation تخمین چگالی

description توصیف

determinations تعیین کننده ها

deterministic قطعی

dictionary فرهنگ لغات

differentiating مشتق گیری

dimension of the space بعد فضا

direct utility estimation تخمین مستقیم سودمندی

discount factor فاکتور تخفیف

discrete گسسته

discrete-valued گسسته- مقدار

disjunct فاصل

Disjunction ترکیب فصلی

domain دامنه

dropping conditions حذف شرطها

dynamic environment محیط پویا

E

efficiency کارایی

empirical gradient گرادیان تجربی

ensemble learning یادگیری گروهی

entailment constraint محدودیت ایجاب

epoch دوره

equality literal لیترال تساوی

equation معادله (تساوی)

equivalence معادل (هم ارز)

error rate نرخ خطا

estimate تخمین زدن

evaluation function تابع ارزیابی

evidence شاهد

example مثال

example descriptions توصیف های مثال

expectation– ماکزیمم سازی امیدواری

maximization (EM)

expected value مقدار مورد انتظار

Explanation-based یادگیری مبتنی بر تشریح

learning (EBL)

exploitation بهره برداری

exploration اکتشاف

exploration function تابع اکتشاف

expressiveness رسا بودن

extension بسط

extract استخراج کردن

F

fairly good نسبتا خوب

false negative منفی کاذب

false positive مثبت کاذب

feature ویژگی (مشخصه)

feedback بازخور

feed-forward network شبکه پیشرو

filtering فیلتر کردن

first-order logic منطق مرتبه اول

fit برازش کردن

fixed policy خط مشی ثابت

formulation تدوین

forward–backward الگوریتم پیشرو-پسرو

algorithm

fully connected network شبکه کاملا متصل

fully observable کاملا رؤیت پذیر

function تابع

function approximation تقریب تابع

functional dependencies وابسته های تابعی

G

gain ratio نسبت بهره

generality عمومیت

generalization تعمیم

generalization hierarchy سلسله مراتب تعمیم

general-purpose الگوریتم های یادگیری همه منظوره

learning algorithms

goal predicate گزاره هدف

gradient descent نزول گرادیان

gradient-based algorithm الگوریتم مبتنی بر گرادیان

greedy agent عامل حریص

H

hamming distance فاصله همینگ

handwritten digits ارقام دست نویس

happy graphs گرافهای خوشحال

head (of a clause) سر(یک بند)

heuristic هیوریستیک

hidden Markov مدل های پنهان مارکوف

models (HMMs)

hidden units واحدهای پنهان

hidden variables متغیرهای پنهان

hill-climbing search جستجوی تپه نوردی

hole حفره

horn clause بند هورن

hypothesis فرض

hypothesis prior پیش فرض

hypothesis space فضای فرض

I

implement پیاده سازی کردن

inconsistent ناسازگار

incremental رو به رشد

independent مستقل

independently توزیع شده بطور مستقل و یکنواخت

and identically distributed (i.i.d.)

indicator variables متغیرهای نمایشگر

individual جداگانه

induction استقرا

inductive learning یادگیری استقرایی

inductive logic برنامه نویسی منطقی استقرایی

programming(ILP)

inequality literal لیترال عدم تساوی

infer استنتاج کردن

inference استنتاج

inferential استنتاجی

information content محتوای اطلاعات

information encoding رمزگذاری اطلاعات

information gain بهره اطلاعات

initial state حالت اولیه

instance-based learning یادگیری نمونه محور

interaction تعامل

internal state حالت درونی

invention اختراع

inverse entailment ایجاب معکوس

inverse resolution تحلیل معکوس

irrelevant attribute صفت نامربوط

iterative solution الگوریتم های راه حل تکراری

algorithms

K

kernel function تابع کرنل

kernel machines ماشین های کرنل

kernel model مدل کرنل

knowledge-based approach رهیافت مبتنی بر دانش

knowledge-based یادگیری استقرایی مبتنی بر دانش

inductive learning (KBIL)

knowledge-free بدون دانش

L

latent variables متغیرهای نهفته

layers لایه ها

leaf node گره برگ

learning curve منحنی یادگیری

learning element عنصر یادگیری

learning mixtures یادگیری ترکیبی گاوس

of gaussians

learning rate نرخ یادگیری

least-commitment جستجوی حداقل تعهد

search

likelihood درستنمایی

linear separator جداکننده خطی

linear-Gaussian model مدل خطی گاوس

linearly separable جداشدنی خطی

links پیوندها

list لیست

literal (sentence) لیترال (جمله)

local search جستجوی محلی

log likelihood لگاریتم درستنمایی

logistic function تابع استدلالی

lookup table جدول مراجعه

M

machine learning یادگیری ماشین

mahalanobis distance فاصله ماهالانوبیس

majority function تابع اکثریت

majority vote رأی گیری اکثریت

margin حاشیه

Markov decision فرایندهای تصمیم مارکوف

processes (MDPs)

maximum a posteriori (MAP) حداکثر تجربی

maximum-likelihood (ML) حداکثر درستنمایی

measure مقیاس

measurement اندازه گیری

memorization یادسپاری

memory-based learning یادگیری حافظه محور

Mercer’s theorem قضیه مرکر

minimal کمینه

minimum description حداقل طول توصیف

length (MDL)

mixture distribution توزیع ترکیبی

model checking وارسی مدل

model structure ساختار مدل

OCR چیست

OCR سرنام اصطلاحی است كه صورت كامل آن در واژه‌نامه انگلیسی Optical Character Recognition و به معنی بازشناسایی كاراكتر نوری است.
فرض كنید كه ما متنی را روی كاغذ داریم و می‌خواهیم آن را وارد رایانه كنیم. اولین روشی كه به ذهن می‌رسد این است كه متن را به تایپیست بدهیم تا با كامپیوتر تایپ كند. اما آیا می‌شود عین همان متن را وارد رایانه بكنیم تا نیازی به تایپ نباشد؟ البته دستگاه «اسكنر» می‌تواند تصویری از آن متن را وارد رایانه كند، تا اینجا بخشی از مشكل ما حل شده است. اما رایانه كه نه عقلی دارد و نه «زبان» می‌فهمد، نمی‌تواند حروف و كلمات را از هم تشخیص دهد. مثلاً اگر از كامپیوتر بخواهیم به ما بگوید كه در متن اسكن‌شده كلمة «علی» چند بار آمده است، بی‌آنكه شرمنده شود، می‌گوید: «error»، یعنی: «نمی‌توانم تشخیص بدهم!» در واقع این «تصویر دیجیتال‌شده» باید به «تصویر قابل پردازش» تبدیل شود. موضوع اصلی OCR همین است.

فرض كنید كه مثلاً می‌خواهیم متن مقالات روزنامه اطلاعات سال 1340 شمسی را (كه اكنون نه تنها فایل تایپی‌اش موجود نیست ــ چون آن زمان اصلاً تایپ كامپیوتری در كار نبود! ــ بلكه خود نسخه‌های روزنامه را هم به زحمت می‌توان پیدا كرد) تایپ دیجیتالی كنیم، و این متن‌ها را داخل بسته‌های نرم‌افزاری یا اینترنت قرار دهیم. اگر هر شماره از روزنامه را 24 صفحه فرض كنیم، و هر تایپیست بتواند در هر روز حداكثر یك صفحه از آن صفحات كاهی و كهنه شدة قدیمی را دوباره تایپ كند، مجموعاً 24 روز لازم است تا تنها مقالات یك شماره از روزنامه تایپ شود. بنابراین در عرض یك سال یك نفر می‌تواند تنها 15 شماره از روزنامه را تایپ كند.

حال اگر نرم‌افزاری باشد كه بتواند با اسكن كردن هر صفحة روزنامه، به طور خودكار مقالات آن را تایپ كند، تحولی عظیم رخ می‌دهد، یعنی مطالب و مقالات هزاران شماره از روزنامه‌های قدیمی به سرعت وارد فایل‌های رایانه‌ای می‌شود. حال این امكان را تعمیم بدهید به هزاران كتاب و دست نویس‌های قدیمی یا جدید، كه هر كس بخواهد تنها یك صفحه از آنها را تایپ كند، باید كلی وقت صرف كند. می‌بینید كه نرم‌افزار OCR به راستی می‌تواند هزاران هزار روز در وقت ما صرفه‌جویی كند، و البته هزینه‌ها را هم كاهش دهد. البته فقط یك مشكل كوچك به وجود می‌آید و آن بیكار شدن تایپیست‌هاست! قبل از اینکه وارد مبحث  «OCR» شویم، لازم است اشاره مختصری به حوزه های بازشناسی الگو داشته باشیم .

 ﺷﻨﺎﺳﺎﻳﻲ ﺍﻟﮕﻮ 

ﺷﻨﺎﺳﺎﻳﻲ ﺍﻟﮕﻮ ﺷﺎﺧﻪ ای اﺯ ﻫﻮﺵ ﻣﺼﻨﻮﻋﻲ است كه با ﻃﺒﻘﻪ بندی (ﻛﻼﺳﻪ ﺑﻨﺪﻱ) ﻭ ﺗﻮﺻﻴﻒ ﻣﺸﺎﻫﺪﺍﺕ ﺳﺮﻭﻛﺎﺭ ﺩﺍﺭﺩ.  ﺷﻨﺎﺳﺎﻳﻲ ﺍﻟﮕﻮ ﺑﻪ ﻣﺎ ﻛﻤﻚ ﻣﻲ ﻛﻨﺪ ﺗﺎ ﺩﺍﺩﻩ ها ( ﺍﻟﮕﻮﻫﺎ ) ﺭﺍ ﺑﺎ ﺗﻜﻴﻪ ﺑﺮ ﺩﺍﻧﺶ ﻗﺒﻠﻲ ﻳﺎ اطلاعات ﺁﻣﺎﺭﻱ ﺍﺳﺘﺨﺮﺍﺝ ﺷﺪﻩ ﺍﺯ ﺍﻟﮕﻮﻫﺎ، ﻃﺒﻘﻪ ﺑﻨﺪﻱ ﻧﻤﺎﻳﻴﻢ. ﺍﻟﮕﻮﻫﺎﻳﻲ ﻛﻪ ﻣﻲ ﺑﺎﻳﺴﺖ ﻛﻼﺳﻪ ﺑﻨﺪﻱ شوند،  ﻣﻌﻤﻮﻻً گروهی ﺍﺯ ﺳﻨﺠﺸﻬﺎ ﻳﺎ ﻣﺸﺎﻫﺪﺍﺕ ﻫﺴﺘﻨﺪ ﻛﻪ ﻣﺠﻤﻮﻋﻪ ﻧﻘﺎﻃﻲ ﺭﺍ ﺩﺭ ﻳﻚ ﻓﻀﺎﻱ ﭼﻨﺪ ﺑﻌﺪﻱ ﻣﻨﺎﺳﺐ ﺗﻌﺮﻳﻒ ﻣﻲ ﻧﻤﺎﻳﻨﺪ.

ﻳﻚ ﺳﻴﺴﺘﻢ ﺷﻨﺎﺳﺎﻳﻲ ﺍﻟﮕﻮﻱ ﻛﺎﻣﻞ ﻣﺘﺸﻜﻞ ﺍﺳﺖ ﺍﺯ ﻳﻚ ﺣﺴﮕﺮ ﻛﻪ ﻣﺸﺎﻫﺪﺍﺗﻲ ﺭﺍ ﻛﻪ ﻣﻲبایست ﺗﻮﺻﻴﻒ ﻳﺎ ﻛﻼﺳﻪ بندی گردند جمع آوری می نماید، ﻳﻚ ﻣﻜﺎﻧﻴﺰﻡ ﺍﺳﺘﺨﺮﺍﺝ ﻭﻳﮋﮔﻴﻬﺎ كه اطلاعات عددی ﻳﺎ ﻧﻤﺎﺩﻳﻦ ( ﺳﻤﺒﻮﻟﻴﻚ ) ﺭﺍ ﺍﺯ ﻣﺸﺎﻫﺪﺍﺕ ﻣﺤﺎﺳﺒﻪ می كند و  ﻳﻚ ﻧﻈﺎﻡ ﻛﻼﺳﻪ بندی یا ﺗﻮﺻﻴﻒ ﺍﻟﮕﻮﻫﺎ ﺭﺍ ﺑﺎ ﺗﻜﻴﻪ ﺑﺮ ﻭﻳﮋﮔﻴﻬﺎﻱ ﺍﺳﺘﺨﺮﺍﺝ ﺷﺪﻩ ﻋﻬﺪﻩ دار است. شكل زیر ﺑﻠﻮﻙ ﺩﻳﺎﮔﺮﺍﻡ ﻳﻚ ﺳﻴﺴﺘﻢ ﺷﻨﺎﺳﺎﻳﻲ ﺍﻟﮕﻮ ﺭﺍ ﻧﺸﺎﻥ می دهد همانطور كه از ﭘﻴﻜﺎﻧﻬﺎﻱ ﺑﺮﮔﺸﺘﻲ ﻣﺸﺨﺺ ﺍﺳﺖ، ﺍﻳﻦ ﺑﻠﻮﻛﻬﺎ ﻟﺰﻭﻣﺎً ﻣﺴﺘﻘﻞ ﻧﻴﺴﺘﻨﺪ ﻭ ﺑﺴﺘﻪ ﺑﻪ ﻧﺘﺎﻳﺞ ﺣﺎﺻﻠﻪ ﻣﻤﻜﻦ ﺍﺳﺖ ﻻﺯﻡ ﺑﺎﺷﺪ ﻛﻪ ﺑﻠﻮكﻫﺎﻱ ﺍﻭﻟﻴﻪ ﻣﺠﺪﺩﺍً ﻃﺮﺍﺣﻲ ﮔﺮﺩﻧﺪ ﺗﺎ ﺭﺍﻧﺪﻣﺎﻥ ﻛﻠﻲ ﺳﻴﺴﺘﻢ ﺑﻬﺒﻮﺩ ﻳﺎﺑﺪ.
ﺑﺎﺯﺷﻨﺎﺳﻲ ﺍﻟﮕﻮ ﺩﺭ ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﺯﻣﻴﻨﻪها ﻧﻘﺶ ﻛﺎﺭبردی دارد. ﺑﺎﺯﺷﻨﺎﺳﻲ ﺣﺮﻭﻑ، ﺑﺎﺯﺷﻨﺎﺳﻲ  ﻧﻮﻳﺴﻨﺪﻩ ﺗﺼﺪﻳﻖ ﺍﻣﻀﺎﺀ ، ﻃﺒﻘﻪ ﺑﻨﺪﻱ ﺍﺛﺮ ﺍﻧﮕﺸﺖ ﻭ ﺑﺎﺯﺷﻨﺎﺳﻲ ﮔﻔﺘﺎﺭ ﻧﻤﻮﻧﻪ ﻫﺎﻳﻲ ﺍﺯ ﺍﻳﻦ ﻛﺎﺭﺑﺮﺩﻫﺎ ﻫﺴﺘﻨﺪ.

 ﺑﺎﺯﺷﻨﺎﺳﻲ ﻧﻮﺭﻱ ﺣﺮﻭﻑ OCR

ﺩﺭ ﭼﻨﺪ ﺩﻫﺔ ﮔﺬﺷﺘﻪ مسئله ﺑﺎﺯﺷﻨﺎﺳﻲ ﺍﻟﮕﻮﻫﺎﻱ ﻧﻮﺷﺘﺎﺭﻱ ﺷﺎﻣﻞ ﺣﺮﻭﻑ، ﺍﺭﻗﺎﻡ ﻭ ﺳﺎﻳﺮ ﻧﻤﺎﺩﻫﺎﻱ ﻣﺘﺪﺍﻭﻝ ﺩﺭ ﺍﺳﻨﺎﺩ ﻣﻜﺘﻮﺏ ﺷﺪﻩ ﺑﻪ ﺯﺑﺎﻧﻬﺎﻱ ﻣﺨﺘﻠﻒ، ﺗﻮﺳﻂ ﮔﺮﻭﻫﻬﺎﻱ ﻣﺨﺘﻠﻔﻲ ﺍﺯ ﻣﺤﻘﻘﻴﻦ ﻣﻮﺭﺩ ﻣﻄﺎلعه و ﺑﺮﺭﺳﻲ ﻗﺮﺍﺭ ﮔﺮﻓﺘﻪ ﺍﺳﺖ ﻧﺘﻴﺠه ﺍﻳﻦ ﺗﺤﻘﻴﻘﺎﺕ ﻣﻨﺠﺮ ﺑﻪ ﭘﻴﺪﺍﻳﺶ ﻣﺠﻤﻮﻋﻪ ﺍﻱ ﺍﺯ ﺭﻭﺷﻬﺎﻱ ﺳﺮﻳﻊ ﻭ ﺗﺎ ﺣﺪ ﺯﻳﺎﺩﻱ ﻣﻄﻤﺌﻦ ﻣﻮﺳﻮﻡ ﺑﻪ OCR یا « ﺑﺎﺯﺷﻨﺎﺳﻲ ﻧﻮﺭﻱ ﺣﺮﻭﻑ » ﺑﻤﻨﻈﻮﺭ ﻭﺍﺭﺩ ﻧﻤﻮﺩﻥ اطلاعات ﻣﻮﺟﻮﺩ ﺩﺭ  ﺍﺳﻨﺎﺩ، ﻣﺪﺍﺭﻙ، ﻛﺘﺎﺑﻬﺎ ﻭ ﺳﺎﻳﺮ ﻣﻜﺘﻮﺑﺎﺕ ﭼﺎﭘﻲ ﻳﺎ ﺗﺎﻳﭗ ﺷﺪﻩ ﻭ ﺣﺘﻲ ﺩﺳﺘﻨﻮﻳﺲ ﺑﻪ ﺩﺍﺧﻞ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺷﺪﻩ ﺍﺳﺖ  ﻫﻨﮕﺎﻣﻲ ﻛﻪ ﻳﻚ ﺳﻨﺪ ﻣﺘﻨﻲ ﺍﺳﻜﻦ ﻣﻲ ﺷﻮﺩ، ﻛﺎﻣﭙﻴﻮﺗﺮ ﺍﻳﻦ ﻣﺘﻦ ﺭﺍ ﺑﺼﻮﺭﺕ ﻳﻚ ﺗﺼﻮﻳﺮ ﮔﺮﺍﻓﻴﻜﻲ ﺗﺸﺨﻴﺺ ﻣﻲ ﺩﻫﺪ ﺩﺭ ﻧﺘﻴﺠﻪ ﻛﺎﺭﺑﺮﺍﻥ ﻗﺎﺩﺭ ﻧﺨﻮﺍﻫﻨﺪ ﺑﻮﺩ ﻛﻪ ﻣﺘﻦ ﻣﻮﺟﻮﺩ ﺩﺭ ﺗﺼﻮﻳﺮ ﺳﻨﺪ ﺭﺍ ﻭﻳﺮﺍﻳﺶ ﻧﻤﺎﻳﻨﺪ ﻭ ﻳﺎ ﺁﻥ ﺭﺍ ﻣﻮﺭﺩ ﺟﺴﺘﺠﻮ ﻗﺮﺍﺭ ﺩﻫﻨﺪ.   ﻳﻚ ﻧﺮﻡ ﺍﻓﺰﺍﺭ OCR ﺍﻳﻦ ﻣﺘﻦ ﺍﺳﻜﻦ ﺷﺪﻩ ﺭا ﺧﻮﺍﻧﺪﻩ و ﻣﺤﺘﻮﻳﺎﺕ ﺁﻧﺮﺍ  ﺷﻨﺎﺳﺎﻳﻲ ﻧﻤﻮﺩﻩ ﻭ ﺑﺼﻮﺭﺕ ﻳﻚ ﻓﺎﻳﻞ ﺩﺭ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺫﺧﻴﺮﻩ ﻣﻲ ﺳﺎﺯﺩ.

مزیت های سیستم های OCR

استفاده از سیستم های  OCR دو مزیت عمده دارد:
الف) افزایش چشمگیر سرعت دسترسی به اطلاعات؛ زیرا در متن برخلاف تصویر، امکان جستجو و ویرایش وجود دارد.
ب) کاهش فضای ذخیره سازی؛ زیرا حجم فایل متنی استخراج شده از یک تصویر، معمولا بسیار کمتر از حجم خود فایل تصویری است.

ﭼﻨﻴﻦ ﻗﺎﺑﻠﻴﺘﻲ ﺍﻣﻜﺎﻥ ﺍﺳﺘﻔﺎﺩه ﮔﺴﺘﺮﺩﻩ ﺍﺯ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺭﺍ ﺩﺭ ﭘﺮﺩﺍﺯﺵ ﺳﺮﻳﻊ ﺣﺠﻢ ﻭﺳﻴﻌﻲ ﺍﺯ ﺩﺍﺩﻩ ﻫﺎی ﻣﻜﺘﻮﺏ ﺗﻮﻟﻴﺪ ﺷﺪﻩ ﺗﻮﺳﻂ ﺍﺩﺍﺭه ﭘﺴﺖ ﻭ ﺷﺮﻛﺘﻬﺎ ﻭ ﻣﺆﺳﺴﺎﺕ ﻣﺨﺘﻠﻒ ﻧﻈﻴﺮ ﺑﺎﻧﻜﻬﺎ، ﺷﺮﻛﺘﻬﺎی ﺑﻴﻤﻪ و ﻣﺆﺳﺴﺎﺕ ﺧﺪﻣﺎﺕ ﻋﻤﻮﻣﻲ و ﺳﺎﻳﺮ ﻧﻬﺎﺩﻫﺎﻳﻲ ﻛﻪ ﺳﺎﻟﻴﺎﻧﻪ ﺑﺎ ﻣﻴﻠﻴﻮﻧﻬﺎ ﻣﻮﺭﺩ ﭘﺮﺩﺍﺧﺖ، ﺩﺭﻳﺎﻓﺖ ﻭ ﺣﺴﺎﺑﺮﺳﻲ ﺍﻣﻮﺭ ﻣﺸﺘﺮﻳﺎﻥ ﺧﻮﺩ ﻣﻮﺍﺟﻬﻨﺪ، ﻓﺮﺍﻫﻢ ﻣﻲ ﺁﻭﺭﺩ .

منبع

آشنایی با ماشین بینایی 

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

در حقیقت ماشین بینایی شاخه ای از علم مهندسی است که به رشته‌های علوم کامپیوتری (Computer science) و علم نورشناسی و مهندسی مکانیک و اتوماسیون صنعتی ارتباط دارد. یکی از مهمترین پر استفاده‌ترین کاربردهای آن در بازبینی و بررسی کالاهای صنعتی از جمله نیمه هادیها، اتومبیل ها، مواد خوراکی و دارو می باشد. همانند نیروی انسانی که با چشم غیر مسلح در خط تولید کالاها را برای تعیین کیفیت و نوع ساخت آنها بازبینی می کنند، ماشین بینایی از دوربین‌های دیجیتال و دوربین‌های هوشمند و نرم‌افزارهای image processing (پردازش تصویر) برای این کار استفاده می کند.

دستگاههای مربوطه (ماشین بینایی) برای انجام دادن وظایفی خاص از جمله شمردن اشیاء در بالابرها، خواندن شماره سریالها (Serial numbers)، جستجوی سطح‌های معیوب به کار می روند. در حال حاضر صنعت استفاده زیادی از سیستم ماشین بینایی برای بازبینی تصویری اشیاء (Visual inspection) که نیاز به سرعت بالا و دقت بالا و کار 24 ساعته و تکرار محابات بالا دارد، وجود دارد.

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

علی رغم اینکه بعضی الگوریتم‌های ماشین بینایی برای تقلید کردن از سیستم بینایی انسان توسعه یافته اند، تعداد معدودی روش برای تحلیل و شناسایی ویژگیهای مرتبط تصاویر به صورت مؤثر و ثابت توسعه یافته اند. سیستم‌های Machine vision و computer vision قادر هستند به صورت ثابت تصاویر را تجزیه و تحلیل کنند، ولی image processing بر پایهٔ کامپیوتر به صورت کلی برای انجام کارهای تکراری طراحی می شوند و علی رغم پیشرفت‌های صورت گرفته در این زمینه، هیچ سیستم machine vision و computer vision قادر نیست با برخی از ویژگی‌های سیستم بینایی انسان در قالب درک تصویر، تلرانس به تغییرات نور، تضعیف قدرت تصویر و تغییرات اجزا و… تطبیق پیدا کند.

اجزای یک ماشین بینایی

اگرچه ماشین بینایی بیشتر به عنوان یک پروسهٔ به کار بستنٍ “Machine vision” در کاربردهای صنعتی شناخته شده است، برای لیست کردن اجزای سخت‌افزاری و نرم‌افزاری به کار برده شده نیز مفید می باشد. معمولاً یک ماشین بینایی از اجزای زیر ساخته میشود :

1. یک و یا چند دوربین دیجیتال یا آنالوگ ( سیاه-سفید یا رنگی ) با اپتیک مناسب برای گرفتن عکس.
2. واسطه ای که عکس‌ها را برای پردازش آماده می سازد. برای دوربین‌های آنالوگ این واسطه شامل یک دیجیتال کننده عکس است. هنگامی که این واسطه یک سخت‌افزارٍ جدا باشد، به آن Frame grabber ( کارتی که برای دریافت سیگنال تصویری و فرستادن آن به کامپیوتر استفاده می شود)می گویند.
3. یک پردازشگر ( گاهی یک PC یا پردازنده تعبیه شده ( Embedded Processor ) مانند DSP
4. نرم‌افزار ماشین بینایی : این نرم‌افزار امکاناتی برای توسعه یک برنامه نرم‌افزاری که برای کاربردی مشخص است را فراهم می کند.
5. سخت‌افزار ورودی / خروجی ( مثلا I/O دیجیتال ) یا حلقه‌های ارتباطی ( مثلا ارتباط شبکه ای یا RS-232 ) برای گزارش نتایج.
6. یک دوربین هوشمند : یک وسیله ساده که همه موارد فوق را داراست.
7. لنزهایی که بتواند به مقدار مطلوبی روی سنسور تصویر زوم کند.
8. منابع نوری مناسب و گاهی خیلی مخصوص ( مثلا چراغهای LED، فلورسنت، لامپهای هالوژن و . . . )
9. یک برنامهٔ مشخص که بتواند تصاویر را پردازش کرده و مشخصه‌های مربوط و مناسب را شناسایی کند.
10. یک سنسور همزمان ساز برای شناسایی اجزا ( گاهی یک سنسور نوری و یا یک سنسور مغناطیسی ) : این سنسور برای راه اندازی سیستمٍ استخراج و پردازش تصویر می باشد.

سنسور همزمان ساز تعیین می‌کند که چه زمانی یک بخش ( که معمولاً روی یک حمل کننده حرکت می کند) در موقعیتی قرار گرفته است که باید مورد بررسی واقع شود. این سنسور هنگامیکه از زیر دوربین می گذرد و یک پالس نوری برای ثابت نگهداشتن تصویر ایجاد می‌کند، دوربین را برای گرفتن عکس فعال می کند. نوری که برای روشن کردن آن بخش به کار می رود در واقع برای آن است که مشخصه‌های مطلوب را برجسته و مشخصات نامطلوب ( مثل سایه‌ها و یا انعکاس ها) را به حداقل برساند. معمولاً پنل‌های LED با اندازه و طراحی مناسب برای این هدف مورد استفاده قرار می گیرند. تصویر دوربین یا توسط یک frame grabber و یا توسط یک حافظه کامپیوتری (که در آن از frame grabber استفاده نشده است) گرفته می شود.

frame grabber یک وسیله دیجیتال کننده است ( یا در داخل دوربین هوشمند و یا بطور جداگانه) که خروجی دوربین را به فرمت دیجیتال تبدیل کرده ( معمولاً این فرمت از یک آرایه دو بعدی از اعداد تشکیل شده که هر عدد متناظر شدت روشنایی نقطه متناظر در آن تصویر می باشد. به این نقاط پیکسل می گویند.) و سپس تصویر را به منظور پردازش توسط نرم‌افزارٍ ماشین بینایی در حافظه کامپیوتر ذخیره می کند. به طور معمول نرم‌افزار، اقدامات متفاوتی را برای پردازش تصویر انجام می دهد. گاهی در ابتدا تصویر برای کاهش نویز و یا تبدیل سایه‌های خاکستری به ترکیب ساده ای از رنگهای سیاه و سفید دستکاری می‌شود ( Binarization ).

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

همچنین امروزه شاهد شیوع فراوان استفاده از تجهیزات دوربین‌های دیجیتال به جای یک دوربین و یک frame grabber جداگانه در ماشین بینایی هستیم. استفاده از یک دوربین دیجیتال به منظور برقراری ارتباط مستقیم، باعث صرفه جویی در هزینه و نیز سادگی سیستم خواهد شد. دوربین‌های هوشمند که در داخل آنها embedded processor‌ها تعبیه شده اند، در حال تسخیر سهم بالایی از بازار ماشین بینایی ها هستند. استفاده از یک embedded processor ( و یا یک پردازنده بهینه ) نیاز ما به frame grabber و یک کامپیوتر خارجی را از بین می برد. به همین خاطر این پردازنده‌ها باعث کاهش هزینه، کاهش پیچیدگی سیستم و همچنین اختصاص توان پردازشی مشخص به هر دوربین می شود. دوربین‌های هوشمند معمولاً ارزان تر از سیستمهای شامل یک دوربین و یک برد و یک کامپیوتر خارجی هستند. همچنین توان بالای embedded processor و DSP‌ها منجر به بالا رفتن عملکرد و توانایی آنها نسبت به سیستمهای مرسوم ( که بر مبنای PC هستند ) شده است.
منبع