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

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

পূর্বশর্ত

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

  • এমএল কিট এক্সকোড ১৩.২.১ বা তার পরবর্তী সংস্করণ সমর্থন করে।
  • এমএল কিট আইওএস ১৫.৫ বা তার বেশি সংস্করণ সমর্থন করে।
  • ML Kit 32-বিট আর্কিটেকচার (i386 এবং armv7) সমর্থন করে না। ML Kit 64-বিট আর্কিটেকচার (x86_64 এবং arm64) সমর্থন করে।

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

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

এপিআই জিএমভি পড এমএল কিট পড
বারকোড স্ক্যানিং 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-নির্দিষ্ট পরিবর্তনগুলি

এই বিভাগটি প্রতিটি ভিশন 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;

GMVDetector MLKFaceDetector দিয়ে প্রতিস্থাপন করুন। ইনফারেন্স 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;

GMVDetector MLKBarcodeScanner দিয়ে প্রতিস্থাপন করুন। ইনফারেন্স 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;

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

সাহায্য পাওয়া

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