এই ডকুমেন্টে আপনার প্রোজেক্টগুলো গুগল মোবাইল ভিশন (GMV) থেকে iOS-এর ML Kit-এ মাইগ্রেট করার জন্য প্রয়োজনীয় পদক্ষেপগুলো বর্ণনা করা হয়েছে।
পূর্বশর্ত
আপনার কোড স্থানান্তর করা শুরু করার আগে, নিশ্চিত হয়ে নিন যে আপনি এই শর্তগুলো পূরণ করেছেন:
- এমএল কিট এক্সকোড ১৩.২.১ বা তার পরবর্তী সংস্করণ সমর্থন করে।
- এমএল কিট আইওএস সংস্করণ ১৫.৫ বা তার পরবর্তী সংস্করণ সমর্থন করে।
- এমএল কিট ৩২-বিট আর্কিটেকচার (i386 এবং armv7) সমর্থন করে না। এমএল কিট ৬৪-বিট আর্কিটেকচার (x86_64 এবং arm64) সমর্থন করে।
কোকোপড আপডেট করুন
আপনার অ্যাপের Podfile-এ ML Kit iOS cocoapods-এর জন্য নির্ভরতাগুলো আপডেট করুন:
| এপিআই | জিএমভি পড | এমএল কিট পড |
|---|---|---|
| বারকোড স্ক্যানিং | GoogleMobileVision/BarcodeDetector | GoogleMLKit/BarcodeScanning |
| মুখ শনাক্তকরণ | GoogleMobileVision/FaceDetector | GoogleMLKit/FaceDetection |
| পাঠ্য শনাক্তকরণ | GoogleMobileVision/TextDetector | GoogleMLKit/TextRecognition |
সামগ্রিক এপিআই পরিবর্তন
এই পরিবর্তনগুলি সকল 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 এই ধরনের কোনো ব্যবস্থা প্রদান করে না, কিন্তু ডেভেলপার চাইলে একই কার্যকারিতা বাস্তবায়ন করতে পারেন।
এপিআই-নির্দিষ্ট পরিবর্তন
এই অংশে প্রতিটি ভিশন এপিআই-এর জন্য সংশ্লিষ্ট জিএমভি এবং এমএল কিট ক্লাস ও মেথড বর্ণনা করা হয়েছে এবং এপিআই-টি কীভাবে ইনিশিয়ালাইজ করতে হয় তা দেখানো হয়েছে।
মুখ ডিটেক্টর
এই উদাহরণে দেখানো অনুযায়ী প্রারম্ভিকীকরণটি পুনরায় কোড করুন:
জিএমভি
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 দুটি ভিন্ন ডিটেকশন এপিআই রয়েছে। উভয়ই সিনক্রোনাস অপারেশন:
- (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:));
নিম্নলিখিত ক্লাস, মেথড এবং নামগুলো পরিবর্তন করুন:
বারকোড ডিটেক্টর
এই উদাহরণে দেখানো অনুযায়ী প্রারম্ভিকীকরণটি পুনরায় কোড করুন:
জিএমভি
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 দুটি ভিন্ন ডিটেকশন এপিআই রয়েছে। উভয়ই সিনক্রোনাস অপারেশন:
- (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:));
নিম্নলিখিত ক্লাস, মেথড এবং নামগুলো পরিবর্তন করুন:
পাঠ্য শনাক্তকরণ
এই উদাহরণে দেখানো অনুযায়ী প্রারম্ভিকীকরণটি পুনরায় কোড করুন:
জিএমভি
GMVDetector *textDetector = [GMVDetector detectorOfType:GMVDetectorTypeText options:nil];
এমএল কিট
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:));
নিম্নলিখিত ক্লাস, মেথড এবং নামগুলো পরিবর্তন করুন:
| জিএমভি | এমএল কিট |
|---|---|
GMVDetectorImageOrientation | MLKVisionImage.orientation |
GMVTextBlockFeature | MLKTextBlock |
GMVTextElementFeature | MLKTextElement |
GMVTextLineFeature | MLKTextLine |
সাহায্য পাওয়া
যদি কোনো সমস্যায় পড়েন, তাহলে আমাদের কমিউনিটি পেজটি দেখুন, যেখানে আমাদের সাথে যোগাযোগের মাধ্যমগুলো উল্লেখ করা আছে।