In diesem Dokument werden die Schritte beschrieben, die Sie ausführen müssen, um Ihre Projekte von Von Google Mobile Vision (GMV) zu ML Kit für Android
Allgemeine API-Änderungen
Diese Änderungen gelten für alle APIs:
- GMV-APIs geben synchron ein
SparseArray<T>
-Ergebnis zurück. ML Kit APIs nutzen die Google Play Services Task API, um Ergebnisse asynchron zurückzugeben. - GMV verwendet den Aufruf
isOperational()
in der API-Oberfläche, um anzugeben, ob ein -Modul wurde erfolgreich heruntergeladen und kann verwendet werden. ML Kit enthält keine eine solche Methode. ML Kit löst eineMlKitException.UNAVAILABLE
-Ausnahme aus, wenn Modul wurde nicht heruntergeladen. Sie können diese Ausnahme abfangen und den nächsten Frame an oder legen Sie ein Zeitlimit fest und versuchen Sie es noch einmal mit dem aktuellen Frame. - Bruttowarenwert-Methoden verwenden
Frame
für die Eingabe. ML Kit verwendetInputImage
. - Bruttowarenwert (BWW) liefert
MultiDetector
,MultiProcessor
undFocusingProcessor
für die Durchführung mehrerer Erkennungen und Ergebnisfilter. ML-Kit solche Mechanismen nicht zur Verfügung stellt, aber die gleiche Funktionalität vom Entwickler implementiert werden.
Gradle Imports aktualisieren
Aktualisieren Sie die Abhängigkeiten für die ML Kit-Android-Bibliotheken in der Gradle-Datei Ihres Moduls (auf App-Ebene). Diese ist normalerweise app/build.gradle
, wie in der folgenden Tabelle dargestellt:
API | Bruttowarenwert-Artefakt | ML Kit-Artefakt |
---|---|---|
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-Änderungen
In diesem Abschnitt werden die entsprechenden GMV- und ML Kit-Klassen und -Methoden für jede Vision API beschrieben. Außerdem erfahren Sie, wie Sie die API initialisieren.
FaceDetector
Codieren Sie die Initialisierung neu, wie in diesem Beispiel gezeigt:
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);
Ändern Sie die folgenden Klassen- und Methodennamen:
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
|
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)
|
Diese Funktion wird vom Konturmodus für Gesichter verdeckt. |
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
Codieren Sie die Initialisierung neu, wie in diesem Beispiel gezeigt:
GMV
barcodeDetector = new BarcodeDetector.Builder(context).build());
ML Kit
barcodeScanner = BarcodeScanning.getClient();
Ändern Sie die folgenden Klassen- und Methodennamen:
android.gms.vision.barcode |
mlkit.vision.barcode |
---|---|
BarcodeDetector |
BarcodeScanner
|
SparseArray<Barcode> detect(Frame frame) |
Task<List<Barcode>> process(@NonNull InputImage image)
|
Barcode
|
Barcode
|
TextRecognition
Codieren Sie die Initialisierung neu, wie in diesem Beispiel gezeigt:
GMV
textRecognizer = new TextRecognizer.Builder(context).build();
ML Kit
textRecognizer = TextRecognition.getClient(TextRecognizerOptions.DEFAULT_OPTIONS);
Ändern Sie die folgenden Klassen- und Methodennamen:
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
Wenn Sie die CameraSource-Bibliothek von Google Mobile Vision verwenden, können Sie
Einfache Migration zu CameraXSource
von ML Kit
-Bibliothek, vorausgesetzt, Ihre App wird mit einer SDK-Mindestversion von mindestens 21 ausgeführt.
Ändern Sie die folgenden Klassen- und Methodennamen:
android.gms.vision |
mlkit.vision.camera |
---|---|
CameraSource
|
CameraSourceConfig
|
CameraSource.Builder
|
CameraSourceConfig.Builder
|
CameraSource.Builder.setAutoFocusEnabled
|
Bei Verwendung von CameraX ist der Autofokus standardmäßig verfügbar. |
CameraSource.Builder.setFacing
|
CameraSourceConfig.Builder.setCameraFacing
|
CameraSource.Builder.setFocusMode
|
Bei Verwendung von CameraX ist der Autofokus standardmäßig verfügbar. |
CameraSource.Builder.setRequestedFps
|
Verworfen. |
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()
|
Intern verarbeitet |
CameraSource.PictureCallback |
Verworfen |
CameraSource.ShutterCallback |
Verworfen |
Hilfe erhalten
Solltest du Probleme haben, besuche unsere Community-Seite. in dem wir erläutern, über welche Kanäle Sie Kontakt mit uns aufnehmen können.