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 KitiInputImage
kullanır. - GMV,
MultiDetector
,MultiProcessor
veFocusingProcessor
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 |
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.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. .