طبقه بندی تصویر

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

تصویر زیر خروجی مدل طبقه بندی تصاویر در اندروید را نشان می دهد.

اسکرین شات نمونه اندروید

شروع کنید

اگر با TensorFlow Lite تازه کار هستید و با Android یا iOS کار می کنید، توصیه می شود برنامه های کاربردی مثال زیر را که می توانند به شما در شروع کار کمک کنند، بررسی کنید.

می‌توانید از API خارج از جعبه از TensorFlow Lite Task Library استفاده کنید تا مدل‌های طبقه‌بندی تصویر را تنها در چند خط کد یکپارچه کنید. شما همچنین می توانید خط لوله استنتاج سفارشی خود را با استفاده از کتابخانه پشتیبانی TensorFlow Lite بسازید.

مثال اندروید زیر اجرای هر دو روش را به ترتیب lib_task_api و lib_support نشان می دهد.

نمونه اندروید را مشاهده کنید

نمونه iOS را مشاهده کنید

اگر از پلتفرمی غیر از Android/iOS استفاده می‌کنید، یا اگر قبلاً با APIهای TensorFlow Lite آشنا هستید، مدل شروع و فایل‌های پشتیبانی را دانلود کنید (در صورت وجود).

دانلود مدل استارت

توضیحات مدل

چگونه کار می کند

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

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

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

نوع حیوانی احتمال
خرگوش 0.07
همستر 0.02
سگ 0.91

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

ممکن است متوجه شوید که مجموع همه احتمالات (برای خرگوش، همستر و سگ) برابر با 1 است. این یک نوع خروجی رایج برای مدل‌هایی با کلاس‌های متعدد است (برای اطلاعات بیشتر به Softmax مراجعه کنید).

نتایج مبهم

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

به عنوان مثال، موارد زیر ممکن است نشان دهنده یک نتیجه مبهم باشد:

برچسب احتمال
خرگوش 0.31
همستر 0.35
سگ 0.34
اگر مدل شما اغلب نتایج مبهم نشان می دهد، ممکن است به مدل متفاوت و دقیق تری نیاز داشته باشید.

انتخاب معماری مدل

TensorFlow Lite انواع مدل‌های طبقه‌بندی تصویر را در اختیار شما قرار می‌دهد که همگی بر روی مجموعه داده اصلی آموزش داده شده‌اند. معماری‌های مدل مانند MobileNet، Inception و NASNet در TensorFlow Hub در دسترس هستند. برای انتخاب بهترین مدل برای مورد استفاده خود، باید معماری های فردی و همچنین برخی از مبادلات بین مدل های مختلف را در نظر بگیرید. برخی از این مبادلات مدل بر اساس معیارهایی مانند عملکرد، دقت و اندازه مدل است. به عنوان مثال، ممکن است به یک مدل سریع‌تر برای ساخت یک اسکنر بارکد نیاز داشته باشید، در حالی که ممکن است یک مدل کندتر و دقیق‌تر را برای یک برنامه تصویربرداری پزشکی ترجیح دهید. توجه داشته باشید که مدل‌های طبقه‌بندی تصویر ارائه‌شده اندازه‌های مختلف ورودی را می‌پذیرند. برای برخی از مدل ها، این در نام فایل نشان داده شده است. به عنوان مثال، مدل Mobilenet_V1_1.0_224 ورودی 224x224 پیکسل را می پذیرد. همه مدل ها به سه کانال رنگ در هر پیکسل (قرمز، سبز و آبی) نیاز دارند. مدل های کوانتیزه به 1 بایت در هر کانال و مدل های شناور به 4 بایت در هر کانال نیاز دارند. نمونه کدهای اندروید و iOS نحوه پردازش تصاویر دوربین با اندازه کامل را به فرمت مورد نیاز برای هر مدل نشان می دهد.

موارد استفاده و محدودیت ها

مدل‌های طبقه‌بندی تصویر TensorFlow Lite برای طبقه‌بندی تک برچسبی مفید هستند. یعنی پیش‌بینی اینکه تصویر به احتمال زیاد کدام برچسب را نشان می‌دهد. آنها برای تشخیص 1000 کلاس تصویر آموزش دیده اند. برای فهرست کامل کلاس‌ها، فایل برچسب‌ها را در مدل zip ببینید. اگر می‌خواهید مدلی را برای تشخیص کلاس‌های جدید آموزش دهید، به سفارشی کردن مدل مراجعه کنید. برای موارد استفاده زیر، باید از نوع دیگری از مدل استفاده کنید:
  • پیش بینی نوع و موقعیت یک یا چند شی در یک تصویر (به تشخیص شی مراجعه کنید)
  • پیش‌بینی ترکیب یک تصویر، برای مثال موضوع در مقابل پس‌زمینه (به بخش‌بندی مراجعه کنید)
