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

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

APIמה ישתנה?
‫AutoML Vision Edge image labeling API הוא הוחלף לגמרי ב-Custom Model image labeling API. הסרנו את ה-API הקיים של AutoML Vision Edge לתוויות תמונות.

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

שאלות נפוצות

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

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

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

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

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

שלב 1: עדכון של Gradle Imports

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