ML Kit: Bibliotheken und ML für Android und iOS

Autor: IT Sectr Veröffentlicht: 2026-07-18 Lesezeit: 10 Min.

ML Kit ist ein mobiles SDK von Google zur Integration fertiger ML-Modelle in Android- und iOS-Anwendungen. ML Kit bietet APIs für Texterkennung, Gesichtserkennung, Barcode-Scanning, Objekterkennung, Textübersetzung, Pose-Erkennung und Bildsegmentierung — alle Modelle arbeiten auf dem Gerät (on-device) ohne zwingende Serververbindung. Laut Google ML Kit, 2025 wird die Bibliothek in über 100.000 Anwendungen verwendet und verarbeitet täglich über 2 Milliarden Anfragen

Wichtigste Punkte

  • ML Kit — Google SDK für ML-Funktionen in mobilen Anwendungen
  • On-device — alle Modelle arbeiten lokal, ohne Internet
  • Fertige APIs — Text, Gesichter, Barcodes, Objekte, Übersetzung, Pose
  • Plattformübergreifend — Android- und iOS-Unterstützung über eine einheitliche API
  • Benutzerdefinierte Modelle — Laden eigener TFLite-Modelle

Was ist ML Kit: Funktionen und Architektur

ML Kit ist ein Firebase-kompatibles SDK für mobile Plattformen, das 14 ML-APIs für Android und iOS bereitstellt. ML Kit ersetzte 2020 Firebase ML (alter Name) und ist jetzt als eigenständiges SDK über Google Play Services (Android) oder CocoaPods/SPM (iOS) verfügbar. Der Hauptvorteil besteht darin, dass alle Modelle auf dem Gerät arbeiten, was Datenschutz und Offline-Betrieb gewährleistet.

ML Kit Architektur basiert auf zwei Modi: gebündelt (Modell in APK/IPA eingebettet) und heruntergeladen (Modell wird beim ersten Aufruf über Google Play Services heruntergeladen). Der gebündelte Modus ermöglicht sofortigen Start, erhöht jedoch die App-Größe um 5–20 MB. Der heruntergeladene Modus spart Speicherplatz, benötigt aber beim ersten Start Internet. Google empfiehlt den Download-Modus für APIs, die nicht auf jedem Bildschirm verwendet werden (Object Detection, Pose Detection).

Anpassung über TFLite — ML Kit ermöglicht das Laden eigener TensorFlow Lite-Modelle über die Custom Model API. Dies bietet Flexibilität — verwenden Sie fertige APIs für Standardaufgaben und Ihr eigenes Modell für spezifische Aufgaben. ML Kit bietet einen universellen Input/Output-Handler, der mit ByteBuffer und FloatArray arbeitet. Laut Google (2025) kombinieren 40% der ML Kit-Projekte fertige APIs und benutzerdefinierte Modelle.

kotlin
// ML Kit Text Recognition Setup (Android)
val recognizer = TextRecognition.getClient(TextRecognizerOptions.DEFAULT_OPTIONS)

val image = InputImage.fromBitmap(bitmap)
recognizer.process(image)
    .addOnSuccessListener { result ->
        for (block in result.textBlocks) {
            Log.d("MLKit", block.text)
        }
    }
    .addOnFailureListener { error ->
        // Verarbeitungsfehler
    }

Firebase vs. eigenständig — ML Kit kann mit Firebase (Cloud-Funktionen, Analytics, Crashlytics) oder als eigenständiges SDK ohne Firebase verwendet werden. Der eigenständige Modus verbindet sich über Google Play Services (Android) ohne Einrichtung eines Firebase-Kontos. Cloud-APIs sind über Firebase (Cloud Vision, Natural Language) für Aufgaben verfügbar, die neuronale Netze auf Google-Servern erfordern — diese Funktionen sind jedoch kostenpflichtig und nicht on-device.

ML Kit Text Recognition: Texterkennung

