راهنمای انتقال ML Kit AutoML Vision Edge

شما می توانید یک مدل طبقه بندی تصویر آموزش دیده با AutoML را به API های مدل سفارشی منتقل کنید. می‌توانید به بسته‌بندی مدل در برنامه خود ادامه دهید یا آن را به عنوان یک مدل سفارشی در کنسول Firebase میزبانی کنید. API برچسب‌گذاری تصویر AutoML از کیت ML حذف شده است زیرا به طور کامل با API برچسب‌گذاری تصویر مدل سفارشی جایگزین شده است.

API چه چیزی در حال تغییر است؟
API برچسب زدن تصویر AutoML Vision Edge به طور کامل با API برچسب‌گذاری تصویر مدل سفارشی جایگزین شده است. API برچسب گذاری تصویر AutoML Vision Edge موجود حذف شده است.

اگر در حال حاضر کاربر ML Kit هستید که از AutoML Vision Edge API استفاده می‌کنید، لطفاً دستورالعمل‌های انتقال را برای Android و iOS دنبال کنید.

سوالات متداول

چرا این تغییر؟

این به ساده‌سازی APIهای ML Kit و ادغام کیت ML در برنامه شما کمک می‌کند. با این تغییر، می توانید یک مدل آموزش دیده با AutoML را دقیقاً به همان شکل یک مدل سفارشی استفاده کنید. همچنین شما را قادر می سازد تا از مدل های آموزش دیده با AutoML برای تشخیص و ردیابی اشیا، علاوه بر برچسب گذاری تصویر که در حال حاضر پشتیبانی می کنیم، استفاده کنید. علاوه بر این، API مدل سفارشی از هر دو مدل با نقشه برچسب تعبیه‌شده در ابرداده‌ها و مدل‌هایی با فایل‌های مانیفست و برچسب جداگانه پشتیبانی می‌کند.

از انتقال به SDK جدید چه مزایایی می‌برم؟

  • ویژگی های جدید: امکان استفاده از مدل های آموزش دیده با AutoML هم برای برچسب گذاری تصویر و هم برای تشخیص و ردیابی اشیاء و امکان استفاده از مدل هایی با نقشه برچسب تعبیه شده در ابرداده های آن.

راهنمای مهاجرت برای اندروید

مرحله 1: Gradle Imports را به روز کنید

طبق جدول زیر، وابستگی‌های کتابخانه‌های اندروید ML Kit را در فایل Gradle ماژول (سطح برنامه) خود (معمولا app/build.gradle ) به‌روزرسانی کنید:

ویژگی مصنوعات قدیمی مصنوع جدید
برچسب زدن تصویر AutoML بدون دانلود مدل از راه دور com.google.mlkit:image-labeling-automl:16.2.1 com.google.mlkit:image-labeling-custom:16.0.0-beta5
برچسب زدن تصویر AutoML با دانلود مدل از راه دور com.google.mlkit:image-labeling-automl:16.2.1
com.google.mlkit:linkfirebase:16.0.1
com.google.mlkit:image-labeling-custom:16.0.0-beta5
com.google.mlkit:linkfirebase:17.0.0

مرحله 2: نام کلاس ها را به روز کنید

اگر کلاس شما در این جدول ظاهر می شود، تغییر مشخص شده را اعمال کنید:

کلاس قدیمی کلاس جدید
com.google.mlkit.vision.label.automl.AutoMLImageLabelerLocalModel com.google.mlkit.common.model.LocalModel
com.google.mlkit.vision.label.automl.AutoMLImageLabelerRemoteModel com.google.mlkit.common.model.CustomRemoteModel
com.google.mlkit.vision.label.automl.AutoMLImageLabelerOptions com.google.mlkit.vision.label.custom.CustomImageLabelerOptions

مرحله 3: نام روش ها را به روز کنید

حداقل تغییرات کد وجود دارد:

  • اکنون LocalModel می‌تواند با یک مسیر فایل مدل (اگر مدل دارای ابرداده حاوی نقشه برچسب باشد) یا یک مسیر فایل مانیفست مدل (اگر مانیفست، مدل و برچسب‌ها در فایل‌های جداگانه هستند) مقداردهی اولیه شود.
  • می توانید یک مدل سفارشی را از راه دور از طریق کنسول Firebase میزبانی کنید و یک CustomRemoteModel با FirebaseModelSource مقداردهی اولیه کنید.

در اینجا چند نمونه از روش های قدیمی و جدید کاتلین آورده شده است:

قدیمی

val localModel = AutoMLImageLabelerLocalModel.Builder()
    .setAssetFilePath("automl/manifest.json")
    // or .setAbsoluteFilePath(absolute file path to manifest file)
    .build()

val optionsWithLocalModel = AutoMLImageLabelerOptions.Builder(localModel)
    .setConfidenceThreshold(0.5f)
    .build()

val remoteModel = AutoMLImageLabelerRemoteModel.Builder("automl_remote_model")
    .build()

val optionsWithRemoteModel = AutoMLImageLabelerOptions.Builder(remoteModel)
    .build()

جدید

val localModel = LocalModel.Builder()
    .setAssetManifestFilePath("automl/manifest.json")
    // or .setAbsoluteManifestFilePath(absolute file path to manifest file)
    .build()

val optionsWithLocalModel = CustomImageLabelerOptions.Builder(localModel)
    .setConfidenceThreshold(0.5f)
    .build()

val firebaseModelSource = FirebaseModelSource.Builder("automl_remote_model")
    .build()
val remoteModel = CustomRemoteModel.Builder(firebaseModelSource).build()
val optionsWithRemoteModel = CustomImageLabelerOptions.Builder(remoteModel)
    .build()

در اینجا چند نمونه از روش های قدیمی و جدید جاوا آورده شده است:

قدیمی

AutoMLImageLabelerLocalModel localModel =
    new AutoMLImageLabelerLocalModel.Builder()
        .setAssetFilePath("automl/manifest.json")
        // or .setAbsoluteFilePath(absolute file path to manifest file)
        .build();
AutoMLImageLabelerOptions optionsWithLocalModel =
    new AutoMLImageLabelerOptions.Builder(localModel)
        .setConfidenceThreshold(0.5f)
        .build();
AutoMLImageLabelerRemoteModel remoteModel =
    new AutoMLImageLabelerRemoteModel.Builder("automl_remote_model").build();
AutoMLImageLabelerOptions optionsWithRemoteModel =
    new AutoMLImageLabelerOptions.Builder(remoteModel)
        .build();

جدید

LocalModel localModel =
    new LocalModel.Builder()
        .setAssetManifestFilePath("automl/manifest.json")
        // or .setAbsoluteManifestFilePath(absolute file path to manifest file)
        .build()
CustomImageLabelerOptions optionsWithLocalModel =
    new CustomImageLabelerOptions.Builder(localModel)
        .setConfidenceThreshold(0.5f)
        .build();
FirebaseModelSource firebaseModelSource =
    new FirebaseModelSource.Builder("automl_remote_model").build();
CustomRemoteModel remoteModel =
    new CustomRemoteModel.Builder(firebaseModelSource).build();
CustomImageLabelerOptions optionsWithRemoteModel =
    new CustomImageLabelerOptions.Builder(remoteModel).build();

راهنمای مهاجرت برای iOS

پیش نیازها

  • Xcode 13.2.1 یا بالاتر مورد نیاز است.

مرحله 1: Cocoapods را به روز کنید

وابستگی های کوکوپودهای iOS کیت ML را در فایل پادفایل برنامه خود به روز کنید:

ویژگی نام(های) غلاف قدیمی نام(های) غلاف جدید
برچسب زدن تصویر AutoML بدون دانلود مدل از راه دور GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
برچسب زدن تصویر AutoML با دانلود مدل از راه دور GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
GoogleMLKit/LinkFirebase

مرحله 2: نام کلاس ها را به روز کنید

اگر کلاس شما در این جدول ظاهر می شود، تغییر مشخص شده را اعمال کنید:

سویفت

کلاس قدیمی کلاس جدید
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel CustomRemoteModel
AutoMLImageLabelerOptions CustomImageLabelerOptions

هدف-C

کلاس قدیمی کلاس جدید
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKCustomRemoteModel
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

هدف-C

مرحله 3: نام روش ها را به روز کنید

حداقل تغییرات کد وجود دارد:

  • اکنون LocalModel می‌تواند با یک مسیر فایل مدل (اگر مدل دارای ابرداده حاوی نقشه برچسب باشد) یا یک مسیر فایل مانیفست مدل (اگر مانیفست، مدل و برچسب‌ها در فایل‌های جداگانه هستند) مقداردهی اولیه شود.
  • می توانید یک مدل سفارشی را از راه دور از طریق کنسول Firebase میزبانی کنید و یک CustomRemoteModel با FirebaseModelSource مقداردهی اولیه کنید.

در اینجا چند نمونه از روش های قدیمی و جدید سوئیفت آورده شده است:

قدیمی

let localModel =
    AutoMLImageLabelerLocalModel(manifestPath: "automl/manifest.json")
let optionsWithLocalModel = AutoMLImageLabelerOptions(localModel: localModel)
let remoteModel = AutoMLImageLabelerRemoteModel(name: "automl_remote_model")
let optionsWithRemoteModel = AutoMLImageLabelerOptions(remoteModel: remoteModel)

جدید

guard let localModel = LocalModel(manifestPath: "automl/manifest.json") else { return }
let optionsWithLocalModel = CustomImageLabelerOptions(localModel: localModel)
let firebaseModelSource = FirebaseModelSource(name: "automl_remote_model")
let remoteModel = CustomRemoteModel(remoteModelSource: firebaseModelSource)
let optionsWithRemoteModel = CustomImageLabelerOptions(remoteModel: remoteModel)

در اینجا چند نمونه از روش های قدیمی و جدید Objective-C آورده شده است:

قدیمی

MLKAutoMLImageLabelerLocalModel *localModel =
    [[MLKAutoMLImageLabelerLocalModel alloc]
        initWithManifestPath:"automl/manifest.json"];
MLKAutoMLImageLabelerOptions *optionsWithLocalModel =
    [[MLKAutoMLImageLabelerOptions alloc] initWithLocalModel:localModel];
MLKAutoMLImageLabelerRemoteModel *remoteModel =
    [[MLKAutoMLImageLabelerRemoteModel alloc]
        initWithManifestPath:"automl/manifest.json"];
MLKAutoMLImageLabelerOptions *optionsWithRemoteModel =
    [[MLKAutoMLImageLabelerOptions alloc] initWithRemoteModel:remoteModel];

جدید

MLKLocalModel *localModel =
    [[MLKLocalModel alloc] initWithManifestPath:"automl/manifest.json"];
MLKCustomImageLabelerOptions *optionsWithLocalModel =
    [[MLKCustomImageLabelerOptions alloc] initWithLocalModel:localModel];
MLKFirebaseModelSource *firebaseModelSource =
    [[MLKFirebaseModelSource alloc] initWithName:@"automl_remote_model"];
MLKCustomRemoteModel *remoteModel =
    [[MLKCustomRemoteModel alloc] initWithRemoteModelSource:firebaseModelSource];
MLKCustomImageLabelerOptions *optionsWithRemoteModel =
    [[MLKCustomImageLabelerOptions alloc] initWithRemoteModel:remoteModel];