سلام
خسته ناشید
بچه ها من میخوام یه تصویر رو که شامل یه متن هستش رو به همون متن تبدیل کنم.
مثلا فرض کنید "prazvin " در قالب یه عکس باشه می خوام بتونم از این عکس رشته "prazvin" رو بدست یارم.
سلام
خسته ناشید
بچه ها من میخوام یه تصویر رو که شامل یه متن هستش رو به همون متن تبدیل کنم.
مثلا فرض کنید "prazvin " در قالب یه عکس باشه می خوام بتونم از این عکس رشته "prazvin" رو بدست یارم.
این کاری که شما می خواین انجام بدین کار بسیار مشکلیه و کار 1 نفره ای نیست.
در حقیقت یک پروژه ای هست به نام OCR engine که اسم اصلیه همین کاریه که شما می خواین انجام بدین و گروه های برنامه نویسی مختلفی روش کار کردن و الان هم به صورت open source خیلی جاها قرار دادن.
حتی خود گوگل، سورس این برنامه رو قرار داده.اسم برنامه ای که گوگل روش کار کرده Tesseract OCR engine هستش که می تونید سورسش رو در Google Code پیدا کنید.
بستگی به عکستون داره اگر عکس ساده هستش فونت هم مشخصه و الگوها واضح، بایک کانولوشن ساده همه چیز حله ولی اگر عکس دارای جزئیات زیادی هست و متن هم واضح نیست و فونت هم مشخص نیست باید برید سراغ شبکه عصبی و WAVELET و امثالهم که کار زیادی میبره.
در زمینه شبکه عصبی به روش Back Propagation کار زیاد انجام شده. (در CodeProject.com بگرد)
و مخصوصا اگر متنتون فارسی باشه و اون هم ازنوع دست نویس که راه درازی در پیش داری.
سلام همون طور که دوستان گفتند شما میخوای یه OCR بنویسی که برای متون انگلیسی رو تو بازار میتونین پیدا کنین تا اونجایی که من میدونم فقط برای فونتهای کامپیوتری است اونم نه همشون ولی برای فارسی 2 و 3 بار این ادعا شده ولی هنوز هیچ خبری نیست تو سایتم رو این مورد بحث شده اگه سرچ کنین میتونین پیدا کنین
سایت www.farsiocr.com رو سربزنید، محصول تجاری آماده داره، بالاخره توسط یه شرکت خصوصی ساخته شد!برای فارسی 2 و 3 بار این ادعا شده ولی هنوز هیچ خبری نیست
چطوری با کانولوشن این مساله رو میخواید حل کنید؟! خود سگمنت کردن حروف مساله جدا از شناسایی الگوست. این در مورد متون انگلیسی هم صدق میکنه (هر چند ساده تره) خیلی وقتها موقع چاپ شدن، مرز حروف انگلیسی در هم میره.بستگی به عکستون داره اگر عکس ساده هستش فونت هم مشخصه و الگوها واضح، بایک کانولوشن ساده همه چیز حله
Tesseract یک برنامه سورس باز و آماده برای این کاربرده که دوستان قبلا بهش اشاره کردند(هر چند سر در آوردن از کدهای قاتی کلی توسعه دهنده کار آسونی نیست!)
با توجه به این مثال های خیلی ترو تمیزی که در سایتشون گذاشتن و هیچ آماری از عملکرد نرم افزار منتشر نکردن، کارایی این نرم افزار جای تردید داره!
کسانی که شبکه عصبی و پردازش تصویر بلد باشن متون تمیز و چاپی رو به راحتی استخراج می کنند، باید دید در حضور نویز چه طوری عمل میکنه.
با شرایطی که گفتم و درشرایط خاص قابل انجامه (نیازی به سگمنت و این حرفا نیست) کافیه مفهوم کانولوشن رو درک کنید.در ضمن روش های online و offline زیادی هست و در خیلی هاشون کانولوشن به عنوان یک پارامتر به کار میره.
تا اونجايي که من ميدونم - مخصوصا براي انگليسي - نميان زير کلمه به شبکه آموزش بدن. اول حروف کلمات رو جدا مي کنند بعدش شناسايي و بعد از همه اينا اعمال قواعد زباني.
اگر از تکنيک تطبيق دادن (همون کانولوشن) هم استفاده بشه، باز هم بانک داده در حد چند ده تمپليت خيلي بصرفه تر از بانک داده متشکل از چند هزار زير کلمه است.
چطور بدون سگمنت کردن کلمات به حروف تشکيل دهنده ميشه کلمه رو با کانولوشن شناسايي کرد؟(واقعا برام سؤاله، استفهام انکاري نيست)
اصلا بحث کلمه مطرح نبود تا اینجا! درباره حروف من صحبت می کردم (اون هم باشرایط خاص) البته واسه کلمه تا حالا تست نکردم ولی شاید در شرایط خاص بشه، دقت کنید که گفتم در شرایط خاص و منظورم تشریح ساده ترین حالت ممکن بود.
مثلا اگر شما به دنبال 5 یا 6 حرف یا عدد باشید که همبستگی کمی دارند و در تصویر هم فقط همان 5 یا 6 حرف موجود باشد کافیه به ازای هر حرف یک بار الگوی آن حرف را در تصویر کانوالو کنید(در Matlab میشه یک خط) در خروجی این کار تصویری دارید که محل تراکم نقاط محل الگوی شماست.
یک روش میتونه این باشه که کلمه ای آموزش بدین، مقاله ها رو یه کم بررسی کنید اکثرا حرف به حرف تحلیل می کنند نه کلمه ای.بعدش هم همه روش ها که با شبکه عصبی کار نمی کنند!
نظر شخصی من که فکر کنم زیاد هم دور ازواقعیت نباشه اینه که بانک الگو ها به صورت کلمه ای زیاد کارایی نداره، با یک بانک الگوی حرفی نتیجه بهتری حاصل میشه،
در ضمن تشخیص الگو کلا دو حالته یا آماری یا ساختاری ، همه این روشهایی که بر مبنای محاسبه شباهت و ... هستند آماری در نظر گرفته میشن (که مثلا تا 30~40 پارامتر هم برای مقایسه الگو ها استفاده شده)، در حال حاظر شناسایی ساختاری روش به روز تری هستش به طوری که میشه به تشخیص حروف دست نویس هم تعمیمش داد.
بانک الگوی کلمات در حالت دستنویس تقریبا کاربردی نداره. البته نمیگم اصلا خوب نیست بلکه در جاهایی مثل پردازش چک و ... که تعداد کلمات کم هستند خوب هم هست.
پس به سؤال دوستمون توجه نکردی. قراره الگوریتم کلمه یا احتمالا متن شناسایی کنه.
منم همینو گفتم دیگه! شناسایی مرز کلمات خودش مبحث جدائیه که تو شناسایی حروف لازمه.اکثرا حرف به حرف تحلیل می کنند نه کلمه ای
این درسته که همه روش ها با شبکه عصبی کار نمیکنند، ولی وقتی مساله شناسایی کلمه از تصویره، اونم کلمه چاپی، گزینه اول شبکه عصبیه. HMM برای کاربردهای online استفاده میشه.همه روش ها که با شبکه عصبی کار نمی کنند!
الگوریتمهای بررسی ساختار هم که گفتید، درسته در مورد شناسایی حروف دست نویس، بعضی وقتها کل کار رو انجام میده ولی در مساله متون چاپی برای سگمنت کردن استفاده میشه نه برای شناسایی سگمنت ها.
من در سایت .... یک خبر جدید در مورد OCR فارسی خوندم که یک شرکت تازه نوشته ، اونقدر سروصدا کرده بود که اول فکر کردم برای دست نوشته OCR نوشته ولی وقتی رفتم خوندم نوشته بود برای 12 فونت معروف فارسی .
نه عزیزان برا دست نوشته هیچ خبری نیست . برای متن تایپی روی ocr فارسی هست ولی برای دست نوشته راه طولانی در پیش است .