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

এই ডকুমেন্টে আপনার প্রকল্পগুলিকে গুগল মোবাইল ভিশন (GMV) থেকে অ্যান্ড্রয়েডে ML কিটে স্থানান্তর করার জন্য আপনার যে পদক্ষেপগুলি নিতে হবে তা অন্তর্ভুক্ত করা হয়েছে।

সামগ্রিক 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 কিট InputImage ব্যবহার করে।
  • GMV একাধিক সনাক্তকরণ এবং ফলাফল ফিল্টারিং সম্পাদনের জন্য MultiDetector , MultiProcessor এবং FocusingProcessor ফ্রেমওয়ার্ক প্রদান করে। ML Kit এই ধরনের প্রক্রিয়া প্রদান করে না, তবে ইচ্ছা করলে ডেভেলপার একই কার্যকারিতা প্রয়োগ করতে পারে।

গ্রেডল আমদানি আপডেট করুন

নিম্নলিখিত টেবিল অনুসারে, আপনার মডিউল (অ্যাপ-লেভেল) গ্র্যাডেল ফাইলে ML কিট অ্যান্ড্রয়েড লাইব্রেরির জন্য নির্ভরতা আপডেট করুন, যা সাধারণত 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

API পরিবর্তনগুলি

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

ফেসডিটেক্টর

এই উদাহরণে দেখানো হিসাবে ইনিশিয়ালাইজেশনটি পুনরায় কোড করুন:

জিএমভি

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()

ক্যামেরাসোর্স

আপনি যদি গুগল মোবাইল ভিশন দ্বারা সরবরাহিত ক্যামেরাসোর্স লাইব্রেরি ব্যবহার করেন, তাহলে আপনি সহজেই এমএল কিটের 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 অবচিত

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

যদি আপনার কোনও সমস্যা হয়, তাহলে আমাদের কমিউনিটি পৃষ্ঠাটি দেখুন যেখানে আমরা আমাদের সাথে যোগাযোগের জন্য উপলব্ধ চ্যানেলগুলির রূপরেখা দিই।