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

وظیفه MediaPipe Image Classifier به شما امکان می دهد تا روی تصاویر طبقه بندی کنید. شما می توانید از این کار برای شناسایی آنچه که یک تصویر در بین مجموعه ای از دسته بندی های تعریف شده در زمان آموزش نشان می دهد استفاده کنید. این وظیفه بر روی داده های تصویری با مدل یادگیری ماشینی (ML) به عنوان داده ایستا یا یک جریان پیوسته عمل می کند و فهرستی از دسته بندی های بالقوه را که بر اساس امتیاز احتمال نزولی رتبه بندی شده اند، خروجی می دهد.

آن را امتحان کنید!

شروع کنید

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

جزئیات کار

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

امکانات

  • پردازش تصویر ورودی - پردازش شامل چرخش تصویر، تغییر اندازه، عادی سازی و تبدیل فضای رنگی است.
  • منطقه مورد علاقه - به جای کل تصویر، طبقه بندی را روی یک منطقه از تصویر انجام دهید.
  • برچسب محلی نقشه - زبان مورد استفاده برای نام های نمایشی را تنظیم کنید.
  • آستانه امتیاز - نتایج را بر اساس نمرات پیش بینی فیلتر کنید.
  • طبقه بندی Top-k - تعداد نتایج طبقه بندی را محدود کنید.
  • برچسب مجاز لیست و رد لیست - دسته های طبقه بندی شده را مشخص کنید.
ورودی های وظیفه خروجی های وظیفه
ورودی می تواند یکی از انواع داده های زیر باشد:
  • تصاویر ثابت
  • فریم های ویدئویی رمزگشایی شده
  • فید ویدیوی زنده
Image Classifier لیستی از دسته بندی ها را خروجی می دهد که شامل:
  • شاخص دسته: شاخص دسته در خروجی های مدل
  • امتیاز: امتیاز اطمینان برای این دسته، معمولاً به احتمال [0,1]
  • نام دسته (اختیاری): نام دسته که در فراداده مدل TFLite مشخص شده است، در صورت موجود بودن
  • نام نمایشی دسته (اختیاری): یک نام نمایشی برای دسته که در فراداده مدل TFLite مشخص شده است، به زبانی که از طریق گزینه های محلی نام های نمایشی مشخص شده است، در صورت موجود بودن

گزینه های پیکربندی

این کار دارای گزینه های پیکربندی زیر است:

نام گزینه شرح محدوده ارزش مقدار پیش فرض
running_mode حالت اجرا را برای کار تنظیم می کند. سه حالت وجود دارد:

IMAGE: حالت برای ورودی های تک تصویر.

VIDEO: حالت برای فریم های رمزگشایی شده یک ویدیو.

LIVE_STREAM: حالت پخش زنده داده های ورودی، مانند دوربین. در این حالت، resultListener باید فراخوانی شود تا شنونده ای را برای دریافت نتایج به صورت ناهمزمان تنظیم کند.
{ IMAGE, VIDEO, LIVE_STREAM } IMAGE
display_names_locale زبان برچسب‌ها را برای استفاده برای نام‌های نمایشی ارائه شده در فراداده مدل کار، در صورت وجود، تنظیم می‌کند. پیش فرض برای انگلیسی en است. با استفاده از TensorFlow Lite Metadata Writer API می‌توانید برچسب‌های محلی را به ابرداده یک مدل سفارشی اضافه کنید. کد محلی en
max_results حداکثر تعداد اختیاری نتایج طبقه بندی با امتیاز بالا را برای بازگشت تنظیم می کند. اگر < 0 باشد، تمام نتایج موجود برگردانده خواهند شد. هر عدد مثبت -1
score_threshold آستانه امتیاز پیش‌بینی را تنظیم می‌کند که بر آستانه ارائه‌شده در فراداده مدل (در صورت وجود) لغو می‌شود. نتایج زیر این مقدار رد می شوند. هر شناور تنظیم نشده
category_allowlist فهرست اختیاری نام‌های دسته‌بندی مجاز را تنظیم می‌کند. در صورت خالی نبودن، نتایج طبقه بندی که نام دسته آنها در این مجموعه نیست فیلتر می شود. نام‌های دسته‌بندی تکراری یا ناشناخته نادیده گرفته می‌شوند. این گزینه با category_denylist منحصر به فرد است و از هر دو نتیجه در یک خطا استفاده می کند. هر رشته تنظیم نشده
category_denylist فهرست اختیاری نام‌های دسته‌هایی را که مجاز نیستند را تنظیم می‌کند. در صورت خالی نبودن، نتایج طبقه بندی که نام دسته آنها در این مجموعه است فیلتر می شود. نام‌های دسته‌بندی تکراری یا ناشناخته نادیده گرفته می‌شوند. این گزینه با category_allowlist منحصر به فرد است و از هر دو نتیجه در یک خطا استفاده می کند. هر رشته تنظیم نشده
result_callback شنونده نتیجه را طوری تنظیم می‌کند که وقتی طبقه‌بندی کننده تصویر در حالت پخش زنده است، نتایج طبقه‌بندی را به صورت ناهمزمان دریافت کند. فقط زمانی قابل استفاده است که حالت اجرا روی LIVE_STREAM تنظیم شده باشد N/A تنظیم نشده

