۱. مقدمه

تشخیص و شناسایی متن در تصاویر یکی از مشکلات تشخیص بصری است[19]
کلمه OCR مخفف کلمات به رسمیت شناختن شخصیت نوری است.این تکنولوژی امکان شناسایی خودکار از طریق یک مکانیزم نوری را به ما می دهد. در مورد انسانها، چشم نقش مکانیزم نوری را ایفا میکند.OCR یک تکنولوژی است که تابعی از قابلیتهای انسان مانند توانایی انسان ازخواندن را ارائه میکند.اگر چه OCR قادر به رقابت با خواندن انسان نیست.OCR می تواند متنون دست نوشته و چاپ شده را تشخیص دهد،اما عملکرد OCR به طور مستقیم وابسته به کیفیت
اسناد ورودی OCR طراحی شده برای پردازش تصاویر است.تصاویر به چند دسته تقسیم میشوند که : شامل متن با بسیار کمی درهم و برهمی و غیر متن که تصاویری گرفته شده توسط دوربین ،موبایل و غیره هستند.نرم افزارهای بسیاری در زمینه شناسایی متن وجود دارد که تصویر ورودی از طریق یک اسکنر و یا دیجیتال دوربین به کامپیوتر داده می شود.اما اگر شما یک اسکنر و دوربین های دیجیتال در دست راس نداشته باشید، مشکل سخت افزاری رخ می دهد،مثلاً در فضایی استفاده ودسترسی به کامپیوتر و اسکنر( اشغال فضای بزرگ).حتی به این نتیجه رسیده اند که به منظور غلبه بر محدودیت های کامپیوتر و سخت افزار، سیستم تشخیص متن حتی بر روی تلفن همراه ارائه شود[20].
در میان اطلاعات مختلفی که در تصویر موجود است، اطلاعات متنی از اهمیت ویژ ه ای برخوردار است، چراکه به آسانی از سوی انسان یا حتی رایانه قابل فهم بوده و امکان توصیف محتوای یک تصویر را فراهم می کند. علاوه بر این، از داده های استخراج شده براساس تحلیل اطلاعات متنی موجود در تصاویر می توان کاربردهای متنوعی نام برد که به انسان در تعامل با طبیعت و صنعت کمک می کند.

۲. عملکرد سامانه نویسه خوان

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

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

۳. کارهای مرتبط

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

ژاوو چنگ و تیم آنها روشی [1] را برای تشخیص نوشتار ارایه نمودند، این روش برای استخراج مناطق دارای بیشترین پایداری به عنوان کاراکتر کاندید که از استراتژی مینیمم کردن تغیرات و اختلافات منظم 1طراحی شده است.کاراکترهای کاندید شده بوسیله یک الگوریتم خوشه بندی تک لینک2 به متن های کاندید شده گروه بندی میشوند.

توضیح تصویر

