وظیفه شناسایی آنچه که یک تصویر نشان می دهد طبقه بندی تصویر نامیده می شود. یک مدل طبقه بندی تصویر برای تشخیص دسته های مختلف تصاویر آموزش داده شده است. برای مثال، میتوانید به مدلی آموزش دهید تا عکسهای سه نوع حیوان مختلف را تشخیص دهد: خرگوش، همستر و سگ. TensorFlow Lite مدل های از پیش آموزش دیده بهینه شده ای را ارائه می دهد که می توانید آنها را در برنامه های تلفن همراه خود مستقر کنید. در اینجا درباره طبقه بندی تصاویر با استفاده از TensorFlow بیشتر بیاموزید.
تصویر زیر خروجی مدل طبقه بندی تصاویر در اندروید را نشان می دهد.
شروع کنید
اگر با TensorFlow Lite تازه کار هستید و با Android یا iOS کار میکنید، توصیه میشود برنامههای مثال زیر را که میتوانند به شما در شروع کار کمک کنند، بررسی کنید.
میتوانید از API خارج از جعبه از TensorFlow Lite Task Library استفاده کنید تا مدلهای طبقهبندی تصویر را تنها در چند خط کد یکپارچه کنید. همچنین می توانید خط لوله استنتاج سفارشی خود را با استفاده از کتابخانه پشتیبانی TensorFlow Lite بسازید.
مثال اندروید زیر اجرای هر دو روش را به ترتیب lib_task_api و lib_support نشان می دهد.
اگر از پلتفرمی غیر از 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 میلیثانیه* | ||
iPhone 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 درصد است.
سایز مدل
اندازه یک مدل روی دیسک با عملکرد و دقت آن متفاوت است. اندازه ممکن است برای توسعه تلفن همراه مهم باشد (جایی که ممکن است بر اندازه دانلود برنامه تأثیر بگذارد) یا هنگام کار با سخت افزار (که ممکن است فضای ذخیره سازی در دسترس محدود باشد).
اندازههای مدلهای کوانتیزهشده MobileNet TensorFlow Lite از 0.5 تا 3.4 مگابایت است.
مطالعه بیشتر و منابع
برای کسب اطلاعات بیشتر در مورد مفاهیم مرتبط با طبقه بندی تصاویر از منابع زیر استفاده کنید: