طبقه‌بندی ارقام دست‌نویس

تغییرات پروژه از تاریخ 1394/01/29 تا تاریخ 1394/02/27
   **  --------------------------------------بسم الله الرحمن الرحیم--------------------------------------**

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


# مقدمه
حوزه ی تبدیل مکانیکی یا الکترونیکی نوشته های دست نویس و یا چاپ شده و تبدیل آن به کاراکترهای ورودی برای کامپیوتر(Optical character recognition) به دلیل راحتی استفاده و افزایش سرعتی که به عملیات ورود اطلاعات به سیستم می دهد سالهاست که مورد توجه محققان علم ریاضی و کامپیوتر بوده است. تلاش های اولیه برای این کار با هدف توسعه تلگراف و ساخت ماشین های خوانش برای نابینایان انجام گردیده. اولین تلاشی که در این مورد انجام گرفته مربوط به سال ۱۹۱۴ است, امانویل گولدبرگ ماشینی طراحی کرد که کاراکترها را می خواند و آن ها را به کدهای استاندارد مورس تبدیل می کرد.[1]
برای ocr کاربرد های فراوانی می توان یافت از جمله:
- وارد کردن اطلاعات اسناد اداری از جمله چک ها و فرم های پر شده
- شناسایی اتوماتیک شماره پلاک برای سیستم کنترل ترافیک
- شناسایی کاراکترهای نوشته شده بر روی صفحات لمسی
- کنترل سیستم به وسیله رسم اشکال
- شکستن کپچا
- طراحی تکنولوژی های یاری دهنده نابینایان و افراد با ضعف بینایی

امروزه با توسعه کامپیوتر های قابل حمل و همه گیر شدن این وسایل کاربردهای بسیار خلاقانه دیگری هم در این حوزه به وجود آمده است یکی ازاین  موارد ترجمه هم زمان تابلوهای با زبان بیگانه با استفاده از واقعیت افزوده و ocr است.
با وجود پیشرفت های فراوانی که در این حوزه انجام گردیده و وجود نرم افزارهای قدرتمندی مانند Readiris ساخت شرکت I.R.I.S. که این کار را برای کاراکترها و اعداد لاتین به خوبی انجام می دهند اما متاسفانه در مورد کاراکترها و اعداد فارسی/عربی کیفیت کار آنها بسیار پایین است.
نکته بسیار مهمی که در طبقه بندی ارقام دست نویس باید به آن بسیار توجه شود اختلاف فراوان در شیوه نگارش اعداد است. همچنین افراد با توجه به سطح سواد و مناطق جغرافیایی اعداد را به صورت های متفاوتی می نویسند.
علاوه بر تفاوت های شیوه نگارش اعداد صفر ُ چهار و شش هر کدام به دو صورت متفاوت در بین فارسی نویسان رواج دارند به این ترتیب باید اعداد را در** ۱۳** دسته متفاوت طبقه بندی کرد و پس از بررسی عدد وارد شده آن را به شبیه ترین دسته از بین این ۱۳ دسته نسبت داد.


| نام پایگاه داده     | dpi                                             | نمونه های آموزشی                    |نمونه های آزمونی                       | مجموعه نمونه ها                      |  |:----------|:------------------:|:------------------:|:------------------:|:------------------:|  
 | هدی                  | 200                                           | 6000 از هرکلاس                     |2000 از هرکلاس                      |۱۰۲۳۵۲                                      |  
 | CENPARMI ا| 166                                          | 4000                                        |2000                                          |60000                                      |    
 | CEDAR          ا| 300                                          | 18468                                      |2711                                          |21179                                      |   
 | MNIST          ا|Normalized intoا 20*20   | 7291                                         |2007                                          |9298                                         |
   
     جدول۱ - مشخصات تعدادی از پایگاه داده های موجود 
   
اکثر روش های طبقه بندی اعداد وابسته به وجود یک پایگاه داده شامل انواع مختلف و فراوان اعداد دست نوشته نرمال سازی شده است. در این مورد برای اعداد دست نویس فارسی کارهایی انجام شده است 


# کارهای مرتبط
 پایگاه های داده مجموعه ارقام دست نویس فارسی:

1. مجموعه ارقام دستنویس هدی
 مشتمل بر **۱۰۲۳۵۳ نمونه دستنوشته** سیاه سفید است. این مجموعه طی انجام یک پروژه‏ی کارشناسی ارشد درباره بازشناسی فرمهای دستنویس تهیه شده است.  داده های این مجموعه از حدود ۱۲۰۰۰ فرم ثبت نام آزمون سراسری کارشناسی  ارشد سال ۱۳۸۴ و آزمون کاردانی پیوسته‏ی دانشگاه جامع علمی کاربردی سال  ۱۳۸۳ گرفته شده است.
 مشخصات این مجموعه داده عبارتست از:
 **درجه تفکیک نمونه‏‌ها:** ۲۰۰ نقطه بر اینچ **تعداد کل نمونه‏‌ها:** ۱۰۲۳۵۲ نمونه **تعداد نمونه‏‌های آموزش:** ۶۰۰۰ نمونه از هر کلاس **تعداد نمونه‏‌های آزمایش:** ۲۰۰۰ نمونه از هر کلاس **سایر نمونه‏‌ها:** ۲۲۳۵۲ نمونه
 قابل ذکر است 
