ML Kit: mi ez, könyvtárak és ML Androidhoz és iOS-hez

Szerző: IT Sectr Megjelenés: 2026-07-18 Olvasási idő: 10 perc

ML Kit — egy mobilos SDK a Google-tól kész ML modellek Android és iOS alkalmazásokba való integrálásához. Az ML Kit API-kat biztosít szövegfelismeréshez, arcok észleléséhez, vonalkódok szkenneléséhez, objektumok felismeréséhez, szövegfordításhoz, póz meghatározásához és képszegmentáláshoz — minden modell az eszközön (on-device) működik szerverhez való kötelező csatlakozás nélkül. A Google ML Kit, 2025 adatai szerint a könyvtárat több mint 100 000 alkalmazás használja, naponta 2+ milliárd kérést feldolgozva

Főbb pontok

  • ML Kit — SDK a Google-tól ML funkciókhoz mobil alkalmazásokban
  • On-device — minden modell lokálisan, internet nélkül működik
  • Kész API-k — szöveg, arcok, vonalkódok, objektumok, fordítás, póz
  • Platformfüggetlen — Android és iOS támogatás egységes API-n keresztül
  • Egyedi modellek — saját TFLite modellek betöltése

Mi az ML Kit: lehetőségek és architektúra

ML Kit — egy Firebase-kompatibilis SDK mobil platformokhoz, amely 14 ML-API-t biztosít Androidhoz és iOS-hez. Az ML Kit 2020-ban váltotta fel a Firebase ML-t (régi név), és most önálló SDK-ként érhető el a Google Play Services (Android) vagy CocoaPods/SPM (iOS) segítségével. A legfontosabb előny — minden modell on-device működik, garantálva az adatok bizalmas kezelését és az internet nélküli működést.

Az ML Kit architektúrája két mód köré épül: bundled (a modell az APK/IPA-ba van beágyazva) és downloaded (a modell az első híváskor töltődik le a Google Play Services-en keresztül). A Bundled mód azonnali indítást biztosít, de 5–20 MB-tal növeli az alkalmazás méretét. A Downloaded — helyet takarít meg, de első indításkor internetet igényel. A Google a downloaded módot ajánlja azokhoz az API-khoz, amelyek nem minden képernyőn használatosak (Object Detection, Pose Detection).

Testreszabás TFLite-on keresztül — az ML Kit lehetővé teszi saját TensorFlow Lite modell betöltését a Custom Model API-n keresztül. Ez rugalmasságot ad — használja a kész API-kat szabványos feladatokhoz és saját modelljét specifikus feladatokhoz. Az ML Kit egy univerzális Input/Output handlert biztosít, amely ByteBuffer-rel és FloatArray-val működik. A Google (2025) adatai szerint az ML Kit projektek 40%-a kombinálja a kész API-kat és az egyedi modelleket.

kotlin
// ML Kit Text Recognition beállítása (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 ->
        // Feldolgozási hiba
    }

Firebase vs standalone — az ML Kit használható Firebase-szel (Cloud funkciók, Analytics, Crashlytics) vagy Firebase nélküli önálló SDK-ként. A Standalone mód Google Play Services-en (Android) keresztül csatlakozik Firebase fiók konfigurálása nélkül. A Cloud API-k Firebase-en (Cloud Vision, Natural Language) keresztül érhetők el olyan feladatokhoz, amelyek neurális hálózatokat igényelnek a Google szerverén — de ezek a funkciók fizetősek és nem on-device.

ML Kit Text Recognition: szövegfelismerés

ML Kit Text Recognition — API karakterek optikai felismeréséhez (OCR) képeken. Két módot támogat: Latin-based (latin ábécé, cirill, számok — 45 nyelv) és Chinese/Japanese/Korean (CJK — hieroglif nyelvek). A Latin felismerés a V2 (gyorsabb) vagy V1 (nagy pontosság) modellt használja. A V2 10–30 ms sebességet biztosít képkockánként, a V1 — 50–100 ms.

A Text Recognition lehetőségei magukban foglalják a nyomtatott és kézzel írt szöveg felismerését, a szöveg tájolásának meghatározását, sorok, szavak és szimbólumok észlelését, a szöveg nyelvének meghatározását. Az API a struktúrát adja vissza: Text → TextBlock → Line → Element (Word/Symbol). Minden elem rendelkezik bounding box-szal, confidence-szel és felismert szöveggel. A Google (2025) adatai szerint az ML Kit Text Recognition V2 pontossága latin ábécén 96%, cirillen — 91%.

