iOS-এ Mobile Vision থেকে ML Kit-এ স্থানান্তরিত হচ্ছে

এই নথিতে Google Mobile Vision (GMV) থেকে iOS-এ ML Kit-এ আপনার প্রকল্পগুলি স্থানান্তর করার জন্য আপনাকে যে পদক্ষেপগুলি নিতে হবে তা কভার করে৷

পূর্বশর্ত

আপনি আপনার কোড স্থানান্তর করা শুরু করার আগে, নিশ্চিত করুন যে আপনি এই প্রয়োজনীয়তাগুলি পূরণ করেছেন:

  • ML কিট Xcode 13.2.1 বা তার পরে সমর্থন করে।
  • ML Kit iOS সংস্করণ 15.5 বা তার বেশি সমর্থন করে।
  • ML Kit 32-বিট আর্কিটেকচার (i386 এবং armv7) সমর্থন করে না। ML Kit 64-বিট আর্কিটেকচার (x86_64 এবং arm64) সমর্থন করে।

কোকোপড আপডেট করুন

আপনার অ্যাপের পডফাইলে ML Kit iOS cocoapods-এর নির্ভরতা আপডেট করুন:

API জিএমভি পড এমএল কিট পড
বারকোড স্ক্যানিং GoogleMobileVision/BarcodeDetector GoogleMLKit/BarcodeScanning
মুখ সনাক্তকরণ GoogleMobileVision/FaceDetector GoogleMLKit/FaceDetection
পাঠ্য স্বীকৃতি GoogleMobileVision/TextDetector GoogleMLKit/TextRecognition

সামগ্রিক API পরিবর্তন

এই পরিবর্তনগুলি সমস্ত API-তে প্রযোজ্য:

  • GMV-এর অনুমান APIগুলি UIImage বা CMSampleBufferRef ইনপুট হিসাবে নেয়। ML Kit এগুলিকে একটি MLKVisionImage ভিতরে মুড়ে দেয় এবং সেটিকে ইনপুট হিসাবে নেয়৷
  • GMV বিভিন্ন ডিটেক্টর বিকল্প পাস করার জন্য NSDictionary ব্যবহার করে। এমএল কিট সেই উদ্দেশ্যে ডেডিকেটেড অপশন ক্লাস ব্যবহার করে।
  • GMV ডিটেক্টর টাইপকে একক GMVDetector ক্লাসে পাস করে যখন এটি একটি ডিটেক্টর তৈরি করে। এমএল কিট আলাদা ডিটেক্টর, স্ক্যানার এবং শনাক্তকারী উদাহরণ তৈরি করতে ডেডিকেটেড ক্লাস ব্যবহার করে।
  • GMV এর APIগুলি শুধুমাত্র সিঙ্ক্রোনাস সনাক্তকরণ সমর্থন করে। এমএল কিটের ইনফারেন্স API গুলিকে সিঙ্ক্রোনাস এবং অ্যাসিঙ্ক্রোনাস বলা যেতে পারে।
  • GMV AVCaptureVideoDataOutput প্রসারিত করে এবং একই সময়ে একাধিক সনাক্তকরণ সম্পাদনের জন্য একটি মাল্টি-ডিটেক্টর ফ্রেমওয়ার্ক প্রদান করে। এমএল কিট এই ধরনের প্রক্রিয়া প্রদান করে না, তবে একই কার্যকারিতা বিকাশকারী দ্বারা প্রয়োগ করা যেতে পারে যদি ইচ্ছা হয়।

API-নির্দিষ্ট পরিবর্তন

এই বিভাগটি প্রতিটি ভিশন API-এর জন্য সংশ্লিষ্ট GMV এবং ML কিট ক্লাস এবং পদ্ধতিগুলি বর্ণনা করে এবং কীভাবে API শুরু করতে হয় তা দেখায়।

ফেসডিটেক্টর

এই উদাহরণে দেখানো হিসাবে আরম্ভ পুনরায় কোড:

