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:));

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

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

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

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:));

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

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

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

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:));

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

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

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