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

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

APIמה משתנה?
AutoML Vision Edge image labeling API הוא הוחלף באופן מלא ב-Custom Model image labeling 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) בהתאם לטבלה הבאה:

תכונהפריטי מידע ישנים שנוצרו בתהליך פיתוח (Artifacts)ארטיפקט חדש
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 ב-cocoapods ב-Podfile של האפליקציה:

תכונהשמות ה-pod הקודמיםשמות חדשים של פקעות
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];