ML Kit Text Recognition — API für optische Zeichenerkennung (OCR) auf Bildern. Unterstützt zwei Modi: Latin-based (Latein, Kyrillisch, Ziffern — 45 Sprachen) und Chinese/Japanese/Korean (CJK — ideografische Sprachen). Die lateinische Erkennung verwendet das V2-Modell (schneller) oder V1 (hochgenau). V2 liefert 10–30 ms pro Frame, V1 — 50–100 ms.

Text Recognition Funktionen umfassen die Erkennung von gedrucktem und handgeschriebenem Text, Erkennung der Textausrichtung, Erkennung von Zeilen, Wörtern und Zeichen, Bestimmung der Textsprache. Die API gibt eine Struktur zurück: Text → TextBlock → Line → Element (Word/Symbol). Jedes Element hat einen Begrenzungsrahmen, Konfidenz und erkannten Text. Laut Google (2025) beträgt die Genauigkeit von ML Kit Text Recognition V2 bei lateinischer Schrift 96%, bei kyrillischer Schrift 91%.

Text Recognition in Echtzeit — Verwendung mit CameraX oder Camera2 für Videostream. Erstellen Sie einen ImageAnalysis.Analyzer und übergeben Sie Frames an ML Kit. Reduzieren Sie für die Leistung die Frame-Auflösung auf 480p (640x480) — dies ist die optimale Balance zwischen Geschwindigkeit und Genauigkeit. ML Kit verarbeitet die Bilddrehung automatisch, aber für maximale Geschwindigkeit übergeben Sie das Bild in der richtigen Ausrichtung.

kotlin
// Text Recognition mit CameraX Analyzer
class TextAnalyzer : ImageAnalysis.Analyzer {
    private val recognizer = TextRecognition.getClient(
        TextRecognizerOptions.DEFAULT_OPTIONS
    )

    override fun analyze(image: ImageProxy) {
        val inputImage = InputImage.fromMediaImage(
            image.image, image.imageInfo.rotationDegrees
        )
        recognizer.process(inputImage)
            .addOnSuccessListener { /* text found */ }
            .addOnCompleteListener { image.close() }
    }
}

Text Recognition Optimierung: Verwenden Sie ImageDecoder, um die Erkennung von verschwommenen oder dunklen Bildern zu verbessern. Für gedruckten Text — TextRecognizerOptions.DEFAULT_OPTIONS (V2-Modell). Für handgeschriebenen Text — TextRecognizerOptions.SCRIPT_LATIN (genauer aber langsamer). In IT Sectr-Projekten verwenden wir V2 für die Dokumentenerkennung und das Latin-Modell für Schecks und Quittungen.

ML Kit Face Detection: Gesichts- und Konturerkennung

ML Kit Face Detection — API zur Erkennung von Gesichtern in Bildern und Videos. Erkennt den Gesichtsbegrenzungsrahmen, Augen-, Nasen-, Mund-, Ohrenkoordinaten (468 Konturpunkte) und grundlegende Ausdrücke: Lächeln, offener Mund, geschlossene Augen. Face Detection ist eine der schnellsten ML Kit-APIs: 5–15 ms pro Frame, abhängig von der Anzahl der Gesichter und Konturpunkte.

Face Detection Modi: Konturmodus (468 Gesichtskonturpunkte für präzise Masken-/Filterüberlagerung), Klassifikationsmodus (Erkennung von Lächeln, offenen Augen), Landmark-Modus (Schlüsselpunkte ohne Kontur). Die Modi werden in FaceDetectorOptions kombiniert. Das Aktivieren aller Modi verlangsamt die Erkennung um das 2–3-fache — verwenden Sie den minimal erforderlichen Satz für Ihre Aufgabe.

Face Detection in AR-Anwendungen — basierend auf Konturpunkten erstellt ML Kit eine Gesichtsmaske für Snapchat-ähnliche Filter. ML Kit gibt 468 Punkte mit x-, y-, z-Koordinaten (z = Tiefe) zurück. Die Punkte werden auf modernen Geräten 30–60 Mal pro Sekunde aktualisiert. Für AR-Overlays verwenden Sie FaceMeshDetector (spezialisierte Version) — er gibt auch Netzdreiecke für die Texturierung zurück.

