PDA

View Full Version : تبدیل عکس به نوشته



prazvin
یک شنبه 02 تیر 1387, 08:22 صبح
سلام
خسته ناشید
بچه ها من میخوام یه تصویر رو که شامل یه متن هستش رو به همون متن تبدیل کنم.
مثلا فرض کنید "prazvin " در قالب یه عکس باشه می خوام بتونم از این عکس رشته "prazvin" رو بدست یارم.

MEHR4N
یک شنبه 02 تیر 1387, 10:37 صبح
این کاری که شما می خواین انجام بدین کار بسیار مشکلیه و کار 1 نفره ای نیست.
در حقیقت یک پروژه ای هست به نام OCR engine که اسم اصلیه همین کاریه که شما می خواین انجام بدین و گروه های برنامه نویسی مختلفی روش کار کردن و الان هم به صورت open source خیلی جاها قرار دادن.
حتی خود گوگل، سورس این برنامه رو قرار داده.اسم برنامه ای که گوگل روش کار کرده Tesseract OCR engine هستش که می تونید سورسش رو در Google Code پیدا کنید.

Alireza_Salehi
یک شنبه 02 تیر 1387, 16:46 عصر
بستگی به عکستون داره اگر عکس ساده هستش فونت هم مشخصه و الگوها واضح، بایک کانولوشن ساده همه چیز حله ولی اگر عکس دارای جزئیات زیادی هست و متن هم واضح نیست و فونت هم مشخص نیست باید برید سراغ شبکه عصبی و WAVELET و امثالهم که کار زیادی میبره.

در زمینه شبکه عصبی به روش Back Propagation کار زیاد انجام شده. (در CodeProject.com بگرد)

و مخصوصا اگر متنتون فارسی باشه و اون هم ازنوع دست نویس که راه درازی در پیش داری.

mehdad.koulab
یک شنبه 02 تیر 1387, 20:46 عصر
سلام همون طور که دوستان گفتند شما میخوای یه OCR بنویسی که برای متون انگلیسی رو تو بازار میتونین پیدا کنین تا اونجایی که من میدونم فقط برای فونتهای کامپیوتری است اونم نه همشون ولی برای فارسی 2 و 3 بار این ادعا شده ولی هنوز هیچ خبری نیست تو سایتم رو این مورد بحث شده اگه سرچ کنین میتونین پیدا کنین

B-Vedadian
دوشنبه 03 تیر 1387, 07:34 صبح
برای فارسی 2 و 3 بار این ادعا شده ولی هنوز هیچ خبری نیست

سایت www.farsiocr.com رو سربزنید، محصول تجاری آماده داره، بالاخره توسط یه شرکت خصوصی ساخته شد!


بستگی به عکستون داره اگر عکس ساده هستش فونت هم مشخصه و الگوها واضح، بایک کانولوشن ساده همه چیز حله

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

Tesseract یک برنامه سورس باز و آماده برای این کاربرده که دوستان قبلا بهش اشاره کردند(هر چند سر در آوردن از کدهای قاتی کلی توسعه دهنده کار آسونی نیست!)