Text Recognition valós időben — használat CameraX-szel vagy Camera2-vel videó streamhez. Hozzon létre egy ImageAnalysis.Analyzer-t, és továbbítsa a képkockákat az ML Kit-nek. A teljesítmény érdekében csökkentse a képkocka felbontását 480p-re (640x480) — ez az optimális egyensúly a sebesség és a pontosság között. Az ML Kit automatikusan kezeli a kép elforgatását, de a maximális sebesség érdekében továbbítsa a képet a megfelelő tájolásban.

kotlin
// Szövegfelismerés CameraX Analizátorral
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() }
    }
}

A Text Recognition optimalizálása: használja az ImageDecoder-t az elmosódott vagy sötét képek felismerésének javításához. Nyomtatott szöveghez — TextRecognizerOptions.DEFAULT_OPTIONS (V2 modell). Kézzel írt szöveghez — TextRecognizerOptions.SCRIPT_LATIN (pontosabb, de lassabb). Az IT Sectr projektjeiben a V2-t használjuk dokumentumok felismeréséhez és a Latin modellt csekkek és nyugták felismeréséhez.

ML Kit Face Detection: arcok és kontúrok észlelése

ML Kit Face Detection — API arcok észleléséhez képeken és videókon. Meghatározza az arc bounding box-át, a szemek, orr, száj, fülek koordinátáit (468 kontúrpont) és az alapvető kifejezéseket: mosoly, nyitott száj, csukott szemek. A Face Detection az ML Kit egyik leggyorsabb API-ja: 5–15 ms képkockánként az arcok és kontúrpontok számától függően.

A Face Detection módjai: contour mode (468 kontúrpont az arc maszkok/szűrők pontos alkalmazásához), classification mode (mosoly, nyitott szemek meghatározása), landmark mode (kulcspontok kontúr nélkül). A módok a FaceDetectorOptions-ban kombinálhatók. Az összes mód bekapcsolása 2–3-szorosára lassítja a detektálást — használja a feladatához szükséges minimális készletet.

Face Detection AR alkalmazásokban — a kontúrpontok alapján az ML Kit arcmaszkot épít Snapchat-szerű szűrőkhöz. Az ML Kit 468 pontot ad vissza x, y, z koordinátákkal (z = mélység). A pontok másodpercenként 30–60-szor frissülnek modern eszközökön. AR alkalmazáshoz használja a FaceMeshDetector-t (speciális verzió) — ez a textúrázáshoz a háló háromszögeit is visszaadja.

kotlin
// Arcfelismerés kontúrpontokkal
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
        }
    }

A Face Detection korlátai: az API nem ismeri fel, kihez tartozik az arc (face recognition) — csak észleli az arcokat. Személyazonosításhoz használja a FaceNet vagy ArcFace alkalmazást egyedi TFLite modellen. Az ML Kit helyesen működik 45°-os szögig, szemüveggel és részleges maszkkal rendelkező arcokkal. Profil szögeknél (90°) a pontosság 40–60%-ra csökken.

ML Kit Barcode Scanning: minden kódformátum olvasása

ML Kit Barcode Scanning — API egydimenziós (EAN, UPC, Code 128) és kétdimenziós (QR, Data Matrix, PDF417) vonalkódok olvasásához és dekódolásához. A Barcode Scanning észleli a kódot a képen — ellentétben a ZXing-gal, amely megköveteli, hogy a kód majdnem a teljes képkockát kitöltse. Az ML Kit bármilyen méretű és tájolású kódot észlel, beleértve a több kódot egy képkockán (multi-barcode mód).

Támogatott formátumok: EAN-8, EAN-13, UPC-A, UPC-E, Code 39, Code 93, Code 128, ITF, Codabar, QR, Data Matrix, PDF417, Aztec. Az ML Kit automatikusan meghatározza a formátumot — nem kell megadni a kód típusát. Élesben használja a setBarcodeFormats() függvényt a támogatott formátumok korlátozásához — ez 30–50%-kal gyorsítja a szkennelést a felesleges dekódolási algoritmusok kizárásával.

