इस दस्तावेज़ में, 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 Pod |
|---|---|---|
| बारकोड स्कैन करना | 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];
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 से बदलें.
Inference API को सिंक्रोनस या असिंक्रोनस तरीके से कॉल किया जा सकता है.
सिंक्रोनस
- (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 से बदलें.
Inference API को सिंक्रोनस या असिंक्रोनस तरीके से कॉल किया जा सकता है.
सिंक्रोनस
- (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 से बदलें.
Inference API को सिंक्रोनस या असिंक्रोनस तरीके से कॉल किया जा सकता है.
सिंक्रोनस
- (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
|
सहायता पाना
अगर आपको कोई समस्या आती है, तो हमारे कम्यूनिटी पेज पर जाएं. यहां हमने उन चैनलों के बारे में बताया है जिनके ज़रिए हमसे संपर्क किया जा सकता है.