इस दस्तावेज़ में बताया गया है कि किसी प्रोजेक्ट को माइग्रेट करने का तरीका क्या है Android पर Google Mobile Vision (GMV) से ML Kit में बदलें.
एपीआई में हुए कुल बदलाव
ये बदलाव सभी एपीआई पर लागू होंगे:
- GMV API, सिंक्रोनस रूप से
SparseArray<T>
नतीजा दिखाते हैं. एमएल किट एपीआई Google Play services Task API का इस्तेमाल करके, एसिंक्रोनस तरीके से नतीजे दिए जा सकते हैं. - GMV, एपीआई प्लैटफ़ॉर्म में
isOperational()
कॉल का इस्तेमाल करके यह बताता है कि मॉड्यूल डाउनलोड कर लिया गया है और अब इसका इस्तेमाल किया जा सकता है. ML Kit में कोई शामिल नहीं है . ML किट मेंMlKitException.UNAVAILABLE
अपवाद मिलने पर, अगर मॉड्यूल डाउनलोड नहीं किया गया है. आप इस अपवाद को समझ सकते हैं और या टाइम आउट सेट करके मौजूदा फ़्रेम के साथ फिर से कोशिश करें. - जीएमवी के तरीकों में
Frame
का इस्तेमाल किया जाता है इनपुट के लिए. ML Kit मेंInputImage
का इस्तेमाल किया जाता है. - GMV
MultiDetector
,MultiProcessor
, औरFocusingProcessor
उपलब्ध कराता है कई चीज़ों की पहचान करने और नतीजों को फ़िल्टर करने के लिए फ़्रेमवर्क. मशीन लर्निंग (ML) किट ऐसा कोई तरीका उपलब्ध नहीं कराता, लेकिन एक ही तरह के फ़ंक्शन ज़रूरत पड़ने पर डेवलपर, इसे लागू करते हैं.
Gradle इंपोर्ट अपडेट करें
इस टेबल के मुताबिक, अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल में ML Kit Android लाइब्रेरी की डिपेंडेंसी अपडेट करें. आम तौर पर, यह फ़ाइल app/build.gradle
होती है:
एपीआई | जीएमवी आर्टफ़ैक्ट | एमएल किट आर्टफ़ैक्ट |
---|---|---|
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 |
एपीआई के बदलाव
इस सेक्शन में, हर Vision 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_DISPLAYS को बदलने के लिए |
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
इस उदाहरण में दिखाए गए तरीके से, शुरू करने के प्रोसेस को फिर से कोड करें:
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 वर्शन >= 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 |
बहिष्कृत |
सहायता पाना
अगर आपको कोई समस्या आती है, तो हमारे कम्यूनिटी पेज पर जाएं यहां हम उन चैनलों की जानकारी देंगे जो हमसे संपर्क करने के लिए उपलब्ध हैं.