Barcode Scanning valós időben — hasonlóan a Text Recognition-hoz, integráció a CameraX-szel. Az ML Kit a képkockákat akár 60 FPS frekvenciával dolgozza fel. A maximális sebességhez kapcsolja be a setPerformanceMode(PerformanceMode.FAST) beállítást. Az ML Kit Barcode Scanning 2–3-szor gyorsabb, mint a ZXing, és pontosabban észleli az elmosódott vagy részben takart kódokat. A Google (2025) adatai szerint az ML Kit Barcode Scanning 98.5% pontosságú szabványos megvilágítás mellett.

kotlin
// Vonalkód szkennelés formátumszűrővel
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
        }
    }

Összehasonlítás a ZXing-gal: Az ML Kit gyorsabb, pontosabb és egyszerűbben integrálható. A ZXing — nyílt forráskódú, teljesen offline működik, nem igényel Google Play Services-t. Az ML Kit Google Play Services-t (Android) vagy CocoaPods-ot (iOS) igényel. Google nélküli eszközökön (Huawei, Amazon Fire) futó alkalmazásokhoz használja a ZXing-ot fallback-ként. A többiekhez — ML Kit, mert jobb UX-et biztosít a többkódos észlelésnek köszönhetően.

Object Detection és Pose Detection az ML Kit-ben

ML Kit Object Detection — API objektumok észleléséhez és követéséhez képeken. 1000+ kategóriából (ImageNet osztályok) észlel objektumokat — emberek, állatok, járművek, háztartási tárgyak. Az Object Detection két módban működik: single-image (egyetlen fénykép) és streaming (videó stream követéssel). A Streaming mód követi az objektumokat a képkockák között, mindegyikhez egyedi track ID-t rendelve.

Pose Detection — API az emberi póz meghatározásához 33 kulcspont (csontváz) alapján: fej, vállak, könyökök, csuklók, csípő, térdek, lábak. Meghatározza az egyes pontok koordinátáit (x, y, z) és confidence-ét. A Pose Detection alkalmazása fitneszkövetőkben (ismétlések számlálása, forma ellenőrzése), AR alkalmazásokban (mozgásokat másoló avatár) és sportanalitikában történik. Sebesség — 10–30 ms képkockánként a személyek számától függően.

Object Tracking — az ML Kit Object Detection képkockák közötti követéssel Optical Flow alapú követőt használ. Amikor egy objektum észlelésre kerül, a követő újbóli észlelés nélkül követi, ami CPU/GPU-t takarít meg. Ha a követő elveszíti az objektumot (gyors mozgás, eltakarás), az ML Kit újraészlelést indít. A Google (2025) adatai szerint a követő az objektumot a képkockák 95%-ában megtartja akár 30 km/h mozgási sebesség mellett.

kotlin
// Póz észlelése (emberi csontváz)
val poseDetector = PoseDetection.getClient(
    PoseDetectorOptions.Builder()
        .setDetectorMode(PoseDetectorOptions.STREAM_MODE)
        .build()
)

poseDetector.process(inputImage)
    .addOnSuccessListener { pose ->
        pose.allPoseLandmarks.forEach { landmark ->
            val type = landmark.landmarkType // BAL_VÁLL, JOBB_KÖNYÖK...
            val position = landmark.position3D
        }
    }

Selfie Segmentation — API a személy képen történő szegmentálásához (a személy elválasztása a háttértől). Egy megbízhatósági maszkot ad vissza minden pixelhez. A Selfie Segmentation a háttér elmosásához vagy cseréjéhez használatos videohívásokban, fotószerkesztőkben és AR alkalmazásokban. A maszk UInt8Array-ként kerül visszaadásra az eredeti kép méretével — minden pixel 0.0 (háttér) és 1.0 (személy) közötti értéket tartalmaz.

Egyedi TFLite modellek az ML Kit-ben

Custom Model API — lehetőség saját TensorFlow Lite modellek betöltésére és futtatására az ML Kit interfészen keresztül. Az ML Kit egységes Input/Output API-t biztosít: ByteBuffer a bemeneten, FloatArray/TensorImage a kimeneten. Ez lehetővé teszi az ML Kit előnyeinek (modellkezelés, képfeldolgozás, CameraX kapcsolat) használatát egyedi face recognition, object classification, NLP és más modellekkel.

Modell betöltése — helyezze a .tflite fájlt az assets/ (Android) vagy bundle (iOS) mappába, és töltse be a CustomModelDownloadConditions vagy a Firebase Model Manager segítségével. Nagy modellek (5+ MB) letöltéséhez használjon letöltési feltételeket: Wi-Fi, töltés alatt, háttérben. A Google azt ajánlja, hogy a modellt az alkalmazás első indításakor töltse be, ne az első használat pillanatában.

