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
Detectorlistesi. ML Kit çıkışının koordinatlarını belirleyen hedef koordinat sistemi:
COORDINATE_SYSTEM_VIEW_REFERENCED: DönüştürülenPreviewViewkoordinatları.COORDINATE_SYSTEM_ORIGINAL: orijinalImageAnalysisakış koordinatları.
Tüketici geri çağırma özelliğini çağıran ve sunulan bir
ExecutorMlKitAnalyzer.Resultveya 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_REFERENCEDtemel 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.