iOS-এ Mobile Vision থেকে ML Kit-এ মাইগ্রেট করা

iOS-এ Google Mobile Vision (GMV) থেকে ML Kit-এ আপনার প্রোজেক্ট মাইগ্রেট করার জন্য আপনাকে যেসব পদক্ষেপ নিতে হবে তা এই ডকুমেন্টে কভার করা হয়েছে।

পূর্বশর্ত

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

  • ML Kit-এ Xcode 13.2.1 বা তার পরবর্তী যেকোনও ভার্সন কাজ করে।
  • ML Kit, iOS ভার্সন 15.5 বা তার পরবর্তী যেকোনও ভার্সনে কাজ করে।
  • ML Kit ৩২-বিট আর্কিটেকচারে (i386 এবং armv7) কাজ করে না। ML Kit 64-বিট আর্কিটেকচার (x86_64 এবং arm64) সাপোর্ট করে।

CocoaPods আপডেট করুন

আপনার অ্যাপের Podfile-এ ML Kit iOS cocoapods-এর জন্য ডিপেন্ডেন্সি আপডেট করুন:

APIGMV পডML Kit Pod
বারকোড স্ক্যানিং GoogleMobileVision/BarcodeDetector GoogleMLKit/BarcodeScanning
ফেস ডিটেকশন GoogleMobileVision/FaceDetector GoogleMLKit/FaceDetection
টেক্সট রিকগনিশন GoogleMobileVision/TextDetector GoogleMLKit/TextRecognition

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

এইসব পরিবর্তন সব API-এর ক্ষেত্রে প্রযোজ্য:

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

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

এই বিভাগে প্রতিটি Vision API-এর জন্য সংশ্লিষ্ট GMV এবং ML Kit ক্লাস এবং পদ্ধতিগুলি বর্ণনা করা হয়েছে এবং 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-এ দুটি আলাদা শনাক্তকরণ API আছে। দুটিই সিঙ্ক্রোনাস অপারেশন:

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

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

GMVDetector-এর পরিবর্তে MLKFaceDetector ব্যবহার করুন। ইনফারেন্স API সিঙ্ক্রোনাস বা অ্যাসিঙ্ক্রোনাসভাবে কল করা যেতে পারে।

সিঙ্ক্রোনাস

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

অসমনিয়ত

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

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

GMV ML Kit
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

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

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

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

GMVDetector-এর পরিবর্তে MLKBarcodeScanner ব্যবহার করুন। ইনফারেন্স API সিঙ্ক্রোনাস বা অ্যাসিঙ্ক্রোনাসভাবে কল করা যেতে পারে।

সিঙ্ক্রোনাস

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

অসমনিয়ত

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

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

GMV ML Kit
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

TextRecognition

এই উদাহরণে দেখানো অনুযায়ী ইনিশিয়ালাইজেশন আবার কোড করুন:

GMV

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

ML Kit

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;

GMVDetector-এর পরিবর্তে MLKTextRecognizer ব্যবহার করুন। ইনফারেন্স 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

সহায়তা পাওয়া

কোনও সমস্যা হলে, আমাদের কমিউনিটি পৃষ্ঠা চেক করে দেখুন যেখানে আমাদের সাথে যোগাযোগ করার জন্য উপলভ্য চ্যানেলগুলি উল্লেখ করা আছে।