kotlin
// Gesichtserkennung mit Konturpunkten
val options = FaceDetectorOptions.Builder()
    .setPerformanceMode(FaceDetectorOptions.PerformanceMode.FAST)
    .setContourMode(FaceDetectorOptions.ContourMode.ALL)
    .setClassificationMode(FaceDetectorOptions.ClassificationMode.ALL)
    .build()
val detector = FaceDetection.getClient(options)

detector.process(inputImage)
    .addOnSuccessListener { faces ->
        faces.forEach { face ->
            val bounds = face.boundingBox
            val smileProb = face.smilingProbability
        }
    }

Face Detection Einschränkungen: Die API erkennt nicht, wem ein Gesicht gehört (Gesichtserkennung) — sie erkennt nur Gesichter. Für die Identifikation verwenden Sie FaceNet oder ArcFace auf einem benutzerdefinierten TFLite-Modell. ML Kit arbeitet korrekt mit Gesichtern in Winkeln bis zu 45°, mit Brille und Teilmasken. Bei Profilwinkeln (90°) sinkt die Genauigkeit auf 40–60%.

ML Kit Barcode Scanning: Lesen aller Codeformate

ML Kit Barcode Scanning — API zum Lesen und Dekodieren von 1D- (EAN, UPC, Code 128) und 2D-Barcodes (QR, Data Matrix, PDF417). Barcode Scanning erkennt den Code im Bild — im Gegensatz zu ZXing, bei dem der Code fast das gesamte Bild einnehmen muss. ML Kit erkennt Codes jeder Größe und Ausrichtung, einschließlich mehrerer Codes in einem Frame (Multi-Barcode-Modus).

Unterstützte Formate: EAN-8, EAN-13, UPC-A, UPC-E, Code 39, Code 93, Code 128, ITF, Codabar, QR, Data Matrix, PDF417, Aztec. ML Kit ermittelt automatisch das Format — Sie müssen den Codetyp nicht angeben. Verwenden Sie in der Produktion setBarcodeFormats(), um die unterstützten Formate einzuschränken — dies beschleunigt das Scannen um 30–50% durch Ausschluss unnötiger Dekodierungsalgorithmen.

Barcode Scanning in Echtzeit — ähnlich wie Text Recognition, Integration mit CameraX. ML Kit verarbeitet Frames mit bis zu 60 FPS. Aktivieren Sie für maximale Geschwindigkeit setPerformanceMode(PerformanceMode.FAST). ML Kit Barcode Scanning ist 2–3x schneller als ZXing und genauer bei der Erkennung von verschwommenen oder teilweise verdeckten Codes. Laut Google (2025) hat ML Kit Barcode Scanning eine Genauigkeit von 98,5% bei Standardbeleuchtung.

kotlin
// Barcode-Scanning mit Formatfilter
val options = BarcodeScannerOptions.Builder()
    .setBarcodeFormats(Barcode.FORMAT_QR_CODE,
        Barcode.FORMAT_EAN_13)
    .build()
val scanner = BarcodeScanning.getClient(options)

scanner.process(inputImage)
    .addOnSuccessListener { barcodes ->
        barcodes.forEach { barcode ->
            val value = barcode.rawValue
            val type = barcode.format
        }
    }

Vergleich mit ZXing: ML Kit ist schneller, genauer und einfacher zu integrieren. ZXing ist Open-Source, arbeitet vollständig offline und benötigt keine Google Play Services. ML Kit benötigt Google Play Services (Android) oder CocoaPods (iOS). Für Apps auf Geräten ohne Google (Huawei, Amazon Fire) verwenden Sie ZXing als Fallback. Für andere — ML Kit, da es durch Multi-Code-Erkennung eine bessere UX bietet.

Object Detection und Pose Detection in ML Kit

