نویسه‌خوان انگلیسی

تغییرات پروژه از تاریخ 1396/08/29 تا حالا
نویسه‌خوانی به عملیات تشخیص متن در عکس و تبدیل آن می‌باشد. در این پروژه از شما انتظار می‌رود تا متن انگلیسی را در تصاویر حاوی متون تایپ شده انگلیسی تشخیص دهید.

# مقدمه
امروزه از هوش مصنوعی در زمینه‌ی پردازش تصویر بسیار استفاده می‌شود. یک عکس می‌تواند شامل هرچیزی باشد. عکس از یک موجود زنده، عکس از طبیعت یا منظره، عکس از یک مکان و بسیاری دسته بندی‌های دیگر. پس پردازش تصویر کار آسانی نیست که بتوان یک سیستم هوشمند جامع داشته باشیم و تمام کارهای پردازشی را به عهده‌ی آن بسپاریم. 
در این پژوهش قرار است به طور خاص در زمینه پردازش تصویر شامل کلمات یا جملات (متون)‌ انگلیسی صحبت کنیم. پس داده‌ای که به عنوان ورودی مساله وجود دارد یک عکس حاوی متون یا کلمات انگلیسی است. هدف این است که متن یا کلمات موجود در این عکس را شناسایی کند (شکل ۱)
![شکل ۱](https://boute.s3.amazonaws.com/251-Capture.JPG)

## کاربرد‌ها
از اولین کاربرد‌های نویسه خوان‌ها میتوان به تبدیل نسخه‌های قدیمی یک کتاب به فایل دیجیتال اشاره کرد. به عنوان مثال در کتابخانه‌هایی که از یک کتاب تعداد محدودی نسخه دارند و برای امانت دادن کتاب به افراد دچار محدودیت هستند، می‌توانند با چنین ابزاری از هوش مصنوعی -که متون کتاب را به نسخه دیجیتال تبدیل می‌کند- استفاده کنند (شکل ۲)
![شکل ۲](https://boute.s3.amazonaws.com/251-book.JPG)
نابینایان در دنیای امروزی که دنیای تولید علم و کتاب است شاید بیش از هر انسان دیگری علاقه‌مند به خواندن کتاب‌ باشند. دسترسی این افراد به کتاب‌های جدید ممکن است آسان نباشد و بسیاری از کتاب‌ها نسخه خط بریل ندارند. لذا می‌توان ابزاری تولید کرد که کتاب را برای این افراد بخواند یا با سیستمی که خط بریل چاپ می‌کند تعامل داشته باشد و کمک کند تا این افراد از خواندن کتاب‌‌های جدید محروم نشوند.
تصور کنید می‌خواهید یک کلمه یا جمله‌ای را در یک کتاب جست‌و‌جو کنید. باید سطر به سطر کتاب را بخوانید تا بتوانید کلمه‌‌ یا جمله را پیدا کنید. در این حالت وقت و انرژی بسیاری صرف این کار کردید. در حالی که اگر از ابزار نویسه‌خوان استفاده می‌کردید می‌توانستید به راحتی کلمه یا جمله‌ی مورد نظر را بیابید. 
از دیگر کاربرد‌های نویسه‌خوان این است که یک کتاب را می‌توان به صورت دیجیتال نگه‌داری کرد. البته این کار را می‌توان با نگه‌داری عکس از کتاب نیز انجام داد. ولی همواره یک فایل متن فضای کمتری از یک فایل تصویری اشغال می‌کند. 
عبور از کپچا‌‌های امنیتی که امروزه اکثر سایت‌ها برای جلوگیری از حملات اینترنتی هکر‌ها قرار داده اند، نیز می‌تواند از دیگر استفاده‌های نویسه‌خوان باشد.

# کارهای مرتبط
اولین کاربرد خواندن متن در تصویر برمی‌گردد به زمانی که در اداره‌ی پست برای کلاسه بندی اعداد روی نامه‌های پستی از اسکنر‌هایی استفاده می‌کردند. در سال ۱۹۷۴ Ray Kurzweil`یک نرم افزار برای تشخیص متن در هر شکلی ارائه کرد. این نرم افزار در واقع از روش تطبیق الگو (Pattern Matching) استفاده می‌کرد.[۱]

## روش‌ها
چیزی که کاملا مشخص است در ابتدا باید محدوده‌های کاراکتر و متن را در عکس با پردازش تصویر مشخص کرد و به شکل ثابت و یک‌پارچه به صورت مرتب درآورد. در واقع قطعه‌های عکس و متن را باید تشخیص داد و یک پیش پردازش بر روی این قطعه‌ها انجام داد.‌‌‌‌‌[۲]
### تطبیق الگو
در این روش هر حرف یا کاراکتر موجود در متن با تمام کاراکتر‌‌هایی که از قبل به عنوان داده‌ی آماده وجود داشته مقایسه می‌شود. نزدیک‌ترین کاراکتری که با کاراکتر ورودی مطابقت کند، انتخاب می‌شود. به این ترتیب یک به یک کاراکتر‌‌های موجود در متن اصلی با داده‌ی از پیش داده شده مطابقت قرار میگیرند تا کل متن تمام شود.
### یادگیری ماشینی
طراحی و پیاده سازی شبکه عصبی برای پیدا کردن یک کاراکتر یا یک کلمه در یک متن که از الگوریتم Naive Bayes استفاده می‌شود. [۱]
### یادگیری عمیق
در این روش یک مجموعه داده از قبل برای سیستم تهیه شده است. داده ورودی که شامل تصویر متن است پس از گذراندن قسمت‌‌های قطعه بندی کردن متن و مرتب شدن یا به طور کلی پیش پردازش به عنوان ورودی به سیستم داده می‌شود و سیستم خروجی آن را که شامل یک متن است نمایش می‌دهد. (در شکل ۳ یک مفهوم کلی از یادگیری عمیق به نمایش گذاشته شده است.)
![شکل ۳](https://boute.s3.amazonaws.com/251-deeplearn.jpg)

# آزمایش‌ها


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


# مراجع
[۱][[Handwritten Text Recognition using Deep Learning Stanford University](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0ahUKEwjU6Pag1sbXAhUKWxQKHaNgAywQFggyMAI&url=http%3A%2F%2Fcs231n.stanford.edu%2Freports%2F2017%2Fpdfs%2F810.pdf&usg=AOvVaw0veKkFS1_Df0dfp8fR22tD)](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0ahUKEwjU6Pag1sbXAhUKWxQKHaNgAywQFggyMAI&url=http://cs231n.stanford.edu/reports/2017/pdfs/810.pdf&usg=AOvVaw0veKkFS1_Df0dfp8fR22tD)
[۲][Optical Character Recognition Systems  for different languages with soft computing chapter 2](http://www.springer.com/cda/content/document/cda_downloaddocument/9783319502519-c2.pdf?SGWID=0-0-45-1598529-p180469222)


# لینک‌های مفید
+ [کتابخانه‌ی OpenCV برای پایتون](https://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_tutorials.html)
+ [مجموع دادگان تشخیص حروف](http://www.boyter.org/wp-content/uploads/2013/07/training.zip)
+ [مجموع دادگان تشخیص کلمات](http://www.iapr-tc11.org/dataset/ICDAR2003_RobustReading/TrialTrain/word.zip)