مدل ها

Image Classifier به یک مدل طبقه بندی تصویر نیاز دارد که دانلود و در فهرست پروژه شما ذخیره شود. هنگامی که شروع به توسعه با این کار می کنید، با مدل پیش فرض و توصیه شده برای پلتفرم هدف خود شروع کنید. سایر مدل‌های موجود معمولاً بین عملکرد، دقت، وضوح و نیازهای منابع، معاوضه ایجاد می‌کنند و در برخی موارد، ویژگی‌های اضافی را نیز شامل می‌شوند.

مدل EfficientNet-Lite0 از معماری EfficientNet استفاده می‌کند و با استفاده از ImageNet برای تشخیص 1000 کلاس مانند درختان، حیوانات، غذا، وسایل نقلیه، افراد و غیره آموزش دیده است. فهرست کامل برچسب‌های پشتیبانی شده را ببینید. EfficientNet-Lite0 به عنوان مدل int8 و float 32 موجود است. این مدل به دلیل ایجاد تعادل بین تاخیر و دقت توصیه می شود. هم دقیق است و هم برای بسیاری از موارد به اندازه کافی سبک وزن است.

نام مدل شکل ورودی نوع کوانتیزاسیون نسخه ها
EfficientNet-Lite0 (int8) 224 x 224 int8 آخرین
EfficientNet-Lite0 (float 32) 224 x 224 هیچکدام (float32) آخرین

مدل EfficientNet-Lite2

مدل EfficientNet-Lite2 از معماری EfficientNet استفاده می‌کند و با استفاده از ImageNet برای تشخیص 1000 کلاس، مانند درختان، حیوانات، غذا، وسایل نقلیه، افراد و غیره آموزش دیده است. فهرست کامل برچسب‌های پشتیبانی شده را ببینید. EfficientNet-Lite2 به عنوان مدل int8 و float 32 موجود است. این مدل به طور کلی دقیق تر از EfficientNet-Lite0 است، اما همچنین کندتر و حافظه فشرده تر است. این مدل برای مواردی که دقت در اولویت بالاتر از سرعت یا اندازه است مناسب است.

نام مدل شکل ورودی نوع کوانتیزاسیون نسخه ها
EfficientNet-Lite2 (int8) 224 x 224 int8 آخرین
EfficientNet-Lite2 (float 32) 224 x 224 هیچکدام (float32) آخرین

معیارهای وظیفه

در اینجا معیارهای کار برای کل خط لوله بر اساس مدل های از پیش آموزش دیده بالا آمده است. نتیجه تأخیر، متوسط ​​تأخیر پیکسل 6 با استفاده از CPU / GPU است.

نام مدل تاخیر CPU تاخیر GPU
EfficientNet-Lite0 (float 32) 23.52 میلی‌ثانیه 18.90 میلی‌ثانیه
EfficientNet-Lite0 (int8) 10.08 میلی‌ثانیه -
EfficientNet-Lite2 (float 32) 44.17 میلی‌ثانیه 22.20 میلی‌ثانیه
EfficientNet-Lite2 (int8) 19.43 میلی‌ثانیه -

مدل های سفارشی

اگر می‌خواهید قابلیت‌های مدل‌های ارائه‌شده را بهبود یا تغییر دهید، می‌توانید از یک مدل ML سفارشی‌شده برای این کار استفاده کنید. می توانید از Model Maker برای اصلاح مدل های موجود استفاده کنید یا با استفاده از ابزارهایی مانند TensorFlow یک مدل بسازید. مدل‌های سفارشی مورد استفاده با MediaPipe باید در قالب TensorFlow Lite باشند و باید شامل ابرداده‌های خاصی باشند که پارامترهای عملیاتی مدل را توصیف می‌کنند. قبل از اینکه مدل خود را بسازید، باید از Model Maker برای اصلاح مدل های ارائه شده برای این کار استفاده کنید.

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