Alireza_Salehi
دوشنبه 03 تیر 1387, 20:24 عصر
سایت www.farsiocr.com (http://www.farsiocr.com) رو سربزنید، محصول تجاری آماده داره، بالاخره توسط یه شرکت خصوصی ساخته شد!
با توجه به این مثال های خیلی ترو تمیزی که در سایتشون گذاشتن و هیچ آماری از عملکرد نرم افزار منتشر نکردن، کارایی این نرم افزار جای تردید داره!
کسانی که شبکه عصبی و پردازش تصویر بلد باشن متون تمیز و چاپی رو به راحتی استخراج می کنند، باید دید در حضور نویز چه طوری عمل میکنه.



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

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

B-Vedadian
دوشنبه 03 تیر 1387, 23:05 عصر
نیازی به سگمنت و این حرفا نیست

تا اونجايي که من ميدونم - مخصوصا براي انگليسي - نميان زير کلمه به شبکه آموزش بدن. اول حروف کلمات رو جدا مي کنند بعدش شناسايي و بعد از همه اينا اعمال قواعد زباني.

اگر از تکنيک تطبيق دادن (همون کانولوشن) هم استفاده بشه، باز هم بانک داده در حد چند ده تمپليت خيلي بصرفه تر از بانک داده متشکل از چند هزار زير کلمه است.

چطور بدون سگمنت کردن کلمات به حروف تشکيل دهنده ميشه کلمه رو با کانولوشن شناسايي کرد؟(واقعا برام سؤاله، استفهام انکاري نيست)

Alireza_Salehi
سه شنبه 04 تیر 1387, 07:59 صبح
اصلا بحث کلمه مطرح نبود تا اینجا! درباره حروف من صحبت می کردم (اون هم باشرایط خاص) البته واسه کلمه تا حالا تست نکردم ولی شاید در شرایط خاص بشه، دقت کنید که گفتم در شرایط خاص و منظورم تشریح ساده ترین حالت ممکن بود.
مثلا اگر شما به دنبال 5 یا 6 حرف یا عدد باشید که همبستگی کمی دارند و در تصویر هم فقط همان 5 یا 6 حرف موجود باشد کافیه به ازای هر حرف یک بار الگوی آن حرف را در تصویر کانوالو کنید(در Matlab میشه یک خط) در خروجی این کار تصویری دارید که محل تراکم نقاط محل الگوی شماست.



یک روش میتونه این باشه که کلمه ای آموزش بدین، مقاله ها رو یه کم بررسی کنید اکثرا حرف به حرف تحلیل می کنند نه کلمه ای.بعدش هم همه روش ها که با شبکه عصبی کار نمی کنند!

نظر شخصی من که فکر کنم زیاد هم دور ازواقعیت نباشه اینه که بانک الگو ها به صورت کلمه ای زیاد کارایی نداره، با یک بانک الگوی حرفی نتیجه بهتری حاصل میشه،
در ضمن تشخیص الگو کلا دو حالته یا آماری یا ساختاری ، همه این روشهایی که بر مبنای محاسبه شباهت و ... هستند آماری در نظر گرفته میشن (که مثلا تا 30~40 پارامتر هم برای مقایسه الگو ها استفاده شده)، در حال حاظر شناسایی ساختاری روش به روز تری هستش به طوری که میشه به تشخیص حروف دست نویس هم تعمیمش داد.

بانک الگوی کلمات در حالت دستنویس تقریبا کاربردی نداره. البته نمیگم اصلا خوب نیست بلکه در جاهایی مثل پردازش چک و ... که تعداد کلمات کم هستند خوب هم هست.

B-Vedadian
سه شنبه 04 تیر 1387, 15:14 عصر
پس به سؤال دوستمون توجه نکردی. قراره الگوریتم کلمه یا احتمالا متن شناسایی کنه.



اکثرا حرف به حرف تحلیل می کنند نه کلمه ای


منم همینو گفتم دیگه! شناسایی مرز کلمات خودش مبحث جدائیه که تو شناسایی حروف لازمه.


همه روش ها که با شبکه عصبی کار نمی کنند!

این درسته که همه روش ها با شبکه عصبی کار نمیکنند، ولی وقتی مساله شناسایی کلمه از تصویره، اونم کلمه چاپی، گزینه اول شبکه عصبیه. HMM برای کاربردهای online استفاده میشه.

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

dadvand
چهارشنبه 05 تیر 1387, 00:28 صبح
من در سایت .... یک خبر جدید در مورد OCR فارسی خوندم که یک شرکت تازه نوشته ، اونقدر سروصدا کرده بود که اول فکر کردم برای دست نوشته OCR نوشته ولی وقتی رفتم خوندم نوشته بود برای 12 فونت معروف فارسی .
نه عزیزان برا دست نوشته هیچ خبری نیست . برای متن تایپی روی ocr فارسی هست ولی برای دست نوشته راه طولانی در پیش است .