تاریخچه 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 هستند ) شده است.
منبع
تلفن های تماس:
تلفن: ۹۱۰۰۱۸۸۱(۰۳۱)
بازرگانی و فروش:۰۹۱۳۶۵۳۱۸۸۱
پشتیبانی: ۰۹۱۱۷۶۱۰۲۷۵
ساعات کاری
از شنبه تا چهارشنبه : ۰۹:۰۰ تا ۱۷:۰۰
پنچ شنبه ها : از ۰۹:۰۰ تا ۱۳:۳۰