इस दस्तावेज़ में बताया गया है कि अपने प्रोजेक्ट को Google Mobile Vision (GMV) से Android पर ML Kit में माइग्रेट करने के लिए, क्या करना होगा.
एपीआई में हुए सभी बदलाव
ये बदलाव सभी एपीआई पर लागू होते हैं:
- जीएमवी एपीआई,
SparseArray<T>
नतीजा सिंक करता है. ML Kit API, एसिंक्रोनस तरीके से नतीजे देने के लिए, Google Play services के Task API का इस्तेमाल करता है. - GMV, एपीआई प्लैटफ़ॉर्म में
isOperational()
कॉल का इस्तेमाल करके यह बताता है कि मॉड्यूल डाउनलोड हो गया है या नहीं और वह इस्तेमाल के लिए तैयार है या नहीं. एमएल किट में ऐसा कोई तरीका नहीं है. अगर कोई मॉड्यूल डाउनलोड नहीं हुआ है, तो ML किटMlKitException.UNAVAILABLE
अपवाद दिखाती है. इस अपवाद को देखा जा सकता है और अगला फ़्रेम प्रोसेस किया जा सकता है या टाइम आउट सेट करके, मौजूदा फ़्रेम के साथ फिर से कोशिश की जा सकती है. - इनपुट के लिए, जीएमवी के तरीकों में
Frame
का इस्तेमाल किया जाता है. मशीन लर्निंग किट,InputImage
का इस्तेमाल करती है. - जीएमवी, पहचान करने और नतीजों को फ़िल्टर करने के लिए
MultiDetector
,MultiProcessor
, औरFocusingProcessor
फ़्रेमवर्क उपलब्ध कराता है. एमएल किट ऐसे तरीके उपलब्ध नहीं कराती. हालांकि, अगर डेवलपर चाहें, तो उन ही सुविधाओं को लागू कर सकता है.
Gradle इंपोर्ट अपडेट करें
यहां दी गई टेबल के मुताबिक, अपने मॉड्यूल (ऐप्लिकेशन-लेवल) Gradle फ़ाइल में ML Kit Android लाइब्रेरी के लिए डिपेंडेंसी अपडेट करें. आम तौर पर, यह app/build.gradle
होती है:
API | जीएमवी आर्टफ़ैक्ट | एमएल किट आर्टफ़ैक्ट |
---|---|---|
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.0 |
TextRecognition | com.google.android.gms:play-services-vision:x.x.x |
com.google.android.gms:play-services-mlkit-text-recognition:19.0.0 |
CameraSource | com.google.android.gms:play-services-vision:x.x.x |
com.google.mlkit:camera:16.0.0-beta3 |
एपीआई में हुए बदलाव
इस सेक्शन में, हर Vision API के लिए GMV और ML Kit की क्लास के साथ-साथ एपीआई को शुरू करने के तरीकों के बारे में बताया गया है.
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_][=S को बदलने के लिए, |
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 वर्शन >= 21 पर चल रहा हो.
नीचे दी गई क्लास और तरीके के नाम बदलें:
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 |
बहिष्कृत |
सहायता पाना
अगर आपको कोई समस्या आती है, तो हमारे कम्यूनिटी पेज पर जाएं. यहां हमने उन चैनलों की जानकारी दी है जिनकी मदद से हमसे संपर्क किया जा सकता है.