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 unter iOS
Vorbereitung
Bevor Sie mit der Migration Ihres Codes beginnen, sollten Sie sich vergewissern, dass die folgenden Anforderungen erfüllt sind:
- ML Kit unterstützt Xcode 13.2.1 oder höher.
- ML Kit unterstützt iOS 10 oder höher.
- ML Kit unterstützt keine 32-Bit-Architekturen (i386 und armv7). ML Kit unterstützt 64-Bit-Architekturen (x86_64 und arm64).
CocoaPods aktualisieren
Aktualisieren Sie die Abhängigkeiten für die ML Kit iOS-CocoaPods in der Podfile-Datei Ihrer App:
API | Bruttowarenwert-Pod | ML Kit-Pod |
---|---|---|
Barcode-Scan | GoogleMobileVision/BarcodeDetector |
GoogleMLKit/BarcodeScanning |
Gesichtserkennung | GoogleMobileVision/FaceDetector |
GoogleMLKit/FaceDetection |
Texterkennung | GoogleMobileVision/TextDetector |
GoogleMLKit/TextRecognition |
Allgemeine Änderungen an der API
Diese Änderungen gelten für alle APIs:
- Die Inferenz-APIs von GMV verwenden
UIImage
oderCMSampleBufferRef
als Eingabe. ML Kit umschließt sie inMLKVisionImage
und verwendet diese Eingabe als Eingabe. - Der Bruttowarenwert (BWW) verwendet
NSDictionary
, um verschiedene Detektoroptionen zu übergeben. ML Kit verwendet zu diesem Zweck spezielle Optionsklassen. - GMV übergibt den Detektortyp an die einzelne
GMVDetector
-Klasse, wenn ein Detektor erstellt wird. ML Kit verwendet spezielle Klassen, um separate Detektor-, Scanner- und Erkennungsinstanzen zu erstellen. - Die APIs von GMV unterstützen nur die synchrone Erkennung. Die Inferenz-APIs von ML Kit können synchron und asynchron aufgerufen werden.
- Der Bruttowarenwert (BWW) erweitert
AVCaptureVideoDataOutput
und bietet ein Framework mit mehreren Detektoren, mit dem mehrere Erkennungen gleichzeitig durchgeführt werden können. ML Kit bietet solche Mechanismen nicht, aber die gleichen Funktionen können vom Entwickler implementiert werden, falls gewünscht.
API-spezifische Ä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
NSDictionary *options = @{ GMVDetectorFaceMode : @(GMVDetectorFaceAccurateMode), GMVDetectorFaceClassificationType : @(GMVDetectorFaceClassificationAll), GMVDetectorFaceLandmarkType : @(GMVDetectorFaceLandmarkAll) }; GMVDetector *faceDetector = [GMVDetector detectorOfType:GMVDetectorTypeFace options:options];
ML Kit
MLKFaceDetectorOptions *options = [[MLKFaceDetectorOptions alloc] init]; options.performanceMode = MLKFaceDetectorPerformanceModeAccurate; options.classificationMode = MLKFaceDetectorClassificationModeAll; options.landmarkMode = MLKFaceDetectorLandmarkModeAll; MLKFaceDetector *faceDetector = [MLKFaceDetector faceDetectorWithOptions:options];
GMVDetector
hat zwei
APIs zur Erkennung von Bedrohungen. Beide sind synchrone Vorgänge:
- (nullable NSArray<__kindof GMVFeature *> *) featuresInImage:(UIImage *)image options:(nullable NSDictionary *)options; - (nullable NSArray<__kindof GMVFeature *> *) featuresInBuffer:(CMSampleBufferRef)sampleBuffer options:(nullable NSDictionary *)options;
Ersetzen Sie GMVDetector
durch MLKFaceDetector
.
Die Inferenz-API kann synchron oder asynchron aufgerufen werden.
Synchron
- (nullable NSArray<MLKFace *> *) resultsInImage:(MLKVisionImage *)image error:(NSError **)error;
Asynchron
- (void)processImage:(MLKVisionImage *)image Completion: (MLKFaceDetectionCallback)completion NS_SWIFT_NAME(process(_:completion:));
Ändern Sie die folgenden Klassen, Methoden und Namen:
BarcodeDetector
Codieren Sie die Initialisierung neu, wie in diesem Beispiel gezeigt:
GMV
NSDictionary *options = @{ GMVDetectorBarcodeFormats : @(GMVDetectorBarcodeFormatCode128 | GMVDetectorBarcodeFormatQRCode) }; GMVDetector *barcodeDetector = [GMVDetector detectorOfType:GMVDetectorTypeBarcode options:options];
ML Kit
MLKBarcodeScannerOptions *options = [[MLKBarcodeScannerOptions alloc] init]; options.formats = MLKBarcodeFormatCode128 | MLKBarcodeFormatQRCode; MLKBarcodeScanner *barcodeScanner = [MLKBarcodeScanner barcodeScannerWithOptions:options];
GMVDetector
hat zwei verschiedene Erkennungs-APIs. Beide sind synchrone Vorgänge:
- (nullable NSArray<__kindof GMVFeature *> *) featuresInImage:(UIImage *)image options:(nullable NSDictionary *)options; - (nullable NSArray<__kindof GMVFeature *> *) featuresInBuffer:(CMSampleBufferRef)sampleBuffer options:(nullable NSDictionary *)options;
GMVDetector
ersetzen durch
MLKBarcodeScanner
Die Inferenz-API kann synchron oder asynchron aufgerufen werden.
Synchron
- (nullable NSArray<MLKBarcode *> *) resultsInImage:(MLKVisionImage *)image error:(NSError **)error;
Asynchron
- (void)processImage:(MLKVisionImage *)image Completion: (MLKBarcodeScanningCallback)completion NS_SWIFT_NAME(process(_:completion:));
Ändern Sie die folgenden Klassen, Methoden und Namen:
TextRecognition
Codieren Sie die Initialisierung neu, wie in diesem Beispiel gezeigt:
GMV
GMVDetector *textDetector = [GMVDetector detectorOfType:GMVDetectorTypeText options:nil];
ML Kit
MLKTextRecognizer *textRecognizer = [MLKTextRecognizer textRecognizer];
GMVDetector
hat zwei
APIs zur Erkennung von Bedrohungen. Beide sind synchrone Vorgänge:
- (nullable NSArray<__kindof GMVFeature *> *) featuresInImage:(UIImage *)image options:(nullable NSDictionary *)options; - (nullable NSArray<__kindof GMVFeature *> *) featuresInBuffer:(CMSampleBufferRef)sampleBuffer options:(nullable NSDictionary *)options;
GMVDetector
ersetzen durch
MLKTextRecognizer
Die Inferenz-API kann synchron oder asynchron aufgerufen werden.
Synchron
- (nullable MLKText *) resultsInImage:(MLKVisionImage *)image error:(NSError **)error;
Asynchron
- (void)processImage:(MLKVisionImage *)image Completion: (MLKTextRecognitionCallback)completion NS_SWIFT_NAME(process(_:completion:));
Ändern Sie die folgenden Klassen, Methoden und Namen:
GMV | ML Kit |
---|---|
GMVDetectorImageOrientation
|
MLKVisionImage.orientation
|
GMVTextBlockFeature
|
MLKTextBlock
|
GMVTextElementFeature
|
MLKTextElement
|
GMVTextLineFeature
|
MLKTextLine
|
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.