در سامانه‌های پیدا کردن متن در تصویر، هدف آن است که مکان متن موجود در تصویر را مشخص کنیم. برای مثال به تصاویر زیر توجه کنید که چگونه مکان متون موجود در آن‌ها مشخص شده است:

نمونۀ تصاویر با مشخص شدن مکان متن

کاربرد اصلی این مسئله به عنوان یک پیش پردازش قبل از تبدیل تصویر به نوشتار یا همان OCR است.

۱. مقدمه

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

از جمله مشکلات و پیچیدگی های استخراج متن از این تصاویر، عبارت است از :
1- پیچیدگی پس زمینه تصویر2 : وجود پس‌زمینه‌ی پیچیده از دو جهت می‌تواند ایجاد مشکل نماید. اول آنکه برخی از اشیا که دارای ساختار منظم و یا بافت خاصی هستند (مانند درها، پنجره‌ها، خطوط خیابان، برگ درختان و غیره ) به اشتباه متن شناسایی می‌گردند. دوم آنکه زمانی‌که پس‌زمینه‌ی متن تصویری پیچیده‌است نمی‌توان لبه‌های3 متن را به درستی مشخص نمود.

2- سطوح غیر هم‌سطح 4 : ممکن است متن موجود در تصویر، قسمتی در یک سطح و قسمتی در سطح دیگر داشته باشد و یا دارای عمق و بعد بوده باشد. تشخیص این متون مشکل است.

سطوح غیر هم‌سطح

3- جهت متن :متن موجود در تصویر ممکن است دارای زاویه بوده و جهت آن به صورت افقی محض نباشد.

جهت متن

4-روشنایی کنترل نشده 5 : در برخی از تصاویر روشنایی و نورپردازی به صورت ناهموار است به طوری که قسمتی دارای وضوح و روشنایی بیشتر و قسمتی از آن تاریک است.

نورپردازی ناهموار

5- کیفیت پایین : به دلیل استفاده از دوربین‌های معمولی ،کیفیت پایین تصاویر ، یکی از اصلی‌ترین مشکلاتی است که برای پیدا کردن متن در تصویر با آن مواجه هستیم.

6- مشخص نبودن مرز متن و پس‌زمینه: ممکن است متن موجود هم‌رنگ با پس‌زمینه خود بوده و تشخیص لبه آن به سختی صورت بگیرد.

مشخص نبودن مرز متن و پس زمینه

7- تنوع در رسم‌الخط‌ :

تنوع در رسم‌الخط‌

[2]
موارد ذکر شده در بالا مشکلات اصلی برای پیدا کردن متن در تصاویر است. مشکلات دیگری مانند فونت، رنگ و اندازه متون نیز وجود دارد.
حال به بررسی اهمیت پیدا کردن و تشخیص متن در تصویر می‌پردازیم. این کار می‌تواند سببب بهبود روش‌های مورد استفاده در ابزارهای نویسه‌خوان نوری6 شود. با استفاده از بهبود روش‌ها می‌توان عکس‌های تهیه شده با دوربین‌های معمولی را نیز به نوشته‌های مناسب تبدیل نمود.
دلیل دیگر این کار استفاده از متن تصویر برای نمایه‌7کردن آن است. یعنی با توجه به متن تصویر متوجه شویم که تصویر نمایانگر چه محلی می‌باشد.

۲. کارهای مرتبط

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

کیم و همکارانش [3] روشی را که تر کیبی از SVM و CAMSHIFT است را پیشنهاد دادند. SVM برای تحلیل خواص بافت متون، مورد استفاده قرار می گیرد. ویژگی‌های بافت ، با شدت پیکسل های خام که به طور مستقیم به SVM تغذیه می شوند، محاسبه می‌گردند و مناطق متن با استفاده از الگوریتم CAMSHIFT به وسیله نتایج تجزیه و تحلیل بافت، شناسایی می شوند.

پان و همکارانش [4] روشی ترکیبی را ارائه کرده‌اند. این روش دارای سه مرحله اصلی پیش‌پردازش، تحلیل مولفه همبند و گروه‌بندی متن است. در ابتدا یک آشکارساز منطقه ای برای تشخیص مناطق متن، در هر لایه هرم تصویر، طراحی شده است. سپس مقیاس سازگاری محدوده محلی، برای تولید مولفه های متن کاندید، استفاده می شود. یک فیلد تصادفی شرطی (CRF) برای فیلتر کردن اجزای غیر متن استفاده می گردد. در نهایت، قطعات متن به خطوط متن یا کلمات، با روش بهینه سازی یادگیری، گروه بندی می شوند. این روش برای متون متراکم در تصاویر با شدت کم کار می کند.
الگوریتم پیشنهادی در زیر آمده‌است :

الگوریتم پیشنهادی سیستم پان

ناصریما موراتی و کومااراسویمی[5] از روش تبدیل ویولت گسسته هارر 8و خوشه بندی9 استفاده می کردند.در این روش برای استخراج متن از تصویر و برای طبقه بندی دقیق تر قسمت های متنی و غیر متنی، عملیات مورفولوژیکی گنجانده شده است. معمولا بیشتر الگوریتم‌ها تصویر را در مقیاس خاکستری به عنوان ورودی می گیرند، اما در این روش رنگی از رنگ RGB به عنوان ورودی استفاده می شود. لبه‌های برجسته با استفاده از تبدیل موجک Harr شناسایی می شوند.
در این روش ، ویژگی‌های آماری از جمله : میانگین، انحراف استاندارد و انرژی برآورد شده است. خوشه بندی به این منظور استفاده می شود که مجموعه داده ها با توجه به فاصله‌ها، تقسیم بندی شوند. سپس مناطق غیر متن با استفاده از عملیات مورفولوژیکی حذف می گردند. روش پیشنهادی می تواند نتایج خوشه بندی متن را برای تصویر با پس زمینه یکنواخت به دست آورد، اما وقتی که پس‌زمینه غیر یکنواخت است، نمی‌‌تواند متن را پیدا کند. الگوریتم پیشنهادی به جابه‌جایی و جهت قرار دادن متن حساس است.
در فلوچارت زیر مراحل این الگوریتم ذکر شده‌اند :

فلوچارت سیستم پیشنهادی ناصریماموراتی و کومااراسویمی

چن و همکارانش [6] روشی براساس یافتن نواحی کاندید، هرس کردن آن‌ها و گروه‌بندی ارائه دادند. در این روش، در ابتدا نواحی که امکان وجود متن در آن است، به‌دست می‌آید. سپس با فیلتر براساس مولفه‌های همبند و SWT، نواحی که متن در آن ها موجود نیست، هرس می‌شوند و در آخر با اتصال حروف به هم، خطوط به دست می‌آیند.
مراحل این روش به شکل زیر است :

فلوچارت سیستم پیشنهادی چن

جانگ و همکارانش[7]‌ معماری کلی برای سامانه‌های استخراج اطلاعات متن10 به اختصار TIE ارائه کرده‌اند. که دومین مرحله این معماری پیدا کردن مکان متن11 می‌باشد.
در فلوچارت زیر الگوریتم پیشنهادی را مشاهده می‌کنید :

فلوچارت سیستم پیشنهادی جانگ

رویکردهای موجود برای تشخیص متن می‌تواند تقریبا به سه دسته تقسیم شود: روش‌های مبتنی بر بافت12، روش‌های مبتنی بر منطقه 13و روش‌های ترکیبی.

+روش‌های مبتنی بر بافت : متون متنی متون را به عنوان یک نوع خاص بافت اداره می‌کنند و از خواص آنها مانند تنش‌های محلی، پاسخ‌های فیلتر و ضرایب موجک استفاده می‌کنند. این روش‌ها محاسبه‌ای است که خواستار آن هستیم زیرا تمام مکان‌ها و مقیاس‌ها به طور کامل اسکن می‌شوند. علاوه بر این، این الگوریتم‌ها عمدتا متون افقی را تشخیص می‌دهند.

+روش‌های مبتنی بر منطقه : روش‌های مبتنی بر منطقه ابتدا مناطق متن کاندید را از طریق تشخیص لبه یا خوشه‌بندی مشخص کرده و سپس مناطق غیرمتنی را با استفاده از قوانین اکتشافی مختلف حذف می‌کند.

+دسته سوم، روش‌های ترکیبی و مخلوطی از روش‌های مبتنی بر بافت و مبتنی بر منطقه است.[8]

۳. آزمایش‌ها

برای انجام این بخش از داده‌های موجود در این سایت استفاده‌شده‌است.
این پایگاه داده شامل 500 تصویر طبیعی است که با استفاده از یک دوربین جیبی گرفته‌شده‌است. مجموعه دادگان موجود به دو قسمت تقسیم می‌شوند: داده‌های آموزشی و داده‌های آزمایشی. داده‌های آموزشی شامل 300 تصویر است که به طور تصادفی از مجموعه دادگان اصلی انتخاب شده و 200 تصویر باقی مانده، داده‌های آزمایشی را تشکیل می‌دهند.
پروژه انجام شده به این صورت پیاده‌سازی شده‌است که پردازش تصویر در آن به صورت لوله‌ای 14 انجام می‌گیرد. در این روش، ورودی هر مرحله، خروجی مراحل قبل است. بنابراین نیاز به داده‌های آموزشی در آن نیست و تمام داده های آموزشی و آزمایشی، به عنوان داده های آزمایشی استفاده‌ می‌شود.

