इस दस्तावेज़ में, 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 के एपीआई, सिर्फ़ सिंक्रोनस तरीके से गड़बड़ी का पता लगाने की सुविधा के साथ काम करते हैं. एमएल किट के इन्फ़रेंस एपीआई को सिंक्रोनस और असिंक्रोनस, दोनों तरीकों से कॉल किया जा सकता है.
- GMV,
AVCaptureVideoDataOutput
को बढ़ाता है और एक ही समय में कई तरह की पहचान करने के लिए, मल्टी-डिटेक्टर फ़्रेमवर्क उपलब्ध कराता है. ML Kit इस तरह के तरीके उपलब्ध नहीं कराता. हालांकि, अगर डेवलपर चाहे, तो इस सुविधा को लागू किया जा सकता है.
एपीआई से जुड़े बदलाव
इस सेक्शन में, हर Vision API के लिए GMV और ML Kit की क्लास और तरीकों के बारे में बताया गया है. साथ ही, इसमें एपीआई को शुरू करने का तरीका भी दिखाया गया है.
FaceDetector
इस उदाहरण में दिखाए गए तरीके से, इनीशियलाइज़ेशन को फिर से कोड करें:
GMV
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
इस उदाहरण में दिखाए गए तरीके से, इनीशियलाइज़ेशन को फिर से कोड करें:
GMV
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
इस उदाहरण में दिखाए गए तरीके से, इनीशियलाइज़ेशन को फिर से कोड करें:
GMV
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:));
इन क्लास, तरीकों, और नामों में बदलाव करें:
GMV | ML Kit |
---|---|
GMVDetectorImageOrientation
|
MLKVisionImage.orientation
|
GMVTextBlockFeature
|
MLKTextBlock
|
GMVTextElementFeature
|
MLKTextElement
|
GMVTextLineFeature
|
MLKTextLine
|
सहायता पाना
अगर आपको कोई समस्या आती है, तो हमारे कम्यूनिटी पेज पर जाएं. यहां हमने उन चैनलों के बारे में बताया है जिनके ज़रिए हमसे संपर्क किया जा सकता है.