জিএমভি

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 দুটি ভিন্ন সনাক্তকরণ API আছে। উভয়ই সিঙ্ক্রোনাস অপারেশন:

- (nullable NSArray<__kindof GMVFeature *> *)
    featuresInImage:(UIImage *)image
            options:(nullable NSDictionary *)options;

- (nullable NSArray<__kindof GMVFeature *> *)
    featuresInBuffer:(CMSampleBufferRef)sampleBuffer
             options:(nullable NSDictionary *)options;

MLKFaceDetector দিয়ে GMVDetector প্রতিস্থাপন করুন। অনুমান API কে সিঙ্ক্রোনাস বা অ্যাসিঙ্ক্রোনাস বলা যেতে পারে।

সিঙ্ক্রোনাস

- (nullable NSArray<MLKFace *> *)
    resultsInImage:(MLKVisionImage *)image
             error:(NSError **)error;

অ্যাসিঙ্ক্রোনাস

- (void)processImage:(MLKVisionImage *)image
    Completion:
        (MLKFaceDetectionCallback)completion
    NS_SWIFT_NAME(process(_:completion:));

নিম্নলিখিত ক্লাস, পদ্ধতি এবং নাম পরিবর্তন করুন:

জিএমভি এমএল কিট
GMVFaceFeature MLKFace
GMVFaceContour MLKFaceContour
GMVDetectorImageOrientation MLKVisionImage.orientation
মুখ সনাক্তকরণ বিকল্পের NSDictionary MLKFaceDetectorOptions
GMVDetectorFaceFastMode Set MLKFaceDetectorOptions.performanceMode to MLKFaceDetectorPerformanceModeFast
GMVDetectorFaceAccurateMode Set MLKFaceDetectorOptions.performanceMode to MLKFaceDetectorPerformanceModeAccurate
GMVDetectorFaceSelfieMode Set MLKFaceDetectorOptions.contourMode to MLKFaceDetectorContourModeAll
GMVDetectorFaceLandmarkType MLKFaceDetectorOptions.landmarkMode
GMVDetectorFaceLandmarkNone Set MLKFaceDetectorOptions.landmarkMode to MLKFaceDetectorLandmarkModeNone
GMVDetectorFaceLandmarkAll Set MLKFaceDetectorOptions.landmarkMode to MLKFaceDetectorLandmarkModeAll
GMVDetectorFaceLandmarkContour Set MLKFaceDetectorOptions.contourMode to MLKFaceDetectorContourModeAll
GMVDetectorFaceClassificationType MLKFaceDetectorOptions.classificationMode
GMVDetectorFaceClassificationNone Set MLKFaceDetectorOptions.classificationMode to MLKFaceDetectorClassificationModeNone
GMVDetectorFaceClassificationAll Set MLKFaceDetectorOptions.classificationMode to MLKFaceDetectorClassificationModeAll
GMVDetectorFaceTrackingEnabled MLKFaceDetectorOptions.trackingEnabled
GMVDetectorProminentFaceOnly Set MLKFaceDetectorOptions.contourMode to MLKFaceDetectorContourModeAll
GMVDetectorFaceMinSize MLKFaceDetectorOptions.minFaceSize

বারকোড ডিটেক্টর

এই উদাহরণে দেখানো হিসাবে আরম্ভ পুনরায় কোড:

জিএমভি

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 দুটি ভিন্ন সনাক্তকরণ API আছে। উভয়ই সিঙ্ক্রোনাস অপারেশন:

- (nullable NSArray<__kindof GMVFeature *> *)
    featuresInImage:(UIImage *)image
            options:(nullable NSDictionary *)options;

- (nullable NSArray<__kindof GMVFeature *> *)
    featuresInBuffer:(CMSampleBufferRef)sampleBuffer
             options:(nullable NSDictionary *)options;

MLKBarcodeScanner দিয়ে GMVDetector প্রতিস্থাপন করুন। অনুমান API কে সিঙ্ক্রোনাস বা অ্যাসিঙ্ক্রোনাস বলা যেতে পারে।