در این روش از الگوریتم (maximally stable extremal regions (MSER استفاده شده است در لینک پایین یک برسی از این کار نمایش داده شده[18].

این کار [2]بر اساس یک سیستم مبتنی بر احتمال ساخته شده . از یک ردیاب کاراکتر چند مقیاسی3 مؤثر برای تعیین مکان کاراکترها درون یک تصویر بدون نقطه قطعه‎سازی استفاده شده. این با یک جستجوی مبتنی بر گراف دنبال می‎شود که ردیابی‎ها را به لغات تقسیم‎بندی می‎کند و احتمالات نسبی‎شان را ارزیابی می‎کند .
توصیف گر HOG یک توصیف گر مبتنی بر Patch است که تخمین متراکمی از شکل در یک تصویر کلی فراهم می‎کند با استفاده از هیستوگرام‎های جهت‎گیری‎های گرادیانی کوانتیره شده برای Patch‎های تصویری کوچک. این روش اصالتاً برای ردیابی پیاده‎ها معرفی شد،برای ردیابی کاراکترها از رگرسیون منطقی4 بر روی بلوک‎هایی از توصیف‎گر HOG استفاده کردند،برای خواندن لغات به طور افقی در امتداد هر خط اسکن می‎کنیم و یک گراف هدایت شده از لغات احتمالی می‎سازیم،وقتی گراف تکمیل شد، می‎توانیم وزن‎های لبه را بر مبنای احتمال ترکیب حروف ظاهر شونده در متن انگلیسی و وزن‎های گره با استفاده از احتمال ردیابی و احتمال اینکه کاراکتر به خط تعلق داشته باشد اختصاص بدهیم. با بدست آوردن لگاریتم احتمال احتمالات پیدا کردن متحمل‎ترین واژه پیمایش گراف با حداقل هزینه می‎شود که می‎تواند با الگوریتم Djpkstra یا A* حل شود، در اشکال زیر مثالی از رویکرد پیشنهادی نمایش داده شده‌اند:

توضیح تصویر
توضیح تصویر

در این مقاله Adam Coates و همکاران نشان [3] از داشنگاه Stanford یک سیستم ردیابی و شناسایی بر مبنای الگوریتم مقیاس‎پذیر یادگیری ویژگی تولید کرده‎اند،بعضی از سیستم‎ها با طرح‎های یادگیری بسیار انعطاف‎پذیر تلاش می‎کنند تمام اطلاعات لازم از داده‎های Lable شده را با حداقل دانش قبلی یاد دهند. مثلاً معماری شبکه عصبی چند لایه برای شناسایی کاراکتر استفاده شده‎اند و رقیب سایر روش‎های پیشتازانه هستند،Setup پایه رابطه نزدیکی با شبکه عصبی کانووله کننده دارد اما به خاطر روش آموزش 5 آن می‎تواند استفاده شود تا به سرعت مجموعه‎های بسیار بزرگ از ویژگی‎ها را با حداقل تنظیمات بسازد مراحل :
1) اعمال یک الگوریتم یادگیری ویژگی‎ بدون نظارت بر روی مجموعه‎ای از Patchهای تصویری برداشت شده از داده‎های آموزش تا مجموعه‎ای ویژگی‎های تصویری یادگیری شود. 2) ارزیابی ویژگی‎ها به صورت کانوولاسیون بر روی تصاویر آموزش. کاهش تعداد ویژگی‎ها با استفاده از تجمع فضایی،3) train کردن یک طبقه‎بندی کننده خطی یا برای ردیابی متن یا برای شناسایی کاراکتر. یادگیری ویژگی در اینجا از شکل تغییریافته‎ای از کلاسترینگ K-Mean استفاده می‎کنیم مراحل: (1) جمع‎آوری مجموعه‎ای از تکه‎های تصویری کوچک از داده‎های آموزشی،
دراین مورد از تکه‎های سیاه و سفید 8×8 استفاده کردند بنابراین x(i) ∈R64
(2) اعمال پیش‎پردازش آماری ساده (مثل سفید کردن) بر روی تکه‎های ورودی جهت دست‎یابی به مجموعه داده‎ای جدید(x(i
(3) اجرای یک الگوریتم یادگیری بدون نظارت بر برای نگاشت 6از Patch های ورودی به بردار ویژگی ((z(i) = f(x(i
مجموعه‎ای از m تکه‎ تصویری 8×8 پیکسل را استخراج می‎کنیم تا بردارهای پیکسل x(i) ∈R64,i ∈{1,...,m} برسیم. هر بردار از نظر روشنی و کنتراست نرمال می‎شود سپس می‎توانیم ( x˜(i را با استفاده از ZCA روشن کنیم تا ( x(i را بدست آوریم.پس به جای یادگیری مرکز ثقل‎های مبتنی بر فاصله اقلیدسی مجموعه‎ای از بردارهای نرمال شده را یاد می‎گیریم .موارد نشان داده شده در شکل 1 مجموعه‎ای از عناصر لغت‎نامه هستند (ستون‎های D) که از این الگوریتم به دست آمده‎اند وقتی‎که بر روی تکه‎های روشن شده استخراج شده از تصاویر کوچک کاراکترها اعمال شدند

توضیح تصویر

هم ردیاب و هم طبقه‎بندی کننده کاراکتر تصویرهای 32×32 برای هر زیر قطعه 7به ابعاد 8×8 را محاسبه می‎کنیم که d×25×25 بدست می‎آید. بطور رسمی، اجازه می‎دهیم z ∈Rd نشان‎دهنده یک Patch8 در x واقع در جایگاه j و i درون تصویر ورودی باشد. در این مرحله لازم است ابعاد مدل را قبل از دسته‎بندی کاهش بدهیم.یک روش رایج برای انجام این کار، تجمع فضایی است، جائیکه پاسخ‎های یک ویژگی‎ را در مکان‎های مختلف به یک ویژگی ادغام می‎کنیم.یک مجموعه آموزشی برای این طبقه‎بندی کننده از طریق استخراج پنجره‎های 32×32 از مجموعه داده‎ای ICDAR 2003 می‎سازیم با استفاده از باکس‎های محدودکننده تا تصمیم‎بگیریم که آیا پنجره حاوی متن هست یا نه با این روش مجموعه‎ای از 60000 پنجره 32×32 را برای آموزش برداشت می‎کنیم (30000مثبت ،30000منفی) .این بردارهای ویژه و Lable های "حاوی متن" یا "بدون متن" ground truth که از باکس‎های محدودکننده بدست می‎آیند برای آموزش دادن یک SVM خطی استفاده می‎شوند. ما بعداً ازاستخراج ویژگی های 8 مان طبقه‎بندی کننده آموزش داده شده‎مان و برای ردیابی به شکل پنجره لغزنده معمولی استفاده می‎کنیم.برای هر پنجره 32×32 از تصویر محاسبه می‎کنیم. این فرآیند در مقیاس‎های چندگانه انجام می‎شود و سپس برای هر مکان در تصویر اصلی یک معادل امتیازی حداکثر به خروجی طبقه‎بندی کننده که در هر مقیاس بدست آمده اختصاص می‎دهیم.با این مکانیزم هر پیکسل را با یک امتیاز مطابق با اینکه آن پیکسل بخشی از یک بلوک متنی است یا نه Lable می‎کنیم
توضیح تصویر

شکل 3- منحنی‎های دقت – فراخوانی برای ردیاب‎هایی با تعداد متغیر ویژگی‎ها
توضیح تصویر

شکل 4- مثال خروجی‎های طبقه‎بندی کننده ردیابی متن
توضیح تصویر

شکل 5- دقت طبقه‎بندی کاراکتر (62- روش) بر روی مجموعه ICR 2003 به صورت تابعی از تعداد ویژگی‎های یادگیری شده
توضیح تصویر

در این مقاله شیوه های مختلف [5]برای پیدا کردن رشته های حروف را از عکس های طبیعی بررسی شده است.تکنیک های مختلفی مانند استخراج منطقه رشته حروف از عکس بر اساس کانتور و ضخامت حروف، باینری سازی بهینه، تکنیک های پیشرفته ای که توسط شیوه آنالیز اجزاهای مرتبط انجام می شود
روش اول :Closed Contour:کنتور بسته9 فرض شده است که حروف یک کانتور بسته می باشند و یک رشته حروف شامل حروفی است که غالبا در امتداد یک خط قرار گرفته اند. بنابراین با استفاده از استخراج کانتورهای بسته و جستجو اطراف آنها مناطق رشته های حروف به دست خواهند آمد
روش دوم:Image Binarization: باینری سازی تصاویر 10 به خوبی می تواند عکسهای مناظر طبیعی سایه دار، با نور غیر یکنواخت، رنگ پس زمینه پایین و با نویزهای بالا را تحلیل کند. آنالیز اجزای مرتبط جهت تعریف باینری سازی نهایی عکس که غالبا شامل متن نیز می باشند استفاده می شود.
یک تکنیک، کاراکتر متنهای مورد نظر را از اجزای به هم مرتبط با گرادیان شکل و رنگ آنها انتخاب می کند. قسمت رنگ پایه بهتر از گرادیان عمل می کند اما این شیوه زمان بیشتری را برای شناسایی متن در هر لایه رنگ صرف می کند،شیوه گروه بندی متن در یک خط11 می تواند برای استخراج متن در جهت های مختلفی استفاده شود. ترکیب شیوه های پارتیشن رنگ پایه12 و گره حروف مجاور13بهترین بازدهی را به ما می دهد
الگوریتم استخراج متن از تصاویر به سه گروه عمده ویژگی گرادیان پایه14و تقسیم بندی رنگ پایه15و انالیز بافت پایه 16. تقسیم بندی می شود. در مقاله اییChucai Yi and YingLi Tian شیوه جدیدی برای استخراج متنهایی که دارای سایز و رنگ متفاوت با پس زمینه پیچیده می باشند مورد استفاده قرار می گیرد. این شیوه پیشنهاد شده شامل دو مرحله می باشد. الف) تقسیم بندی تصویر برای پیدا کردن کاندیدهای حروف متن بر اساس غیر یکنواختی رنگ و گرادیانی که در آنها وجود دارد. در این مرحله 2 روش برای تقسیم بندی تصاویر به نقشه باینری اجزای مرتبط که با هم اشتراکی ندارند وجود دارد: روش مبتنی بر گرادیان و روش مبتنی بر رنگ 17 ب) گروه بندی کاندیدهای حروف برای شناسایی متن براساس ویژگی های ساختاری متن مانند سایز کاراکترها ، فواصل بین آنها و به خط بودنشان عمل میکند. در این مرحله نیز دو روش آنالیز ساختاری متن وجود دارد:روش گروه بندی کاراکترمجاور و گروه بندی خطی متن 18 . همچنین در این مقاله الگوریتم بهینه ای که توسط آن می توان تصاویر متن با پس زمینه های پیچیده را بصورت اتوماتیک شناسایی، مکان یابی و استخراج کرد نیز معرفی شده است که بر اساس تکنیک کاهنده رنگ عمل می کند. در همین راستا می خواهیم الگوریتمهایی که جهت استخراج متن از تصاویر طبیعی می باشند را برسی کنیم.
1) شیوه کانتور بسته
یکی از مشخصه های رایج حروف در تصاویر واقعی این است که بیشتر آنها میتوانند زمانی که پروسه ایجاد لبه ها بر انها اعمال میشود، یک کاتور بسته را ایجاد کنند. در همین راستا Tomohiro Nishino این شیوه را برا شناسایی کانتور های بسته از تصاویر بکار گرفتند. همچنین فرض شده است که رشته های حروف شامل کاراکترهاییی هستند که در یک خط مستقیم قرار گرفته اند. با توجه به این فرضیات رشته های حروف می بایست از مناطق با کانتور بسته که بطور منظمی در کنار هم قرار گرفته اند.Tomohiro Nishino توضیح داد که چگونه کانتورهایی که بصورت افقی کنار هم قرار گرفته اند را شناسایی کرد. ابتدا یک محیط مستطیلی از کانتور بسته محاسبه می شود. سپس این مستطیل توسط برخی از پیکسلها که به اندازه عرض مستطیل می باشند به سمت راست منتقل می شوند.اگرمستطیل شامل کانتور بسته از مرکز محیطی مستطیل دیگری باشد، فرض می شود که این کانتورهای بسته بصورت افقی در کنار هم قرار گرفته اند و شامل رشته های حروف یکسانی می باشند. بنابراین فرض می شود کانتورهای بسته ای که جدا از هم می باشند هیچ ارتباطی با کاراکتر های حروف ندارند. فرض می شود مستطیل های محیطی رشته های حروف، مناطق این رشته ها باشند. با این پروسه مناطق رشته های افقی در کانتورهای بسته استخراج شده است. هر دو کانتورهای بسته و باز که در سمت چپ و راست مناطق رشته های حروف قرار گرفته اند، استخراج شده و ضخامت هر کدام از انها نیز محاسبه شده است. اگر این کانتورها دارای ضخامت یکسان از کاراکترها در مناطق باشند، به مناطق رشته های حروف افزوده می شوند.

توضیح تصویر

2) آنالیز اجزای مرتبط و باینری کردن تصاویر
این متد ارائه شده برای شناسایی متن از تصاویز طبیعی بر اساس یک باینری سازی بهینه و تکنیک پیشرفته آنالیز اجزای به هم پیوسته می باشد. فلوچارت این روش در شکل 4 به ان اشاره شده است. با شروع از تصویر، ..... یک تصویر با لایه های خاکستری تولید می کند. سپس این دو تصویر را با استفاده از تکینیک پیشرفته باینری سازی ، باینری می کند. در ادامه تکنیک پیشنهاد شده شامل توابع تصمیم هستند که نشان می دهند کدام تصاویر شامل اطلاعات متنی می باشند
1-باینری سازی تصاویر به خوبی روی تصاویری از طبیعت که دارای سایه نور غیر یکنواخت، کنتراست پایین و نویزهای وابسته به سیگنال بزرگ هستند، پیاده سازی می شود. آنالیز اجزای به هم پیوسته برای تعریف تصویر باینری سازی شده نهایی که مشخصا دارای متن می باشد، مورد استفاده قرار میگیرد.
2- این روش ارائه شده، موفقیتهای زیادی برای موتورهای OCR به همراه داشته و نرخ موفقیت آنها در شناسایی متن را افزایش داده است.

توضیح تصویر

3) .گروه بندی و تقسیم ساختار پایه
توضیح تصویر

4) .شیوه شناسایی مرز در تصاویر و تکنیک کاهنده رنگ 19و 20 .
در روش ﻫﺎی ﺑﺮ ﭘﺎﯾﻪ رﻧﮓ، از اﻃﻼﻋﺎت ﺳﻄﺢ ﺧﺎﮐﺴﺘﺮی ﯾﺎ رﻧگی دریک ﻧﺎﺣﯿﻪ ﻣﺘﻦ و ﯾﺎ اﺧﺘﻼف آن ﺑﺎ زﻣﯿﻨﻪ اﺳﺘﻔﺎده میﺷﻮد

کیفیت تصویر موجب می شود که دوسطحی سازی مناسب تر و کاراکترها با خطای کمتری شناسایی شوند[7]..در این روش بیان شده که ابتدا فیلتر وینر برای افزایش کارایی عملیات مورفولوژی مورد استفاده قرار گرفته است.با استفاده از عملگرهای مورفولوژی تقریبی از زمینه محاسبه شده و زمینه بدست آمده از تصویر اصلی حذف می شود .واز فیلتر وینر و unsharp mask برای از بین بردن نویز باقی مانده استفاده می شود.
تعریفی خلاصه از مورفولوژی یا پردارش تصویر مورفولوژیکال:مدلی ریاضیاتی مبتنی بر نظریه شبکه‌ای، مورد استفاده در پردازش تصویر دیجیتال که از مجموعه ایی عملیات غیر خطی وابسته به شکل و یا ویژگی های ریخت شناسی تصویر بهره می برد.طبق گفته ویکیپدیا عملیات مورفولوژیکال تنها با تکیه بر مرتب سازی مقادیر پیکسل ها ،نه بر مقادیر عددی آنها بلکه به دلیل مقادیر ویژه مناسب پردازش از تصاویر باینری و همچنین توانایی اضافه کردن تصاویر از قبیل تصاویر با وضوح پایین را دارد.
پیوند مفید
از کاربردهای بهبود کیفیت میتوان به ایجاد نسخه تصویری از اسناد تاریخی و متون قدیمی اشاره کرد و همچنین در حوزه سیستم های خودکار که ورودی آنها تصاویر متن می باشند مثال زد:مانند سیستم های دسته بندی محصولات بر اساس بارکد حک شده بر روی آنها ،سیستم های خودکار خواندن چک های بانکی و غیره....
در این مقاله گفته شده ابتدا تصویر منفی تصویر اصلی محاسبه و توسط فیلتر وینر پردازش می شود
فیلتر وینر:یک فیلتر پایین گذر خطی که مقدار پیکسل خروجی را بر اساس ویژگیهای آماری همسایگی یک پیکسل مانند میانگین وانحراف معیار منطبق محاسبه می نماید. که اثر آن بر روی تصویر مانند سایر فیلترهای پایین گذر21 آرام کردن تصویر است،سپس خروجی فیلتر شده با استفاده از عملگر «morphology opening با توجه به شکل و اندازه همسایگی تعریف شده برای آن متن را از زمینه جدا میکند و نتیجه برای از بین رفتن نویز بار دیگر توسط فیلتر وینر پردازش می شود.برای افزایش تمایز تابع گاما انتخاب شده که مقدار کوچکتر از 1 باعث روشنایی بیشتر و بزرگتر از 1 تیرگی بیشتری را اعمال می کند.برای از بین رفتن تصاویر پشت صفحه که به صورت مات و آرام هستند از فیلتر بالا گذر22به نام unsharp mask استفاده نموده اند که یک سری از نتایج در اشکال ذیل نمایش داده شده است.

توضیح تصویر

توضیح تصویر

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

توضیح تصویر

فاصله بین دو مستطیل احاطه کننده کلمات توسط simon برای کلاس بندی و خوشه بندی مولفه ها پیشنهاد شد.[10]. . ﻓﺎﺻﻠﻪ ﻣﻴﺎن ﻫﺮ دو ﻣﺆ ﻟﻔﻪ Cj وCi ﻫﻤﺒﻨﺪ ﻳﺎ دو Object ،Oj Oi ﺑﻪ ﻋﻨﻮان ﻓﺎﺻﻠﻪ ﻣﻴﺎن ، ﻣﺴﺘﻄﻴﻞ ﻫﺎی ﻣﺤﺎﻃﺸﺎن در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ .به صورت شکل ذیل:
توضیح تصویر

در این مقاله بیان کردند که با ادغام عمودی و افقی ﻣﺴﺘﻄﻴﻞ ﻫﺎی ﻣﺤﺎﻃ ﺑﺮای ﻣﺠﻤﻮﻋﻪ ﻣﻌﻴﻦ ﻣﺆﻟﻔ ﻪ ﻫﺎی ﻫﻤﺒﻨﺪ 25،که به صورت عمودی و افقی به هم نزدیک و در لیست های پیوندی ذخیره شده اند طبق الگوریتم های ذیل به خطوط متنی گرافیکی عمل می شود .
توضیح تصویر

توضیح تصویر

در این مقاله عنوان شده که از ساختار هرمی برای برای آنالیز چندرزولیشنی 26استفاده می گردد.در مقاله شماره [11]و [12] به طور مفصل این ایده توضیح داده شده که ﺳﺎﺧﺘﺎر ﺗﺼﻮﻳﺮ ﻫﺮﻣﻲ ﻳﻚ ﺳﺎﺧﺘﺎر ﺳﺎده و ﻗﻮی ﺑﺮای ﻧﻤﺎﻳﺶ ﺗﺼﺎوﻳﺮ در ﭼﻨﺪ رزوﻟﻮﺷﻦ ﻣﺨﺘﻠﻒ ﻣﻲباشد در اﺑﺘﺪا اﻳﻦ ﺳﺎﺧﺘﺎر ﺗﻮﺳﻂ Burt Adelsonدر ﺳﺎل ١٩٨٣ ﺑﺮای ﻛﺎرﺑﺮدﻫﺎی ﺑﻴﻨﺎﻳﻲ ﻣﺎﺷﻴﻦ 27و ﻓﺸﺮده ﺳﺎزی اراﺋﻪ ﮔﺮدﻳﺪ . که این روش مختصراً دراینجا اینگونه بیان شده: . ﻳﻚ ﺗﺼﻮﻳﺮ ﻫﺮﻣﻲ از ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﺗﺼﺎوﻳﺮ ﺗ ﺸﻜﻴﻞ ﺷﺪه اﺳﺖ ﻛﻪ ﺑﻪ ﺻﻮرت ﺷﻜﻞ ﻫﺮم، رزوﻟﻮﺷﻦ و اﻧﺪازه آن ﻛﺎﻫﺶ ﻣﻲ ﻳﺎﺑﺪ . ﺷﻜﻞ(٣) ﺗﺼﺎوﻳﺮ ﻫﺮﻣﻲ را ﻧﺸﺎن ﻣﻲ دﻫﺪ، در اﻳﻦ دﻳﺎﮔﺮام ﺑﺎﻳﺪ ﻫﺮم ﺷﺎﻣﻞ ﺗﺼﻮﻳﺮ اﺻﻠﻲ در رزوﻟﻮﺷﻦ ﺑﺎﻻ و ﻗﻠﻪ ﻫﺮم ﺗﺼﻮﻳﺮ ﺗﻘﺮﻳﺒﻲ در رزوﻟﻮﺷﻦ ﭘﺎیین می ﺑﺎﺷﺪ . ﺑﺎ ﺣﺮﻛﺖ ﺑﻪ ﺳﻤﺖ ﺑﺎﻻی ﻫﺮم اﻧﺪازه و رزوﻟﻮﺷﻦ ﺗﺼﺎوﻳ ﺮ ﻛﺎﻫﺶ میﻳﺎﺑﺪ . ﺗﺼﻮﻳﺮ ﻫﺮمی ﺑﻪ اﻳﻦ ﺻﻮرت ﺳﺎﺧﺘﻪ می ﺷﻮد ﻛﻪ رزوﻟﻮﺷﻦ ﺗﺼﻮﻳﺮ ﺑﺎ اﻧﺪازه M × N ﺑﻪ ﻳﻚ ﭼﻬﺎرم ﺑﻪ ﻃﻮر پی در پی ﻛﺎﻫﺶ می ﻳﺎﺑﺪ ﺗﺎ زﻣﺎﻧﻴﻜﻪ اﻧﺪازه اش ﺑﺰرﮔﺘﺮ از ′M′ × N اﺳﺖ بطﻮرﻳﻜﻪ ′ N و ﻳﺎ ′M ﻛﻤﺘﺮ از ١٠٠ ﻣﻲ ﺑﺎﺷﺪ.
توضیح تصویر

توضیح تصویر

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

همنطور که در ابتدا توضیح داده شد ﻗﻄﻌﻪ ﺑﻨﺪی ﺻﻔﺤﻪ در روش رزوﻟﻮﺷﻦ ﭘﺎﺋﻴﻦ وبالا انجام می پذیرد،سطوح روش رزوﻟﻮﺷﻦ ﭘﺎیین هرمی به N ناحیه مجزا قطعه بندی می شود سپس مستطیل های محاط(کوچکترین مستطیلی که محدوده را مشخص می کند) پس از فراهم نمودن و آنالیز مولفه های همبند با توجه به ساختار هرمی رزوﻟﻮﺷﻦ ﭘﺎیین محاسبه می شود.به صورت شکل ذیل:
توضیح تصویر

دراین مقاله روشی[9] برای استخراج متون از تصاویر با استفاده از اپراتور لبه یاب کنی28 ارایه کردند،به این صورت که ابتدا یک پردازش اولیه بر روی تصویر ورودی انجام می شود(پیش پردازش:پردازش سطح پایین بر روی تصویر که موجب ﺑﺮﺟﺴﺘﻪ شدن ﭘﺮدازش ﻫﺎی ﺑﻌﺪی و ﺣﺬف ﻋﻮاﻣﻞ ﻣﺰاﺣﻢ میﮔﺮدد . اﻓﺰاﯾﺶ ﮐﻨﺘﺮاﺳﺖ، ﺗﻌﺪﯾﻞ ﻫﯿﺴﺘﻮﮔﺮام، ﺣﺬف ﻧﻮﯾﺰ و...، ﻣﺜﺎل ﻫﺎﯾﯽ از ﻋﻤﻠﯿﺎت ﭘﯿﺶ ﭘﺮدازش ﺑﺮ روی یک ﺗﺼـﻮﯾﺮ اﺳـت) و اپراتور لبه یاب ﮐﻨـی را ﺑـﺮ ﺳـﻪ ﮐﺎﻧـﺎل ﻣﺨﺘﻠـﻒ ﺗﺼـﻮﯾﺮ رﻧﮕـی اﻋﻤــﺎل ﮐــﺮده (R G B)و ﺑــﺎ ﺗﺮﮐﯿــﺐ ﺳــﻪ ﺗﺼــﻮﯾﺮ ﻟﺒــﻪ ﺣﺎﺻــﻞ و ﻋﻤﻠﯿــﺎت ﻣﻮرﻓﻮﻟﻮژی ﺑﺮ روی آن، ﺑﻪ ﺣﺬف ﻟﺒﻪ ﻫـﺎی ﺿـﻌﯿﻒ ﭘـﺮداخته اند . درﻧﻬﺎﯾﺖ ﺑﺎ اﻋﻤﺎل وﯾﮋﮔ ﻫـﺎی ﻫﻨﺪﺳـی، ﻧـﻮاحی ﻏﯿـﺮﻣﺘﻦ ﺣـﺬف ﺷﺪه و ﻧﻮاحی ﮐﺎﻧﺪﯾﺪ ﻣﺘﻦ از زﻣﯿﻨﻪ آن اﺳﺘﺨﺮاج می ﮔﺮدﻧﺪ.

توضیح تصویر

سپس برای تشخیص لبه ( ﻣﺮز ﻣﯿﺎن یک شیء و زﻣﯿﻨﻪ ﯾﺎ ﻣﺮز ﻣﯿﺎن اﺷﯿﺎء ﻫﻢ پوشان) از اپراتور لبه یاب canny استفاده شده.تصویر باینری حاصله از حذف نویز و ترکیب لبه های کشف شده می باشد.در این مرحله نوبت حذف اجزای غیر متنی و پس زمینه است اینگونه بیان کردند:( اﮔـﺮ ﻧﺴـﺒﺖ ﻣﺴـﺎﺣﺖ ﺑﺰرﮔﺘﺮﯾﻦ ﻧﺎﺣﯿﻪ ﺑﻪ ﻣﺴﺎﺣﺖ ﻧﺎﺣﯿﻪ ﻣﻮرد ﻧﻈـﺮ از ٢٠ ﺑﯿﺸـﺘﺮ و ﯾـﺎ ﻧﺴﺒﺖ ﻃﻮل ﺑﻪ ﻋﺮض آن از ۵ ﺑﯿﺸﺘﺮ ﺑﺎﺷﺪ، آن ﻧﺎﺣﯿﻪ ﺑﻪ ﻋﻨﻮان ﻏﯿﺮ ﻣﺘﻦ از ﺗﺼﻮﯾﺮ ﺣﺬف میﺷﻮد .ﻋﻼوه ﺑﺮاﯾﻦ، اﮔﺮ ﻧﺴﺒﺖ ﻣﺴـﺎﺣﺖ ﮐﻞ ﺗﺼﻮﯾﺮ ﺑﻪ ﻣﺴﺎﺣﺖ ﺟﺰء ﻣﺘﺼﻞ از٣ ﮐﻤﺘﺮ و ﯾﺎ از ٠٠۴ ﺑﯿﺸﺘﺮ ﺑﺎﺷد ، آن ﺟﺰء ﻣﺘﺼﻞ ﺑﻪ ﻋﻨﻮان ﺟﺰءی از ﭘـﺲ زﻣﯿﻨـﻪ ﺗﻠﻘـی ﺷـﺪه و ﮐﻨﺎرﮔﺬاﺷـﺘﻪ میﺷــﻮد ﺑﺎﺗﻮﺟــﻪ ﺑــﻪ ﺳــﺎﺧﺘﺎر ﻣﺘــﻮن ﻓﺎرﺳــی ﺗﻌــﺪاد ﺣﻔﺮه ﻫﺎی ﻣﻮﺟﻮد در ﻫﺮ ﺟﺰء ﻣﺘﺼﻞ ﻧﯿﺰ، ﻧﺒﺎﯾﺪ از ٣ ﺗﺠـﺎوز ﮐﻨـﺪ، در ﻏﯿـﺮ اﯾﻨﺼــﻮرت اﯾــﻦ ﻧﺎﺣﯿـﻪ دور رﯾﺨﺘــﻪ میﺷــﻮد ، ﺗﺼﻮﯾﺮ ﺑﺎﯾﻨﺮی ﺷﺎﻣﻞ ﻣﺘﻮن ﺳﯿﺎه در زﻣﯿﻨﻪ ﺳﻔﯿﺪ ﺧﻮاﻫﺪﺑﻮد )

توضیح تصویر

ﻣﺘﻮن اﺳﺘﺨﺮاج ﺷﺪه از ﺗﺼﻮﯾﺮ دوباره ﺑﺎزﺷﻨﺎﺳــی می گردند، ﻧــﻮاحی اﺳــﺘﺨﺮاج ﺷــﺪه ﺑــﻪ ﻋﻨــﻮان ﮐﺎﻧﺪﯾـﺪاﻫﺎی ﻣــﺘﻦ، ﺑﻄــﻮر ﻣﺤﻠـی ﭘﺲ ﭘــﺮدازش می ﺷــﻮﻧﺪ ﺑﻨــﺎﺑﺮاﯾﻦ، ﻧﻮاحی ﮐﺎﻧﺪﯾﺪ ﻧﻬﺎﯾﯽ ﺣﺎﺻـﻞ از ﻣﺮاﺣـﻞ ﻗﺒـﻞ ﺑﻄـﻮر ﻣﺠـﺰاﻃـی ﺗﮑﻨﯿک ﭘﯿﺸﻨﻬﺎدی ﻣﺠـﺪدا ً ﻣـﻮرد ﭘـﺮدازش ﻗـﺮار میگیرند.
توضیح تصویر

۴. آزمایش‌ها

پیاده سازی شماره 1
این پیاده سازی نشان می دهد که چگونه با کمک Matlab از قابلیت های جعبه ابزار پردازش تصویر برای تشخیص یک واژه یا مجموعه ای از واژگان یا اعداد در روی تصویر استفاده کنید.
از هم­بستگی29 برای مشخص کردن قطعه بندی حرف ورودی با قالب استفاده می شود. اندازه ی فونت باید بزرگتر یا مساوی 24 ˟ 42 پیکسل باشد، به طوری که با اندازه ی workforce یکی باشد.
فناوری OCR، به سیستم های playback از سیستم های اسکن و تصویربرداری، این توانایی را می دهد که تصاویر کاراکترهای چاپی را به کاراکترهایی تبدیل کنند که کامپیوتر بتواند آن ها را تفسیر کرده یا تشخیص دهد. بنابراین، تصاویر کاراکترهای چاپی از یک تصویر bitmap دوباره تولید شده توسط اسکنر،
استخراج می شوند [14].
این فرایند شامل چندین جنبه مانند قطعه بندی، استخراج ویژگی و طبقه بندی است [3]،[15]

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

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

توضیح تصویر

شکل زیر نشان می دهد که این ویژگی چگونه کار می کند:
توضیح تصویر

همان طور که در تابع نشان داده شده است، مقدار حد آستانه برای تبدیل تصویر باینری برابر 0.99 است. (image= im2bw (image, 0.99)). این حد آستانه برای این است که رنگ های با مقادیر RGB نزدیک به 255 (ماکزیمم)، در تصویر باینریصفر در نظر گرفته شوند.
وقتی تصویر مرتب شد، گام بعدی جدا کردن هر خط است. برایاین کار تابع زیر استفاده می شود:
توضیح تصویر

شکل زیر نشان می دهد که این ویژگی چگونه کار می کند:
توضیح تصویر

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

سپس هر حرف نرمال سازی می شود تا به اندازه ی 24˟ 42 پیکسل در بیاید که همان اندازه ی قالبی است که هم­بستگی را اجرا خواهد کرد. تابع زیر برای نرمال سازی استفاده می شود:
توضیح تصویر

طبقه بندی:
عمل اصلی استفاده شده، طبقه بندی هم بستگی دوبعدی بود. این عمل، مقداری برای شباهت بین دو ماتریس (تصاویر) ارائه می کند. تابع corr2 این عمل را با استفاده از معادله ی [4] انجام می دهد:
توضیح تصویر

تابع زیر هم­بستگی را بین قالب های استخراج شده و هر حرف انجام می دهد:
توضیح تصویر

قالب ها:
هر قالب یک تصویر باینری با اندازه ی 24 ˟ 42 پیکسل است. ذخیره ی قالب ها در یک ساختار سلول به ترتیب زیر است:
توضیح تصویر

برنامه ی اصلی:
برنامه ی اصلی در زیر نشان داده شده است:
توضیح تصویر

برنامه ی تست:
پس از آن که برنامه پایان یافت، در هنگام اجرای توابع tic toc در ابتدا و انتهای کد،می­توانند برای اندازه ­گیری زمان پاسخ­گویی استفاده شوند. وقتی که اجرا به پایان رسید، یک فایل متنی حاوی کلمات تصویر،ظاهر خواهد شد.
توضیح تصویر
بر روی صفحه ­ی اسکن شده ­ای با وضوح 200 DPI و روشنی 128 (پارامترهای پیش ­فرض اسکنر) که حاوی چندین کلمه­ ی دست­ نوشته و چندین عدد است،تست دیگری انجام گرفت. نمونه در شکل ذیل نشان داده می­شود:
توضیح تصویر

در هنگام اسکن کردن تصویری، نویزهایی (نقاط سیاهی) بر روی آن یافت می­شوند. راه ­حل آن، پیاده ­سازی یک فیلتردر ابتدای کد برای حذف این نویزهااست.
توضیح تصویر

شکل­های ذیل، متن خروجی را نمایش می­دهند:

توضیح تصویر
توضیح تصویر

توضیح تصویر

توضیح تصویر

توضیح تصویر

توضیح تصویر

توضیح تصویر

توضیح تصویر

توضیح تصویر

توضیح تصویر

توضیح تصویر

توضیح تصویر

می­توان نتیجه­ گیری کرد ،انحنای کوچکی که در سه تا هفت وجود دارد مخصوصا در هفت آخر، و همچنین در حرف I و حروف کوچک نیز باعث شده آنها به طور صحیح شناسایی نشوند و در شناسایی شون خطا رخ بدهد
معیارهای کد:
درMatlab دو ابزار وجود دارد که به بهبود کد کمک می کند. یکی از آن ها پروفایل30 است که زمان اجرای هر تابع را محاسبه نموده و متغیرهایی را نشان می دهد که می توانند به سرعت کد کمک کنند.
ابزار دوم متریک کد است، برنامه ای که در 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 پیکسل باشد، زمان پردازش کاهش می یابد.
همچنین شما می توانید کدها و نمونه ها را از اینجادریافت نمایید.

بهبود نتایج:
در این بخش ابتدا به معرفی مجموعه دادگان مورد استفاده می‌پردازم. سپس کد ایجاد شده برای خواندن متن توضیح داده می‌شود. در آخر نیز نتایج گزارش ارائه خواهند شد.
مجموعه دادگان: در این پروژه از مجموعه دادگان (ارقام دستویس) استفاده شده است. این داده‌ها از طریق سایتقابل دسترس است(لازم به ذکر است این مجموعه برای تشخیص اعداد بکار میروند)
در این پایگاه داده 60000 داده آموزشی وجود دارد که برای هر یک از اعداد صفر تا نه 6000 نمونه وجود دارد. همچنین، 20000 نمونه برای تست وجود دارد که برای هر کدام از اعداد صفر تا نه، 2000 نمونه وجود دارد.
با توجه به اینکه در کد قبلی نمونه های مختلف تست شدند و بر روی نمونه هایی با ضخامت (اندازه ی فونت ) 24 ˟ 42 پیکسل بودند و حروف کوچک نیز در مجموعه حروف آموزشی نبودند لذا تلاش شده فرآیند بهبود به سه بخش تقسیم بندی شوند

مرحله اول
در این مرحله ابتدا مجموعه ایی از حروف را که شامل تمامی حروف کوچک و بزرگ انگلیسی است را از طریقلینک دانلود و آنها را در فولدری با نام training در پوشه جاری قرار دادم که داخل آن عکسهای سایز 2020 حروف کوچک و بزرگ قرار دارد.با اجرای کد create_templates_v3 یک فایل بنام templates.mat در پوشه جاری ایجاد خواهد شد که حاوی اطلاعات فونتهای جدید (سایز 2020 ) بعلاوه فونتهایی که قبلا با سایز 2442 بود(letters_numbers) ، می باشد
قسمت اول برنامه که در کد قبلی عکس را دریافت و خروجی را در یک فایل متنی قرار میداد در این بخش با اجرای دستور OCR_v3 عکس مورد نظر را دریافت و با توجه به اینکه کد read_letter_v3 هم جهت برداشت تک تک حروف و اعداد برای فونتهای جدید تغییر کرده است.تصویر را مورد برسی و خروجی را با دقت 86٪ تشخیص داده و خروجی را اعلام میکند

توضیح تصویر

مرحله دوم
در این مرحله روش کار را به این ترتیب در نظر گرفته ام که ُ بطور مثال 5 عکس مشابه را که نویزی بودند در فولدر 100sampels قرار دادم که در کنار آنها باید متن صحیحی که داخل هر تصویر است باید قرار گیرد (بعنوان لیبل و برای محاسبه خطای استخراج الگوریتم OCR ).نکته اینجا این است که باید در کنار آنها فایل لیبل حتما قرار دهید که در زیر یک نمونه از آن را ارائه مینمایم.سپس با اجرای دستور main_100 صبر کنید تا OCR همه تصاویر تمام شود. در پایان یک فایل text.txt حاوی اطلاعات (اسم فایل و مقدار استخراج شده و خطا) در فولدر جاری ذخیره خواهد شد:
نحوه قرار دادن تصاویر و لیبل آنها در فولدر 100sampels :
توضیح تصویر

خروجی تولید شده:
توضیح تصویر

نکته قابل توجه این است که تصاوی که به برنامه داده می شود باید شامل حروفی که در داخل template قرار داده شده است باشد(از نقطه نظر رنگ سایز وفونت) و یا تصاویر از خود آن حروف ساخته شده باشد در غیر این صورت خطای ocr بالا میرود
راه حل این روش اضافه کردن دیتا بیس templates های بیشتر است که در این بخش از templete های دانلود شده از اینلینک استفاده شد. که نتایج را 8٪ بهبود بخشید و چون حجم این داده ها بسیار بالا میباشد لذا از طریق لینک مربوطه دانلود و طبق طبق دستورالعمل ارائه شده در مرحله اول آنها را به template اضافه میکنیم
*مرحله سوم

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

با اجرای دستور main_60000 برنامه شروع به مقایسه بر اساس دادگان داده شده میکند.
توجه کنید که این دیتا بیس بخاطر حجم زیاد (60000 تصویر Train و 20000 تصویر Test) زمان زیادی برای محاسبه خطا خواهد برد وشما میتوانیدروی هر مقدار دیتا که در کد خط های 17 و 18 مشخص است آزمایش را انجام دهید
Train_images=Train_images(:,1:1000);
Train_labels=Train_labels(1:1000,:);
بخاطر اینکه این دیتا بیس همش عدد بود من تابع read_letter_num را نوشتم (این تابع در خط 106 کد main_60000 بکار رفته) که جستجوی تنها از میان اعداد صورت گیرد و نه ترکیبی از اعداد و حروف. اگر خواستید جستجو در تر کیبی از اعداد و حروف صورت گیرد بجای read_letter_num ، تابع read_letter_v3 را در خط 106 جایگذاری کنید ولی طبق نتایج در سیستم من خطا خیلی بیشتر خواهد شد. در پایان باز هم یک فایل text.txt حاوی اطلاعاتی مقدار واقعی و مقدار استخراج شده در فولدر جاری ذخیره خواهد شد.
همانگونه که مشاهده میکنید اضافه کردن یکسری دیتا بیس از "حروف" نه تنها هیچ تاثیری در شناسایی دیتا بیس دانلود شده ( که همگی "عدد" بودند) ندارد بلکه خطای تشخیص را هم خیلی خیلی بالا خواهند برد.
راه حل :در آینده templates های مختلفی از اعداد را هم اضافه کنیم تا جواب این قسمت بهتر گردد
شما میتوانید کدها و نمونه ها را از اینجا دانلود کنید

۵. کارهای آینده

همان‌گونه که در بخش کارهای مرتبط به آن اشاره شد روشهای زیادی برای تشخیص متن وجود دارد
علی‎رغم استفاده از داده‎های سنتیک ساخت یک مجموعه training خوب زمان‎برترین و دشوارترین چالش پروژه متن است.بعضی از سیستم‎ها با طرح‎های یادگیری بسیار انعطاف‎پذیر تلاش می‎کنند تمام اطلاعات لازم از داده‎های Lable شده را با حداقل دانش قبلی یاد دهند. مثلاً معماری شبکه عصبی چند لایه برای شناسایی کاراکتر استفاده شده‎اند و رقیب سایر روش‎های پیشتازانه هستند.
یکی ازروشهای پیشنهادی ، روش ارائه شده در مرجع [5] است.که الگوریتم استخراج متن از تصاویر را به سه گروه عمده gradient feature based, color segmentation based, and texture analysis based. تقسیم بندی می کند. gradient feature based بر اساس این ایده که پیکسلهایی که گرادیان زیادی دارند، کاندید هستند که جزو حروف باشند. در مقاله ای Basilios Gatos شیوه جدیدی را برای شناسایی متن در تصاویر طبیعی را پیشنهاد داده است. این شیوه پیشنهاد شده براساس باینری سازی بهینه 31 و یک تکنیک پیشرفته که بر اساس آنالیز اجزای مرتیط مناسب پشتیبانی می شود، کار می کند. شیوه باینری کردن تصاویر به خوبی تصاویری که دارای سایه ، نور غیر یکنواخت، کنتراست پایین و نویزهای بالا می باشند را تحلیل می کند. آنالیز اجزای مرتبط برای تعریف باینری کردن نهایی تصاویر32که غالبا شامل مناطق متن می باشد استفاده می شود

۶. مراجع

[1] Robust Text Detection in Natural Scene Images. لینک
[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. لینک
[4] Review on Text Detection Methodology from Images لینک
[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
[لینک]
[8 ] Analysis and Retrieval persian Documentation by page Segmentation
[لینک
[9] New Method Extraction persian text from Complex images Commercial Places image Processing Technique Based
لینک
[10] A Simon effect induced by induced motion and location: Evidence for a direct linkage of cognitive and motor maps
لینک
[11] The Laplacian Pyramid as a Compact Image Codeلینک

[12] A Multiresolution Spline With Application to Image Mosaicsلینک
[13]Canny Edge Detectionلینک
[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
[18] http://kems.ustb.edu.cn/learning/yin/dtext
[19]http://ai.stanford.edu/~ang/papers/icdar01-TextRecognitionUnsupervisedFeatureLearning.pdf
[20]http://www.ijrte.org/attachments/File/v2i1/A0504032113.pdf

۷. پیوندهای مفید


  1. Regular Minimum Changes and Disputes Strategy

  2. scale character detector

  3. Logistic regression

  4. training

  5. Mapping

  6. Subpatch

  7. feature extractor

  8. Closed Contour

  9. Image Binarization

  10. Text Line Grouping

  11. Color based Partition

  12. Adjacent character grouping

  13. gradient feature based

  14. color segmentation based

  15. texture analysis based

  16. gradient-based method and color-based method

  17. adjacent character grouping method and text line grouping

  18. Color Reduction Technique

  19. Boundary detection method

  20. low-pass

  21. High-pass

  22. Graphical text lines

  23. Block area

  24. Components of connective

  25. Multi-resolution analysis

  26. Machine Vision

  27. canny

  28. correlation

  29. profile

  30. efficient binarization

  31. final binary images

رد شده
رد شده

با سلام و خسته نباشید
پروژه خوبی است، مطالب به خوبی توضیح داده شده است اما بهتر بود 1.مراجع به ترتیب حضور در مقاله مرتب شوند 2. برای شکل هایتان شماره قرار می دادید 3. از مقاله های بیشتری استفاده می کردید 4. اشتبا هات نگارشی را رفع می کردید

حسین فرقانی

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

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

  2. تصاویر آزمون (تست) را از کجا آورده‌اید؟ آیا تک تصویر هستند که خودتان جمع‌آوری کرده‌اید؟ یا از یک مجموعه داده در دسترس؟ تک تصویر یا حتی ۱۰ تصویر برای یک کار پژوهشی هیچ ارزشی ندارد. بلکه اولاْ باید مجموعه آزمون به اندازه کافی بزرگ باشد، ثانیاْ باید معتبر باشد یعنی دست کم در یک مقاله ارجاع داده شده باشد یا توسط منبع معتبری ارائه شده باشد (البته نبود شرط دوم برای پروژه این درس هیچ اشکالی ندارد).

  3. قسمت اصلی بخش آزمایش و بهبود شما «نتایج روش‌ها و مقایسه آن‌ها» است. نتایج باید به صورت عددی یا نموداری باشد. نتیجه‌ای که به صورت عکس نشان دادید خوب و قابل تقدیر است. اما نتیجه عددی یا نموداری شما یکی دقت ۸۰٪ آن هم برای یک نمونه آزمون (نه مجموعه آزمون) و همچنین در قسمت بهبود، افزایش ۸٪ در نتایج است که ذکر نشده این ۸٪‌ افزایش در چه کمیتی بوده، روی چه مجموعه آزمون یا نمونه آزمونی؟ اگر این ۸٪‌ بهبود روی همان تک تصویر آزمون باشد هم که ارزش ندارد، بلکه باید روی یک مجموعه آزمون به اندازه کافی بزرگ باشد.

  4. بهتر بود ایده‌ای که برای بهبود داده‌اید مربوط به الگوریتم می‌شد. البته ایده شما یعنی «اضافه‌کردن دیتابیس templates های بیشتر» قطعاْ خوب و مفید است. مخصوصاْ برای پروژه‌های صنعتی و کاری این ایده‌ها بسیار مفید است. ولی در حد کار پژوهشی بسیار سطح پایین و به‌عنوان پروژه درس دانشگاهی خیلی مناسب نیست.

  5. قسمت کارهای آینده را تا حدی بهتر از قسمت بهبود نتایج نوشته‌اید.

  6. اشکالات نگارشی:
    الف. معادل فارسی کلمات: برای کلمات انگلیسی معادل فارسی آن را نه فارسی‌نوشته‌شده همان کلمه انگلیسی را بنویسید: لیبل، فولدر، template، دیتابیس، سنتیک، آنالیز، باینری، کنتراست، نویز
    ب. جملات بعضا اشکالات دستوری دارند و قابل فهم نیستند.
    پ. بعضی جملات را به صورت محاوره‌ای و عامیانه نوشته‌اید!
    ت. استفاده از کلمات مخففی مثل OCR اشکال ندارد، ولی یک بار در پاورقی اصل انگلیسی آن را بنویسید.

  7. لازم بود قسمت مراجع را علی‌رغم این که در فازهای قبل هم جزء نقدها نوشته شده بود، اصلاح می‌کردید.

موفق و مؤید باشید

تایید شده

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

تایید شده

سلام.من متنتون را خوندم.خیلی خوب نبود.
متنتون عیوب نگارشی زیادی داره و مثل این است که یک فرد بدون تخصص کامپیوتر آنرا ترجمه کرده است.برای مثال در جمله "کلمه OCR مخفف کلمات به رسمیت شناختن شخصیت نوری است." مفهوم جمله به رسمیت شناختن شخصیت نوری را متوجه شدید؟اصلا مفهومی داره؟
غلط املایی زیادی هم در متنتون هست
پاورقی های استفاده شده خیلی کم هستند.مثلا در خط اول از کلمه تشخیص بصری استفاده کردید،ترجمه چه کلمه ای هست؟کلمه رویشگر ترجمه چه کلمه ای هست؟و...
در قسمت کار های مرتب با اینکه تعداد کار های زیادی معرفی شده ولی توضیحاتتون برای هر کار خیلی کم و ناقص هست،برای مثال توضیحاتتون برای روش ژاوو چنگ کاملا گُنگ و مبهم هست.
بعضی از جمله هاتون نیمه کاره و ناقص هست.مثلا :"با شروع از تصویر، ..... یک تصویر با لایه های خاکستری تولید می کند."
شماره تصاویری که در متن ذکر کردید با محتوای عکس یکسان نیست،مثلا در جایی ذکر کردید:"فلوچارت این روش در شکل 4 به ان اشاره شده است. " در صورتیکه عکس شماره 4 مربوط به خروجی هاست
لینک ها دارای توضیح معنا داری نیستندبهتره عنوان هر لینک در مورد آن لینک توضیحاتی ارائه کنه.بهتره به جای استفاده از واژه پردازش تصویری مورفولوژی به جای کلمه" پیوند مفید" .
استفاده از واژه برنامه تست اشتباه هست،باید از واژه آزمایش استفاده کنید.
معیار های کد اصلا مربوط به مباحثی که در هوش مصنوعی بحث میشه نیست و باید کل دادگانتون را آموزش و سپس آزمایش می کردید و تعداد کل دادگان،نمونه های غلط،نمونه های درست و performance و recal و.... را ارائه می دادید.
نتیجه گیری شما بیشتر به نیازمندی ها شبیه بود تا نتیجه گیری
معرفی دادگان باید در قسمت آزمایش انجام بشه و نه در قسمت بهبود
در قسمت بهبود،شما باید خود کد را بهبود ببخشید،نه اینکه با اضافه کردن دادگان به دنبال به دست آوردن نتایج بهتری باشید.درضمن تست بعدی شما روی اعداد بوده است.در صورتیکه آزمایش باید دقیقا روی دادگانی انجام بپذیرد که قبل از بهبود، از آن دادگان برای آزمایش استفاده شده است.
به تمام این تفاسیر بنده با توجه به وقت زیادی که بابت این پروژه گذاشته اید نمره 4 را میدهم.این نمره صرفا بابت تلاش شماست و اگر می خواستم به کار ارائه شده نمره بدهم نمره کمتری داده می شد.

تایید شده

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

رد شده

متن شما دارای اشکالات نگارشی کمی نیست!مثلا کلمه OCR که بنده مهنای ترجمه آن را متوجه نشدم!غلط املایی هم در متن شما زیاد دیده می شود.
عکس شماره ۴ مربوط به خروجی است اما شما در جایی به عنوان فلوچارت به آن اشاره کرده بودید!
بخش بهبود ضعیف است چرا که بهبودی برای کد ارائه شده در فاز قبل مشاهده نمی شود!
به نظر می رسد باید وقتی که برای پروژه صرف کرده اید هدفمندتر به کار می گرفتید.
به هر صورت بابت زحمتی که برای پروژه کشیده اید نمره در نظر گرفته شده است.