به طور پیشفرض، APIهای ML Kit از مدلهای یادگیری ماشین آموزشدیده گوگل استفاده میکنند. این مدلها برای پوشش طیف وسیعی از کاربردها طراحی شدهاند. با این حال، برخی از موارد استفاده به مدلهایی نیاز دارند که هدفمندتر باشند. به همین دلیل است که برخی از APIهای ML Kit اکنون به شما امکان میدهند مدلهای پیشفرض را با مدلهای سفارشی LiteRT جایگزین کنید.
هم برچسبگذاری تصویر و هم API تشخیص و ردیابی شیء، از مدلهای طبقهبندی تصویر سفارشی پشتیبانی میکنند. آنها با مجموعهای از مدلهای از پیش آموزشدیده با کیفیت بالا در TensorFlow Hub یا مدل سفارشی خودتان که با TensorFlow یا AutoML آموزش دیدهاند، سازگار هستند.
اگر به یک راهکار سفارشی برای سایر حوزهها یا موارد استفاده نیاز دارید، برای راهنمایی در مورد تمام راهکارها و ابزارهای گوگل برای یادگیری ماشینی روی دستگاه، از صفحه یادگیری ماشینی روی دستگاه دیدن کنید.
مزایای استفاده از کیت ML با مدلهای سفارشی
مزایای استفاده از یک مدل طبقهبندی تصویر سفارشی با ML Kit عبارتند از:
- رابطهای برنامهنویسی سطح بالای آسان برای استفاده - نیازی به سروکله زدن با ورودی/خروجی مدل سطح پایین، مدیریت پیشپردازش/پسپردازش تصویر یا ساخت خط لوله پردازش نیست.
- نیازی نیست نگران نگاشت برچسب باشید ، ML Kit برچسبها را از فرادادههای مدل LiteRT استخراج کرده و نگاشت را برای شما انجام میدهد.
- از مدلهای سفارشی از طیف گستردهای از منابع، از مدلهای از پیش آموزشدیده منتشر شده در TensorFlow Hub گرفته تا مدلهای جدید آموزشدیده با TensorFlow یا AutoML، پشتیبانی میکند .
- برای ادغام با API های دوربین اندروید بهینه شده است.
و به طور خاص برای تشخیص و ردیابی اشیا :
- با تعیین محل اشیاء در ابتدا و اجرای طبقهبندیکننده فقط روی ناحیه تصویر مرتبط، دقت طبقهبندی را بهبود بخشید .
- با ارائه بازخورد فوری به کاربران در مورد اشیاء هنگام شناسایی و طبقهبندی، یک تجربه تعاملی در لحظه (بلادرنگ) فراهم کنید .
از یک مدل طبقهبندی تصویر از پیش آموزشدیده استفاده کنید
شما میتوانید از مدلهای از پیش آموزشدیده LiteRT استفاده کنید، مشروط بر اینکه مجموعهای از معیارها را برآورده کنند. ما از طریق TensorFlow Hub مجموعهای از مدلهای تأیید شده - از گوگل یا سایر سازندگان مدل - را ارائه میدهیم که این معیارها را برآورده میکنند.
از مدلی که در TensorFlow Hub منتشر شده است استفاده کنید
TensorFlow Hub طیف گستردهای از مدلهای طبقهبندی تصویر از پیش آموزشدیده - از سازندگان مدل مختلف - را ارائه میدهد که میتوانند با APIهای برچسبگذاری تصویر و تشخیص و ردیابی شیء مورد استفاده قرار گیرند. این مراحل را دنبال کنید.
- یک مدل از مجموعه مدلهای سازگار با کیت ML انتخاب کنید.
- فایل مدل .tflite را از صفحه جزئیات مدل دانلود کنید. در صورت وجود، فرمت مدلی با فراداده (metadata) انتخاب کنید.
- برای آشنایی با نحوهی باندل کردن فایل مدل با پروژه و استفاده از آن در اپلیکیشن اندروید یا iOS خود، راهنماهای ما در مورد API برچسبگذاری تصویر یا API تشخیص و ردیابی شیء را دنبال کنید.
مدل طبقهبندی تصویر خود را آموزش دهید
اگر هیچ مدل طبقهبندی تصویر از پیش آموزشدیدهای متناسب با نیازهای شما وجود ندارد، روشهای مختلفی برای آموزش مدل LiteRT خودتان وجود دارد که برخی از آنها در بخش بعدی با جزئیات بیشتری شرح داده شده و مورد بحث قرار گرفتهاند.
| گزینههایی برای آموزش مدل طبقهبندی تصویر خودتان | |
|---|---|
| اتوامال |
|
| یک مدل TensorFlow را به LiteRT تبدیل کنید |
|
اتوامال
مدلهای طبقهبندی تصویر که با استفاده از AutoML آموزش داده میشوند، توسط مدلهای سفارشی در APIهای Image Labeling و Object Detection and Tracking پشتیبانی میشوند. این APIها همچنین از دانلود مدلهایی که با Cloud Storage میزبانی میشوند، پشتیبانی میکنند.
برای کسب اطلاعات بیشتر در مورد نحوه استفاده از مدلی که با AutoML آموزش داده شده است در برنامههای اندروید و iOS خود، بسته به مورد استفاده خود، راهنماهای مدل سفارشی را برای هر API دنبال کنید.
مدلهای ایجاد شده با استفاده از مبدل LiteRT
اگر یک مدل طبقهبندی تصویر TensorFlow موجود دارید، میتوانید آن را با استفاده از مبدل LiteRT تبدیل کنید. مطمئن شوید که مدل ایجاد شده الزامات سازگاری زیر را برآورده میکند.
برای کسب اطلاعات بیشتر در مورد نحوه استفاده از مدل LiteRT در برنامههای اندروید و iOS خود، بسته به مورد استفاده خود، راهنماهای ما را برای API برچسبگذاری تصویر یا API تشخیص و ردیابی شیء دنبال کنید.
سازگاری با مدل LiteRT
شما میتوانید از هر مدل طبقهبندی تصویر LiteRT از پیش آموزشدیده استفاده کنید، مشروط بر اینکه این الزامات را برآورده کند:
تانسورها
- مدل باید فقط یک تانسور ورودی با محدودیتهای زیر داشته باشد:
- دادهها در قالب پیکسلهای RGB هستند.
- دادهها از نوع UINT8 یا FLOAT32 هستند. اگر نوع تانسور ورودی FLOAT32 باشد، باید با پیوست کردن Metadata، گزینه NormalizationOptions را مشخص کند.
- این تانسور دارای ۴ بُعد است: BxHxWxC، که در آن:
- B اندازه دسته است. باید برابر با ۱ باشد (استنتاج روی دستههای بزرگتر پشتیبانی نمیشود).
- W و H عرض و ارتفاع ورودی هستند.
- C تعداد کانالهای مورد انتظار است که باید ۳ باشد.
- مدل باید حداقل یک تانسور خروجی با N کلاس و ۲ یا ۴ بُعد داشته باشد:
- (1xN)
- (۱x۱x۱xN)
- فقط مدلهای تک سر به طور کامل پشتیبانی میشوند. مدلهای چند سر ممکن است نتایج غیرمنتظرهای تولید کنند.
فراداده
شما میتوانید همانطور که در بخش «افزودن فراداده به مدلهای LiteRT» توضیح داده شده است، فراداده را به فایل LiteRT اضافه کنید.
برای استفاده از مدلی با تانسور ورودی FLOAT32، باید NormalizationOptions را در متادیتا مشخص کنید.
همچنین توصیه میکنیم که این فراداده را به تانسور خروجی TensorMetadata پیوست کنید:
- یک نقشه برچسب که نام هر کلاس خروجی را به عنوان یک AssociatedFile با نوع TENSOR_AXIS_LABELS مشخص میکند (در غیر این صورت فقط میتوان اندیسهای عددی کلاس خروجی را برگرداند)
- یک آستانه امتیاز پیشفرض که تحت آن نتایج با اطمینان بسیار پایین برای برگرداندن در نظر گرفته میشوند، به عنوان یک واحد فرآیندی با گزینههای آستانه امتیاز