هنگامی که مدل استارت را روی دستگاه مورد نظر خود اجرا کردید، می توانید با مدل های مختلف آزمایش کنید تا تعادل بهینه بین عملکرد، دقت و اندازه مدل را بیابید.

سفارشی کردن مدل

مدل های از پیش آموزش دیده ارائه شده برای تشخیص 1000 کلاس از تصاویر آموزش دیده اند. برای فهرست کامل کلاس‌ها، فایل برچسب‌ها را در مدل zip ببینید. همچنین می‌توانید از آموزش انتقال برای آموزش مجدد یک مدل برای تشخیص کلاس‌هایی که در مجموعه اصلی نیستند استفاده کنید. برای مثال، می‌توانید مدل را دوباره آموزش دهید تا بین گونه‌های مختلف درخت تمایز قائل شوید، علیرغم وجود هیچ درختی در داده‌های آموزشی اصلی. برای انجام این کار، به مجموعه ای از تصاویر آموزشی برای هر یک از برچسب های جدیدی که می خواهید آموزش دهید، نیاز دارید. نحوه انجام آموزش انتقال را با TFLite Model Maker یا در Recognize flowers with TensorFlow Codelab بیاموزید.

معیارهای عملکرد

عملکرد مدل بر حسب مدت زمانی که طول می کشد تا یک مدل استنتاج را روی یک قطعه سخت افزاری مشخص انجام دهد، اندازه گیری می شود. هر چه زمان کمتر باشد، مدل سریعتر است. عملکرد مورد نیاز شما بستگی به برنامه شما دارد. عملکرد می‌تواند برای برنامه‌هایی مانند ویدیوی بی‌درنگ مهم باشد، جایی که ممکن است تجزیه و تحلیل هر فریم در زمان قبل از ترسیم فریم بعدی مهم باشد (مثلاً استنتاج باید سریع‌تر از 33 میلی‌ثانیه باشد تا استنتاج بلادرنگ در یک جریان ویدیویی 30 فریم بر ثانیه انجام شود). . محدوده عملکرد مدل های موبایل نت کوانتیزه TensorFlow Lite از 3.7 تا 80.3 میلی ثانیه است. اعداد معیار عملکرد با ابزار محک تولید می شوند.
نام مدل اندازه مدل دستگاه NNAPI CPU
Mobilenet_V1_1.0_224_quant 4.3 مگابایت پیکسل 3 (اندروید 10) 6 میلی‌ثانیه 13 میلی‌ثانیه*
پیکسل 4 (اندروید 10) 3.3 میلی‌ثانیه 5 میلی‌ثانیه*
آیفون XS (iOS 12.4.1) 11 میلی ثانیه**

* 4 نخ استفاده شده است.

** 2 رشته مورد استفاده در آیفون برای بهترین نتیجه عملکرد.

دقت مدل

دقت بر حسب تعداد دفعاتی که مدل به درستی یک تصویر را طبقه بندی می کند اندازه گیری می شود. به عنوان مثال، می توان انتظار داشت که یک مدل با دقت 60 درصدی به طور متوسط ​​در 60 درصد مواقع یک تصویر را به درستی طبقه بندی کند.

مرتبط ترین معیارهای دقت Top-1 و Top-5 هستند. Top-1 به این اشاره دارد که هر چند وقت یکبار برچسب صحیح به عنوان برچسب با بیشترین احتمال در خروجی مدل ظاهر می شود. Top-5 به این اشاره دارد که هر چند وقت یکبار برچسب صحیح در 5 احتمال بالاتر در خروجی مدل ظاهر می شود.

محدوده دقت Top-5 مدل های موبایل نت کوانتیزه TensorFlow Lite از 64.4 تا 89.9 درصد است.

اندازه مدل

اندازه یک مدل روی دیسک با عملکرد و دقت آن متفاوت است. اندازه ممکن است برای توسعه تلفن همراه مهم باشد (جایی که ممکن است بر اندازه دانلود برنامه تأثیر بگذارد) یا هنگام کار با سخت افزار (در جایی که فضای موجود ممکن است محدود باشد).

اندازه مدل های موبایل نت کوانتیزه TensorFlow Lite از 0.5 تا 3.4 مگابایت است.

مطالعه بیشتر و منابع

از منابع زیر برای کسب اطلاعات بیشتر در مورد مفاهیم مرتبط با طبقه بندی تصاویر استفاده کنید: