Photo OCR - Problem Description and Pipeline

توصیف مسئله و pipeline

در این فصل می‌خواهیم مثالی از کاربرد یادگیری ماشین را در ارتباط با اپلیکیشن Photo OCR بررسی کنیم. به ۳ دلیل این فصل را به این موضوع اختصاص داده‌ایم:

  1. مشاهده کنیم که چگونه یک سیستم پیچیده یادگیری ماشین سرهم بندی می‌شود.
  2. به جنبه pipeline در یادگیری ماشین و چگونگی اختصاص دادن منابع در دسترس بعد از تصمیم‌گیری در مورد اینکه گام بعدی ما چه خواهد بود، بپردازیم. چه برای زمانیکه به تنهایی روی یک پروژه پیچیده یادگیری ماشین کار کنید و چه زمانیکه به صورت گروهی روی یک پروژه پیچیده یادگیری ماشین کار کنید.
  3. مسئله Photo OCR می‌تواند زمینه‌ای را فراهم کند که در مورد دو مبحث یادگیری ماشین؛ Computer Vision و ایده داده‌سازی مصنوعی بحث کنیم.

مسئله Photo OCR چیست؟ با رشد عکس‌برداری دیجیتال و رشد دوربین‌های موبایل، عکس‌های بسیار زیادی از اطراف خود داریم. یکی از مسائلی که برنامه‌نویسان را به خود مشغول کرده، آن است که چگونه محتوای این عکس‌ها را بهتر درک کنیم. Photo OCR یا کامل آن Photo Optical Character Recognition روی مسئله تشخیص متن‌های موجود در عکس توسط کامپیوتر تمرکز دارد. اگر عکسی مانند زیر داشته باشیم، بسیار جالب خواهد بود که کامپیوتر بتواند متن‌های داخل آن را تشخیص دهد.

و برای مثال اگر به دنبال این عکس باشید، به جای گشتن داخل صدها عکسی که ممکن است داشته باشید، با تایپ عبارت LULAB's کامپیوتر این عکس را به شما نشان دهد. Photo OCR دقیقاً چنین کاری را انجام می‌دهد. ابتدا در عکسی که به آن داده شده است، دنبال قسمت‌هایی می‌گردد که در آن متن وجود داشته باشد (کادرهای قرمز رنگ) و سپس در مناطق مشخص شده، سعی در خواندن متن‌ها می‌کند.

خواندن متن از روی سندهای اسکن شده (متن‌هایی که به صورت عکس ذخیره شده‌اند.) آسان‌تر از خواندن متن داخل عکس‌هایی مشابه عکس نشان داده شده در بالا است و این مسئله همچنان جزو مسائل بسیار دشوار یادگیری ماشین محسوب می‌شود.

OCR علاوه بر خواندن متن داخل عکس‌ها می‌تواند کاربردهای دیگری هم داشته باشد. برای مثال آدم نابینایی را تصور کنید که مجهز به دوربینی باشد، که بتواند تابلوها و علائم اطراف را برای او بخواند، چه کمک بزرگی به او در شناسایی اطراف خود کرده است. یا امروزه محققانی هستند که روی مسئله خواندن علائم توسط ماشین کار می‌کنند تا ماشین شما بتواند در مسیریابی کمک کننده شما باشد.

Photo OCR Pipeline

  1. تشخیص متن.
  2. تقسیم بندی کاراکترها (جداسازی کاراکترها)
  3. طبقه‌بندی کاراکترها (تشخیص اینکه هر کاراکتر چه حرفی است.)

بعضی از اپلیکیشن‌های OCR مرحله پیشرفته دیگری به عنوان تصحیح املایی دارند. برای مثال اگر واژه c1leaning را تشخیص داده باشد، این قسمت از برنامه با تصحیح عبارت فوق به cleaning عبارت درست را نمایش می‌دهد که البته ما این مورد را در اینجا بحث نخواهیم کرد.

چنین سیتمی را pipeline یادگیری ماشین می‌نامند. به صورت خاص در زیر pipeline اپلیکیشن Photo OCR را نمایش داده‌ایم.

در هر مسئله پیچیده‌ای از یادگیری ماشین وجود چنین pipeline رایج است، که در آن ممکن است چندین مدول داشته باشید (در اینجا 3 مدول داریم) که ممکن است هر یک مولفه‌ای از یادگیری ماشین باشند. البته گاهی هم ممکن است مولفه‌ای از یادگیری ماشین نباشند، بلکه مجموعه‌ای از مدول‌ها باشند که یکی پس از دیگری روی بخشی از داده جهت به دست آوردن خروجی مد نظر ما عمل کنند.

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