ML Kiti Analiz Aracı

Google'ın ML Kit'i, makine öğreniminin algılanması için cihaz üzerinde makine öğrenimiyle ilgili Görüş API'leri sunar: ve çok daha fazlasını yapabilir. Makine Öğrenimi Seti Analiz Aracı, ML Kit'i CameraX uygulamanıza entegre etmek daha kolay.

ML Kit Analiz Aracı, ImageAnalysis.Analyzer arayüzünün bir uygulamasıdır. Varsayılan hedef çözünürlüğü geçersiz kılar (gerekirse) Makine Öğrenimi Kiti kullanımını optimize etmek için, koordinat dönüşümlerini yönetir, ve kareleri ML Kit'e iletir. Kit, toplu analiz sonuçlarını döndürür.

Makine Öğrenimi Kiti Analiz Aracını Uygulama

ML Kit Analiz Aracı'nı uygulamak için, kullanıcı arayüzü öğelerini görüntülemek üzere PreviewView ile çalışan CameraController sınıfını kullanmanızı öneririz. CameraController ile uygulandığında ML Kit Analiz Aracı orijinal ImageAnalysis akış ve PreviewView. Hedef koordinat sistemini şuradan alır: CameraX, koordinat dönüşümünü hesaplar, ve analiz için ML Kit'in Detector sınıfına yönlendirir.

ML Kit Analyzer'ı CameraController ile kullanmak için setImageAnalysisAnalyzer() numaralı telefonu arayıp iletin oluşturucusunda aşağıdaki bilgilere sahip yeni bir ML Kit Analyzer nesnesi:

  • KameraX'in sırayla çağırdığı Makine Öğrenimi Kiti Detector listesi.
  • ML Kit çıkışının koordinatlarını belirleyen hedef koordinat sistemi:

  • Tüketici geri çağırma özelliğini çağıran ve sunulan bir Executor MlKitAnalyzer.Result veya bir kamera çerçevesinin toplu Makine Öğrenimi Kiti sonucunu uygulamaya ekler.

  • Yeni Makine Öğrenimi Kiti çıkışı olduğunda CameraX'in çağırdığı bir Consumer.

Aşağıdaki kod, Analytics 360'ı ayarlamak için CameraController kullanarak QR kodlarını algılamak için BarcodeScanner:

Kotlin

// create BarcodeScanner object
val options = BarcodeScannerOptions.Builder()
  .setBarcodeFormats(Barcode.FORMAT_QR_CODE)
  .build()
val barcodeScanner = BarcodeScanning.getClient(options)

cameraController.setImageAnalysisAnalyzer(
            ContextCompat.getMainExecutor(this),
            MlKitAnalyzer(
                listOf(barcodeScanner),
                COORDINATE_SYSTEM_VIEW_REFERENCED,
                ContextCompat.getMainExecutor(this)
            ) { result: MlKitAnalyzer.Result? ->
    // The value of result.getResult(barcodeScanner) can be used directly for drawing UI overlay.
    }
)

Java

// create BarcodeScanner object
BarcodeScannerOptions options = new BarcodeScannerOptions.Builder()
   .setBarcodeFormats(Barcode.FORMAT_QR_CODE)
   .build();
BarcodeScanner barcodeScanner = BarcodeScanning.getClient(options);

cameraController.setImageAnalysisAnalyzer(executor,
    new MlKitAnalyzer(List.of(barcodeScanner), COORDINATE_SYSTEM_VIEW_REFERENCED,
    executor, result -> {
   // The value of result.getResult(barcodeScanner) can be used directly for drawing UI overlay.
 });

Yukarıdaki kod örneğinde ML Kit Analyzer aşağıdakileri BarcodeScanner adlı çocuğun Detector sınıfı:

  • Dönüşüm Matrisi hedef koordinat sistemini temsil eden COORDINATE_SYSTEM_VIEW_REFERENCED temel alınarak belirlenir.
  • Kamera çerçeveleri.

BarcodeScanner herhangi bir sorunla karşılaşırsa Detector hata verir. ve ML Kit Analiz Aracı bunu uygulamanıza yayar. Başarılı olursa ML Kit Analiz Aracı MLKitAnalyzer.Result#getValue() döndürür. bu örnekte Barcode nesnesidir.

ML Kit Analiz Aracı'nı, camera-core öğesinin bir parçası olan ImageAnalysis sınıfını kullanarak da uygulayabilirsiniz. Ancak ImageAnalysis PreviewView ile entegre değil. koordinat dönüşümlerini manuel olarak işlemeniz gerekir. Daha fazla bilgi için ML Kit Analiz Aracı referans belgelerine göz atın.

Ek kaynaklar

Makine Öğrenimi Kiti Analiz Aracı işlevine sahip çalışan bir kamera uygulaması için KameraX-MLKit örneğine bakın.