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:
COORDINATE_SYSTEM_VIEW_REFERENCED
: DönüştürülenPreviewView
koordinatları.COORDINATE_SYSTEM_ORIGINAL
: orijinalImageAnalysis
akış koordinatları.
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.