Android-এ Mobile Vision থেকে ML Kit-এ মাইগ্রেট করা

Android-এ Google Mobile Vision (GMV) থেকে ML Kit-এ আপনার প্রোজেক্ট মাইগ্রেট করার জন্য আপনাকে যেসব পদক্ষেপ নিতে হবে তা এই ডকুমেন্টে কভার করা হয়েছে।

API-তে সামগ্রিক পরিবর্তন

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

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

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

আপনার মডিউল (অ্যাপ-লেভেল) Gradle ফাইলে ML Kit Android লাইব্রেরির জন্য ডিপেন্ডেন্সি আপডেট করুন, যা সাধারণত app/build.gradle, নিম্নলিখিত সারণী অনুযায়ী:

API GMV আর্টিফ্যাক্ট ML Kit আর্টিফ্যাক্ট
FaceDetector com.google.android.gms:play-services-vision:x.x.x com.google.android.gms:play-services-mlkit-face-detection:17.1.0
BarcodeDetector com.google.android.gms:play-services-vision:x.x.x com.google.android.gms:play-services-mlkit-barcode-scanning:18.3.1
TextRecognition com.google.android.gms:play-services-vision:x.x.x com.google.android.gms:play-services-mlkit-text-recognition:19.0.2
CameraSource com.google.android.gms:play-services-vision:x.x.x com.google.mlkit:camera:16.0.0-beta3

API-তে পরিবর্তন

এই বিভাগে প্রতিটি Vision API-এর জন্য সংশ্লিষ্ট GMV এবং ML Kit ক্লাস এবং পদ্ধতিগুলি বর্ণনা করা হয়েছে এবং API কীভাবে শুরু করতে হয় তা দেখানো হয়েছে।

FaceDetector

এই উদাহরণে দেখানো অনুযায়ী ইনিশিয়ালাইজেশন আবার কোড করুন:

GMV

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

ML Kit

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

এই উদাহরণে দেখানো অনুযায়ী ইনিশিয়ালাইজেশন আবার কোড করুন:

GMV

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

ML Kit

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

TextRecognition

এই উদাহরণে দেখানো অনুযায়ী ইনিশিয়ালাইজেশন আবার কোড করুন:

GMV

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

ML Kit

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

আপনি Google Mobile Vision-এর প্রদান করা CameraSource লাইব্রেরি ব্যবহার করলে, সহজেই ML Kit-এর CameraXSource লাইব্রেরিতে মাইগ্রেট করতে পারবেন, তবে আপনার অ্যাপকে ন্যূনতম SDK ভার্সন >= ২১-এ রান করতে হবে।

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

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 বন্ধ করে দেওয়া হয়েছে

সহায়তা পাওয়া

কোনও সমস্যা হলে, আমাদের কমিউনিটি পৃষ্ঠা চেক করে দেখুন যেখানে আমাদের সাথে যোগাযোগ করার জন্য উপলভ্য চ্যানেলগুলি উল্লেখ করা আছে।