تشخیص نوشتار

تغییرات پروژه از تاریخ 1393/09/15 تا تاریخ 1393/10/13

[به تصاویری که هر روز در محیط اطرافتان می بینید توجه](http://press.jamejamonline.ir/Newspreview/1176588822134229499) کرده اید؟ این تصاویر در بردارنده اطلاعات مختلفی است. از گیاه و پرنده و درنده تا خویشاوندان و دوستان، لوگوی شرکت ها، محصولات تجاری و صد البته متن! اطلاعات متنی موجود در تصویر ازجمله داده هایی است که برای فردی مسلط به آن زبان به آسانی قابل فهم است و می تواند دربردارنده اطلاعات مهمی درباره محتوای تصویر باشد.

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

# اصطلاحات پایه ای OCR
[در دنیای بازشناسی متون اصطلاحات مختلفی استفاده می شود](http://farsiocr.ir/17/) که هرچند برای اهل فن آشناست، لیکن اکثریت مردم از تعریف دقیق آنها بی اطلاعند. در این مقاله به تعریف سه اصطلاح متداول  OMR، ICR و OCR می پردازیم.
٫ OMR چیست؟
مخفف کلمات Optical Mark Reader/Recognition است به معنی خواندن نوری مارک بوده و عمدتا در آزمونهای چند گزینه ای استفاده می شود. به این ترتیب که فرمهای خاصی طراحی شده و آزمون دهندگان مارکهای (غالبا بیضی شکل یا مستطیل) مورد نظر را با قلمهای نرم پر می کنند. برای خواندن خودکار این فرمها، می توان از دستگاههای مارک خوان استفاده کرد یا از نرم افزارهای مارک خوان کمک گرفت. دستگاههای مارک خوان (OMR Scanner) نوعی روبشگر (اسکنر) ویژه اند که قادرند با استفاده از تاباندن نور به سطرهای مختلف برگه امتحان، موقعیت مارکهای پرشده را تشخیص دهند. این دستگاهها مقادیر آستانه ای برای یافتن مواردی که چند گزینه پر شده است و یا هیچ گزینه ای پر نشده است، دارند.
نرم افزارهای OMR در واقع کار دستگاهها را شبیه سازی می کنند؛ به این ترتیب که تصویر اسکن شده را دریافت کرده و با پردازش آن موقعیت مارکهای مختلف را در می یابند. به دلیل سهولت پردازش اطلاعات، این تکنولوژی همچنان در بسیاری از آزمونهای روز دنیا مورد استفاده است و در کشور ما نیز شرکتهای زیادی در این زمینه کار می کنند.

۲٫ ICR چیست؟
مخفف Intelligent Character Recognition است. این اصطلاح که بیشتر توسط بخش تجاری جا افتاده است، شاخه ای از بازشناسی متن است که به طور خاص به بازشناسی حروف و ارقام دستنویس می پردازد. به این صورت که اطلاعات درخواستی کاربر روی فرمهای کاغذی و در کادرهای مجزا وارد می شود (مثلا برای نوشتن نام محمد حروف م ح م د در چهار خانه مربع شکل جداگانه وارد می شود)، برای داده آمایی خودکار این اطلاعات، از فن آوری ICR استفاده می شود.


۳٫ OCR چیست؟
تشخیص نوری نویسه‌ها (Optical Character Recognition) که با سرواژه‌ی OCR شناخته می‌شود، از مهمترین شاخه های بازشناسی متن است. OCR عبارت است از بازشناسی خودکار متون موجود در تصاویر اسناد و تبدیل آنها به متون قابل جستجو و ویرایش توسط رایانه. تصویر سند غالبا توسط روبشگر (اسکنر) و یا دوربین دیجیتال تولید می‌شود و شامل تعدادی پیکسل با رنگهای مختلف و سطوح روشنایی گوناگون است. از دید انسان، یک سند ممکن است ارزش اطلاعاتی زیادی داشته باشد، لیکن از دید رایانه تصویر یک سند با تصویر یک منظره تفاوتی ندارد، چرا که هر دوی آنها مجموعه‌ای از پیکسل‌ها هستند. برای اینکه بتوان از اطلاعات نوشتاری تصویر سند استفاده کرد، باید به نحوی نوشته‌های موجود در سند را بازشناسی کرد. چنین کاری توسط نرم افزارهای نویسه‌خوان نوری انجام می‌شود.
واژهٔ OCR ابتدا تنها در مورد بازشناسی ارقام و حروف چاپی بکار گرفته می‌شد. پسوند نوری در این عبارت در مقابل عبارت مرکب مغناطیسی (Magnetic Ink) قرار داده شد تا این روش را از روش قدیمی‌تر بازشناسی نویسه‌ها با مرکب مغناطیسی ،MICR، متمایز کند. با گذشت زمان و پیشرفت قابل توجه در این زمینه، روش‌های بازشناسی دستنوشته و متون چاپی مطرح شدند که دامنهٔ کار را به کلمات و عبارات رساندند. با وجود عدم تطبیق دقیق OCR با این موارد، این نام برای این روش‌ها هم استفاده شد و رواج پیدا کرد. هم‌اکنون OCR را بیشتر برای بازشناسی مستندات چاپی مثل صفحات کتاب‌ها، مجله‌ها و نامه‌های چاپی به کار می‌برند.


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


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

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

**[1] ژاوو چنگ و تیم آنها روشی را برای تشخیص نوشتار ارایه نمودند**، این روش برای استخراج مناطق دارای بیشترین پایداری به عنوان کاراکتر  کاندید که از استراتژی مینیمم کردن تغیرات و اختلافات منظم [^Regular  Minimum Changes and Disputes Strategy]طراحی شده است.کاراکترهای کاندید شده بوسیله یک الگوریتم خوشه بندی تک لینک[^Single link Clustering Algorithm] به متن های کاندید شده گروه بندی میشوند.
![توضیح تصویر](http://upload7.ir/imgs/2014-11/81967586175100605425.png)

در این روش از الگوریتم  (maximally stable extremal regions (MSER استفاده شده است در لینک پایین یک  برسی از این کار نمایش داده شده.
  [**پیوند مفید**](http://kems.ustb.edu.cn/learning/yin/dtext)
  
**[2] این کار بر اساس یک سیستم مبتنی بر احتمال ساخته شده** .  از یک ردیاب کاراکتر چند مقیاسی مؤثر برای تعیین مکان کاراکترها درون یک تصویر بدون نقطه قطعه‎سازی استفاده شده. این با یک جستجوی مبتنی بر گراف دنبال می‎شود که ردیابی‎ها را به لغات تقسیم‎بندی می‎کند و احتمالات نسبی‎شان را ارزیابی می‎کند .
الگوریتم HOG یک الگوریتم مبتنی بر Patch است که تخمین متراکمی از شکل در یک تصویر کلی فراهم می‎کند با استفاده از هیستوگرام‎های جهت‎گیری‎های گرادیانی کوانتیره شده برای Patch‎های تصویری کوچک. این روش اصالتاً برای ردیابی پیاده‎ها معرفی شد،برای ردیابی کاراکترها از رگرسیون منطقی[^Logistic regression] بر روی بلوک‎هایی از توصیف‎گر HOG استفاده کردند،برای خواندن لغات به طور افقی در امتداد هر خط اسکن می‎کنیم و یک گراف هدایت شده از لغات احتمالی می‎سازیم،وقتی گراف تکمیل شد، می‎توانیم وزن‎های لبه را بر مبنای احتمال ترکیب حروف ظاهر شونده در متن انگلیسی و وزن‎های گره با استفاده از احتمال ردیابی و احتمال اینکه کاراکتر به خط تعلق داشته باشد اختصاص بدهیم. با بدست آوردن لگاریتم احتمال احتمالات پیدا کردن متحمل‎ترین واژه پیمایش گراف با حداقل هزینه می‎شود که می‎تواند با الگوریتم Djpkstra یا A* حل شود، در اشکال زیر مثالی از  رویکرد پیشنهادی نمایش داده شده‌اند:

![توضیح تصویر](http://upload7.ir/imgs/2014-11/75157134949277655497.png)![توضیح تصویر](http://upload7.ir/imgs/2014-11/85064311016107435596.png)

**[3]در این مقاله Adam Coates و  همکاران نشان  از داشنگاه Stanford** یک سیستم ردیابی و شناسایی بر مبنای الگوریتم مقیاس‎پذیر یادگیری ویژگی تولید کرده‎اند،بعضی از سیستم‎ها با طرح‎های یادگیری بسیار انعطاف‎پذیر تلاش می‎کنند تمام اطلاعات لازم از داده‎های Lable شده را با حداقل دانش قبلی یاد دهند. مثلاً معماری شبکه عصبی چند لایه برای شناسایی کاراکتر استفاده شده‎اند و رقیب سایر روش‎های پیشتازانه هستند،Setup پایه رابطه نزدیکی با شبکه عصبی کانووله کننده دارد اما به خاطر روش training آن می‎تواند استفاده شود تا به سرعت مجموعه‎های بسیار بزرگ از ویژگی‎ها را با حداقل تنظیمات بسازد **مراحل** :
1) اعمال یک الگوریتم یادگیری ویژگی‎ بدون نظارت بر روی مجموعه‎ای از Patchهای تصویری برداشت شده از داده‎های training تا مجموعه‎ای ویژگی‎های تصویری یادگیری شود. 2) ارزیابی ویژگی‎ها به صورت کانوولاسیون بر روی تصاویر training. کاهش تعداد ویژگی‎ها با استفاده از تجمع فضایی،3) train کردن یک طبقه‎بندی کننده خطی یا برای ردیابی متن یا برای شناسایی کاراکتر. **یادگیری ویژگی**  در اینجا از شکل تغییریافته‎ای از کلاسترینگ K-Mean استفاده می‎کنیم  **مراحل**: (1) جمع‎آوری مجموعه‎ای از تکه‎های تصویری کوچک   از داده‎های training ،
دراین مورد  از تکه‎های سیاه و سفید 8×8 استفاده کردند بنابراین   x(i) ∈R64 
(2) اعمال پیش‎پردازش آماری ساده (مثل سفید کردن) بر روی تکه‎های ورودی جهت دست‎یابی به مجموعه داده‎ای جدید(x(i 
(3) اجرای یک الگوریتم یادگیری بدون نظارت بر   برای ساخت یک Mapping از Patch های ورودی به بردار ویژگی ((z(i) = f(x(i 
مجموعه‎ای از m تکه‎ تصویری 8×8 پیکسل را استخراج می‎کنیم تا بردارهای پیکسل  x(i) ∈R64,i ∈{1,...,m}   برسیم. هر بردار از نظر روشنی و کنتراست نرمال می‎شود سپس می‎توانیم  ( x˜(i را با استفاده از ZCA روشن کنیم تا ( x(i  را بدست آوریم.پس  به جای یادگیری مرکز ثقل‎های مبتنی بر فاصله اقلیدسی مجموعه‎ای از بردارهای نرمال شده را یاد می‎گیریم .موارد نشان داده شده در شکل 1 مجموعه‎ای از عناصر لغت‎نامه هستند (ستون‎های D) که از این الگوریتم به دست آمده‎اند وقتی‎که بر روی تکه‎های روشن شده استخراج شده از تصاویر کوچک کاراکترها اعمال شدند
![توضیح تصویر](http://upload7.ir/imgs/2014-12/62463129967007182328.png)
هم ردیاب و هم طبقه‎بندی کننده کاراکتر تصویرهای 32×32  برای هر زیر قطعه [^Subpatch ]به ابعاد 8×8 را محاسبه می‎کنیم که d×25×25 بدست می‎آید. بطور رسمی، اجازه می‎دهیم    z ∈Rd نشان‎دهنده یک Patch8 در x واقع در جایگاه j و i درون تصویر ورودی باشد. در این مرحله لازم است ابعاد مدل را قبل از دسته‎بندی کاهش بدهیم.یک روش رایج برای انجام این کار،  تجمع فضایی است، جائیکه پاسخ‎های یک ویژگی‎ را در مکان‎های مختلف به یک ویژگی ادغام می‎کنیم.یک مجموعه training برای این طبقه‎بندی کننده از طریق استخراج پنجره‎های 32×32 از مجموعه داده‎ای ICDAR 2003 می‎سازیم با استفاده  از باکس‎های محدودکننده تا تصمیم‎بگیریم که آیا پنجره حاوی متن هست یا نه با این روش مجموعه‎ای از 60000 پنجره 32×32 را برای training برداشت می‎کنیم (30000مثبت ،30000منفی) .این بردارهای ویژه و Lable های "حاوی متن" یا "بدون متن" ground truth که از باکس‎های محدودکننده بدست می‎آیند برای train کردن یک SVM خطی استفاده می‎شوند. ما بعداً از feature extractor مان طبقه‎بندی کننده train شده‎مان و برای ردیابی به شکل پنجره لغزنده معمولی استفاده می‎کنیم.برای هر پنجره 32×32 از تصویر محاسبه می‎کنیم. این فرآیند در مقیاس‎های چندگانه انجام می‎شود و سپس برای هر مکان در تصویر اصلی یک معادل امتیازی حداکثر به خروجی طبقه‎بندی کننده که در هر مقیاس بدست آمده اختصاص می‎دهیم.با این مکانیزم هر پیکسل را با یک امتیاز مطابق با اینکه آن پیکسل بخشی از یک بلوک متنی است یا نه Lable می‎کنیم
![توضیح تصویر](http://upload7.ir/imgs/2014-12/89500040457027320872.png)
شکل 3- منحنی‎های دقت – فراخوانی برای ردیاب‎هایی با تعداد متغیر ویژگی‎ها
![توضیح تصویر](http://upload7.ir/imgs/2014-12/35367564135911617725.png)
شکل 4- مثال خروجی‎های طبقه‎بندی کننده ردیابی متن
![توضیح تصویر](http://upload7.ir/imgs/2014-12/50373735205408850967.png)
شکل 5- دقت طبقه‎بندی کاراکتر (62- روش) بر روی مجموعه ICR 2003 به صورت تابعی از تعداد ویژگی‎های یادگیری شده
![توضیح تصویر](http://upload7.ir/imgs/2014-12/82267488163657545270.png)
  
**[5]در این مقاله شیوه های مختلف برای پیدا کردن رشته های حروف** را از عکس های طبیعی بررسی شده است.تکنیک های مختلفی مانند استخراج منطقه رشته حروف از عکس بر اساس کانتور و ضخامت حروف، باینری سازی بهینه، تکنیک های پیشرفته ای که توسط شیوه آنالیز اجزاهای مرتبط انجام می شود
روش اول :Closed Contour:کنتور بسته[^Closed Contour] فرض شده است که حروف یک کانتور بسته می باشند و یک رشته حروف شامل حروفی است که غالبا در امتداد یک خط قرار گرفته اند. بنابراین با استفاده از استخراج کانتورهای بسته و جستجو اطراف آنها مناطق رشته های حروف به دست خواهند آمد 
روش دوم:Image Binarization: باینری سازی تصاویر [^Image Binarization] به خوبی می تواند عکسهای مناظر طبیعی سایه دار، با نور غیر یکنواخت، رنگ پس زمینه پایین و با نویزهای بالا را تحلیل کند. آنالیز اجزای مرتبط جهت تعریف باینری سازی نهایی عکس که غالبا شامل متن نیز می باشند استفاده می شود.
یک تکنیک، کاراکتر متنهای مورد نظر را از اجزای به هم مرتبط با گرادیان شکل و رنگ آنها انتخاب می کند.  قسمت رنگ پایه بهتر از گرادیان عمل می کند اما این شیوه زمان بیشتری را برای شناسایی متن در هر لایه رنگ صرف می کند،شیوه گروه بندی متن در یک خط[^Text Line Grouping] می تواند برای استخراج متن در جهت های مختلفی استفاده شود. ترکیب شیوه های  پارتیشن رنگ پایه[^Color based Partition] و گرئه حروف مجاور[^Adjacent character grouping]بهترین بازهی را به ما می دهد
الگوریتم استخراج متن از تصاویر به سه گروه عمده  ویژگی گرادیان پایه[^gradient feature based]و تقسیم بندی رنگ پایه[^color segmentation based]و انالیز بافت پایه [^texture analysis based].   تقسیم بندی می شود. gradient feature based بر اساس این ایده که پیکسلهایی که گرادیان زیادی دارند، کاندید هستند که جزو حروف باشند. در مقاله ای   Basilios Gatos  شیوه جدیدی را برای شناسایی متن در تصاویر طبیعی را پیشنهاد داده است. این شیوه پیشنهاد شده براساس باینری سازی بهینه ( efficient binarization) و یک تکنیک پیشرفته که بر اساس آنالیز اجزای مرتیط مناسب پشتیبانی می شود، کار می کند. شیوه  Image binarization  به خوبی تصاویری که دارای سایه ، نور غیر یکنواخت، کنتراست پایین و نویزهای بالا می باشند را تحلیل می کند.  آنالیز اجزای مرتبط برای تعریف  final binary imagesکه غالبا شامل مناطق متن می باشد استفاده می شود. در مقاله دیگری   Chucai Yi and YingLi Tian شیوه جدیدی برای استخراج متنهایی که دارای سایز و رنگ متفاوت با پس زمینه پیچیده می باشند مورد استفاده قرار می گیرد. این شیوه پیشنهاد شده شامل دو مرحله می باشد. الف) تقسیم بندی تصویر برای پیدا کردن کاندیدهای حروف متن بر اساس غیر یکنواختی رنگ و گرادیانی که در آنها وجود دارد. در این مرحله 2 روش برای تقسیم بندی تصاویر به نقشه باینری اجزای مرتبط که با هم اشتراکی ندارند وجود دارد: gradient-based method and color-based method ب)  گروه بندی کاندیدهای حروف برای شناسایی متن براساس ویژگی های ساختاری متن مانند سایز کاراکترها ، فواصل بین آنها  و به خط  بودنشان عمل میکند. در این مرحله نیز دو روش آنالیز ساختاری متن وجود دارد: adjacent character grouping method and text line grouping . همچنین در این مقاله الگوریتم بهینه ای که توسط آن می توان تصاویر متن با پس زمینه های پیچیده را بصورت اتوماتیک شناسایی، مکان یابی و استخراج کرد نیز معرفی شده است که بر اساس تکنیک کاهنده رنگ عمل می کند. در همین راستا می خواهیم  الگوریتمهایی که  جهت استخراج متن از تصاویر طبیعی می باشند را برسی کنیم.
1)	**شیوه کانتور بسته**
یکی از مشخصه های رایج حروف در تصاویر واقعی این است که بیشتر آنها میتوانند زمانی که پروسه ایجاد لبه ها بر انها اعمال میشود، یک کاتور بسته را ایجاد کنند. در همین راستا  Tomohiro Nishino  این شیوه را برا شناسایی کانتور های بسته از تصاویر بکار گرفتند. همچنین فرض شده است که رشته های حروف شامل کاراکترهاییی هستند که در یک خط مستقیم قرار گرفته اند. با توجه به این فرضیات رشته های حروف می بایست از مناطق با کانتور بسته که بطور منظمی در کنار هم قرار گرفته اند.Tomohiro Nishino توضیح دا که چگونه کانتورهایی که بصورت افقی کنار هم قرار گرفته اند را شناسایی کرد. ابتدا یک محیط مستطیلی از کانتور بسته محاسبه می شود. سپس این مستطیل توسط برخی از پیکسلها که به اندازه عرض مستطیل می باشند به سمت راست منتقل می شوند.اگرمستطیل شامل کانتور بسته از مرکز محیطی مستطیل دیگری باشد، فرض می شود که این کانتورهای بسته بصورت افقی در کنار هم قرار گرفته اند و شامل رشته های حروف یکسانی می باشند. بنابراین فرض می شود کانتورهای بسته ای که جدا از هم می باشند هیچ ارتباطی با کاراکتر های حروف ندارند. فرض می شود مستطیل های محیطی رشته های حروف،  مناطق این رشته ها باشند. با این پروسه مناطق رشته های افقی در کانتورهای بسته استخراج شده است. هر دو کانتورهای بسته و باز که در سمت چپ و راست مناطق رشته های حروف قرار گرفته اند، استخراج شده و ضخامت هر کدام از انها نیز محاسبه شده است. اگر این کانتورها دارای ضخامت یکسان از کاراکترها در مناطق باشند، به مناطق رشته های حروف افزوده می شوند. 
![توضیح تصویر](http://upload7.ir/imgs/2014-12/42605496894563944843.png)
2)	**آنالیز اجزای مرتبط و باینری کردن تصاویر**
این متد ارائه شده برای شناسایی متن از تصاویز طبیعی بر اساس یک باینری سازی بهینه و تکنیک پیشرفته آنالیز اجزای به هم پیوسته می باشد. فلوچارت این روش در شکل 4 به ان اشاره شده است. با شروع از تصویر، ..... یک تصویر با لایه های خاکستری تولید می کند. سپس این دو تصویر را با استفاده از تکینیک پیشرفته باینری سازی ، باینری می کند. در ادامه تکنیک پیشنهاد شده شامل توابع تصمیم هستند که نشان می دهند کدام تصاویر شامل اطلاعات متنی می باشند
1-	بباینری سازی تصاویر به خوبی روی تصاویری از طبیعت که دارای سایه نور غیر یکنواخت، کنتراست پایین و نویزهای وابسته به سیگنال بزرگ هستند، پیاده سازی می شود. آنالیز اجزای به هم پیوسته برای تعریف تصویر باینری سازی شده نهایی که مشخصا دارای متن می باشد، مورد استفاده قرار میگیرد.
2-	این روش ارائه شده، موفقیتهای زیادی برای موتورهای OCR به مراه داشته و نرخ موفقیت آنها در شناسایی متن را افزایش داده است. 

![توضیح تصویر](http://upload7.ir/imgs/2014-12/05427173779840247249.png)
3)	.گروه بندی و تقسیم ساختار پایه
![توضیح تصویر](http://upload7.ir/imgs/2014-12/90723063195815801294.png)
4)	.شیوه شناسایی مرز در تصاویر و تکنیک کاهنده رنگ [^Color Reduction Technique]و [^Boundary detection method] .
 در روش ﻫﺎی ﺑﺮ ﭘﺎﯾﻪ رﻧﮓ، از اﻃﻼﻋﺎت ﺳﻄﺢ ﺧﺎﮐﺴﺘﺮی ﯾﺎ رﻧﮕی دریک ﻧﺎﺣﯿﻪ ﻣﺘﻦ و ﯾﺎ اﺧﺘﻼف آن ﺑﺎ زﻣﯿﻨﻪ اﺳﺘﻔﺎده ﻣ ﺷﻮد 


**[7]. کیفیت تصویر موجب می شود که دوسطحی سازی مناسب تر  و کاراکترها با خطای کمتری شناسایی شوند**.در این روش بیان شده که ابتدا فیلتر وینر برای افزایش کارایی عملیات مورفولوژی  مورد استفاده قرار گرفته است.با استفاده از عملگرهای مورفولوژی تقریبی از زمینه محاسبه شده و زمینه بدست آمده از تصویر اصلی حذف می شود .واز فیلتر وینر و unsharp mask برای از بین بردن نویز باقی مانده استفاده می شود.
تعریفی خلاصه از مورفولوژی یا پردارش تصویر مورفولوژیکال [^Image processing morphologically]:مدلی ریاضیاتی مبتنی بر نظریه شبکه‌ای، مورد استفاده در پردازش تصویر دیجیتال که از مجموعه ایی عملیات غیر خطی وابسته به شکل و یا ویژگی های ریخت شناسی تصویر بهره می برد.طبق گفته ویکیپدیا  عملیات مورفولوژیکال تنها با تکیه بر مرتب سازی مقادیر پیکسل ها ،نه بر مقادیر عددی آنها بلکه به دلیل مقادیر ویژه مناسب پردازش از تصاوی باینری و همچنین توانایی اضافه کردن تصاویر از قبیل تصاویر با وضوح پایین را دارد.
پیوند مفید:[**پیوند مفید**](https://www.cs.auckland.ac.nz/courses/compsci773s1c/lectures/ImageProcessing-html/topic4.htm)
از کاربردهای بهبود کیفیت میتوان  به ایجاد نسخه تصویری از اسناد تاریخی و متون قدیمی  اشاره کرد  و همچنین در حوزه سیستم های خودکار که ورودی  آنها تصاویر متن می باشند مثال زد:مانند سیستم های دسته بندی محصولات  بر اساس بارکد حک شده بر روی آنها ،سیستم های خودکار خواندن چک های بانکی و غیره....
در این مقاله گفته شده  ابتدا تصویر منفی  تصویر اصلی محاسبه و توسط فیلتر وینر پردازش مشود 
فیلتر وینر:یک فیلتر پایین گذر خطی  که مقدار پیکسل خروجی را  بر اساس ویژگیهای آماری همسایگی  یک پیکسل  مانند میانگین وانحراف معیار  منطبق و محاسبه می نماید. که اثر آن بر روی تصویر مانند سایر فیلترهای پایین گذر[^low-pass] آرام کردن تصویر است،سپس خروجی فیلتر شده با استفاده از عملگر   «morphology opening با توجه به شکل و اندازه همسایگی تعریف شده برای آن  متن را از زمینه جدا مکندو نتیجه برای از بین رفتن نویز بار دیگر توسط فیلتر وینر پردازش می شود.برای  افزایش تمایز  تابع گاما انتخاب شده که مقدار کوچکتر از 1 باعث روشنایی بیشتر و بزرگتر از 1 تیرگی بیشتری را اعمال می کند.برای از بین رفتن تصاویر پشت صفحه که به صورت مات و آرام هستند از فیلتر بالا گذر[^High-pass]به نام  unsharp mask استفاده نموده اند که یک سری از نتایج در اشکال ذیل نمایش داده شده است.
![توضیح تصویر](http://upload7.ir/imgs/2014-12/94127239455351450121.png)
![توضیح تصویر](http://upload7.ir/imgs/2014-12/33582449164382112143.png)

**[8]در این مقاله گفته شده که از ترکیب  روش های رزولیشن بالا و پایین جهت قطعه بندی صفحات مستندات فارسی استفاده میکنند**،قطعه بندی صفحات به سه دسته تقسیم بندی می شود 1- پایین به بالا  :شناسایی کلمات متن از مولفه های همبند شروع شده و پس از ادغام به کلمات به خطوط متنی آنها را به پاراگراف ادغام میکند.2-بالا به پایین: این روش  با دید کلی به  پردازش تصویر می پردازد و با کمک مشخات عمومی  صفحه شامل نوارهای سیاه و سفید صفحه را به ستون ها،ستون هارا  به بلوک ،وبلوک هه را به خطوط متنی و درنهایت به کلمات قطعه بندی تبدیل میکند.با توجه به مشخصات و ویژگی های متون فارسی از روش ترکیبی در این مقاله استفاده شده است.ابتدا  پیکسل های تصویرداخل مولفه های همبند قرار داده اند ومولفه ها را داخل مستطیل محاط قرا ر داده ،با استفاده از  خطوط  متنی گرافیکی [^Graphical text lines]به نام ((6GTLs) مستطیل های محاط را ادغام و سپس آنها را داخل  بلوک های ناحیه [^Block area]قطعه بندی کرده اند. 

![توضیح تصویر](http://upload7.ir/imgs/2014-12/38589145308039806170.png)
فاصله بین  دو مستطیل احاطه کننده کلمات  توسط simon برای کلاس بندی و خوشه بندی مولفه ها پیشنهاد شد.[10]. . ﻓﺎﺻﻠﻪ ﻣﻴﺎن ﻫﺮ دو ﻣﺆ ﻟﻔﻪ   Cj وCi ﻫﻤﺒﻨﺪ  ﻳﺎ دو Object ،Oj Oi  ﺑﻪ ﻋﻨﻮان ﻓﺎﺻﻠﻪ ﻣﻴﺎن ، ﻣﺴﺘﻄﻴﻞ ﻫﺎی ﻣﺤﺎﻃﺸﺎن در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ .به صورت شکل ذیل:
![توضیح تصویر](http://upload7.ir/imgs/2014-12/32813755651466130452.png)
در این مقاله بیان کردند که با ادغام عمودی و افقی ﻣﺴﺘﻄﻴﻞ ﻫﺎی ﻣﺤﺎﻃ   ﺑﺮای ﻣﺠﻤﻮﻋﻪ ﻣﻌﻴﻦ ﻣﺆﻟﻔ ﻪ ﻫﺎی ﻫﻤﺒﻨﺪ [^Components of connective]،که به صورت عمودی و افقی به هم نزدیک و در لیست های پیوندی ذخیره  شده اند طبق الگوریتم های ذیل به خطوط متنی گرافیکی عمل مشود .
![توضیح تصویر](http://upload7.ir/imgs/2014-12/92182382838582420573.png)
![توضیح تصویر](http://upload7.ir/imgs/2014-12/34314069375908868317.png)
در این مقاله عنوان شده که از ساختار هرمی برای برای آنالیز چندرزولیشنی [^Multi-resolution analysis]استفاده می گردد.در مقاله شماره [11]و [12] به طور مفصل این ایده توضیح داده شده که ﺳﺎﺧﺘﺎر ﺗﺼﻮﻳﺮ ﻫﺮﻣﻲ ﻳﻚ ﺳﺎﺧﺘﺎر ﺳﺎده و ﻗﻮی ﺑﺮای ﻧﻤﺎﻳﺶ ﺗﺼﺎوﻳﺮ در ﭼﻨﺪ رزوﻟﻮﺷﻦ ﻣﺨﺘﻠﻒ ﻣﻲباشد در اﺑﺘﺪا اﻳﻦ   ﺳﺎﺧﺘﺎر ﺗﻮﺳﻂ Burt   Adelsonدر ﺳﺎل ١٩٨٣    ﺑﺮای ﻛﺎرﺑﺮدﻫﺎی ﺑﻴﻨﺎﻳﻲ ﻣﺎﺷﻴﻦ [^Machine Vision]و ﻓﺸﺮده ﺳﺎزی اراﺋﻪ ﮔﺮدﻳﺪ   .  که این روش مختصراً دراینجا اینگونه  بیان شده:   . ﻳﻚ ﺗﺼﻮﻳﺮ ﻫﺮﻣﻲ از ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﺗﺼﺎوﻳﺮ ﺗ ﺸﻜﻴﻞ ﺷﺪه اﺳﺖ ﻛﻪ ﺑﻪ ﺻﻮرت ﺷﻜﻞ ﻫﺮم، رزوﻟﻮﺷﻦ و اﻧﺪازه آن ﻛﺎﻫﺶ  ﻣﻲ ﻳﺎﺑﺪ   .  ﺷﻜﻞ(٣) ﺗﺼﺎوﻳﺮ ﻫﺮﻣﻲ را ﻧﺸﺎن ﻣﻲ دﻫﺪ، در اﻳﻦ دﻳﺎﮔﺮام ﺑﺎﻳﺪ ﻫﺮم ﺷﺎﻣﻞ ﺗﺼﻮﻳﺮ اﺻﻠﻲ در رزوﻟﻮﺷﻦ ﺑﺎﻻ و ﻗﻠﻪ ﻫﺮم ﺗﺼﻮﻳﺮ ﺗﻘﺮﻳﺒﻲ در رزوﻟﻮﺷﻦ ﭘﺎﺋﻴﻦ ﻣﻲ ﺑﺎﺷﺪ  . ﺑﺎ ﺣﺮﻛﺖ ﺑﻪ ﺳﻤﺖ ﺑﺎﻻی ﻫﺮم اﻧﺪازه و رزوﻟﻮﺷﻦ ﺗﺼﺎوﻳ ﺮ ﻛﺎﻫﺶ ﻣﻲﻳﺎﺑﺪ    . ﺗﺼﻮﻳﺮ ﻫﺮﻣﻲ ﺑﻪ اﻳﻦ ﺻﻮرت ﺳﺎﺧﺘﻪ ﻣﻲ ﺷﻮد ﻛﻪ رزوﻟﻮﺷﻦ ﺗﺼﻮﻳﺮ ﺑﺎ اﻧﺪازه M ×  N   ﺑﻪ ﻳﻚ ﭼﻬﺎرم ﺑﻪ ﻃﻮر ﭘﻲ در ﭘﻲ ﻛﺎﻫﺶ ﻣﻲ ﻳﺎﺑﺪ ﺗﺎ زﻣﺎﻧﻴﻜﻪ اﻧﺪازه اش ﺑﺰرﮔﺘﺮ از ′M′ ×  N  اﺳﺖ ﻄﻮرﻳﻜﻪ ′  N و ﻳﺎ ′M   ﻛﻤﺘﺮ از ١٠٠  ﻣﻲ  ﺑﺎﺷﺪ.
![توضیح تصویر](http://upload7.ir/imgs/2014-12/28977442360089467954.png)

![توضیح تصویر](http://upload7.ir/imgs/2014-12/70420137046811011933.png)
با توجه به تصویر بالا برای بدست آوردن تصویر هرمی ابتدا  تصویر به دو قسمت با استفاده از ستونهای  زوج و فرد تجزیه شده و تصویر سوم از OR منطقی این دو تشکیل می شود.و سپس تصویر سوم نیز به همین روش به دو قسمت تقسیم و با دوباره از OR منطقی این دو تصویر پنجم تشکیل می شود.بنابراین تعداد پیکسل ها در تصویر پنجم یک چهارم تصویر اول است.
در این مقاله روش  قطعه بندی به شکل الگوریتم ذیل:
![توضیح تصویر](http://upload7.ir/imgs/2014-12/48486127981640931028.png)
همنطور که در ابتدا توضیح داده شد ﻗﻄﻌﻪ ﺑﻨﺪی ﺻﻔﺤﻪ در روش رزوﻟﻮﺷﻦ  ﭘﺎﺋﻴﻦ وبالا انجام می پذیرد،سطوح  روش رزوﻟﻮﺷﻦ  ﭘﺎﺋﻴﻦ هرمی به N ناحیه مجزا قطعه بندی می شود سپس مستطیل های محاط(کوچکترین مستطیلی که محدوده را مشخص می کند)  پس از  فراهم نمودن و  آنالیز مولفه های همبند  با توجه به ساختار هرمی  رزوﻟﻮﺷﻦ  ﭘﺎﺋﻴﻦ محاسبه می شود.به صورت شکل ذیل:
![توضیح تصویر](http://upload7.ir/imgs/2014-12/25442921798888401102.png)

**[9] دراین مقاله روشی برای استخراج متون از تصاویر با استفاده از اپراتور لبه یاب کنی**[^canny] ارایه کردند،به این صورت که ابتدا یک پردازش اولیه بر روی تصویر ورودی انجام می شود(پیش پردازش:پردازش سطح پایین بر روی تصویر که موجب ﺑﺮﺟﺴﺘﻪ شدن ﭘﺮدازش ﻫﺎی ﺑﻌﺪی  و ﺣﺬف ﻋﻮاﻣﻞ ﻣﺰاﺣﻢ میﮔﺮدد . اﻓﺰاﯾﺶ ﮐﻨﺘﺮاﺳﺖ، ﺗﻌﺪﯾﻞ ﻫﯿﺴﺘﻮﮔﺮام، ﺣﺬف ﻧﻮﯾﺰ و...، ﻣﺜﺎل ﻫﺎﯾﯽ از ﻋﻤﻠﯿﺎت ﭘﯿﺶ ﭘﺮدازش ﺑﺮ روی یک ﺗﺼـﻮﯾﺮ اﺳـت) و اپراتور لبه یاب ﮐﻨـی را ﺑـﺮ ﺳـﻪ ﮐﺎﻧـﺎل ﻣﺨﺘﻠـﻒ ﺗﺼـﻮﯾﺮ رﻧﮕـی اﻋﻤــﺎل ﮐــﺮده (R G B)و ﺑــﺎ ﺗﺮﮐﯿــﺐ ﺳــﻪ ﺗﺼــﻮﯾﺮ ﻟﺒــﻪ ﺣﺎﺻــﻞ و ﻋﻤﻠﯿــﺎت ﻣﻮرﻓﻮﻟﻮژی ﺑﺮ روی آن، ﺑﻪ ﺣﺬف ﻟﺒﻪ ﻫـﺎی ﺿـﻌﯿﻒ ﭘـﺮداخته اند . درﻧﻬﺎﯾﺖ ﺑﺎ اﻋﻤﺎل وﯾﮋﮔ ﻫـﺎی ﻫﻨﺪﺳـی، ﻧـﻮاحی ﻏﯿـﺮﻣﺘﻦ ﺣـﺬف ﺷﺪه و ﻧﻮاحی ﮐﺎﻧﺪﯾﺪ ﻣﺘﻦ از زﻣﯿﻨﻪ آن اﺳﺘﺨﺮاج می ﮔﺮدﻧﺪ.
![توضیح تصویر](http://upload7.ir/imgs/2014-12/48691267540482653601.png)
سپس برای تشخیص لبه ( ﻣﺮز ﻣﯿﺎن یک  شیء  و زﻣﯿﻨﻪ ﯾﺎ ﻣﺮز ﻣﯿﺎن اﺷﯿﺎء ﻫﻢ پوشان) از اپراتور لبه یاب canny استفاده شده.تصویر باینری حاصله از حذف نویز و ترکیب لبه های کشف شده می باشد.در این مرحله نوبت حذف اجزای غیر متنی و پس زمینه است اینگونه بیان کردند:( اﮔـﺮ ﻧﺴـﺒﺖ ﻣﺴـﺎﺣﺖ  ﺑﺰرﮔﺘﺮﯾﻦ ﻧﺎﺣﯿﻪ  ﺑﻪ ﻣﺴﺎﺣﺖ ﻧﺎﺣﯿﻪ ﻣﻮرد ﻧﻈـﺮ از ٢٠ ﺑﯿﺸـﺘﺮ و ﯾـﺎ ﻧﺴﺒﺖ ﻃﻮل ﺑﻪ ﻋﺮض آن از ۵  ﺑﯿﺸﺘﺮ ﺑﺎﺷﺪ، آن ﻧﺎﺣﯿﻪ ﺑﻪ ﻋﻨﻮان ﻏﯿﺮ ﻣﺘﻦ از ﺗﺼﻮﯾﺮ ﺣﺬف میﺷﻮد .ﻋﻼوه ﺑﺮاﯾﻦ، اﮔﺮ ﻧﺴﺒﺖ ﻣﺴـﺎﺣﺖ ﮐﻞ ﺗﺼﻮﯾﺮ ﺑﻪ ﻣﺴﺎﺣﺖ ﺟﺰء ﻣﺘﺼﻞ از٣ ﮐﻤﺘﺮ و ﯾﺎ از ٠٠۴ ﺑﯿﺸﺘﺮ ﺑﺎﺷد ،  آن ﺟﺰء ﻣﺘﺼﻞ ﺑﻪ ﻋﻨﻮان ﺟﺰءی از ﭘـﺲ زﻣﯿﻨـﻪ ﺗﻠﻘـی ﺷـﺪه و ﮐﻨﺎرﮔﺬاﺷـﺘﻪ میﺷــﻮد ﺑﺎﺗﻮﺟــﻪ ﺑــﻪ ﺳــﺎﺧﺘﺎر ﻣﺘــﻮن ﻓﺎرﺳــی ﺗﻌــﺪاد ﺣﻔﺮه ﻫﺎی ﻣﻮﺟﻮد در ﻫﺮ ﺟﺰء ﻣﺘﺼﻞ ﻧﯿﺰ، ﻧﺒﺎﯾﺪ از ٣ ﺗﺠـﺎوز ﮐﻨـﺪ، در ﻏﯿـﺮ اﯾﻨﺼــﻮرت اﯾــﻦ ﻧﺎﺣﯿـﻪ دور رﯾﺨﺘــﻪ میﺷــﻮد ، ﺗﺼﻮﯾﺮ ﺑﺎﯾﻨﺮی ﺷﺎﻣﻞ ﻣﺘﻮن ﺳﯿﺎه در زﻣﯿﻨﻪ ﺳﻔﯿﺪ ﺧﻮاﻫﺪﺑﻮد  ) 

![توضیح تصویر](http://upload7.ir/imgs/2014-12/56076025687569718637.png)
 ﻣﺘﻮن اﺳﺘﺨﺮاج ﺷﺪه از ﺗﺼﻮﯾﺮ دوباره ﺑﺎزﺷﻨﺎﺳــی می گردند،  ﻧــﻮاحی  اﺳــﺘﺨﺮاج ﺷــﺪه ﺑــﻪ ﻋﻨــﻮان ﮐﺎﻧﺪﯾـﺪاﻫﺎی  ﻣــﺘﻦ، ﺑﻄــﻮر ﻣﺤﻠـی ﭘﺲ ﭘــﺮدازش می ﺷــﻮﻧﺪ ﺑﻨــﺎﺑﺮاﯾﻦ، ﻧﻮاحی  ﮐﺎﻧﺪﯾﺪ ﻧﻬﺎﯾﯽ ﺣﺎﺻـﻞ از ﻣﺮاﺣـﻞ ﻗﺒـﻞ ﺑﻄـﻮر ﻣﺠـﺰاﻃـی ﺗﮑﻨﯿک ﭘﯿﺸﻨﻬﺎدی ﻣﺠـﺪدا ً ﻣـﻮرد ﭘـﺮدازش ﻗـﺮار میگیرند.
![توضیح تصویر](http://upload7.ir/imgs/2014-12/42737485358129675161.png)
# آزمایش‌ها
پیاده سازی شماره 1
این پیاده سازی نشان می دهد که چگونه  با کمک  Matlab از  قابلیت های جعبه ابزار پردازش تصویر  برای تشخیص یک واژه یا مجموعه ای از واژگان یا اعداد در روی تصویر استفاده کنید.
از هم­بستگی[^correlation] برای مشخص کردن قطعه بندی حرف ورودی با قالب استفاده می شود. اندازه ی فونت باید بزرگتر یا مساوی 24 ˟ 42 پیکسل باشد، به طوری که با اندازه ی workforce یکی باشد.
فناوری OCR، به سیستم های playback از سیستم های اسکن و تصویربرداری، این توانایی را می دهد که تصاویر کاراکترهای چاپی را به کاراکترهایی تبدیل کنند که کامپیوتر بتواند آن ها را تفسیر کرده یا تشخیص دهد. بنابراین، تصاویر کاراکترهای چاپی از یک تصویر bitmap دوباره تولید شده توسط اسکنر،
استخراج می شوند [14].
این فرایند شامل چندین جنبه مانند قطعه بندی، استخراج ویژگی و طبقه بندی است [3]،[15]

جعبه ابزار پردازش تصویر Matlab مجموعه ای از توابع است که توانایی های محصول را برای توسعه ی اپلیکشین و الگوریتم های جدید در زمینه ی پردازش تصویر و تحلیل، گسترش می دهد. محیط ریاضیاتی و تولید Matlab برای پردازش تصویر ایده ال است زیرا این تصاویر در واقع ماتریس هستند. این جعبه ابزار شامل توابعی برای:
·طراحی فیلتر
·بهبود و روتوش تصاویر
·تحلیل و آمار تصاویر
·عملیات مورفولوژیکی و هندسه ی رنگی
·تبدیلات دوبعدی.
پردازش تصویر اردوگاه کاری است که کاملا برای گروه ها و صنعت هایی ضروری است که در زمینه هایی مانند تشخیص پزشگی، نجوم، ژئوفیزیک، علوم محیطی، تحلیل داده ها در آزمایشگاه ها، بازرسی صنعتی و مانند آن کار می کنند [16].

**قطعه بندی** :
در اولین گام، تصویر crop می شود تا با متن هم اندازه گردد. سپس به صورت خط به خط جدا می شود. تابعی که عمل crop کردن تصویر را انجام می دهد، در زیر نشان داده شده است:
![توضیح تصویر](http://upload7.ir/uploads//6bd37d5ca30e157821ff75fb67318d190d96aad7.png)
 شکل زیر نشان می دهد که این ویژگی چگونه کار می کند:
 ![توضیح تصویر](http://upload7.ir/uploads//76f49ffd5a26588050abb99abe5d413bc78bff56.png)
همان طور که در تابع نشان داده شده است، مقدار حد آستانه برای تبدیل تصویر باینری برابر 0.99 است. (image= im2bw (image, 0.99)). این حد آستانه برای این است که رنگ های با مقادیر RGB نزدیک به 255 (ماکزیمم)، در تصویر باینریصفر در نظر گرفته شوند.
وقتی تصویر مرتب شد، گام بعدی جدا کردن هر خط است. برایاین کار تابع زیر استفاده می شود:
![توضیح تصویر](http://upload7.ir/uploads//4decb66d0dd10beb25ddf219554d7d950c9f54cc.png)
شکل زیر نشان می دهد که این ویژگی چگونه کار می کند:
![توضیح تصویر](http://upload7.ir/uploads//63e22eae9fa5c7fd077845efef1e80b27884822a.png)
وقتی هر یک از خطوط تصویر جدا شد، لازم است هر حرف از ماتریس fl تصویر حذف گردد. برای این تابع bwlabel استفاده می شود که مولفه های همبند تصویر را برچسب گذاری می کند. به بیان دیگر، این تابع خطوط و فهرست های حجمی دارد. برای جداسازی هر حرف، کد زیرا به کار می رود:
![توضیح تصویر](http://upload7.ir/uploads//ac4f65ed51b970449d0f25c41f9204a8abdd2fe1.png)
سپس هر حرف نرمال سازی می شود تا به اندازه ی 24˟ 42 پیکسل در بیاید که همان اندازه ی قالبی است که هم­بستگی را اجرا خواهد کرد. تابع زیر برای نرمال سازی استفاده می شود:
![توضیح تصویر](http://upload7.ir/uploads//c16c4a4b845e8718754e5ebc707cc9ad60acfc4c.png)
**طبقه بندی**:
عمل اصلی استفاده شده، طبقه بندی هم بستگی دوبعدی بود. این عمل، مقداری برای شباهت بین دو ماتریس (تصاویر) ارائه می کند. تابع corr2 این عمل را با استفاده از معادله ی [4] انجام می دهد:
![توضیح تصویر](http://upload7.ir/uploads//d36ae34d781b7e6af1f3af618216d049a71223a9.png)
تابع زیر هم­بستگی را بین قالب های استخراج شده و هر حرف انجام می دهد:
![توضیح تصویر](http://upload7.ir/uploads//23e674c79110e4a6440300cdc67de3b13c04fd39.png)
**قالب ها**:
هر قالب یک تصویر باینری با اندازه ی 24 ˟ 42 پیکسل است. ذخیره ی قالب ها در یک ساختار سلول به ترتیب زیر است:
![توضیح تصویر](http://upload7.ir/uploads//d4faa010c9a114d8b3f08254868148bc62394720.png)
**برنامه ی اصلی**:
برنامه ی اصلی در زیر نشان داده شده است:
![توضیح تصویر](http://upload7.ir/uploads//951ed131097b7cc07517bff17c5f16d699ed3aa9.png)
**برنامه ی تست**:
پس از آن که برنامه پایان یافت، در هنگام اجرای توابع tic  toc در ابتدا و انتهای کد،می­توانند برای اندازه ­گیری زمان پاسخ­گویی استفاده شوند. وقتی که اجرا به پایان رسید، یک فایل متنی حاوی کلمات تصویر،ظاهر خواهد شد.
![توضیح تصویر](http://upload7.ir/uploads//8030d191aae6c8b7390ad282d1469a05466fa8f5.png)بر روی صفحه ­ی اسکن شده ­ای با وضوح 200 DPI و روشنی 128 (پارامترهای پیش ­فرض اسکنر) که حاوی چندین کلمه­ ی دست­ نوشته و چندین عدد است،تست دیگری انجام گرفت. نمونه در شکل ذیل نشان داده می­شود:
![توضیح تصویر](http://upload7.ir/uploads//c59d67e4d8891d0900a901ef170bd1f67b98493a.png)
در هنگام اسکن کردن تصویری، نویزهایی (نقاط سیاهی) بر روی آن یافت می­شوند. راه ­حل آن، پیاده ­سازی  یک فیلتردر ابتدای کد برای حذف این نویزهااست.
![توضیح تصویر](http://upload7.ir/uploads//ecb087679b9eb99d963f51b5e6acadbc1d471c7a.png)
شکل­های ذیل، متن خروجی را نمایش می­دهند:

![توضیح تصویر](http://upload7.ir/uploads//5b67794370f6fff9794ad3dd391f064959968a7d.png)![توضیح تصویر](http://upload7.ir/uploads//a6a0d88b410357504d481c5834d65d5b2a60ce5e.png)
![توضیح تصویر](http://upload7.ir/uploads//68630d6926b81bed0638c57f9c847ae1be3108b9.png)
![توضیح تصویر](http://upload7.ir/uploads//846191bf4680a55c90b14139dcd98bca82bc47d1.png)
![توضیح تصویر](http://upload7.ir/uploads//d2979d3b208f1a856b20506a14e89e2a6d63d1df.png)
![توضیح تصویر](http://upload7.ir/uploads//fc4ab9e8bf2180a5f08081a8e1a23c7d24cf3895.png)
![توضیح تصویر](http://upload7.ir/uploads//955a4142e818074f07211eec01d3acf87734cbec.png)
![توضیح تصویر](http://upload7.ir/uploads//6a872dc1943d13dcb570388d9b07f3575e073666.png)
![توضیح تصویر](http://upload7.ir/uploads//e27ffb2c7cfa0ecbc00daf2d69c487d7fec324e3.png)
![توضیح تصویر](http://upload7.ir/uploads//dc70c7bff992652d775a6fb1ac22f29cd5b49761.png)
![توضیح تصویر](http://upload7.ir/uploads//58ccc10a2d98e8e68821b69123f0183b1fbdfd1d.png)
![توضیح تصویر](http://upload7.ir/uploads//54b5286fb9bd626f5e592a9d6264cc4ebf6b004b.png)
می­توان نتیجه­ گیری کرد ،انحنای کوچکی که در سه تا هفت وجود دارد مخصوصا در هفت آخر، و همچنین در حرف I و حروف کوچک نیز باعث شده آنها به طور صحیح شناسایی نشوند و در شناسایی شون خطا رخ بدهد
**معیارهای کد**:
درMatlab دو ابزار وجود دارد که به بهبود کد کمک می کند. یکی از آن ها پروفایل[^profile] است که زمان اجرای هر تابع را محاسبه نموده و متغیرهایی را نشان می دهد که می توانند به سرعت کد کمک کنند.
ابزار دوم متریک کد است، برنامه ای که در MathWorks File Exchangeموجود است[17]. 
این برنامه مشخص می کند که آیا نام های توابعی که به کار می بریم، با توابع تعریف شده در مسیر Matlab تداخل دارند یا خیر، معیاری برای پیچیدگی برنامه (پیچیدگی سیکلوماتیک) و پیشنهاداتی برای اندازه­ گیری پیچیدگی برنامه و روش­های بسیاری برای بهبود کارایی برنامه تعیین می­کند.نتیجه ی اعمال متریک ها به کد OCR بدین ترتیب است:

**نتیجه گیری:**
·اندازه ی فونت نباید کمتر از 24 ˟ 42 پیکسل باشد.
·تصویر ورودی می تواند حروف رنگی باشد یا خیر.
·اگر نویز تصویر زیاد باشد می توان از تابع medfilt2 استفاده کرد و تابع imcrop برای crop کردن تصویر لازم است.
·اگر اندازه ی فونت کوچک باشد، از imdilat استفاده کنید تا ضخامت آن را قبل از پیش رفتن برنامه زیاد نمایید.
·برای متن با حروف کوچک، وابستگی کمتری به برنامه ی اصلی متغیر واژه به کار می رود.
·زمان پردازش متن آزمایشی شکل 6: >> tic; OCR; toc زمان سپری شده 3.806446 ثانیه است. با این وجود، روی یک PC با یک گیگابایت RAM، زمان پردازش 2.4 ثانیه بود.
·اگر staff، 20 ˟ 20 پیکسل باشد، زمان پردازش کاهش می یابد.
همچنین شما می توانید کدها و نمونه ها را از [اینجا](http://upload7.ir/download/54a6e5ba03a3d/OCR.rar)دریافت نمایید.


# کارهای آینده

# مراجع
[1] Robust Text Detection in Natural Scene Images. [لینک](http://arxiv.org/pdf/1301.2628.pdf)
[2] K. Wang and S. Belongie, “Word spotting in the wild,” in Computer Vision – ECCV 2010, ser. Lecture Notes in Computer Science, K. Daniilidis, P. Maragos, and N. Paragios, Eds. Springer Berlin / Heidelberg, 2010, vol. 6311, pp. 591–604. [لینک] 
(http://cs229.stanford.edu/proj2012/Bell-TextDetectionAndRecognition.pdf)
[3] Text Detection and Character Recognition in Scene Images with Unsupervised Feature Learning. [لینک](http://crypto.stanford.edu/~dwu4/ICDAR2011.pdf)
[4]  Review on Text Detection Methodology from Images [لینک](http://www.ijarcce.com/upload/2014/february/IJARCCE5J__a_poonam_review.pdf)
[5] Review on Text String Detection from Natural Scenes
(http://www.ijeit.com/vol%202/Issue%204/IJEIT1412201210_42.pdf)
[6] IMPROVING TEXT RECOGNITION IN IMAGES OF NATURAL SCENES . [لینک]
(https://web.cs.umass.edu/publication/docs/2014/UM-CS-PhD-2014-003.pdf)
[7 ] Promotion text images  by  Morphology operator  
[\[لینک\]](http://cld.persiangig.com/download/1m0VP9/dl)
[8 ] Analysis and Retrieval  persian Documentation by page  Segmentation
[[لینک](http://cld.persiangig.com/download/XkSLqy/dl)
[9] New Method  Extraction persian text from  Complex images  Commercial Places  image Processing Technique Based
[لینک](http://cld.persiangig.com/download/KuGOk6/dl)
[10] A Simon effect induced by induced motion and location: Evidence for a direct linkage of cognitive and motor maps
[لینک](%28http://www.unige.ch/fapse/PSY/persons/kerzel/reprints/kerzel.hommel.bekkering.2001.pdf%29)
[11] The Laplacian Pyramid as a Compact Image Code[لینک](http://cld.persiangig.com/download/I00Ojk/dl)


[12] A Multiresolution Spline With Application to Image Mosaics[لینک](http://cld.persiangig.com/download/Dx85N6/dl)
[13]Canny Edge Detection[لینک](http://www.cse.iitd.ernet.in/~pkalra/csl783/canny.pdf)
[14] http://www.pearsonncs.com
[15] A MATLAB PROJECT IN OPTICAL CHARACTER RECOGNITION (OCR), Jesse Hansen
[16] http://www.eldish.net/hp/automat/matlab.htm
[17]  http://www.mathworks.com/matlabcentral/fileexchange/ loadFile.do?objectId=10514&objectType=file


# پیوندهای مفید