PDA

View Full Version : نوشتن برنامه OCR فارسی



jackinthebox
سه شنبه 10 آذر 1383, 00:00 صبح
اگر کسی اطلاعات مفیدی در این زمینه دارد و مخصوصا اگر source برنامه ی ocr برای زبان انگلیسی را دارد به من کمک کند.
متشکرم

shaniaki
سه شنبه 17 آذر 1383, 00:54 صبح
با عرض ادب:
معمولا برای اینجور برنامه ها الگوریتم نمی نویسند که شما سورسش رو گیر بیاری.
پیشنهاد می کنم اگر خیلی پایه این کار هستی مباحث مربوط به شبکه های عصبی مصنوعی رو مطالعه کنی.
تو کتاب فارسی دکتر محمد باقر منهاج یه مثالش وجود داره (البته برای اعداد)

یه عشق برنامه نویسی خفن

AlirezaBahredar
چهارشنبه 18 آذر 1383, 23:29 عصر
به قول مدیر بخش محترم اصلا دنبال سورس کد نباش.............
توصیه می کنم دنبال الگوریتم Halfman بری.....موفق باشی

GentleGuy
شنبه 03 اردیبهشت 1384, 01:35 صبح
معمولا برای اینجور برنامه ها الگوریتم نمی نویسند که شما سورسش رو گیر بیاری
پس چی مینویسن؟؟؟ :strange:

B-Vedadian
شنبه 10 اردیبهشت 1384, 09:50 صبح
سلام،
برنامه!

الگویتمهایی که تا به حال استفاده شده همونهایی اند که جناب shaniaki نوشتند. شبکه های عصبی مصنوعی بهترین جواب رو در مورد الگویابی تصویری میدن ولی این فقط یک بخش ماجراست.

اول باید حروف یک نوشته دست نویس رو بتونی جدا کنی بعدش بدی به یه شبکه عصبی که شبیه ترین حرف به این دست نوشته رو تعیین کنه.

این قدر بگم که پروژه فوق لیسانس بعضی دانشجویان مهندسی کامپیوتر تو ایران نوشتن یک الگوریتم مناسب برای جدا کردن حروف فارسی از عکسهاییه که از متون چاپی گرفته شدند. دقت کن که عکس متون چاپی با فونتهای معموله نه دست نوشته!

mzjahromi
شنبه 07 آبان 1384, 14:32 عصر
من پروژه پایانیم Font Recognition بود و تحقیقات زیادی تو این زمینه داشتم فقط یه چیزی هست اونم اینکه احتمالات و مسائل آماری تو این زمینه خیلی استفاده می شه. نمیشه گفت الگوریتم نداره ولی الگوریتمش مثل این الگوریتمهای معمولی نیست. در واقع باید یه روش کار داشته باشی نه الگوریتم

amirsadeghi
چهارشنبه 12 اردیبهشت 1386, 20:46 عصر
منم رو این قضیه کار کردم
ولی فقط روی اعداد فارسی اگه می خواین در خدمتم

D32.00110
پنج شنبه 13 اردیبهشت 1386, 09:08 صبح
اگر کسی اطلاعات مفیدی در این زمینه دارد و مخصوصا اگر source برنامه ی ocr برای زبان انگلیسی را دارد به من کمک کند.
متشکرم

من روی این زمینه کار کرده بودم و زیاد هم جلو رفته بودم ولی بنا به دلایلی ... نشد .
اگه با ای دی من تماس بگیری من در خدمتم سورس OCR انگلیسی و یه الگوریتم داشتم اگه پیدا کنم می دم بهت ...
اگه می خای واسه دست نوشته فارسی OCR بنویسی تقریبا می تونم بگم بی خیال شو ولی اینم بدون غیر ممکن ، غیر ممکنه ...

jeus
پنج شنبه 13 اردیبهشت 1386, 09:39 صبح
ocr فارسی نوشته شده 90% برای متن تایپ شده 60% دستنویس

amirsadeghi
پنج شنبه 13 اردیبهشت 1386, 10:05 صبح
غیر ممکن که نیست قابل انجام هست و من هم دارم روش کار می کنم و دارم جواب میگیرم