ML Kit Object Detection — API zum Erkennen und Verfolgen von Objekten in Bildern. Erkennt Objekte aus über 1000 Kategorien (ImageNet-Klassen) — Menschen, Tiere, Fahrzeuge, Haushaltsgegenstände. Object Detection arbeitet in zwei Modi: Einzelbild (Einzelfoto) und Streaming (Videostream mit Tracking). Der Streaming-Modus verfolgt Objekte zwischen Frames und weist jedem eine eindeutige Track-ID zu.

Pose Detection — API zur Bestimmung der menschlichen Pose anhand von 33 Schlüsselpunkten (Skelett): Kopf, Schultern, Ellbogen, Handgelenke, Hüften, Knie, Füße. Bestimmt Koordinaten (x, y, z) und Konfidenz für jeden Punkt. Pose Detection wird in Fitness-Trackern (Wiederholungszählung, Formkontrolle), AR-Anwendungen (Avatar imitiert Bewegungen) und Sportanalysen verwendet. Geschwindigkeit — 10–30 ms pro Frame, abhängig von der Personenzahl.

Object Tracking — ML Kit Object Detection mit Frame-übergreifendem Tracking verwendet einen auf Optical Flow basierenden Tracker. Wenn ein Objekt erkannt wird, folgt der Tracker ihm ohne erneute Erkennung und spart so CPU/GPU. Wenn der Tracker das Objekt verliert (schnelle Bewegung, Verdeckung), startet ML Kit die Erkennung neu. Laut Google (2025) hält der Tracker das Objekt in 95% der Frames bei Geschwindigkeiten bis zu 30 km/h.

kotlin
// Pose-Erkennung (menschliches Skelett)
val poseDetector = PoseDetection.getClient(
    PoseDetectorOptions.Builder()
        .setDetectorMode(PoseDetectorOptions.STREAM_MODE)
        .build()
)

poseDetector.process(inputImage)
    .addOnSuccessListener { pose ->
        pose.allPoseLandmarks.forEach { landmark ->
            val type = landmark.landmarkType // LINKER_SCHULTER, RECHTER_ELLBOGEN...
            val position = landmark.position3D
        }
    }

Selfie Segmentation — API zum Segmentieren einer Person aus dem Bild (Trennung von Person und Hintergrund). Gibt eine Konfidenzmaske für jedes Pixel zurück. Selfie Segmentation wird zum Weichzeichnen oder Ersetzen von Hintergründen in Videoanrufen, Fotobearbeitungsprogrammen und AR-Anwendungen verwendet. Die Maske wird als UInt8Array in der Größe des Originalbilds zurückgegeben — jedes Pixel enthält einen Wert von 0.0 (Hintergrund) bis 1.0 (Person).

Benutzerdefinierte TFLite-Modelle in ML Kit

Custom Model API — die Möglichkeit, eigene TensorFlow Lite-Modelle über die ML Kit-Schnittstelle zu laden und auszuführen. ML Kit bietet eine einheitliche Input/Output-API: ByteBuffer als Eingabe, FloatArray/TensorImage als Ausgabe. Dies ermöglicht die Nutzung der ML Kit-Vorteile (Modellverwaltung, Bildverarbeitung, CameraX-Integration) mit benutzerdefinierten Modellen für Gesichtserkennung, Objektklassifikation, NLP und mehr.

Laden eines Modells — legen Sie die .tflite-Datei in assets/ (Android) oder bundle (iOS) ab und laden Sie sie über CustomModelDownloadConditions oder Firebase Model Manager. Verwenden Sie für das Herunterladen großer Modelle (5+ MB) Download-Bedingungen: Wi-Fi, geladen, im Hintergrund. Google empfiehlt, das Modell beim ersten App-Start herunterzuladen, nicht im Moment der ersten Verwendung.

kotlin
// Benutzerdefiniertes TFLite-Modell wird geladen
val conditions = CustomModelDownloadConditions.Builder()
    .requireWifi()
    .build()
val remoteModel = CustomRemoteModel.Builder("my_model")
    .setRemoteModelName("my_model_v2")
    .build()

