このドキュメントでは、プロジェクトを Google Cloud から Google Mobile Vision(GMV)から ML Kit に移行しました。
前提条件
コードの移行を開始する前に、次の要件を満たしていることを確認してください。
- ML Kit は Xcode 13.2.1 以降をサポートしています。
- ML Kit は iOS バージョン 10 以降をサポートしています。
- ML Kit は、32 ビット アーキテクチャ(i386 と armv7)をサポートしていません。ML Kit は 64 ビット アーキテクチャ(x86_64 と arm64)をサポートしています。
cocoapods を更新する
アプリの Podfile で ML Kit の iOS cocoapods の依存関係を更新します。
API | 総取引額 Pod | ML Kit Pod |
---|---|---|
バーコード スキャン | GoogleMobileVision/BarcodeDetector |
GoogleMLKit/BarcodeScanning |
顔検出 | GoogleMobileVision/FaceDetector |
GoogleMLKit/FaceDetection |
テキスト認識 | GoogleMobileVision/TextDetector |
GoogleMLKit/TextRecognition |
API の全体的な変更
この変更は、すべての API に適用されます。
- GMV の推論 API は、
UIImage
またはCMSampleBufferRef
を入力として使用します。ML Kit はこれらをMLKVisionImage
でラップし、入力として受け取ります。 - GMV は
NSDictionary
を使用してさまざまな検出項目のオプションを渡します。ML Kit では、この目的のために専用のオプション クラスを使用します。 - GMV は、検出機能の作成時に検出機能のタイプを 1 つの
GMVDetector
クラスに渡します。ML Kit では、専用のクラスを使用して、検出機能、スキャナ、認識ツールのインスタンスをそれぞれ作成します。 - GMV の API は同期検出のみをサポートしています。ML Kit の推論 API は、同期的または非同期的に呼び出すことができます。
- GMV は
AVCaptureVideoDataOutput
を拡張し、複数の検出を同時に行うためのマルチ検出機能フレームワークを提供します。ML Kit にはこのようなメカニズムはありませんが、デベロッパーは必要に応じて同じ機能を実装できます。
API 固有の変更
このセクションでは、各 Vision API の GMV と ML Kit のクラスとメソッドについて説明し、API を初期化する方法について説明します。
FaceDetector
次の例に示すように、初期化を再コーディングします。
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
には 2 つ
さまざまな検出 API を使用できます。どちらも同期オペレーションです。
- (nullable NSArray<__kindof GMVFeature *> *) featuresInImage:(UIImage *)image options:(nullable NSDictionary *)options; - (nullable NSArray<__kindof GMVFeature *> *) featuresInBuffer:(CMSampleBufferRef)sampleBuffer options:(nullable NSDictionary *)options;
GMVDetector
を MLKFaceDetector
に置き換えます。
推論 API は、同期的または非同期的に呼び出すことができます。
同期
- (nullable NSArray<MLKFace *> *) resultsInImage:(MLKVisionImage *)image error:(NSError **)error;
非同期
- (void)processImage:(MLKVisionImage *)image Completion: (MLKFaceDetectionCallback)completion NS_SWIFT_NAME(process(_:completion:));
次のクラス、メソッド、名前を変更します。
BarcodeDetector
次の例に示すように、初期化を再コーディングします。
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
には 2 種類の検出 API があります。どちらも同期オペレーションです。
- (nullable NSArray<__kindof GMVFeature *> *) featuresInImage:(UIImage *)image options:(nullable NSDictionary *)options; - (nullable NSArray<__kindof GMVFeature *> *) featuresInBuffer:(CMSampleBufferRef)sampleBuffer options:(nullable NSDictionary *)options;
GMVDetector
を次の内容に置き換えます。
MLKBarcodeScanner
。
推論 API は、同期的または非同期的に呼び出すことができます。
同期
- (nullable NSArray<MLKBarcode *> *) resultsInImage:(MLKVisionImage *)image error:(NSError **)error;
非同期
- (void)processImage:(MLKVisionImage *)image Completion: (MLKBarcodeScanningCallback)completion NS_SWIFT_NAME(process(_:completion:));
次のクラス、メソッド、名前を変更します。
TextRecognition
次の例に示すように、初期化を再コーディングします。
GMV
GMVDetector *textDetector = [GMVDetector detectorOfType:GMVDetectorTypeText options:nil];
ML Kit
MLKTextRecognizer *textRecognizer = [MLKTextRecognizer textRecognizer];
GMVDetector
には 2 つ
さまざまな検出 API を使用できます。どちらも同期オペレーションです。
- (nullable NSArray<__kindof GMVFeature *> *) featuresInImage:(UIImage *)image options:(nullable NSDictionary *)options; - (nullable NSArray<__kindof GMVFeature *> *) featuresInBuffer:(CMSampleBufferRef)sampleBuffer options:(nullable NSDictionary *)options;
GMVDetector
を次の内容に置き換えます。
MLKTextRecognizer
。
推論 API は、同期的または非同期的に呼び出すことができます。
同期
- (nullable MLKText *) resultsInImage:(MLKVisionImage *)image error:(NSError **)error;
非同期
- (void)processImage:(MLKVisionImage *)image Completion: (MLKTextRecognitionCallback)completion NS_SWIFT_NAME(process(_:completion:));
次のクラス、メソッド、名前を変更します。
GMV | ML Kit |
---|---|
GMVDetectorImageOrientation
|
MLKVisionImage.orientation
|
GMVTextBlockFeature
|
MLKTextBlock
|
GMVTextElementFeature
|
MLKTextElement
|
GMVTextLineFeature
|
MLKTextLine
|
困ったときは
問題が発生した場合は、コミュニティ ページをご覧ください をご覧ください。