Android'de Mobil Vizyon'dan ML Kit'e Geçiş

Bu dokümanda, projelerinizi Google Mobile Vision (GMV) to ML Kit.

Genel API Değişiklikleri

Bu değişiklikler tüm API'ler için geçerlidir:

  • GMV API'leri eşzamanlı olarak bir SparseArray<T> sonucu döndürür. Makine Öğrenimi Kiti API'leri Google Play Hizmetleri Görev API'si, sonuçları eşzamansız olarak döndürür.
  • GMV, API yüzeyinde isOperational() çağrısını kullanarak bir modülü başarıyla indirildi ve kullanıma hazır. Makine Öğrenimi Kiti'nde izin verilmez. Makine Öğrenimi Kiti, MlKitException.UNAVAILABLE modülü indirilmedi. Bu istisnayı yakalayıp veya zaman aşımı belirleyip geçerli kareyle tekrar deneyin.
  • GMV yöntemlerinde Frame kullanılır giriş için kullanılır. Makine Öğrenimi Kiti InputImage kullanır.
  • GMV, MultiDetector, MultiProcessor ve FocusingProcessor sunar çerçeveleri ve teknikleri kullanır. Makine Öğrenimi Kiti bu tür mekanizmaları sağlamaz, ancak aynı işlevselliği geliştirici tarafından uygulanması gerekir.

Gradle içe aktarmalarını güncelleme

Modülünüzdeki (uygulama düzeyi) Gradle dosyanızdaki ML Kit Android kitaplıklarına yönelik bağımlılıkları, aşağıdaki tabloya göre genellikle app/build.gradle olmalıdır.

API GMV Yapısı ML Kit Yapısı
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 Değişiklikleri

Bu bölümde her bir Vision API için ilgili GMV ve ML Kit sınıfları ve yöntemleri ile API'nin nasıl başlatılacağı gösterilmektedir.

FaceDetector

Başlatma işlemini aşağıdaki örnekte gösterildiği gibi yeniden kodlayın:

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);

Aşağıdaki sınıf ve yöntem adlarını değiştirin:

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_S yerine #setContourMode kullanın)

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) Bu özellik, yüz kontur modu kapsamındadır.
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.getHeight()
Face.getWidth()
Face.getBoundingBox()

BarcodeDetector

Başlatma işlemini aşağıdaki örnekte gösterildiği gibi yeniden kodlayın:

GMV

barcodeDetector = new BarcodeDetector.Builder(context).build());

ML Kit

barcodeScanner = BarcodeScanning.getClient();

Aşağıdaki sınıf ve yöntem adlarını değiştirin:

android.gms.vision.barcode mlkit.vision.barcode
BarcodeDetector BarcodeScanner
SparseArray<Barcode> detect(Frame frame) Task<List<Barcode>> process(@NonNull InputImage image)
Barcode Barcode

TextRecognition

Başlatma işlemini aşağıdaki örnekte gösterildiği gibi yeniden kodlayın:

GMV

textRecognizer = new TextRecognizer.Builder(context).build();

ML Kit

textRecognizer = TextRecognition.getClient(TextRecognizerOptions.DEFAULT_OPTIONS);

Aşağıdaki sınıf ve yöntem adlarını değiştirin:

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 tarafından sağlanan CameraSource kitaplığını kullanıyorsanız ML Kit'in CameraXSource hizmetine kolayca geçebilirsiniz (uygulamanız 21. veya sonraki bir min. SDK sürümü üzerinde çalışıyorsa)

Aşağıdaki sınıf ve yöntem adlarını değiştirin:

android.gms.vision mlkit.vision.camera
CameraSource CameraSourceConfig
CameraSource.Builder CameraSourceConfig.Builder
CameraSource.Builder.setAutoFocusEnabled CameraX kullanılırken otomatik odaklama varsayılan olarak sağlanır.
CameraSource.Builder.setFacing CameraSourceConfig.Builder.setCameraFacing
CameraSource.Builder.setFocusMode CameraX kullanılırken otomatik odaklama varsayılan olarak sağlanır.
CameraSource.Builder.setRequestedFps Kullanımdan kaldırıldı.
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() Dahili olarak işlenir
CameraSource.PictureCallback Kullanımdan kaldırıldı
CameraSource.ShutterCallback Kullanımdan kaldırıldı

Yardım alma

Herhangi bir sorunla karşılaşırsanız Topluluk sayfamıza göz atın. .