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

এই ডকুমেন্টে আপনার প্রোজেক্টগুলোকে গুগল মোবাইল ভিশন (GMV) থেকে অ্যান্ড্রয়েডের জন্য এমএল কিট-এ মাইগ্রেট করার প্রয়োজনীয় ধাপগুলো বর্ণনা করা হয়েছে।

সামগ্রিক এপিআই পরিবর্তন

এই পরিবর্তনগুলি সকল API-এর ক্ষেত্রে প্রযোজ্য:

  • GMV API-গুলো সিনক্রোনাসভাবে একটি SparseArray<T> ফলাফল ফেরত দেয়। ML Kit API-গুলো অ্যাসিঙ্ক্রোনাসভাবে ফলাফল ফেরত দেওয়ার জন্য Google Play services-এর Task API ব্যবহার করে।
  • কোনো মডিউল সফলভাবে ডাউনলোড হয়েছে এবং ব্যবহারের জন্য প্রস্তুত কিনা তা বোঝাতে GMV তার API সারফেসে isOperational() কলটি ব্যবহার করে। ML Kit-এ এমন কোনো মেথড নেই। যদি কোনো মডিউল ডাউনলোড না হয়ে থাকে, তাহলে ML Kit একটি MlKitException.UNAVAILABLE এক্সেপশন থ্রো করে। আপনি এই এক্সেপশনটি ক্যাচ করে পরবর্তী ফ্রেমে প্রসেস করতে পারেন অথবা একটি টাইমআউট সেট করে বর্তমান ফ্রেম দিয়ে পুনরায় চেষ্টা করতে পারেন।
  • GMV মেথডগুলো ইনপুট হিসেবে Frame ব্যবহার করে। ML Kit ব্যবহার করে InputImage
  • একাধিক ডিটেকশন সম্পাদন এবং ফলাফল ফিল্টার করার জন্য GMV, MultiDetector , MultiProcessor এবং FocusingProcessor ফ্রেমওয়ার্ক সরবরাহ করে। ML Kit এই ধরনের ব্যবস্থা প্রদান করে না, কিন্তু ডেভেলপার চাইলে একই কার্যকারিতা বাস্তবায়ন করতে পারেন।

গ্রেডল ইমপোর্ট আপডেট করুন

নিচের সারণি অনুযায়ী আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে (যা সাধারণত app/build.gradle ) এমএল কিট অ্যান্ড্রয়েড লাইব্রেরির ডিপেন্ডেন্সিগুলো আপডেট করুন:

এপিআই জিএমভি আর্টিফ্যাক্ট এমএল কিট আর্টিফ্যাক্ট
মুখ ডিটেক্টর com.google.android.gms:play-services-vision:xxx com.google.android.gms:play-services-mlkit-face-detection:17.1.0
বারকোড ডিটেক্টর com.google.android.gms:play-services-vision:xxx com.google.android.gms:play-services-mlkit-barcode-scanning:18.3.1
পাঠ্য শনাক্তকরণ com.google.android.gms:play-services-vision:xxx com.google.android.gms:play-services-mlkit-text-recognition:19.0.1
ক্যামেরা উৎস com.google.android.gms:play-services-vision:xxx com.google.mlkit:camera:16.0.0-beta3

এপিআই পরিবর্তন

এই অংশে প্রতিটি ভিশন এপিআই-এর জন্য সংশ্লিষ্ট জিএমভি এবং এমএল কিট ক্লাস ও মেথড বর্ণনা করা হয়েছে এবং এপিআই-টি কীভাবে ইনিশিয়ালাইজ করতে হয় তা দেখানো হয়েছে।

মুখ ডিটেক্টর

এই উদাহরণে দেখানো অনুযায়ী প্রারম্ভিকীকরণটি পুনরায় কোড করুন:

জিএমভি

detector = new FaceDetector.Builder(context)
    .setMode(FaceDetector.ACCURATE_MODE)
    .setLandmarkType(FaceDetector.ALL_LANDMARKS)
    .setClassificationType(FaceDetector.ALL_CLASSIFICATIONS)
    .build();

এমএল কিট

FaceDetectorOptions options = new FaceDetectorOptions.Builder()
    .setPerformanceMode(FaceDetectorOptions.PERFORMANCE_MODE_ACCURATE)
    .setLandmarkMode(FaceDetectorOptions.LANDMARK_MODE_ALL)
    .setClassificationMode(FaceDetectorOptions.CLASSIFICATION_MODE_ALL)
    .build();

detector = FaceDetection.getClient(options);

নিম্নলিখিত ক্লাস এবং মেথডের নামগুলো পরিবর্তন করুন:

android.gms.vision.face mlkit.vision.face
FaceDetector FaceDetector
SparseArray<Face> detect(Frame frame) Task<List<Face>> process(@NonNull InputImage image)
FaceDetector.Builder.setClassificationType(int classificationType) FaceDetectorOptions.Builder. setClassificationMode(int classificationMode)
NO_CLASSIFICATIONS, ALL_CLASSIFICATIONS CLASSIFICATION_MODE_NONE , CLASSIFICATION_MODE_ALL
FaceDetector.Builder.setLandmarkType(int landmarkType) FaceDetectorOptions.Builder. setLandmarkMode(int landmarkMode)
NO_LANDMARKS, ALL_LANDMARKS, CONTOUR_LANDMARKS LANDMARK_MODE_NONE , LANDMARK_MODE_ALL

GMV CONTOUR_LANDMARKS প্রতিস্থাপন করতে #setContourMode ব্যবহার করুন)

