คำแนะนำในการย้ายข้อมูล AutoML Vision Edge ของ ML Kit

คุณส่งโมเดลการจัดประเภทรูปภาพที่ฝึก AutoML ไปยัง API ของโมเดลที่กำหนดเองได้ คุณยังคงรวมโมเดลภายในแอปหรือฝากโมเดลนั้นในคอนโซล Firebase เป็นรูปแบบที่กำหนดเองได้ เรานำ API การติดป้ายกำกับรูปภาพ AutoML ออกจาก ML Kit แล้วเนื่องจากแทนที่ด้วย Custom Model Image 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 โมเดลที่กำหนดเองยังรองรับทั้งโมเดลที่มีการแมปป้ายกำกับฝังอยู่ในข้อมูลเมตา และโมเดลที่มีไฟล์ Manifest และป้ายกํากับแยกกัน

ฉันจะได้รับสิทธิประโยชน์ใดจากการย้ายข้อมูลไปยัง SDK ใหม่

  • ฟีเจอร์ใหม่: ความสามารถในการใช้โมเดลที่ฝึก AutoML สำหรับทั้งการติดป้ายกำกับรูปภาพและการตรวจจับออบเจ็กต์และติดตาม รวมถึงความสามารถในการใช้โมเดลที่มีการแมปป้ายกำกับที่ฝังอยู่ในข้อมูลเมตา

คำแนะนำในการย้ายข้อมูลสำหรับ Android

ขั้นตอนที่ 1: อัปเดตการนำเข้า Gradle

อัปเดตทรัพยากร Dependency สำหรับไลบรารี Android ของ 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 ด้วยเส้นทางไฟล์โมเดล (หากโมเดลมีข้อมูลเมตาที่มีแมปป้ายกำกับ) หรือเส้นทางไฟล์ Manifest ของโมเดล (หากไฟล์ Manifest, โมเดล และป้ายกำกับอยู่ในไฟล์ที่แยกกัน) ได้แล้ว
  • คุณโฮสต์โมเดลที่กำหนดเองจากระยะไกลได้ผ่านคอนโซล 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

อัปเดตทรัพยากร Dependency สำหรับ CocoaPods ของ ML Kit ใน 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 ด้วยเส้นทางไฟล์โมเดล (หากโมเดลมีข้อมูลเมตาที่มีแมปป้ายกำกับ) หรือเส้นทางไฟล์ Manifest ของโมเดล (หากไฟล์ Manifest, โมเดล และป้ายกำกับอยู่ในไฟล์ที่แยกกัน) ได้แล้ว
  • คุณโฮสต์โมเดลที่กำหนดเองจากระยะไกลได้ผ่านคอนโซล 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];