SYSMAN
پنج شنبه 13 اردیبهشت 1386, 17:26 عصر
این (http://www.codeproject.com/dotnet/simple_ocr.asp) مناسب هست
فکر می کنم اینجا (http://www.codeproject.com/info/search.asp?cats=1&searchkw=ocr&sd=11/15/1999&ed=5/3/2007&Page=2) هم مطالب مناسبی برای یادگیری پیدا کنید.

amirsadeghi
پنج شنبه 13 اردیبهشت 1386, 21:41 عصر
خوب بود ممنون
موضوع جدید تری سراغ ندارید؟

samira2
شنبه 20 بهمن 1386, 14:44 عصر
این یک برنامه ی OCRاست فکر می کنم بتونه کمکتون کنه
با آرزوی موفقیت برای همه ی شما

bahar_engineer
چهارشنبه 01 تیر 1390, 09:34 صبح
این یک برنامه ی OCRاست فکر می کنم بتونه کمکتون کنه
با آرزوی موفقیت برای همه ی شما

ببخشید این چه برنامه ایه ؟ با چه زبانی هست؟ با چی اجرا می شه ؟؟!!

bijanbina
دوشنبه 13 تیر 1390, 17:24 عصر
خیلی واضحه برنامه برای متلب هست

dousti_design
یک شنبه 19 تیر 1390, 16:13 عصر
بدون شک بهترین روش شبکه های عصبی مصنوعی هست.( فکر کنم بشه با پرسپترون چند لایه جمع و جورش کرد)
من خودم قبلا یه برنامه نوشته بودم که کپچای بلاگفا رو میخوند اما باشبکه های عصبی نبود به خاطر همین میزان خطاش بالا میشد.
برای اعداد دیجیتالی با پرسپترون چندلایه تست کردم(البته انگلیسی) که جوابش بد نبود. عکسشو میذارم ببینید
طراحی سایت (http://sepandsystem.ir/) و طراحی وب سایت (http://sepandsystem.ir/)

wolf_majid
یک شنبه 11 دی 1390, 11:31 صبح
سلام
منم یک برنامه یا یک الگوریتم برای شناسایی حروف انگلیسی تایپی می خوام (تحت نرم افزار متلب)
خواهشا" هر کی بلده کمکم کنه
خیلی گشتم اما چیز بدرد بخوری پیدا نکردم

خواهشا" کمک کنید

wolf_majid
سه شنبه 13 دی 1390, 19:53 عصر
جالبه ها
همه می گند نوشتن ocr انگلیسی ساده تره
اما من هر چی گشتم یک الگوریتم بدرد بخور یا سورس تحت مطلب نیافتم
خواهشا" اگر کسی نوشته یا بلده کمک کنه
ممنون میشم

bhodaaaaa
جمعه 29 اردیبهشت 1391, 11:20 صبح
سلام
ببخشيدممنون ميشم درمورد بازشناسي اعداد کمکم کنيد.
پروژه دارم نميدونم چيکاربکنم.
bhoda68_h@yahoo.com
مرسي

مصطفی ساتکی
جمعه 29 اردیبهشت 1391, 22:27 عصر
سلام
ببخشيدممنون ميشم درمورد بازشناسي اعداد کمکم کنيد.
پروژه دارم نميدونم چيکاربکنم.
bhoda68_h@yahoo.com
مرسي
من سوالی نمی بینم . سوالتونو مطرح کنید پاسخ داده میشه

mahyafa
پنج شنبه 16 شهریور 1391, 18:38 عصر
من برای پروژه پایانیم (کارشناسی) دشته بندش اعداد دست نویس فارسی با svm با matlab رو تعیین کردم. با اینکه خیلی مطالعه کردم اما هنوز گیجم!! از صحبتهای دوستان که گفتن سخته هم بیشتر نگران شدم! از دوستان اگر کسی در این زمینه فعالیت داره یا داشته ممنون می شم من رو راهنمایی کنن.
تعدادی از سوالاتم رو مطرح می کنم:
- هسته های مختلف svm کدام هستند و هر کدام چه کاربردی دارند؟
- از چه روشی برای استخراج ویژگی استفاده کنم؟
- کسی با متلب پردازش تصویر انجام داده؟ (سوال در مورد کد نویسی و به صورت جزیی دارم)

erfan_com
پنج شنبه 13 تیر 1392, 10:32 صبح
این یک برنامه ی OCRاست فکر می کنم بتونه کمکتون کنه
با آرزوی موفقیت برای همه ی شما
salam
kodet bug ziad dare. tarze estefadasham mobhame.
ye tuzihi midi raje behesh?

yakhteh
دوشنبه 07 مرداد 1392, 12:12 عصر
درود
من OCR حروف دستنویس انگلیسی رو نوشتم و خوب جواب داده
از تابع Log-sigmoid در شبکه عصبی 3 لایه با قانون پس انتشار خطا استفاده کردم، کتاب دکتر منهاج کمک میکنه.
حتما در مورد حروف تایپی خوب جواب میده
پیروز باشی

manij_mhm
جمعه 11 مرداد 1392, 13:24 عصر
من برای پروژه پایانیم (کارشناسی) دشته بندش اعداد دست نویس فارسی با svm با matlab رو تعیین کردم. با اینکه خیلی مطالعه کردم اما هنوز گیجم!! از صحبتهای دوستان که گفتن سخته هم بیشتر نگران شدم! از دوستان اگر کسی در این زمینه فعالیت داره یا داشته ممنون می شم من رو راهنمایی کنن.
تعدادی از سوالاتم رو مطرح می کنم:
- هسته های مختلف svm کدام هستند و هر کدام چه کاربردی دارند؟
- از چه روشی برای استخراج ویژگی استفاده کنم؟
- کسی با متلب پردازش تصویر انجام داده؟ (سوال در مورد کد نویسی و به صورت جزیی دارم)


سلام. اگه بخوای خود svm رو پیاره سازی کنی یکم سخت میشه! اما اگه فقط بخوای از SVM متلب استفاده کنی که مشکلی نیست.
برای ویژگی ها هم پیشنهاد می کنم تعداد ویژگی ها رو زیاد انتخاب کن بعد هم با استفاده از الگوریتم های feature selection می تونید ویژگی های مناسب رو انتخاب کنید. این کار دقت برنامه رو بالا میبره.
برای ویژگی ها هم ممنتم، بافت تصویر، درصد پیکسل ها در مکانهای خاص تصویر، میانگین - واریانس - چولگی و انتروپی و.. می تونه باشه.
موفق باشید.

مصطفی ساتکی
جمعه 11 مرداد 1392, 15:15 عصر
مومنت قابل اعتماد نیست و ضرایبش یکه نیست حتی المکان zernik استفاده کنید و انتروپی در تصاویری باینری feature خاصی رو به شما نمی ده در این کاربرد زائد در انتها خود به خود از feature هاتون حذف میشه .اغلب از feature های با طول متغیر استفاده میشه که از خود شکل هندسی استخراج می کنند در فاز clustering و در فاز classification به روش های مختلف این feature را به feature های با طول ثابت تبدیل می کنند در ضمن svm بدون pca قابلیت genralization را نداره.در ضمن در ocr های تجاری بایستی از کرنل rbf استفاده شه چون با کرنل linear فاز cross validation پاس نمیشه .

manij_mhm
جمعه 11 مرداد 1392, 16:04 عصر
ویژگی هایی که انتخاب میشن بسته به مجموعه داده ای متفاوت هستند. ممنتم یکی از ویژگی هایه که بنده شخصا استفاده کردم و نتیجه قابل قبولی گرفتم البته تاثیر سایر ویژگی ها هم تباید نادیده گرفت.
به عنوان مثال ممنتم نسبت به چرخش عکس العملی نشون نمیده و 7و8 رو در زبان فارسی یکسان در نظر میگیره. در خالت کلی این یه ویژگی مفیده اما در حروف دست نویس فارسی برای 7و8 نقصه که باید با یه ویژگی مثل تعداد پیکسل های پایین به بالای تصویر اونو رفع کرد! ولی متوجه نشدم چرا قابل اعتماد نیست؟ میشه لطفا بیشتر توضیح بدید؟ پیشنهاد شما اینه که از کانتور ها استفاده شه؟ یا ویژگی دیگه ای مد نظرتونه؟!

مصطفی ساتکی
جمعه 11 مرداد 1392, 16:09 عصر
خدمتتون عرض کردم در حالت های مختلف این ضرایب نمی تونند برای اشکال مختلف feature های تولید کنید که واریانس بین کلاسی این feature ها زیاد باشه یکی همون مورده که شما عرض کردید و در عمل خیلی مشکلات دیگه.
بله از خود کانتور به عنوان feature استفاده شه خیلی عالیه .

manij_mhm
جمعه 11 مرداد 1392, 23:44 عصر
اون مشکل در اصل مشکل feature نیست مشکل از حروف فارسی 7,8 هست که با چرخش یکی حساب میشن. ممنتم چون نسبت به چرخش حساس نیست مشکل زاویه رو حل میکنه به جز موردی که عرض شد. در واقع این مزیت این سری ویژگی هاست. کانتور در برابر چرخش حساسه؟ اگه حساس باشه باز هم در برابر حروف فارسی همین مشکل رو خواهد داشت. اگر هم نه که باید مشکل زاویه رو به طریق دیگری حل نمود.

مصطفی ساتکی
شنبه 12 مرداد 1392, 15:26 عصر
نه حساس نیست وقتی تو فاز تشخیص layout شما صفحه را بخش بندی می کنید ماتریس چرخش بدست میاد و این ماتریس چرخش زمانیکه میخاید کانتور را نرمال کنه اعمال می کنه .

manij_mhm
شنبه 12 مرداد 1392, 16:57 عصر
خوب بازم مشکل رو برای 7و8 داریم. برای حل این مشکل باید چی کار کرد؟

مصطفی ساتکی
شنبه 12 مرداد 1392, 17:02 عصر
مشکلی نداریم.شما در انتها یک کانتور نرمال شده دارید این کانتورهای به روش های unsupervise کلاستر میشن تو کانتور اصلاً 8 و 7 هیچ شباهتی به هم ندارند معمولاً در فاز train از partial contour کانتور استفاده می کنند.

manij_mhm
شنبه 12 مرداد 1392, 17:08 عصر
چرا به هم شباهتی ندارند؟! مگه کانتور بر اساس شکل نیست؟

مصطفی ساتکی
شنبه 12 مرداد 1392, 18:46 عصر
کانتور یعنی توالی از پاره خط ها به صورت پاد ساعتگرد یا به عبارتی دیگه مجموعه از نقاط به همراه گرادیان در هر نقطه این میشه کانتور حالا به صورت مجموعه از پاره خط ها 8 و 7 را تصور کن می بینید که هیچ شباهتی ندارند در ابتدا ذکر کردم که کانتور در ابعاد مشخص نرمال میشه.

manij_mhm
شنبه 12 مرداد 1392, 19:30 عصر
خوب دقیقا همین. حالت ساده بخوام جمله شما رو بگم کانتور میشه حاشیه حرف یا عدد. که برای 7و8 فارسی یکیه!! احتملا شما برای انگلیسی می فرمایید. اما در فارسی 7 رو 180 درجه بچرخونیم میشه 8!

مصطفی ساتکی
یک شنبه 13 مرداد 1392, 08:52 صبح
یه شکل میزارم شاید راحت تر متوجه شید .هر یک از اعضای کانتور دارای یک نقطه و یک زاویه هستند.
به شکل زیر نگاه کنید.
108454

manij_mhm
یک شنبه 13 مرداد 1392, 09:59 صبح
ببینید اگه این دوتا 8و7 رو با هم متفاوت بگیریم یعنی باید بگیم که کانتور چرخش رو تشخیص نمیده!! درسته؟

مصطفی ساتکی
دوشنبه 14 مرداد 1392, 13:31 عصر
خطوط قرمز رو می بینی از هر کدو از آنها ویژگی استخراج می کنی هر پاره خط 2 تا نقطه ابتدا و انتها داره نقطه ابتدا ویژگی x,y و زاویه نسبت به سطح افقش نسبت به نقطه دوم theta میشه ویژگی سوم حالا همه اینها برای این 2 کانتور نرمال شده را استخراج کن ببین شباهتی به هم دارن؟
نیازی نیست کانتور چرخش را تشخیص بده چون کپچا که نیست در ضمن اون کارو هم بخای انجام بدی با همین کانتور هم راه داره یه سری ویژگی rotation invariant استخراج می کنی اونم قابله حله.

kourepaz
چهارشنبه 31 اردیبهشت 1393, 22:35 عصر
سلام این پیاده سازی بر چه اساسی یا الگوریتمی استفاده شده متشکرم

SaeedMK
دوشنبه 12 خرداد 1393, 15:16 عصر
سلام ببخشید میخواستم بدونم همین برنامه رو با زبون C# و Emgucv داری؟
یا حداقل میتونی به من راهنمایی کنی که من چجوری این کار رو انجام بدم ممنون میشم چون خیلی این رو لازم دارم.
پروژه دانشگاهم تشخیص اعداد 1 تا 9 ممنون میشم به اندازه اینکه فقط بهم بگی از کجا شروع کنم تا کجا ممنون میشم.
در حد الگوریتم ممنون


:قلب: