دليل نقل البيانات الخاصة بـ ML Kit AutoML Vision Edge

يمكنك تمرير نموذج لتصنيف الصور تم تدريبه باستخدام AutoML إلى واجهات برمجة التطبيقات الخاصة بالنماذج المخصّصة. يمكنك مواصلة تجميع النموذج داخل تطبيقك أو استضافته على وحدة تحكّم Firebase كنموذج مخصّص. تمت إزالة واجهة برمجة التطبيقات الخاصة بتصنيف الصور في AutoML من ML Kit لأنّها استُبدلت بالكامل بواجهة برمجة التطبيقات الخاصة بتصنيف الصور في النموذج المخصّص.

واجهة برمجة التطبيقاتالتغيير المرتقَب
واجهة برمجة التطبيقات لتصنيف الصور في AutoML Vision Edge تم استبدالها بالكامل بواجهة برمجة التطبيقات Custom Model image labeling API. تمت إزالة واجهة برمجة التطبيقات الحالية لتصنيف الصور في AutoML Vision Edge.

إذا كنت تستخدم حاليًا حزمة تعلُّم الآلة وتستفيد من واجهة برمجة التطبيقات AutoML Vision Edge، يُرجى اتّباع تعليمات نقل البيانات لنظامَي التشغيل Android وiOS.

الأسئلة الشائعة

ما هي أسباب هذا التغيير؟

تساعد هذه الميزة في تبسيط واجهات برمجة التطبيقات في ML Kit وتسهيل دمجها في تطبيقك. وبفضل هذا التغيير، يمكنك استخدام نموذج تم تدريبه باستخدام AutoML بالطريقة نفسها التي تستخدم بها نموذجًا مخصّصًا. تتيح لك أيضًا استخدام النماذج المدرَّبة باستخدام AutoML في ميزة "رصد العناصر وتتبُّعها"، بالإضافة إلى ميزة "تصنيف الصور" التي نوفّرها حاليًا. بالإضافة إلى ذلك، تتيح واجهة برمجة التطبيقات الخاصة بالنماذج المخصّصة استخدام النماذج التي تتضمّن خريطة تصنيف مضمّنة في بياناتها الوصفية، والنماذج التي تتضمّن ملفات بيان وتصنيف منفصلة.

ما هي المزايا التي أحصل عليها عند نقل البيانات إلى حزمة تطوير البرامج (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

المتطلبات الأساسية

  • يجب توفُّر الإصدار 13.2.1 من Xcode أو إصدار أحدث.

الخطوة 1: تعديل Cocoapods

عدِّل الاعتمادات الخاصة بـ 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];