تمرین ML: طبقه بندی تصویر

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

پیش نیازها

مقدمه

در ماه مه 2013، گوگل جستجوی عکس های شخصی را منتشر کرد و به کاربران این امکان را داد تا عکس ها را در کتابخانه های خود بر اساس اشیاء موجود در تصاویر بازیابی کنند.

اسکرین شات از Google Photos که جستجوی گربه های سیامی را نشان می دهد شکل 1. جستجوی Google Photos برای گربه های سیامی کالا را تحویل می دهد!

این ویژگی که بعداً در سال 2015 در Google Photos گنجانده شد، به طور گسترده ای به عنوان یک تغییر دهنده بازی تلقی شد، اثباتی بر این مفهوم که نرم افزار بینایی کامپیوتری می تواند تصاویر را مطابق با استانداردهای انسانی طبقه بندی کند، و از چند طریق به ارزش افزوده می شود:

  • کاربران دیگر نیازی به برچسب‌گذاری عکس‌ها با برچسب‌هایی مانند «ساحل» برای دسته‌بندی محتوای تصویر ندارند، و این کار دستی را که در مدیریت مجموعه‌ای از صدها یا هزاران تصویر می‌تواند بسیار خسته‌کننده شود، حذف می‌کند.
  • کاربران می‌توانند مجموعه عکس‌های خود را به روش‌های جدید کاوش کنند و از عبارات جستجو برای مکان‌یابی عکس‌ها با اشیایی استفاده کنند که ممکن است هرگز آنها را برچسب گذاری نکرده باشند. به عنوان مثال، آنها می توانند "درخت نخل" را جستجو کنند تا تمام عکس های تعطیلات خود را که درختان نخل در پس زمینه داشتند، ظاهر کنند.
  • نرم‌افزار به‌طور بالقوه می‌تواند تمایزات طبقه‌بندی را ببیند که خود کاربران نهایی ممکن است قادر به درک آن نباشند (به عنوان مثال، تشخیص گربه‌های سیامی و حبشی)، به طور موثر دانش دامنه کاربران را افزایش می‌دهد.

طبقه بندی تصاویر چگونه کار می کند

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

کلاژ عکس‌هایی که گربه‌ها را در موقعیت‌های مختلف، با پس‌زمینه‌ها و شرایط نوری مختلف نشان می‌دهند، و میانگین داده‌های پیکسلی حاصل از تصاویر شکل 2. سمت چپ : گربه ها را می توان در یک عکس در حالت های مختلف، با پس زمینه ها و شرایط نوری مختلف ثبت کرد. درست : میانگین داده‌های پیکسلی برای محاسبه این تنوع، هیچ اطلاعات معنی‌داری تولید نمی‌کند.

برای مدل‌سازی انعطاف‌پذیرتر اشیاء، مدل‌های بینایی کامپیوتری کلاسیک ویژگی‌های جدیدی را که از داده‌های پیکسلی مشتق شده‌اند، مانند هیستوگرام‌های رنگی ، بافت‌ها و اشکال اضافه کردند. نقطه ضعف این رویکرد این بود که مهندسی ویژگی به یک بار واقعی تبدیل شد، زیرا ورودی های زیادی برای بهینه سازی وجود داشت. برای طبقه‌بندی گربه، کدام رنگ‌ها بیشتر مرتبط بودند؟ تعاریف شکل چقدر باید انعطاف پذیر باشد؟ از آنجایی که ویژگی‌ها باید بسیار دقیق تنظیم شوند، ساخت مدل‌های قوی بسیار چالش برانگیز بود و دقت آسیب دید.