kotlin
// Egyedi TFLite modell betöltése
val conditions = CustomModelDownloadConditions.Builder()
    .requireWifi()
    .build()
val remoteModel = CustomRemoteModel.Builder("my_model")
    .setRemoteModelName("my_model_v2")
    .build()

remoteModel.download(conditions)
    .addOnSuccessListener { /* model ready */ }
    .addOnFailureListener {
        // Használja a csomagolt modellt az assets mappából
    }

Egyedi modellek optimalizálása: használja a TFLite Converter-t delegate kompatibilitással. A maximális teljesítmény érdekében kvantálja a modellt (INT8) — ez 4-szeresére csökkenti a modell méretét és 2–3-szorosára gyorsítja az inferenciát az XNNPACK Delegate-en keresztül. Az ML Kit Custom Model API támogatja a Dynamic Shape (batch = 1), Image Input (UInt8, Float32) és Tensor Output funkciókat.

Gyakran Ismételt Kérdések

Mi az ML Kit Androidban?

ML Kit — egy SDK a Google-tól kész ML modellekkel Androidhoz és iOS-hez. Tartalmaz API-kat szövegfelismeréshez (OCR), arcészleléshez, vonalkód szkenneléshez, objektumfelismeréshez, póz meghatározáshoz, fordításhoz és szegmentáláshoz. Az eszközön működik, nem igényel internetet. Csatlakozik a Google Play Services-en (Android) vagy CocoaPods-on (iOS) keresztül minimálisan — egyetlen függőségi sorral.

Miben különbözik az ML Kit a TensorFlow Lite-tól?

ML Kit — egy magas szintű SDK kész API-kkal specifikus feladatokhoz (szöveg, arcok, kódok). A TensorFlow Lite — egy alacsony szintű futásidejű környezet bármely TFLite modell futtatásához. Az ML Kit tartalmazza a TFLite-ot a motorháztető alatt, de kész kódot és optimalizálásokat biztosít a szabványos feladatokhoz. Ha szöveget kell felismernie — ML Kit (5 sornyi kód). Ha saját neurális hálózata van — TFLite (20+ sor).

Az ML Kit internet nélkül működik?

Igen, az ML Kit összes fő API-ja (Text Recognition, Face Detection, Barcode Scanning, Object Detection, Pose Detection, Image Labeling) teljes mértékben on-device működik internetkapcsolat nélkül a modell kezdeti letöltése után. A Cloud API (Cloud Vision, Natural Language) — opcionálisak és internetet igényelnek. A downloaded modellekhez internet csak a modell első letöltésekor szükséges.

Használható az ML Kit iOS-en?

Igen, az ML Kit teljes mértékben támogatja az iOS-t CocoaPods-on vagy Swift Package Manager-en keresztül. Az API-k hasonlóak az Android verzióhoz. iOS esetében az ML Kit a Vision Framework-öt és a Core ML-t használja — a modellek az Apple Neural Engine-en (A12+) futnak. Az ML Kit iOS-en UIImage, CVPixelBuffer és CMSampleBuffer objektumokkal működik. iOS 12+ és Xcode 15+ támogatás.

Az ML Kit ingyenes?

Igen, az ML Kit on-device API-jai teljesen ingyenesek, korlátlan számú kéréssel. A Cloud API (Firebase-en keresztül) — fizetős az ingyenes keret túllépése után (200 USD/hó ingyenes). Az on-device modellek nem igényelnek Firebase fiókot — az ML Kit önállóan működik a Google Play Services-en keresztül. Kereskedelmi alkalmazásokhoz az on-device ML Kit biztonságos választás nulla üzemeltetési költséggel.

Összefoglalás

  • ML Kit — Google SDK 14 kész ML-API-val Androidhoz és iOS-hez
  • Text Recognition — OCR latin ábécéhez (45 nyelv) és CJK-hoz, pontosság 91–96%
  • Face Detection — 468 kontúrpont, mosoly, nyitott szemek, 5–15 ms
  • Barcode Scanning — minden kódformátum, multi-kód, 2–3x gyorsabb, mint ZXing
  • Pose Detection — 33 pont az emberi csontvázon, valós idejű követés
  • Custom Model API — saját TFLite modellek egységes interfészen keresztül
  • On-device — minden modell lokálisan, ingyenesen, internet nélkül működik

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is