এই ডকুমেন্টটি সেইসব ধাপের কথা বলে যা আপনাকে Google Mobile Vision (GMV) থেকে Android-এ ML Kit-এ আপনার প্রোজেক্ট মাইগ্রেট করার জন্য নিতে হবে।
সামগ্রিক API পরিবর্তন
এইসব পরিবর্তন সব API-তে প্রযোজ্য:
- GMV API
SparseArray<T>ফলাফল সিঙ্ক করে দেখায়। ML Kit API, Google Play পরিষেবা Task API ব্যবহার করে অ্যাসিঙ্ক্রোনাসভাবে ফলাফল দেখায়। - কোনও মডিউল সফলভাবে ডাউনলোড করা হয়েছে কিনা এবং সেটি ব্যবহারের জন্য রেডি কিনা তা বোঝাতে GMV API সারফেসে
isOperational()কল ব্যবহার করে। ML Kit-এ এই ধরনের কোনও মেথড নেই। কোনও মডিউল ডাউনলোড করা না হলে, ML KitMlKitException.UNAVAILABLEব্যতিক্রম দেখায়। আপনি এই ব্যতিক্রমটি ধরতে এবং পরবর্তী ফ্রেম প্রসেস করতে পারেন অথবা টাইম-আউট সেট করতে এবং বর্তমান ফ্রেমের সাথে আবার চেষ্টা করতে পারেন। - GMV পদ্ধতি ইনপুটের জন্য
Frameব্যবহার করে। ML KitInputImageব্যবহার করে। - একাধিকবার শনাক্তকরণ ও ফলাফল ফিল্টার করার জন্য 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.1 |
| 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
এই উদাহরণে দেখানো হয়েছে সেইভাবে ইনিশিয়ালাইজেশন আবার কোড করুন:
জিএমভি
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-এর পরিবর্তে |
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.getBoundingBox()
|
BarcodeDetector
এই উদাহরণে দেখানো হয়েছে সেইভাবে ইনিশিয়ালাইজেশন আবার কোড করুন:
জিএমভি
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
এই উদাহরণে দেখানো হয়েছে সেইভাবে ইনিশিয়ালাইজেশন আবার কোড করুন:
জিএমভি
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 |
বন্ধ করে দেওয়া হয়েছে |
সহায়তা পাওয়া
আপনার কোনও সমস্যা হলে, আমাদের সাথে যোগাযোগ করার জন্য উপলভ্য চ্যানেলগুলি সম্পর্কে জানতে কমিউনিটি পৃষ্ঠা দেখুন।