remoteModel.download(conditions)
    .addOnSuccessListener { /* model ready */ }
    .addOnFailureListener {
        // Gebündeltes Modell aus Assets verwenden
    }

Optimierung benutzerdefinierter Modelle: Verwenden Sie TFLite Converter mit Delegate-Kompatibilität. Für maximale Leistung quantisieren Sie das Modell (INT8) — dies reduziert die Modellgröße um das 4-fache und beschleunigt die Inferenz um das 2–3-fache durch XNNPACK Delegate. ML Kit Custom Model API unterstützt Dynamic Shape (Batch = 1), Image Input (UInt8, Float32) und Tensor Output.

Häufig gestellte Fragen

Was ist ML Kit in Android?

ML Kit ist ein Google SDK mit fertigen ML-Modellen für Android und iOS. Enthält APIs für Texterkennung (OCR), Gesichtserkennung, Barcode-Scanning, Objekterkennung, Pose-Erkennung, Übersetzung und Segmentierung. Arbeitet auf dem Gerät, benötigt kein Internet. Verbindet sich über Google Play Services (Android) oder CocoaPods (iOS) minimal — mit einer einzigen Abhängigkeitszeile.

Wie unterscheidet sich ML Kit von TensorFlow Lite?

ML Kit — High-Level-SDK mit fertigen APIs für spezifische Aufgaben (Text, Gesichter, Codes). TensorFlow Lite — Low-Level-Laufzeitumgebung zum Ausführen beliebiger TFLite-Modelle. ML Kit enthält TFLite unter der Haube, bietet aber fertigen Code und Optimierungen für Standardaufgaben. Wenn Sie Text erkennen müssen — ML Kit (5 Codezeilen). Wenn Sie Ihr eigenes neuronales Netz haben — TFLite (20+ Zeilen).

Funktioniert ML Kit ohne Internet?

Ja, alle wichtigen ML Kit-APIs (Text Recognition, Face Detection, Barcode Scanning, Object Detection, Pose Detection, Image Labeling) arbeiten nach dem ersten Herunterladen des Modells vollständig auf dem Gerät ohne Internetverbindung. Cloud-APIs (Cloud Vision, Natural Language) sind optional und erfordern Internet. Für heruntergeladene Modelle wird Internet nur für das erste Herunterladen des Modells benötigt.

Kann ML Kit auf iOS verwendet werden?

Ja, ML Kit unterstützt iOS vollständig über CocoaPods oder Swift Package Manager. Die APIs sind ähnlich wie die Android-Version. Für iOS verwendet ML Kit intern Vision Framework und Core ML — die Modelle werden auf Apple Neural Engine (A12+) ausgeführt. ML Kit auf iOS arbeitet mit UIImage, CVPixelBuffer und CMSampleBuffer. Unterstützt iOS 12+ und Xcode 15+.

Ist ML Kit kostenlos?

Ja, die On-Device-APIs von ML Kit sind völlig kostenlos und ohne Begrenzung der Anzahl der Anfragen. Cloud-APIs (über Firebase) sind nach der kostenlosen Nutzung kostenpflichtig (200 $/Monat kostenlos). On-Device-Modelle benötigen kein Firebase-Konto — ML Kit funktioniert eigenständig über Google Play Services. Für kommerzielle Anwendungen ist On-Device-ML Kit eine sichere Wahl mit null Betriebskosten.

Zusammenfassung

  • ML Kit — Google SDK mit 14 fertigen ML-APIs für Android und iOS
  • Text Recognition — OCR für Latein (45 Sprachen) und CJK, Genauigkeit 91–96%
  • Face Detection — 468 Konturpunkte, Lächeln, offene Augen, 5–15 ms
  • Barcode Scanning — alle Codeformate, Multi-Code, 2–3x schneller als ZXing
  • Pose Detection — 33 menschliche Skelettpunkte, Echtzeit-Tracking
  • Custom Model API — eigene TFLite-Modelle über einheitliche Schnittstelle
  • On-device — alle Modelle arbeiten lokal, kostenlos, ohne Internet

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch