इस दस्तावेज़ में, iOS पर अपने प्रोजेक्ट को Google Mobile Vision (GMV) से ML Kit पर माइग्रेट करने का तरीका बताया गया है.
ज़रूरी शर्तें
अपना कोड माइग्रेट करने से पहले, पक्का करें कि आपने ये ज़रूरी शर्तें पूरी कर ली हों:
- ML Kit, Xcode 13.2.1 या इसके बाद के वर्शन के साथ काम करता है.
- ML Kit, iOS 15.5 या इसके बाद के वर्शन पर काम करता है.
- ML Kit, 32-बिट आर्किटेक्चर (i386 और armv7) के साथ काम नहीं करता. ML Kit, 64-बिट आर्किटेक्चर (x86_64 और arm64) पर काम करता है.
cocoapods को अपडेट करना
अपने ऐप्लिकेशन की Podfile में, ML Kit iOS cocoapods के लिए डिपेंडेंसी अपडेट करें:
एपीआई | GMV पॉड | ML Kit पॉड |
---|---|---|
बारकोड स्कैन करना | GoogleMobileVision/BarcodeDetector |
GoogleMLKit/BarcodeScanning |
चेहरे की पहचान करने की सुविधा | GoogleMobileVision/FaceDetector |
GoogleMLKit/FaceDetection |
टेक्स्ट की पहचान करने की सुविधा | GoogleMobileVision/TextDetector |
GoogleMLKit/TextRecognition |
एपीआई में हुए बदलाव
ये बदलाव सभी एपीआई पर लागू होते हैं:
- GMV के अनुमान लगाने वाले एपीआई, इनपुट के तौर पर
UIImage
याCMSampleBufferRef
लेते हैं. ML Kit, इन फ़ाइलों कोMLKVisionImage
में रैप करके, इन फ़ाइलों को इनपुट के तौर पर इस्तेमाल करती है. - GMV, डिटेक्टर के अलग-अलग विकल्पों को पास करने के लिए
NSDictionary
का इस्तेमाल करता है. ML Kit, इस काम के लिए खास विकल्प क्लास का इस्तेमाल करता है. - GMV, डिटेक्टर बनाते समय डिटेक्टर टाइप को सिंगल
GMVDetector
क्लास को पास करता है. ML Kit, अलग-अलग डिटेक्टर, स्कैनर, और पहचान करने वाले इंस्टेंस बनाने के लिए, खास क्लास का इस्तेमाल करता है. - GMV के एपीआई, सिंक्रोनस डिटेक्शन के साथ ही काम करते हैं. ML Kit के इनफ़रेंस एपीआई को सिंक्रोनस और असिंक्रोनस तरीके से कॉल किया जा सकता है.
- GMV,
AVCaptureVideoDataOutput
को बढ़ाता है और एक ही समय में कई पहचान करने की सुविधा देने के लिए, मल्टी-डिटेक्टर फ़्रेमवर्क उपलब्ध कराता है. ML Kit में इस तरह के तरीके उपलब्ध नहीं हैं. हालांकि, डेवलपर चाहें, तो यह सुविधा लागू की जा सकती है.
एपीआई से जुड़े बदलाव
इस सेक्शन में, हर Vision API के लिए मिलते-जुलते GMV और ML Kit क्लास और तरीकों के बारे में बताया गया है. साथ ही, एपीआई को शुरू करने का तरीका भी बताया गया है.
FaceDetector
इस उदाहरण में दिखाए गए तरीके से, इनिशियलाइज़ेशन को फिर से कोड करें:
NSDictionary *options = @{ GMVDetectorFaceMode : @(GMVDetectorFaceAccurateMode), GMVDetectorFaceClassificationType : @(GMVDetectorFaceClassificationAll), GMVDetectorFaceLandmarkType : @(GMVDetectorFaceLandmarkAll) }; GMVDetector *faceDetector = [GMVDetector detectorOfType:GMVDetectorTypeFace options:options];
MLKFaceDetectorOptions *options = [[MLKFaceDetectorOptions alloc] init]; options.performanceMode = MLKFaceDetectorPerformanceModeAccurate; options.classificationMode = MLKFaceDetectorClassificationModeAll; options.landmarkMode = MLKFaceDetectorLandmarkModeAll; MLKFaceDetector *faceDetector = [MLKFaceDetector faceDetectorWithOptions:options];
GMVDetector
में, स्पैम की पहचान करने वाले दो अलग-अलग एपीआई हैं. दोनों सिंक्रोनस ऑपरेशन हैं:
- (nullable NSArray<__kindof GMVFeature *> *) featuresInImage:(UIImage *)image options:(nullable NSDictionary *)options; - (nullable NSArray<__kindof GMVFeature *> *) featuresInBuffer:(CMSampleBufferRef)sampleBuffer options:(nullable NSDictionary *)options;
GMVDetector
को MLKFaceDetector
से बदलें.
इंफ़रेंस एपीआई को सिंक्रोनस या असिंक्रोनस तरीके से कॉल किया जा सकता है.
- (nullable NSArray<MLKFace *> *) resultsInImage:(MLKVisionImage *)image error:(NSError **)error;
- (void)processImage:(MLKVisionImage *)image Completion: (MLKFaceDetectionCallback)completion NS_SWIFT_NAME(process(_:completion:));
यहां दी गई क्लास, तरीकों, और नामों को बदलें:
BarcodeDetector
इस उदाहरण में दिखाए गए तरीके से, इनिशियलाइज़ेशन को फिर से कोड करें:
NSDictionary *options = @{ GMVDetectorBarcodeFormats : @(GMVDetectorBarcodeFormatCode128 | GMVDetectorBarcodeFormatQRCode) }; GMVDetector *barcodeDetector = [GMVDetector detectorOfType:GMVDetectorTypeBarcode options:options];
MLKBarcodeScannerOptions *options = [[MLKBarcodeScannerOptions alloc] init]; options.formats = MLKBarcodeFormatCode128 | MLKBarcodeFormatQRCode; MLKBarcodeScanner *barcodeScanner = [MLKBarcodeScanner barcodeScannerWithOptions:options];
GMVDetector
में, स्पैम की पहचान करने वाले दो अलग-अलग एपीआई हैं. दोनों सिंक्रोनस ऑपरेशन हैं:
- (nullable NSArray<__kindof GMVFeature *> *) featuresInImage:(UIImage *)image options:(nullable NSDictionary *)options; - (nullable NSArray<__kindof GMVFeature *> *) featuresInBuffer:(CMSampleBufferRef)sampleBuffer options:(nullable NSDictionary *)options;
GMVDetector
को MLKBarcodeScanner
से बदलें.
इंफ़रेंस एपीआई को सिंक्रोनस या असिंक्रोनस तरीके से कॉल किया जा सकता है.
- (nullable NSArray<MLKBarcode *> *) resultsInImage:(MLKVisionImage *)image error:(NSError **)error;
- (void)processImage:(MLKVisionImage *)image Completion: (MLKBarcodeScanningCallback)completion NS_SWIFT_NAME(process(_:completion:));
यहां दी गई क्लास, तरीकों, और नामों को बदलें:
TextRecognition
इस उदाहरण में दिखाए गए तरीके से, इनिशियलाइज़ेशन को फिर से कोड करें:
GMVDetector *textDetector = [GMVDetector detectorOfType:GMVDetectorTypeText options:nil];
MLKTextRecognizer *textRecognizer = [MLKTextRecognizer textRecognizer];
GMVDetector
में, स्पैम की पहचान करने वाले दो अलग-अलग एपीआई हैं. दोनों सिंक्रोनस ऑपरेशन हैं:
- (nullable NSArray<__kindof GMVFeature *> *) featuresInImage:(UIImage *)image options:(nullable NSDictionary *)options; - (nullable NSArray<__kindof GMVFeature *> *) featuresInBuffer:(CMSampleBufferRef)sampleBuffer options:(nullable NSDictionary *)options;
GMVDetector
को MLKTextRecognizer
से बदलें.
इंफ़रेंस एपीआई को सिंक्रोनस या असिंक्रोनस तरीके से कॉल किया जा सकता है.
- (nullable MLKText *) resultsInImage:(MLKVisionImage *)image error:(NSError **)error;
- (void)processImage:(MLKVisionImage *)image Completion: (MLKTextRecognitionCallback)completion NS_SWIFT_NAME(process(_:completion:));
यहां दी गई क्लास, तरीकों, और नामों को बदलें:
GMV | ML Kit |
---|---|
GMVDetectorImageOrientation
|
MLKVisionImage.orientation
|
GMVTextBlockFeature
|
MLKTextBlock
|
GMVTextElementFeature
|
MLKTextElement
|
GMVTextLineFeature
|
MLKTextLine
|
सहायता पाना
अगर आपको कोई समस्या आती है, तो हमारे कम्यूनिटी पेज पर जाएं. यहां हमने उन चैनलों के बारे में बताया है जिनसे हमसे संपर्क किया जा सकता है.