সিঙ্ক্রোনাস

- (nullable NSArray<MLKBarcode *> *)
    resultsInImage:(MLKVisionImage *)image
             error:(NSError **)error;

অ্যাসিঙ্ক্রোনাস

- (void)processImage:(MLKVisionImage *)image
    Completion:
        (MLKBarcodeScanningCallback)completion
    NS_SWIFT_NAME(process(_:completion:));

নিম্নলিখিত ক্লাস, পদ্ধতি এবং নাম পরিবর্তন করুন:

জিএমভি এমএল কিট
GMVDetectorImageOrientation MLKVisionImage.orientation
বারকোড ডিটেক্টর অপশনের NSDictionary MLKBarcodeScannerOptions
GMVDetectorBarcodeFormats MLKBarcodeScannerOptions.formats
GMVBarcodeFeature MLKBarcode
GMVBarcodeFeatureAddress MLKBarcodeAddress
GMVBarcodeFeatureCalendarEvent MLKBarcodeCalendarEvent
GMVBarcodeFeatureContactInfo MLKBarcodeContactInfo
GMVBarcodeFeatureDriverLicense MLKBarcodeDriverLicense
GMVBarcodeFeatureEmail MLKBarcodeEmail
GMVBarcodeFeatureGeoPoint MLKBarcodeGeoPoint
GMVBarcodeFeaturePersonName MLKBarcodePersonName
GMVBarcodeFeaturePhone MLKBarcodePhone
GMVBarcodeFeatureSMS MLKBarcodeSMS
GMVBarcodeFeatureURLBookmark MLKBarcodeURLBookmark
GMVBarcodeFeatureWiFi MLKBarcodeWiFi

টেক্সট রিকগনিশন

এই উদাহরণে দেখানো হিসাবে আরম্ভ পুনরায় কোড:

জিএমভি

GMVDetector *textDetector =
    [GMVDetector detectorOfType:GMVDetectorTypeText options:nil];

এমএল কিট

MLKTextRecognizer *textRecognizer = [MLKTextRecognizer textRecognizer];

GMVDetector দুটি ভিন্ন সনাক্তকরণ API আছে। উভয়ই সিঙ্ক্রোনাস অপারেশন:

- (nullable NSArray<__kindof GMVFeature *> *)
    featuresInImage:(UIImage *)image
            options:(nullable NSDictionary *)options;

- (nullable NSArray<__kindof GMVFeature *> *)
    featuresInBuffer:(CMSampleBufferRef)sampleBuffer
             options:(nullable NSDictionary *)options;

MLKTextRecognizer দিয়ে GMVDetector প্রতিস্থাপন করুন। অনুমান API কে সিঙ্ক্রোনাস বা অ্যাসিঙ্ক্রোনাস বলা যেতে পারে।

সিঙ্ক্রোনাস

- (nullable MLKText *)
    resultsInImage:(MLKVisionImage *)image
             error:(NSError **)error;

অ্যাসিঙ্ক্রোনাস

- (void)processImage:(MLKVisionImage *)image
    Completion:
        (MLKTextRecognitionCallback)completion
    NS_SWIFT_NAME(process(_:completion:));

নিম্নলিখিত ক্লাস, পদ্ধতি এবং নাম পরিবর্তন করুন:

জিএমভি এমএল কিট
GMVDetectorImageOrientation MLKVisionImage.orientation
GMVTextBlockFeature MLKTextBlock
GMVTextElementFeature MLKTextElement
GMVTextLineFeature MLKTextLine

সাহায্য পাচ্ছি

আপনি যদি কোনো সমস্যায় পড়েন, আমাদের কমিউনিটি পৃষ্ঠা দেখুন যেখানে আমরা আমাদের সাথে যোগাযোগ করার জন্য উপলব্ধ চ্যানেলগুলির রূপরেখা দিই৷