Google I / O از 18 تا 20 مه بازگشت دارد! فضا را ذخیره کنید و برنامه خود را بسازید اکنون ثبت نام کنید

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

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

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

عکس صفحه از مثال Android

شروع کنید

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

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

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

مشاهده نمونه Android

مشاهده مثال iOS

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

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

شرح مدل

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

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

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

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

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

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

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

نتایج مبهم

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

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

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

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

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

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

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

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

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

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

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

* 4 موضوع استفاده شده است

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

دقت مدل

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

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

TensorFlow Lite محدودیت دقت Top-5 مدل های MobileNet را از 64.4 تا 89.9٪ تعیین کرد.

اندازه مدل

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

اندازه های مدل های MobileNet TensorFlow Lite از 0/5 تا 3/4 مگابایت اندازه گیری شده اند.

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

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