מדריך להעברה של ML Kit AutoML Vision Edge

אפשר להעביר מודל לסיווג תמונות שאומן באמצעות AutoML לממשקי ה-API של המודלים בהתאמה אישית. תוכלו להמשיך לצרף את המודל בתוך האפליקציה או לארח אותו במסוף Firebase כמודל מותאם אישית. ה-AutoML לתיוג תמונות באמצעות תמונות הוסר מ-ML Kit כי הוא הוחלף במלואו ב-Custom Model Labeling API.

APIמה משתנה?
API של AutoML Vision Edge לתיוג תמונות הוא מוחל במלואו בממשק ה-API של הוספת תוויות לתמונות של מודלים מותאמים אישית. ממשק ה-API הקיים של AutoML Vision Edge לתיוג תמונות יוסר.

אם אתם כבר משתמשים ב-ML Kit שמשתמשים ב-AutoML Vision Edge API, צריך לבצע את הוראות ההעברה ל-Android ול-iOS.

שאלות נפוצות

מה הסיבה לשינוי הזה?

הוא מפשט את ממשקי ה-API של ML Kit ומקל על השילוב של ML Kit באפליקציה. בעזרת השינוי הזה תוכלו להשתמש במודל שאומן באמצעות AutoML בדיוק כמו מודל מותאם אישית. הוא גם מאפשר להשתמש במודלים שאומנו באמצעות AutoML לזיהוי ולמעקב של אובייקטים, בנוסף לתיוג תמונות שאנחנו תומכים בו כרגע. בנוסף, ה-API של המודלים בהתאמה אישית תומך בשני מודלים עם מפת תוויות שמוטמעת במטא-נתונים, וגם במודלים עם קובצי מניפסט וקובצי תוויות נפרדים.

מהם היתרונות של המעבר לערכת ה-SDK החדשה?

  • תכונות חדשות: יכולת להשתמש במודלים שאומנו באמצעות AutoML גם לסימון תמונות וגם לזיהוי ומעקב של אובייקטים, ויכולת להשתמש במודלים עם מפת תוויות שמוטמעת במטא-נתונים.

מדריך להעברת נתונים (מיגרציה) ל-Android

שלב 1: מעדכנים את תהליך הייבוא של Gradle

מעדכנים את יחסי התלות של ספריות ML Kit Android בקובץ 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.

הנה כמה דוגמאות לשיטות Kotlin ישנות וחדשות:

ישן

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()

הנה כמה דוגמאות לשיטות Java ישנות וחדשות:

ישן

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

מעדכנים את יחסי התלות של ML Kit ב-iOS ב-Podfile של האפליקציה:

תכונהשמות ישנים של פודקאסטיםשמות חדשים של פודקאסטים
הוספת תוויות לתמונה באמצעות AutoML ללא הורדת מודל מרחוק GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
הוספת תיוג לתמונה באמצעות AutoML באמצעות הורדת מודל מרחוק GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
GoogleMLKit/LinkFirebase

שלב 2: מעדכנים את שמות הכיתות

אם הכיתה מופיעה בטבלה הזו, צריך לבצע את השינוי הרצוי:

Swift

כיתה ישנהכיתה חדשה
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel CustomRemoteModel
AutoMLImageLabelerOptions CustomImageLabelerOptions

Objective-C

כיתה ישנהכיתה חדשה
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKCustomRemoteModel
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

Objective-C

שלב 3: מעדכנים את שמות השיטות

יש שינויים קלים בקוד:

  • עכשיו אפשר לאתחל את LocalModel באמצעות נתיב של קובץ מודל (אם למודל יש מטא-נתונים שמכילים את מפת התווית) או נתיב קובץ של מניפסט המודל (אם המניפסט, המודל והתוויות נמצאים בקבצים נפרדים).
  • אפשר לארח מרחוק מודל מותאם אישית דרך מסוף Firebase ולהפעיל CustomRemoteModel באמצעות FirebaseModelSource.

הנה כמה דוגמאות לשיטות Swift הישנות והחדשות:

ישן

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];