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

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

APIמה עומד להשתנות?
AutoML Vision Edge image labeling API הוא הוחלף לחלוטין ב-API של תיוג תמונות במודל בהתאמה אישית. ה-API הקיים של AutoML Vision Edge לתוויות של תמונות הוסר.

אם אתם משתמשים ב-AutoML Vision Edge API, פעלו לפי הוראות ההעברה ל-Android ול-iOS.

שאלות נפוצות

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

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

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

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

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

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

מעדכנים את יחסי התלות של ספריות Android של ML Kit בקובץ Gradle של המודול (ברמת האפליקציה, בדרך כלל app/build.gradle.kts) לפי הטבלה הבאה:

תכונהפריטים ישניםארטיפקט חדש
‫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
כדי לארח ולהוריד מודלים בהתאמה אישית, צריך להעביר את המודלים ל-Cloud Storage ולהוסיף לוגיקת הורדה באפליקציה כדי לטעון אותם באמצעות LocalModel. לפרטים, קראו את [המדריך להעברת נתונים מ-Firebase ML ל-Cloud Storage][migrate-storage].

שלב 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.LocalModel
האפליקציה צריכה לכלול לוגיקה להורדת מודלים שמתארחים מרחוק ולאתחל אותם באמצעות LocalModel.
com.google.mlkit.vision.label.automl.AutoMLImageLabelerOptions com.google.mlkit.vision.label.custom.CustomImageLabelerOptions

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

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

  • עכשיו אפשר להפעיל את LocalModel באמצעות נתיב מודל (אם המודל מכיל מטא-נתונים עם מפת התוויות) או נתיב מניפסט של מודל (אם המניפסט, המודל והתוויות נמצאים בקבצים נפרדים).
  • מוסיפים לוגיקה לאפליקציה כדי להוריד מודלים שמתארחים מרחוק לאחסון מקומי ולטעון אותם באמצעות LocalModel.

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

ישן

val localModel = AutoMLImageLabelerLocalModel.Builder()
    .setAssetFilePath("automl/manifest.json")
    // or .setAbsoluteFilePath(absolute 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()

חדש

// Similar process for both local and remotely-hosted models (that have been downloaded)
val localModel = LocalModel.Builder()
    .setAssetManifestFilePath("automl/manifest.json")
    // or .setAbsoluteManifestFilePath(absolute path to manifest file)
    .build()

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

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

ישן

AutoMLImageLabelerLocalModel localModel =
    new AutoMLImageLabelerLocalModel.Builder()
        .setAssetFilePath("automl/manifest.json")
        // or .setAbsoluteFilePath(absolute 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();

חדש

// Similar process for local models and remotely-hosted models (that have been downloaded)
LocalModel localModel =
    new LocalModel.Builder()
        .setAssetManifestFilePath("automl/manifest.json")
        // or .setAbsoluteManifestFilePath(absolute path to manifest file)
        .build();
CustomImageLabelerOptions optionsWithLocalModel =
    new CustomImageLabelerOptions.Builder(localModel)
        .setConfidenceThreshold(0.5f)
        .build();

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

דרישות מוקדמות

  • נדרשת גרסת Xcode 13.2.1 ואילך.

שלב 1: מעדכנים את Cocoapods

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

תכונהשמות הפודים הישניםשמות חדשים לפודים
‫AutoML להוספת תוויות לתמונות בלי להוריד מודל מרוחק GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
הוספת תוויות לתמונות ב-AutoML עם הורדת מודל מרחוק GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
כדי לארח ולהוריד מודלים בהתאמה אישית, צריך להעביר את המודלים ל-Cloud Storage ולהוסיף לוגיקת הורדה באפליקציה כדי לטעון אותם כמודלים מקומיים. לפרטים, קראו את [המדריך להעברת נתונים מ-Firebase ML ל-Cloud Storage][migrate-storage].

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

אם המחלקה שלכם מופיעה בטבלה הזו, בצעו את השינוי שמצוין:

Swift

הכיתה הישנהכיתה חדשה
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel LocalModel
כדי לארח ולהוריד מודלים בהתאמה אישית, צריך להעביר את המודלים ל-Cloud Storage ולהוסיף לוגיקת הורדה באפליקציה כדי לטעון אותם כמודלים מקומיים. לפרטים, קראו את [המדריך להעברת נתונים מ-Firebase ML ל-Cloud Storage][migrate-storage].
AutoMLImageLabelerOptions CustomImageLabelerOptions

Objective-C

הכיתה הישנהכיתה חדשה
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKLocalModel
כדי לארח ולהוריד מודלים בהתאמה אישית, צריך להעביר את המודלים ל-Cloud Storage ולהוסיף לוגיקת הורדה באפליקציה כדי לטעון אותם כמודלים מקומיים. לפרטים, קראו את [המדריך להעברת נתונים מ-Firebase ML ל-Cloud Storage][migrate-storage].
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

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

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

  • עכשיו אפשר להפעיל את LocalModel באמצעות נתיב מודל (אם המודל מכיל מטא-נתונים עם מפת התוויות) או נתיב מניפסט של מודל (אם המניפסט, המודל והתוויות נמצאים בקבצים נפרדים).
  • מוסיפים לוגיקה לאפליקציה כדי להוריד מודלים שמתארחים מרחוק לאחסון מקומי ולטעון אותם באמצעות LocalModel.

הנה כמה דוגמאות לשיטות 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)

חדש

// Similar process for local models and remotely-hosted models (that have been downloaded)
guard let localModel = LocalModel(manifestPath: "automl/manifest.json") else { return }
let optionsWithLocalModel = CustomImageLabelerOptions(localModel: localModel)

הנה כמה דוגמאות לשיטות 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];

חדש

// Similar process for local models and remotely-hosted models (that have been downloaded)
MLKLocalModel *localModel =
    [[MLKLocalModel alloc] initWithManifestPath:"automl/manifest.json"];
MLKCustomImageLabelerOptions *optionsWithLocalModel =
    [[MLKCustomImageLabelerOptions alloc] initWithLocalModel:localModel];