পূর্বশর্ত
আপনি আপনার কোড স্থানান্তর করা শুরু করার আগে, নিশ্চিত করুন যে আপনি এই প্রয়োজনীয়তাগুলি পূরণ করেছেন:
- ML কিট Xcode 13.2.1 বা তার বেশি সমর্থন করে।
- ML Kit iOS সংস্করণ 10 বা তার বেশি সমর্থন করে।
- ML Kit 32-বিট আর্কিটেকচার (i386 এবং armv7) সমর্থন করে না। ML Kit 64-বিট আর্কিটেকচার (x86_64 এবং arm64) সমর্থন করে।
- এমএল কিট লাইব্রেরি শুধুমাত্র কোকোপড হিসাবে প্রদান করা হয়। আপনি ফ্রেমওয়ার্ক এবং কোকোপডগুলিকে মিশ্রিত করতে পারবেন না, তাই এই লাইব্রেরিটি ব্যবহার করার জন্য আপনাকে প্রথমে কোকোপড ব্যবহার করতে স্থানান্তর করতে হবে।
কোকোপড আপডেট করুন
আপনার অ্যাপের পডফাইলে ML Kit iOS cocoapods-এর নির্ভরতা আপডেট করুন:
API | পুরানো পড নাম(গুলি) | নতুন পড নাম(গুলি) |
---|---|---|
বারকোড স্ক্যানিং | ফায়ারবেস/এমএলভিশন Firebase/MLVisionBarcodeModel | GoogleMLKit/বারকোড স্ক্যানিং |
মুখ সনাক্তকরণ | ফায়ারবেস/এমএলভিশন Firebase/MLVisionFaceModel | GoogleMLKit/FaceDetection |
ইমেজ লেবেলিং | ফায়ারবেস/এমএলভিশন Firebase/MLVisionLabelModel | GoogleMLKit/ইমেজ লেবেলিং |
বস্তু সনাক্তকরণ এবং ট্র্যাকিং | ফায়ারবেস/এমএলভিশন অবজেক্ট ডিটেকশন | GoogleMLKit/অবজেক্ট ডিটেকশন |
পাঠ্য স্বীকৃতি | ফায়ারবেস/এমএলভিশন Firebase/MLVisionTextModel | GoogleMLKit/TextRecognition |
অটোএমএল ইমেজ লেবেলিং (বান্ডিল মডেল) | Firebase/MLVisionAutoML | GoogleMLKit/ইমেজ লেবেলিং কাস্টম |
AutoML ইমেজ লেবেলিং (Firebase থেকে মডেল ডাউনলোড) | Firebase/MLVisionAutoML | GoogleMLKit/ইমেজ লেবেলিং কাস্টম GoogleMLKit/LinkFirebase |
ভাষা আইডি | ফায়ারবেস/এমএল ন্যাচারাল ল্যাঙ্গুয়েজ Firebase/MLNLLlanguageID | GoogleMLKit/LanguageID |
স্মার্ট উত্তর | ফায়ারবেস/এমএল ন্যাচারাল ল্যাঙ্গুয়েজ Firebase/MLNLSmartReply | GoogleMLKit/SmartReply |
অনুবাদ করুন | ফায়ারবেস/এমএল ন্যাচারাল ল্যাঙ্গুয়েজ Firebase/MLNLTঅনুবাদ | GoogleMLKit/অনুবাদ |
ক্লাস, enums, এবং প্রকারের নাম আপডেট করুন
সাধারণভাবে, ক্লাস, enums, এবং প্রকারগুলিকে নিম্নরূপ নামকরণ করা প্রয়োজন:
- সুইফ্ট: ক্লাসের নাম এবং এনাম থেকে
Vision
উপসর্গটি সরান - উদ্দেশ্য-C:
FIRVision
এবংFIR
ক্লাস নাম এবং enum উপসর্গ উভয়ইMLK
দ্বারা প্রতিস্থাপন করুন
কিছু শ্রেণীর নাম এবং প্রকারের জন্য এই সাধারণ নিয়ম প্রযোজ্য নয়:
সুইফট
পুরানো ক্লাস বা টাইপ | নতুন ক্লাস বা টাইপ |
---|---|
AutoMLLocalModel | স্থানীয় মডেল |
AutoMLRemoteModel | কাস্টম রিমোট মডেল |
VisionBarcodeDetectionCallback | বারকোড স্ক্যানিং কলব্যাক |
ভিশনবারকোড ডিটেক্টর | বারকোড স্ক্যানার |
VisionBarcodeDetectorOptions | বারকোড স্ক্যানার বিকল্প |
ভিশন ইমেজ | ভিশন ইমেজ (কোন পরিবর্তন নেই) |
ভিশনপয়েন্ট | ভিশনপয়েন্ট (কোন পরিবর্তন নেই) |
VisionOnDeviceAutoMLImageLabelerOptions | CustomImageLabelerOptions |
VisionOnDeviceImageLabelerOptions | ইমেজ লেবেলার অপশন |
উদ্দেশ্য-C
পুরানো ক্লাস বা টাইপ | নতুন ক্লাস বা টাইপ |
---|---|
FIRAutoMLLocalModel | MLKLocalModel |
FIRAutoMLRemoteModel | MLKCustomRemoteModel |
FIRVisionBarcodeDetectionCallback | MLKBarcodeScanningCallback |
FIRVisionBarcodeDetector | MLKBarcodeScanner |
FIRVisionBarcodeDetectorOptions | MLKBarcodeScanner অপশন |
FIRVision Image | এমএলকেভিশন ইমেজ |
FIRVisionOnDeviceAutoMLImageLabelerOptions | MLKCustomImageLabelerOptions |
FIRVisionOnDeviceImageLabelerOptions | MLKImageLabelerOptions |
FIRVisionPoint | MLKVisionPoint |
উদ্দেশ্য-C
পদ্ধতির নাম আপডেট করুন
এই নিয়ম অনুযায়ী পদ্ধতির নাম আপডেট করুন:
ডোমেন এন্ট্রি পয়েন্ট ক্লাস (
Vision
,NaturalLanguage
) আর বিদ্যমান নেই। তারা টাস্ক নির্দিষ্ট ক্লাস দ্বারা প্রতিস্থাপিত হয়েছে. প্রতিটি ডিটেক্টরের ফ্যাক্টরি পদ্ধতিতে সরাসরি কল দিয়ে ডিটেক্টর পাওয়ার জন্য তাদের বিভিন্ন ফ্যাক্টরি পদ্ধতিতে কল প্রতিস্থাপন করুন।VisionDetectorImageOrientation
enum সহVisionImageMetadata
ক্লাসটি সরানো হয়েছে। একটি চিত্রের প্রদর্শন অভিযোজন নির্দিষ্ট করতেVisionImage
এরorientation
বৈশিষ্ট্য ব্যবহার করুন।onDeviceTextRecognizer
পদ্ধতি যা একটি নতুনTextRecognizer
উদাহরণ পায় সেটির নাম পরিবর্তন করেtextRecognizer
রাখা হয়েছে।TextElement
,TextLine
, এবংTextBlock
সহ পাঠ্য শনাক্তকরণ ফলাফল শ্রেণী থেকে আত্মবিশ্বাসের সম্পত্তি সরানো হয়েছে।একটি নতুন
ImageLabeler
ইনস্ট্যান্স পেতেonDeviceImageLabeler
এবংonDeviceImageLabeler(options:)
পদ্ধতিগুলিকে মার্জ করা হয়েছে এবংimageLabeler(options:)
তে নামকরণ করা হয়েছে।একটি নতুন
ObjectDetector
দৃষ্টান্ত পেতেobjectDetector
পদ্ধতিটি সরানো হয়েছে। পরিবর্তেobjectDetector(options:)
ব্যবহার করুন।type
প্রপার্টিImageLabeler
থেকে সরানো হয়েছে এবংentityID
প্রপার্টি ইমেজ লেবেলিং ফলাফল ক্লাস,ImageLabel
থেকে মুছে ফেলা হয়েছে।বারকোড স্ক্যানিং API
detect(in _:, completion:)
নাম পরিবর্তন করেprocess(_:, completion:)
করা হয়েছে যাতে অন্যান্য দৃষ্টি API-এর সাথে সামঞ্জস্যপূর্ণ হয়।ন্যাচারাল ল্যাঙ্গুয়েজ এপিআই এখন "ভাষা কোড" এর পরিবর্তে "ভাষা ট্যাগ" ( BCP-47 স্ট্যান্ডার্ড দ্বারা সংজ্ঞায়িত) শব্দটি ব্যবহার করে।
TranslateLanguage
এখন ভাষা ট্যাগের পরিবর্তে তার ধ্রুবকের জন্য পঠনযোগ্য নাম (যেমন .english) ব্যবহার করে (যেমন .en)।
এখানে পুরানো এবং নতুন সুইফট পদ্ধতির কিছু উদাহরণ রয়েছে:
পুরাতন
let options = VisionOnDeviceImageLabelerOptions() options.confidenceThreshold = 0.75 let labeler = Vision.vision().onDeviceImageLabeler(options: options) let detector = Vision.vision().faceDetector(options: options) let localModel = AutoMLLocalModel(manifestPath: "automl/manifest.json") let options = VisionOnDeviceAutoMLImageLabelerOptions(localModel: localModel) options.confidenceThreshold = 0.75 let labeler = vision.onDeviceAutoMLImageLabeler(options: options) let detector = Vision.vision().objectDetector()
নতুন
let options = ImageLabelerOptions() options.confidenceThreshold = NSNumber(value:0.75) let labeler = ImageLabeler.imageLabeler(options: options) let detector = FaceDetector.faceDetector(options: options) let localModel = LocalModel(manifestPath: "automl/manifest.json") let options = CustomImageLabelerOptions(localModel: localModel) options.confidenceThreshold = NSNumber(value:0.75) let labeler = ImageLabeler.imageLabeler(options: options) let detector = ObjectDetector.objectDetector(options: ObjectDetectorOptions())
এখানে পুরানো এবং নতুন উদ্দেশ্য-সি পদ্ধতির কিছু উদাহরণ রয়েছে:
পুরাতন
FIRVisionOnDeviceImageLabelerOptions *options = [[FIRVisionOnDeviceImageLabelerOptions alloc] init]; options.confidenceThreshold = 0.75; FIRVisionImageLabeler *labeler = [[FIRVision vision] onDeviceImageLabelerWithOptions:options]; FIRVisionFaceDetector *detector = [[FIRVision vision] faceDetectorWithOptions: options]; FIRAutoMLLocalModel *localModel = [[FIRAutoMLLocalModel alloc] initWithManifestPath:@"automl/manifest.json"]; FIRVisionOnDeviceAutoMLImageLabelerOptions *options = [[FIRVisionOnDeviceAutoMLImageLabelerOptions alloc] initWithLocalModel: localModel]; options.confidenceThreshold = 0.75 FIRVisionImageLabeler *labeler = [[FIRVision vision] onDeviceAutoMLImageLabelerWithOptions:options]; FIRVisionObjectDetector *detector = [[FIRVision vision] objectDetector];
নতুন
MLKImageLabelerOptions *options = [[MLKImageLabelerOptions alloc] init]; options.confidenceThreshold = @(0.75); MLKImageLabeler *labeler = [MLKImageLabeler imageLabelerWithOptions:options]; MLKFaceDetector *detector = [MLKFaceDetector faceDetectorWithOptions:options]; MLKLocalModel *localModel = [[MLKLocalModel alloc] initWithManifestPath:@"automl/manifest.json"]; MLKCustomImageLabelerOptions *options = [[MLKCustomImageLabelerOptions alloc] initWithLocalModel:localModel]; options.confidenceThreshold = @(0.75) MLKImageLabeler *labeler = [MLKImageLabeler imageLabelerWithOptions:options]; MLKObjectDetectorOptions *options = [[MLKObjectDetectorOptions alloc] init]; MLKObjectDetector *detector = [MLKObjectDetector objectDetectorWithOptions:options];
API-নির্দিষ্ট পরিবর্তন
বস্তু সনাক্তকরণ এবং ট্র্যাকিং
যদি আপনার অ্যাপ অবজেক্টের শ্রেণীবিভাগ ব্যবহার করে, তাহলে জেনে রাখুন যে নতুন SDK শনাক্ত করা বস্তুর জন্য শ্রেণীবিভাগ শ্রেণী ফেরানোর উপায় পরিবর্তন করেছে।
VisionObject
এ VisionObjectCategory
একটি পূর্ণসংখ্যার পরিবর্তে ObjectLabel
অবজেক্টে text
হিসাবে ফেরত দেওয়া হয়। সমস্ত সম্ভাব্য স্ট্রিং বিভাগগুলি DetectedObjectLabel
enum-এ অন্তর্ভুক্ত করা হয়েছে।
মনে রাখবেন যে .unknown
বিভাগটি সরানো হয়েছে। যখন কোনো বস্তুকে শ্রেণীবদ্ধ করার আত্মবিশ্বাস কম থাকে, তখন শ্রেণীবিভাগকারী কোনো লেবেল ফেরত দেয় না।
এখানে পুরানো এবং নতুন সুইফট কোডের একটি উদাহরণ রয়েছে:
পুরাতন
if (object.classificationCategory == .food) { ... }
নতুন
if let label = object.labels.first { if (label.text == DetectedObjectLabel.food.rawValue) { ... } } // or if let label = object.labels.first { if (label.index == DetectedObjectLabelIndex.food.rawValue) { ... } }
এখানে পুরানো এবং নতুন উদ্দেশ্য-সি কোডের একটি উদাহরণ রয়েছে:
পুরাতন
if (object.classificationCategory == FIRVisionObjectCategoryFood) { ... }
নতুন
if ([object.labels[0].text isEqualToString:MLKDetectedObjectLabelFood]) { ... } // or if ([object.labels[0].index == MLKDetectedObjectLabelIndexFood]) { ... }
ফায়ারবেস নির্ভরতা সরান (ঐচ্ছিক)
এই পদক্ষেপটি শুধুমাত্র তখনই প্রযোজ্য যখন এই শর্তগুলি পূরণ হয়:
- Firebase ML Kit হল একমাত্র Firebase উপাদান যা আপনি ব্যবহার করেন
- আপনি শুধুমাত্র অন-ডিভাইস API ব্যবহার করেন
- আপনি মডেল পরিবেশন ব্যবহার করবেন না
যদি এটি হয়, আপনি স্থানান্তর করার পরে Firebase নির্ভরতা মুছে ফেলতে পারেন। এই পদক্ষেপগুলি অনুসরণ করুন:
- আপনার অ্যাপের ডিরেক্টরি এবং আপনার Xcode প্রকল্প থেকে GoogleService-Info.plist ফাইলটি মুছে ফায়ারবেস কনফিগারেশন ফাইলটি সরান৷
- আপনার পডফাইল থেকে যেকোনও ফায়ারবেস কোকোপড, যেমন
pod 'Firebase/Analytics'
সরান। - আপনার কোড থেকে
FirebaseApp.configure()
এর মতো যেকোনও FirebaseApp আরম্ভ সরান। - Firebase সমর্থন সাইটের নির্দেশাবলী অনুযায়ী Firebase কনসোলে আপনার Firebase অ্যাপটি মুছুন।
সাহায্য পাচ্ছি
আপনি যদি কোনো সমস্যায় পড়েন, অনুগ্রহ করে আমাদের কমিউনিটি পৃষ্ঠা দেখুন যেখানে আমরা আমাদের সাথে যোগাযোগ করার জন্য উপলব্ধ চ্যানেলগুলির রূপরেখা দিই।
অন্য কিছু উল্লেখ না করা থাকলে, এই পৃষ্ঠার কন্টেন্ট Creative Commons Attribution 4.0 License-এর অধীনে এবং কোডের নমুনাগুলি Apache 2.0 License-এর অধীনে লাইসেন্স প্রাপ্ত। আরও জানতে, Google Developers সাইট নীতি দেখুন। Java হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2024-09-30 UTC-তে শেষবার আপডেট করা হয়েছে।