![مجموعه داده ای هدی](http://dadegan.ir/sites/default/files/uploads/dadegan/hoda_sample.jpg)
تصویر ۱: نمونه ای از انواع داده های موجود در مجموعه داده ای هدی

سایر پایگاه های داده ارقام دست نویس:

1. مجموعه داده ای اعداد دست نویس لاتین **Semeion**
در فازهای بعدی تکمیل خواهد شد


2.پایگاه داده ارقام دست نویس ** MNIST**


3.مجموعه داده ای ارقام دست نویس # [sklearn](http://scikit-learn.org/stable/modules/classes.html#module-sklearn.datasets)

![مشخصات مجموعه داده ای semeion](https://boute.s3.amazonaws.com/170-semeion.png)
تصویر ۲: مشخصات مجموعه داده ای semeion

مجموعه داده ای توسط Tactile Srl, Brescia  در سال ۱۹۹۴ با هدف تحقیقات یادگیری ماشین ایجاد شد.[3]
تعداد ۱۵۹۳ رقم دست نویس هر کدام دارای ۲۵۶ مشخصه  متعلق به  تقریبا ۸۰ نفر جمع آوری شده و به صورت مربع ۱۶*۱۶ با رنگ بندی مقیاس خاکستری( gray scale ) با ۲۵۶  مقدار نرمال سازی شده است. سپس هر پیکسل از هر تصویر با یک محدوده مشخص به مقدار ۰ یا ۱ نگاشت شده است به این صورت که تمام پیکسل هایی که مقدارشان کمتر از ۱۲۷ بود مقدار ۰ گرفته وبه  پیکسل هایی که ۱۲۷ و بالاتر بود مقدار ۱داده شده است در نهاین تصویر باینری به یک مربع ۱۶در۱۶ مقیاس دهی شده است(۲۵۶ مشخصه نهایی) . هر شخص تمام اعداد را از ۰ تا ۹ بر روی کاغذ دو بار نوشته است ٍ یک بار با دقت و شبیه ارقام چاپی و یک بار بدون دقت و با سرعت زیاد. بهترین پروتکل اعتبار سنجی برای این مجموعه داده ای 5x2CV با ۵۰٪ آموزش و آزمایش و ۵۰٪ اعتبار سنجی کاملا کور است.

2.پایگاه داده ارقام دست نویس ** MNIST**

دیتابیس اعداد دست نویس MNIST شامل یک مجموعه آموزشی با ۶۰۰۰۰ نمونه و یک مجموعه آزمایشی ۱۰۰۰۰ نمونه ای است. اعداد از نظر اندازه نرمال سازی شده اند به این معنی که با حفظ نسبت تصویر در وسط یک مربع ۲۰در۲۰ قرار گرفته اند  و با استفاده از تکنیک های از بین بردن لبه ناصاف(anti-aliasing) تصاویر به حالت خاکستری درآمده اند[4] .

3.مجموعه داده ای ارقام دست نویس**Sklearn**
این مجموعه اعداد دست نویس شامل تصاویر ۸در۸ از ارقام دست نویس است. اعداد در کل به ۱۰ کلاس تقسیم شده اند(0 تا 9) و از هر کلاس تقریبا ۱۸۰نمونه موجود است که تعداد کل نمونه ها را به ۱۷۹۷ عدد رسانده است. هر پیکسل با توجه به رنگ خود یک از اعداد بازه ۰ تا ۱۶ را به خود اختصاص داده است[5].

![توضیح تصویر](http://scikit-learn.org/stable/_images/plot_digits_classification_001.png)
تصویر ۳: نمونه ای از مثال های آموزشی در مجموعه داده ای sklearn 

 الگوریتم های طبقه بندی:
 
1. روش شبکه های عصبی(ٔNeural Networks)
در فازهای بعدی تکمیل خواهد شد

2.روش SVM


3.روش  نیمه نظارتی شبکه های عصبی +PL+DAE 


4. روش MTC


روش های بهینه سازی و افزایش سرعت عملکرد:

# آزمایش‌ها

 

# مراجع
[1]  صفحه مربوط به  Optical character recognition در ویکی پدیا: (http://en.wikipedia.org/wiki/Optical_character_recognition)

[2] H. Khosravi and E. Kabir, "Introducing a very large dataset of  handwritten Farsi digits and a study on their varieties," Pattern  Recognition Letters, vol. 28, pp. 1133-1141, 2007

 # بهبود نتایج آزمایشات



# مراجع
[1] Optical character recognition page in English wikipedia as cited in 2015: (http://en.wikipedia.org/wiki/Optical_character_recognition)
[2] H. Khosravi and E. Kabir, "Introducing a very large dataset of  handwritten Farsi digits and a study on their varieties," Pattern  Recognition Letters, vol. 28, pp. 1133-1141, 2007
[3] **Semeion Handwritten Digit Data Set**as cited in 2015:(http://archive.ics.uci.edu/ml/datasets/Semeion+Handwritten+Digit)
[4] The MNIST database of handwritten digits as cited in 2015:(http://yann.lecun.com/exdb/mnist)
[5] Sklearn handwritten image database as cited in 2015:(http://scikit-learn.org)


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

+ [صفحه رسمی مجموعه دادگان هدی ](http://farsiocr.ir/%D9%85%D8%AC%D9%85%D9%88%D8%B9%D9%87-%D8%AF%D8%A7%D8%AF%D9%87/%D9%85%D8%AC%D9%85%D9%88%D8%B9%D9%87-%D8%A7%D8%B1%D9%82%D8%A7%D9%85-%D8%AF%D8%B3%D8%AA%D9%86%D9%88%DB%8C%D8%B3-%D9%87%D8%AF%DB%8C/)
+ [مقاله در مورد مجموعه دادگان فارسی هدی](http://farsiocr.ir/Archive/dataset_PRL.pdf)
+ [Kaggle Competition](https://www.kaggle.com/c/digit-recognizer)
+ [Semeion Handwritten Digit Data Set](http://archive.ics.uci.edu/ml/datasets/Semeion+Handwritten+Digit)
+ [MNIST Handwritten Digits](http://yann.lecun.com/exdb/mnist/)