이 문서에서는 프로젝트를 이전하는 데 필요한 단계를 설명합니다. iOS에서 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 | GMV 포드 | ML Kit 포드 |
---|---|---|
바코드 스캔 | 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는 감지기를 만들 때 감지기 유형을 단일
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
에는
감지 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
에는 두 가지 감지 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
에는
감지 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
|
도움 받기
문제가 발생하면 커뮤니티 페이지를 확인하세요. 에서 Google에 문의하실 수 있는 채널을 확인하실 수 있습니다.