ML Kit AutoML विज़न एज माइग्रेशन गाइड

AutoML की मदद से ट्रेन किए गए इमेज क्लासिफ़िकेशन मॉडल को कस्टम मॉडल एपीआई में पास किया जा सकता है. आपके पास मॉडल को अपने ऐप्लिकेशन में बंडल करने या उसे Firebase कंसोल पर कस्टम मॉडल के तौर पर होस्ट करने का विकल्प होता है. AutoML इमेज लेबलिंग API को ML Kit से हटा दिया गया है, क्योंकि इसे कस्टम मॉडल इमेज लेबलिंग API से पूरी तरह बदल दिया गया है.

एपीआईक्या बदलाव हो रहा है?
AutoML Vision Edge इमेज लेबलिंग एपीआई इसकी जगह, कस्टम मॉडल इमेज लेबलिंग एपीआई का इस्तेमाल किया जा सकता है. AutoML Vision Edge की इमेज लेबलिंग API की सुविधा हटा दी गई है.

अगर AutoML Vision Edge API का इस्तेमाल किया जाता है, तो Android और iOS के लिए माइग्रेशन से जुड़े निर्देशों का पालन करें.

अक्सर पूछे जाने वाले सवाल

यह बदलाव क्यों किया गया है?

इससे ML Kit API को आसान बनाने में मदद मिलती है. साथ ही, ML Kit को अपने ऐप्लिकेशन में आसानी से इंटिग्रेट किया जा सकता है. इस बदलाव के बाद, AutoML से ट्रेन किए गए मॉडल को ठीक उसी तरह इस्तेमाल किया जा सकता है जिस तरह कस्टम मॉडल को इस्तेमाल किया जाता है. इससे, ऑब्जेक्ट का पता लगाने और उसे ट्रैक करने के लिए, AutoML से ट्रेन किए गए मॉडल का इस्तेमाल किया जा सकता है. इसके अलावा, इमेज लेबलिंग के लिए भी इसका इस्तेमाल किया जा सकता है. इसके अलावा, कस्टम मॉडल एपीआई, इन दोनों मॉडल के साथ काम करता है: ऐसे मॉडल जिनके मेटाडेटा में लेबल मैप एम्बेड किया गया है और ऐसे मॉडल जिनके लिए मेनिफ़ेस्ट और लेबल फ़ाइलें अलग-अलग हैं.

नए SDK पर माइग्रेट करने से मुझे क्या फ़ायदे मिलेंगे?

  • नई सुविधाएं: इमेज लेबलिंग, ऑब्जेक्ट डिटेक्शन, और ट्रैकिंग, दोनों के लिए AutoML से ट्रेन किए गए मॉडल इस्तेमाल करने की सुविधा. साथ ही, मेटाडेटा में एम्बेड किए गए लेबल मैप वाले मॉडल इस्तेमाल करने की सुविधा.

Android के लिए माइग्रेशन गाइड

पहला चरण: Gradle Imports को अपडेट करना

नीचे दी गई टेबल के मुताबिक, अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल (आम तौर पर app/build.gradle.kts) में ML Kit Android लाइब्रेरी के लिए डिपेंडेंसी अपडेट करें:

सुविधापुराने आर्टफ़ैक्टनया आर्टफ़ैक्ट
रिमोट मॉडल डाउनलोड किए बिना, इमेज लेबलिंग के लिए 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] देखें.

दूसरा चरण: क्लास के नाम अपडेट करना

अगर आपकी क्लास इस टेबल में दिखती है, तो बताए गए बदलाव करें:

पुरानी क्लासनई क्लास
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

तीसरा चरण: तरीके के नाम अपडेट करना

कोड में छोटे-मोटे बदलाव किए गए हैं:

  • 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 या इसके बाद का वर्शन होना ज़रूरी है.

पहला चरण: Cocoapods को अपडेट करें

अपने ऐप्लिकेशन की Podfile में, ML Kit iOS cocoapods के लिए डिपेंडेंसी अपडेट करें:

सुविधापॉड का(के) पुराना नामपॉड का नया नाम
रिमोट मॉडल डाउनलोड किए बिना, इमेज लेबलिंग के लिए AutoML का इस्तेमाल करना GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
रिमोट मॉडल डाउनलोड करने की सुविधा के साथ, इमेज लेबलिंग के लिए AutoML GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
कस्टम मॉडल को होस्ट और डाउनलोड करने के लिए, अपने मॉडल को Cloud Storage पर ले जाएं. साथ ही, उन्हें लोकल मॉडल के तौर पर लोड करने के लिए, अपने ऐप्लिकेशन में डाउनलोड करने का लॉजिक जोड़ें. ज़्यादा जानकारी के लिए, [Firebase ML से Cloud Storage पर माइग्रेट करने से जुड़ी गाइड][migrate-storage] देखें.

दूसरा चरण: क्लास के नाम अपडेट करना

अगर आपकी क्लास इस टेबल में दिखती है, तो बताए गए बदलाव करें:

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

तीसरा चरण: तरीके के नाम अपडेट करना

कोड में छोटे-मोटे बदलाव किए गए हैं:

  • 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];