इस दस्तावेज़ में, 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 की डिपेंडेंसी अपडेट करें:
| एपीआई | जीएमवी पॉड | ML Kit Pod |
|---|---|---|
| बारकोड स्कैन करना | GoogleMobileVision/BarcodeDetector |
GoogleMLKit/BarcodeScanning |
| चेहरे की पहचान | GoogleMobileVision/FaceDetector |
GoogleMLKit/FaceDetection |
| टेक्स्ट की पहचान करने की सुविधा | GoogleMobileVision/TextDetector |
GoogleMLKit/TextRecognition |
एपीआई में किए गए सभी बदलाव
ये बदलाव सभी एपीआई पर लागू होते हैं:
- जीएमवी के अनुमान वाले एपीआई, इनपुट के तौर पर
UIImageयाCMSampleBufferRefलेते हैं. ML Kit, उन्हेंMLKVisionImageमें रैप करता है और उसे इनपुट के तौर पर लेता है. - GMV, डिटेक्टर के अलग-अलग विकल्प पास करने के लिए,
NSDictionaryका इस्तेमाल करता है. ML Kit, इस काम के लिए खास तौर पर बनाई गई विकल्प क्लास का इस्तेमाल करता है. - डिटेक्टर बनाते समय, GMV डिटेक्टर टाइप को सिंगल
GMVDetectorक्लास में पास करता है. ML Kit, अलग-अलग डिटेक्टर, स्कैनर, और पहचान करने वाले इंस्टेंस बनाने के लिए, खास क्लास का इस्तेमाल करता है. - GMV के एपीआई, सिर्फ़ सिंक्रोनस डिटेक्शन के साथ काम करते हैं. ML Kit के अनुमान लगाने वाले एपीआई को सिंक्रोनस और असिंक्रोनस तरीके से कॉल किया जा सकता है.
- जीएमवी,
AVCaptureVideoDataOutputको बेहतर बनाता है और एक ही समय पर कई चीज़ों का पता लगाने के लिए, मल्टी-डिटेक्टर फ़्रेमवर्क उपलब्ध कराता है. ML Kit में इस तरह की सुविधाएं नहीं मिलती हैं. हालांकि, अगर डेवलपर चाहे, तो वह इस तरह की सुविधाएं लागू कर सकता है.
एपीआई से जुड़े बदलाव
इस सेक्शन में, हर Vision API के लिए GMV और ML Kit की क्लास और तरीकों के बारे में बताया गया है. साथ ही, एपीआई को शुरू करने का तरीका भी बताया गया है.
FaceDetector
इनीशियलाइज़ेशन को फिर से कोड करें, जैसा कि इस उदाहरण में दिखाया गया है:
जीएमवी
NSDictionary *options = @{ GMVDetectorFaceMode : @(GMVDetectorFaceAccurateMode), GMVDetectorFaceClassificationType : @(GMVDetectorFaceClassificationAll), GMVDetectorFaceLandmarkType : @(GMVDetectorFaceLandmarkAll) }; GMVDetector *faceDetector = [GMVDetector detectorOfType:GMVDetectorTypeFace options:options];
ML Kit
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];
ML Kit
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];
ML Kit
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:));
इन क्लास, तरीकों, और नामों को बदलें:
| जीएमवी | ML Kit |
|---|---|
GMVDetectorImageOrientation
|
MLKVisionImage.orientation
|
GMVTextBlockFeature
|
MLKTextBlock
|
GMVTextElementFeature
|
MLKTextElement
|
GMVTextLineFeature
|
MLKTextLine
|
सहायता पाना
अगर आपको कोई समस्या आती है, तो हमारा कम्यूनिटी पेज देखें. यहां हमने उन चैनलों के बारे में बताया है जिनके ज़रिए हमसे संपर्क किया जा सकता है.