FaceDetector.Builder.setTrackingEnabled(boolean trackingEnabled) FaceDetectorOptions.Builder. enableTracking()
FaceDetector.Builder.setMinFaceSize(float proportionalMinFaceSize) FaceDetectorOptions.Builder. setMinFaceSize(float minFaceSize)
FaceDetector.Builder.setMode(int mode) FaceDetectorOptions.Builder. setPerformanceMode(int performanceMode)
FAST_MODE, ACCURATE_MODE PERFORMANCE_MODE_FAST , PERFORMANCE_MODE_ACCURATE
FaceDetector.Builder.setProminentFaceOnly(boolean prominentFaceOnly) এই ফিচারটি ফেস কনট্যুর মোডের অন্তর্ভুক্ত।
Face Face
Contour FaceContour
Landmark FaceLandmark
Face.getContours() Face. getAllContours()
Face.getEulerY() Face. getHeadEulerAngleY()
Face.getEulerZ() Face. getHeadEulerAngleZ()
Face.getId() Face. getTrackingId()
Face.getIsLeftEyeOpenProbability() Face. getLeftEyeOpenProbability()
Face.getIsRightEyeOpenProbability() Face. getRightEyeOpenProbability()
Face.getIsSmilingProbability() Face. getSmilingProbability()
Face.getLandmarks() Face. getLandmark(int landmarkType)
Face.getPosition()
Face.getHeight()
Face.getWidth()
Face. getBoundingBox()

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

এই উদাহরণে দেখানো অনুযায়ী প্রারম্ভিকীকরণটি পুনরায় কোড করুন:

জিএমভি

barcodeDetector = new BarcodeDetector.Builder(context).build());

এমএল কিট

barcodeScanner = BarcodeScanning.getClient();

নিম্নলিখিত ক্লাস এবং মেথডের নামগুলো পরিবর্তন করুন:

android.gms.vision.barcode mlkit.vision.barcode
BarcodeDetector BarcodeScanner
SparseArray<Barcode> detect(Frame frame) Task<List<Barcode>> process(@NonNull InputImage image)
Barcode Barcode

পাঠ্য শনাক্তকরণ

এই উদাহরণে দেখানো অনুযায়ী প্রারম্ভিকীকরণটি পুনরায় কোড করুন:

জিএমভি

textRecognizer = new TextRecognizer.Builder(context).build();

এমএল কিট

textRecognizer = TextRecognition.getClient(TextRecognizerOptions.DEFAULT_OPTIONS);

নিম্নলিখিত ক্লাস এবং মেথডের নামগুলো পরিবর্তন করুন:

android.gms.vision.text mlkit.vision.text
TextRecognizer TextRecognizer
SparseArray<TextBlock> detect(Frame frame) Task<Text> process(@NonNull InputImage image)
SparseArray<TextBlock> Text
Line Line
TextBlock TextBlock
Element Element
getLanguage() getRecognizedLanguage()
getBoundingBox() getBoundingBox()
getCornerPoints() getCornerPoints()
TextBlock.getComponents() TextBlock.getLines()
TextBlock.getValue() TextBlock.getText()
Element.getValue() Element.getText()

ক্যামেরা উৎস

আপনি যদি গুগল মোবাইল ভিশন-এর দেওয়া CameraSource লাইব্রেরি ব্যবহার করেন, তাহলে সহজেই এমএল কিট-এর CameraXSource লাইব্রেরিতে মাইগ্রেট করতে পারবেন, তবে শর্ত হলো আপনার অ্যাপটি ন্যূনতম এসডিকে ভার্সন ২১ বা তার বেশি সংস্করণে চলতে হবে।

নিম্নলিখিত ক্লাস এবং মেথডের নামগুলো পরিবর্তন করুন:

android.gms.vision mlkit.vision.camera
CameraSource CameraSourceConfig
CameraSource.Builder CameraSourceConfig.Builder
CameraSource.Builder.setAutoFocusEnabled CameraX ব্যবহার করার সময় অটোফোকাস ডিফল্টরূপে উপলব্ধ থাকে।
CameraSource.Builder.setFacing CameraSourceConfig.Builder . setCameraFacing
CameraSource.Builder.setFocusMode CameraX ব্যবহার করার সময় অটোফোকাস ডিফল্টরূপে উপলব্ধ থাকে।
CameraSource.Builder.setRequestedFps অপ্রচলিত।
CameraSource.Builder.setRequestedPreviewSize CameraSourceConfig.Builder . setRequestedPreviewSize
CameraSource CameraXSource
new CameraSource.Builder(mContext, detector)....build(); CameraXSource(CameraSourceConfig, PreviewView)
getCameraFacing() getCameraFacing ()
getPreviewSize() getPreviewSize ()
release() close ()
start(SurfaceHolder surfaceHolder) start () // The previewview is set in the CameraSourceConfig
start() start ()
stop() stop ()
Detector.Processor DetectionTaskCallback
receiveDetections(Detections<T> detections) void onDetectionTaskReceived(@NonNull Task<ResultT> detectionTask);
release() অভ্যন্তরীণভাবে পরিচালনা করা হয়েছে
CameraSource.PictureCallback অপ্রচলিত
CameraSource.ShutterCallback অপ্রচলিত

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

যদি কোনো সমস্যায় পড়েন, তাহলে আমাদের কমিউনিটি পেজটি দেখুন, যেখানে আমাদের সাথে যোগাযোগের মাধ্যমগুলো উল্লেখ করা আছে।