इस दस्तावेज़ में बताया गया है कि किसी प्रोजेक्ट को माइग्रेट करने का तरीका क्या है Google Mobile Vision (GMV) से लेकर iOS के लिए ML Kit तक.
ज़रूरी शर्तें
अपने कोड को माइग्रेट करने से पहले, पक्का करें कि आपने इन शर्तों को पूरा किया हो:
- ML Kit, Xcode 13.2.1 या इसके बाद के वर्शन के साथ काम करता है.
- ML Kit, iOS के 10 या उसके बाद वाले वर्शन पर काम करता है.
- ML Kit, 32-बिट आर्किटेक्चर (i386 और armv7) पर काम नहीं करता. ML Kit, 64-बिट आर्किटेक्चर (x86_64 और arm64) पर काम करता है.
cocoapods अपडेट करें
अपने ऐप्लिकेशन की Podfile में, ML Kit iOS cocoapods के लिए डिपेंडेंसी अपडेट करें:
एपीआई | जीएमवी पॉड | एमएल किट पॉड |
---|---|---|
बारकोड स्कैन करना | GoogleMobileVision/BarcodeDetector |
GoogleMLKit/BarcodeScanning |
चेहरे की पहचान | GoogleMobileVision/FaceDetector |
GoogleMLKit/FaceDetection |
टेक्स्ट की पहचान | GoogleMobileVision/TextDetector |
GoogleMLKit/TextRecognition |
एपीआई में हुए सभी बदलाव
ये बदलाव सभी एपीआई पर लागू होंगे:
- GMV के अनुमान एपीआई, इनपुट के तौर पर
UIImage
याCMSampleBufferRef
लेते हैं. ML किट में, उन्हेंMLKVisionImage
के अंदर रैप किया जाता है और उसे इनपुट के तौर पर इस्तेमाल किया जाता है. - जीएमवी, डिटेक्टर के अलग-अलग विकल्पों को पास करने के लिए,
NSDictionary
का इस्तेमाल करता है. ML Kit इस काम के लिए, खास तौर पर बने विकल्प क्लास का इस्तेमाल करता है. - जीएमवी, डिटेक्टर बनाते समय डिटेक्टर का टाइप, सिंगल
GMVDetector
क्लास में पास करता है. ML Kit में खास क्लास का इस्तेमाल करके, डिटेक्टर, स्कैनर, और आइडेंटिफ़ायर के अलग-अलग इंस्टेंस बनाए जाते हैं. - GMV के एपीआई सिर्फ़ सिंक्रोनस डिटेक्शन की सुविधा देते हैं. ML Kit के अनुमान एपीआई को सिंक्रोनस और एसिंक्रोनस तरीके से कॉल किया जा सकता है.
- GMV,
AVCaptureVideoDataOutput
का विस्तार करता है और एक ही समय पर कई पहचान करने के लिए, मल्टी-डिटेक्टर फ़्रेमवर्क उपलब्ध कराता है. ML Kit में ऐसे तरीके उपलब्ध नहीं हैं. हालांकि, अगर डेवलपर चाहें, तो वही फ़ंक्शन लागू कर सकता है.
एपीआई से जुड़े बदलाव
इस सेक्शन में, हर Vision API से जुड़े जीएमवी और एमएल किट क्लास और तरीकों के बारे में बताया गया है. साथ ही, एपीआई को शुरू करने का तरीका भी बताया गया है.
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
से बदलें.
अनुमान एपीआई को सिंक्रोनस या एसिंक्रोनस तरीके से कॉल किया जा सकता है.
सिंक्रोनस
- (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
.
अनुमान एपीआई को सिंक्रोनस या एसिंक्रोनस तरीके से कॉल किया जा सकता है.
सिंक्रोनस
- (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
.
अनुमान एपीआई को सिंक्रोनस या एसिंक्रोनस तरीके से कॉल किया जा सकता है.
सिंक्रोनस
- (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
|
सहायता पाना
अगर आपको कोई समस्या आती है, तो हमारे कम्यूनिटी पेज पर जाएं यहां हम उन चैनलों की जानकारी देंगे जो हमसे संपर्क करने के लिए उपलब्ध हैं.