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-এর জন্য ডিপেন্ডেন্সি আপডেট করুন:
| API | GMV পড | 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:));
নিম্নলিখিত ক্লাস, পদ্ধতি ও নাম পরিবর্তন করুন:
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:));
নিম্নলিখিত ক্লাস, পদ্ধতি ও নাম পরিবর্তন করুন:
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
|
সহায়তা পাওয়া
কোনও সমস্যা হলে, আমাদের কমিউনিটি পৃষ্ঠা চেক করে দেখুন যেখানে আমাদের সাথে যোগাযোগ করার জন্য উপলভ্য চ্যানেলগুলি উল্লেখ করা আছে।