الگوریتم پیشنهادی برای این پروژه تقریبا همان روش پیشنهادی چن[6] است. میتوان آن را طبق مراحل زیر پیاده‌سازی کرد :
1- تصاویر مورد استفاده اغلب به این شکل هستند که نواحی با رنگ یکسان در آنها زیاد است. بنابراین در این مرحله با حذف این نواحی، سعی در نگهداری مکان‌هایی داریم که متن در آن‌ها موجود است. این کار را با تابع threshold که متعلق به opencv در پایتون است، انجام می‌دهیم.
خروجی این مرحله به شکل زیر می‌باشد :

خروجی مرحله اول

2- در این مرحله به منظور یافتن لبه‌های [^edges] موجود در تصویر، از تابعCanny موجود در پکیج opencv، استفاده می‌کنیم که خروجی زیر را می‌دهد:

خروجی مرحله دوم

3- ورودی این مرحله، عکس خروجی مرحله پیش است. در این مرحله تلاش می‌شود تا به وسیله تابع floodFill، نواحی داخلی لبه‌های تشخیص‌داده‌شده در مرحله قبل، پر گردد.
خروجی این مرحله را در زیر می‌توانید مشاهده کنید :

خروجی مرحله سوم

4- در این مرحله خروجی مرحله اول را با سوم and می‌کنیم تا خروجی حاصل تنها شامل متن موجود باشد. که خروجی آن به شکل زیر است :

خروجی مرحله چهارم

5- در این مرحله با یافتن نواحی همبند، قسمت‌هایی از تصویر که متن در آن نیست را هرس می‌کنیم.

6-حال حروف موجود در عکس را به هم متصل می‌کنیم تا خطوطی به دست بیایند. در واقع در آخر این مرحله باید تنها خطوط متن در تصویر موجود باشند.

7-در نهایت با به دست آوردن نقاط گوشه‌ای خطوط به دست آمده در مرحله قبل، سعی در کشیدن مستطیل هایی که مشخص کننده متن است، می‌کنیم.

لازم به ذکر است که در این مرحله از پروژه، مراحل1 تا 4 پیاده سازی شده است و در مرحله بعدی ادامه آن پیاده سازی می‌شود. به همین دلیل در این مرحله امکان گرفتن خروجی پایانی و استفاده از مجموعه دادگان و بررسی میزان دقت15 و فراخوانی16 و امتیاز F 17 فراهم نبود.

کد پروژه تا این مرحله در این لینک[9] در سایت گیت هاب قرار گرفته‌است.

۴. کارهای آینده

۵. مراجع

[1]T.Kasar, J.Kumar and A.G.Ramakrishnan,“Font and Background Color Independent Text Binarization” Medical Intelligence and Language Engineering Laboratory Department of Electrical Engineering, Indian Institute of Science Bangalore, INDIA - 560 012.
[2]L. Agnihotri and N. Dimitrova, “Text detection for video analysis,” in Proceedings of IEEE International Workshop on Content-Based Access of Image and Video Libraries, pp. 109–113, June 1999.
[3]Kwang In Kim, Keechul Jung, and Jin Hyung Kim, “Texture-Based Approach for Text Detection in Images Using Support Vector Machines and Continuously Adaptive Mean Shift Algorithm”
[4]YF. Pan, X. Hou, CL. Liu, "A Hybrid Approach to Detect and Localize Texts in Natural Scene Images," IEEE Transactions on Image Processing, vol. 20, no. 3, pp. 800-813, 2011.
[5]Narasimha Murthy K N, Dr. Y S Kumaraswamy, "A Novel Method for Efficient Text Extraction from Real Time Images with Diversified Background using Haar Discrete Wavelet Transform and K-Means Clustering"
[6]Huizhong Chen, Sam S. Tsai1, Georg Schroth, David M. Chen, Radek Grzeszczuk and Bernd Girod, "Robust text detection in natural images with edge-enhanced Maximally Stable Extremal Regions"
[7] K. Jung, K. I. Kim, A. K. Jain, "Text Information Extraction in Images and Video: a Survey," Pattern Recognition, Elsevier, vol. 37, no.5, pp. 977–997, 2004.
[8]Cong Yao, Xiang Bai, Wenyu Liu, Yi Ma, Zhuowen Tu, "Detecting Texts of Arbitrary Orientations in Natural Images"
[9]https://github.com/aeinsara/Detect-text-in-image2

۶. پیوندهای مفید


  1. scan

  2. complex backgrounds

  3. edges

  4. nonplaner surfaces

  5. uneven lightening

  6. optical character recognition

  7. index

  8. Harr discrete wavelet transform

  9. clustering

  10. text information extraction

  11. text localization

  12. texture-based

  13. region-based

  14. pipline

  15. precision

  16. recall

  17. F_score

رد شده

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

سید ابوالفضل مهدی زاده

با سلام و خسته نباشید.

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