ML Kit: Android ve iOS için kütüphaneler ve ML

Yazar: IT Sectr Yayınlanma: 2026-07-18 Okuma süresi: 10 dk

ML Kit, hazır ML modellerini Android ve iOS uygulamalarına entegre etmek için Google'ın mobil SDK'sıdır. ML Kit, metin tanıma, yüz algılama, barkod tarama, nesne tanıma, metin çevirisi, poz algılama ve görüntü segmentasyonu için API'ler sağlar — tüm modeller sunucu bağlantısı olmadan cihazda (on-device) çalışır. Google ML Kit, 2025'e göre kütüphane 100.000'den fazla uygulamada kullanılıyor ve günde 2+ milyar istek işliyor

Önemli Noktalar

  • ML Kit — mobil uygulamalarda ML özellikleri için Google SDK
  • Cihazda — tüm modeller yerel olarak, internet olmadan çalışır
  • Hazır API'ler — metin, yüz, barkod, nesne, çeviri, poz
  • Çapraz platform — tek bir API ile Android ve iOS desteği
  • Özel modeller — kendi TFLite modellerinizi yükleme

ML Kit Nedir: Yetenekler ve Mimari

ML Kit, mobil platformlar için Firebase uyumlu bir SDK olup Android ve iOS için 14 ML API sağlar. ML Kit, 2020'de Firebase ML'nin (eski adı) yerini aldı ve artık Google Play Services (Android) veya CocoaPods/SPM (iOS) aracılığıyla bağımsız bir SDK olarak kullanılabilir. Temel avantajı, tüm modellerin cihazda çalışması ve veri gizliliği ile çevrimdışı çalışmayı garanti etmesidir.

ML Kit Mimarisi iki mod etrafında inşa edilmiştir: bundled (model APK/IPA'ya gömülü) ve downloaded (ilk çağrıda Google Play Services aracılığıyla model indirilir). Bundled mod anında başlatma sağlar ancak uygulama boyutunu 5–20 MB artırır. Downloaded mod yerden tasarruf sağlar ancak ilk başlatmada internet gerektirir. Google, her ekranda kullanılmayan API'ler (Object Detection, Pose Detection) için downloaded modunu önerir.

TFLite ile Özelleştirme — ML Kit, Custom Model API aracılığıyla kendi TensorFlow Lite modelinizi yüklemenize olanak tanır. Bu esneklik sağlar — standart görevler için hazır API'leri, belirli görevler için kendi modelinizi kullanın. ML Kit, ByteBuffer ve FloatArray ile çalışan evrensel bir Giriş/Çıkış işleyicisi sağlar. Google'a (2025) göre, ML Kit projelerinin %40'ı hazır API'ler ve özel modelleri birleştirir.

kotlin
// ML Kit Text Recognition Kurulumu (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 ->
        // İşleme hatası
    }

Firebase vs bağımsız — ML Kit, Firebase (Cloud işlevleri, Analytics, Crashlytics) ile veya Firebase olmadan bağımsız bir SDK olarak kullanılabilir. Bağımsız mod, Firebase hesabı kurmadan Google Play Services (Android) üzerinden bağlanır. Cloud API'ler, Google sunucusunda sinir ağları gerektiren görevler için Firebase (Cloud Vision, Natural Language) aracılığıyla kullanılabilir — ancak bu özellikler ücretlidir ve cihazda çalışmaz.

ML Kit Text Recognition: Metin Tanıma

ML Kit Text Recognition — görüntülerde optik karakter tanıma (OCR) için API. İki modu destekler: Latin-based (Latin, Kiril, rakamlar — 45 dil) ve Chinese/Japanese/Korean (CJK — ideografik diller). Latin tanıma V2 modelini (daha hızlı) veya V1'i (yüksek doğruluk) kullanır. V2 kare başına 10–30 ms, V1 — 50–100 ms sunar.

Text Recognition Yetenekleri, basılı ve el yazısı metin tanıma, metin yönünü algılama, satır, kelime ve karakterleri bulma, metin dilini belirlemeyi içerir. API bir yapı döndürür: Text → TextBlock → Line → Element (Word/Symbol). Her öğenin sınırlayıcı kutusu, güveni ve tanınan metni vardır. Google'a (2025) göre, Latin alfabesinde ML Kit Text Recognition V2 doğruluğu %96, Kiril alfabesinde — %91'dir.

Gerçek Zamanlı Text Recognition — video akışı için CameraX veya Camera2 kullanımı. Bir ImageAnalysis.Analyzer oluşturun ve kareleri ML Kit'e iletin. Performans için kare çözünürlüğünü 480p'ye (640x480) düşürün — bu hız ve doğruluk arasındaki optimum dengedir. ML Kit görüntü dönüşünü otomatik olarak işler, ancak maksimum hız için görüntüyü doğru yönde iletin.

kotlin
// CameraX Analyzer ile Metin Tanıma
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 Optimizasyonu: bulanık veya karanlık görüntülerin tanınmasını iyileştirmek için ImageDecoder kullanın. Basılı metin için — TextRecognizerOptions.DEFAULT_OPTIONS (V2 modeli). El yazısı metin için — TextRecognizerOptions.SCRIPT_LATIN (daha doğru ancak daha yavaş). IT Sectr projelerinde belge tanıma için V2'yi, çek ve makbuzlar için Latin modelini kullanıyoruz.

ML Kit Face Detection: Yüz ve Kontur Algılama

ML Kit Face Detection — görüntü ve videoda yüz algılama için API. Yüzün sınırlayıcı kutusunu, göz, burun, ağız, kulak koordinatlarını (468 kontur noktası) ve temel ifadeleri algılar: gülümseme, açık ağız, kapalı gözler. Face Detection, ML Kit'in en hızlı API'lerinden biridir: yüz sayısına ve kontur noktalarına bağlı olarak kare başına 5–15 ms.

Face Detection Modları: kontur modu (hassas maske/filtre yerleştirme için 468 yüz kontur noktası), sınıflandırma modu (gülümseme, açık göz algılama), işaret noktası modu (kontursuz ana noktalar). Modlar FaceDetectorOptions'ta birleştirilir. Tüm modları etkinleştirmek algılamayı 2–3 kat yavaşlatır — göreviniz için gereken minimum seti kullanın.

AR Uygulamalarında Face Detection — kontur noktalarına dayanarak ML Kit, Snapchat benzeri filtreler için bir yüz maskesi oluşturur. ML Kit, x, y, z koordinatlarıyla (z = derinlik) 468 nokta döndürür. Modern cihazlarda noktalar saniyede 30–60 kez güncellenir. AR yerleştirme için FaceMeshDetector'ı (özelleştirilmiş sürüm) kullanın — doku oluşturma için ağ üçgenlerini de döndürür.

kotlin
// Kontur noktalarıyla Yüz Algılama
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 Sınırlamaları: API, yüzün kime ait olduğunu tanımaz (yüz tanıma) — yalnızca yüzleri algılar. Kimlik tanıma için özel bir TFLite modelinde FaceNet veya ArcFace kullanın. ML Kit, 45°'ye kadar açılarda, gözlüklü ve kısmi maskeli yüzlerde doğru çalışır. Profil açılarında (90°) doğruluk %40–60'a düşer.

ML Kit Barcode Scanning: Tüm Kod Formatlarını Okuma

ML Kit Barcode Scanning — 1D (EAN, UPC, Code 128) ve 2D (QR, Data Matrix, PDF417) barkodları okumak ve çözmek için API. Barcode Scanning, görüntüdeki kodu algılar — ZXing'in aksine kodun neredeyse tüm kareyi kaplamasını gerektirmez. ML Kit, her boyut ve yöndeki kodları, tek bir karede birden çok kod dahil (çoklu barkod modu) algılar.

Desteklenen Formatlar: EAN-8, EAN-13, UPC-A, UPC-E, Code 39, Code 93, Code 128, ITF, Codabar, QR, Data Matrix, PDF417, Aztec. ML Kit otomatik olarak formatı belirler — kod türünü belirtmeye gerek yoktur. Üretimde desteklenen formatları sınırlamak için setBarcodeFormats() kullanın — bu, gereksiz kod çözme algoritmalarını hariç tutarak taramayı %30–50 hızlandırır.

Gerçek Zamanlı Barcode Scanning — Text Recognition'a benzer şekilde, CameraX ile entegrasyon. ML Kit, kareleri 60 FPS'ye kadar işler. Maksimum hız için setPerformanceMode(PerformanceMode.FAST)'i etkinleştirin. ML Kit Barcode Scanning, ZXing'den 2–3 kat daha hızlıdır ve bulanık veya kısmen kapalı kodları algılamada daha doğrudur. Google'a (2025) göre, ML Kit Barcode Scanning'in standart aydınlatmada doğruluğu %98,5'tir.

kotlin
// Biçim filtresiyle Barkod Tarama
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
        }
    }

ZXing ile Karşılaştırma: ML Kit daha hızlı, daha doğru ve entegrasyonu daha kolaydır. ZXing açık kaynaklıdır, tamamen çevrimdışı çalışır, Google Play Services gerektirmez. ML Kit, Google Play Services (Android) veya CocoaPods (iOS) gerektirir. Google olmayan cihazlarda (Huawei, Amazon Fire) çalışan uygulamalar için ZXing'i yedek olarak kullanın. Diğerleri için — ML Kit, çoklu kod algılama sayesinde daha iyi UX sağlar.

ML Kit'te Object Detection ve Pose Detection

ML Kit Object Detection — görüntülerde nesneleri algılama ve izleme için API. 1000'den fazla kategoriden (ImageNet sınıfları) nesneleri algılar — insanlar, hayvanlar, araçlar, ev eşyaları. Object Detection iki modda çalışır: single-image (tek fotoğraf) ve streaming (izlemeli video akışı). Streaming modu, nesneleri kareler arasında izler ve her birine benzersiz bir izleme kimliği atar.

Pose Detection — 33 ana nokta (iskelet) aracılığıyla insan pozunu belirleme API'si: baş, omuzlar, dirsekler, bilekler, kalçalar, dizler, ayaklar. Her noktanın koordinatlarını (x, y, z) ve güvenini belirler. Pose Detection, fitness takipçilerinde (tekrar sayımı, form kontrolü), AR uygulamalarında (avatar hareketleri taklit eder) ve spor analitiğinde kullanılır. Hız — kişi sayısına bağlı olarak kare başına 10–30 ms.

Object Tracking — kareler arası izleme ile ML Kit Object Detection, Optical Flow tabanlı bir izleyici kullanır. Bir nesne algılandığında, izleyici yeniden algılama olmadan onu takip ederek CPU/GPU tasarrufu sağlar. İzleyici nesneyi kaybederse (hızlı hareket, tıkanma), ML Kit yeniden algılamayı başlatır. Google'a (2025) göre, izleyici saatte 30 km'ye kadar hızlarda karelerin %95'inde nesneyi korur.

kotlin
// Poz Algılama (insan iskeleti)
val poseDetector = PoseDetection.getClient(
    PoseDetectorOptions.Builder()
        .setDetectorMode(PoseDetectorOptions.STREAM_MODE)
        .build()
)

poseDetector.process(inputImage)
    .addOnSuccessListener { pose ->
        pose.allPoseLandmarks.forEach { landmark ->
            val type = landmark.landmarkType // SOL_OMUZ, SAĞ_DIRSEK...
            val position = landmark.position3D
        }
    }

Selfie Segmentation — görüntüden kişiyi ayırma (kişiyi arka plandan ayırma) API'si. Her piksel için bir güven maskesi döndürür. Selfie Segmentation, görüntülü aramalarda, fotoğraf düzenleyicilerde ve AR uygulamalarında arka planları bulanıklaştırmak veya değiştirmek için kullanılır. Maske, orijinal görüntü boyutunda UInt8Array olarak döndürülür — her piksel 0.0 (arka plan) ile 1.0 (kişi) arasında bir değer içerir.

ML Kit'te Özel TFLite Modelleri

Custom Model API — ML Kit arayüzü aracılığıyla kendi TensorFlow Lite modellerinizi yükleme ve çalıştırma yeteneği. ML Kit, birleşik bir Giriş/Çıkış API'si sağlar: giriş olarak ByteBuffer, çıkış olarak FloatArray/TensorImage. Bu, ML Kit avantajlarından (model yönetimi, görüntü işleme, CameraX entegrasyonu) yüz tanıma, nesne sınıflandırma, NLP ve daha fazlası için özel modellerle yararlanmayı sağlar.

Model Yükleme — .tflite dosyasını assets/ (Android) veya bundle (iOS) içine yerleştirin ve CustomModelDownloadConditions veya Firebase Model Manager aracılığıyla yükleyin. Büyük modelleri (5+ MB) indirmek için indirme koşullarını kullanın: Wi-Fi, şarjda, arka planda. Google, modelin ilk kullanım anında değil, uygulamanın ilk başlatılışında indirilmesini önerir.

kotlin
// Özel TFLite modeli yükleniyor
val conditions = CustomModelDownloadConditions.Builder()
    .requireWifi()
    .build()
val remoteModel = CustomRemoteModel.Builder("my_model")
    .setRemoteModelName("my_model_v2")
    .build()

remoteModel.download(conditions)
    .addOnSuccessListener { /* model ready */ }
    .addOnFailureListener {
        // Varlıklardan paketlenmiş modeli kullan
    }

Özel Model Optimizasyonu: temsilci uyumluluğu ile TFLite Converter kullanın. Maksimum performans için modeli nicelleştirin (INT8) — bu model boyutunu 4 kat azaltır ve XNNPACK Delegate aracılığıyla çıkarımı 2–3 kat hızlandırır. ML Kit Custom Model API, Dynamic Shape (batch = 1), Image Input (UInt8, Float32) ve Tensor Output'u destekler.

Sıkça Sorulan Sorular

Android'de ML Kit nedir?

ML Kit, Android ve iOS için hazır ML modellerine sahip bir Google SDK'sıdır. Metin tanıma (OCR), yüz algılama, barkod tarama, nesne tanıma, poz algılama, çeviri ve segmentasyon için API'ler içerir. Cihazda çalışır, internet gerektirmez. Google Play Services (Android) veya CocoaPods (iOS) aracılığıyla minimum düzeyde — tek bir bağımlılık satırıyla bağlanır.

ML Kit, TensorFlow Lite'tan nasıl farklıdır?

ML Kit — belirli görevler (metin, yüz, kod) için hazır API'ler sunan üst düzey SDK. TensorFlow Lite — herhangi bir TFLite modelini çalıştırmak için alt düzey çalışma zamanı. ML Kit dahili olarak TFLite içerir ancak standart görevler için hazır kod ve optimizasyonlar sağlar. Metin tanımanız gerekiyorsa — ML Kit (5 satır kod). Kendi sinir ağınız varsa — TFLite (20+ satır).

ML Kit internet olmadan çalışır mı?

Evet, tüm temel ML Kit API'leri (Text Recognition, Face Detection, Barcode Scanning, Object Detection, Pose Detection, Image Labeling), ilk model indirmesinden sonra internet bağlantısı olmadan tamamen cihazda çalışır. Cloud API'leri (Cloud Vision, Natural Language) isteğe bağlıdır ve internet gerektirir. İndirilen modeller için internet yalnızca ilk model indirmesinde gereklidir.

ML Kit iOS'ta kullanılabilir mi?

Evet, ML Kit, CocoaPods veya Swift Package Manager aracılığıyla iOS'u tam olarak destekler. API'ler Android sürümüne benzer. iOS için ML Kit dahili olarak Vision Framework ve Core ML'yi kullanır — modeller Apple Neural Engine'de (A12+) çalışır. iOS'ta ML Kit, UIImage, CVPixelBuffer ve CMSampleBuffer ile çalışır. iOS 12+ ve Xcode 15+'i destekler.

ML Kit ücretsiz mi?

Evet, ML Kit cihaz içi API'leri tamamen ücretsizdir, istek sayısında sınır yoktur. Cloud API'leri (Firebase aracılığıyla) ücretsiz sınırdan sonra ücretlidir (ayda $200 ücretsiz). Cihaz içi modeller Firebase hesabı gerektirmez — ML Kit, Google Play Services aracılığıyla bağımsız olarak çalışır. Ticari uygulamalar için, cihaz içi ML Kit sıfır işletme maliyetiyle güvenli bir seçimdir.

Özet

  • ML Kit — Android ve iOS için 14 hazır ML API'si ile Google SDK
  • Text Recognition — Latin (45 dil) ve CJK için OCR, doğruluk %91–96
  • Face Detection — 468 kontur noktası, gülümseme, açık gözler, 5–15 ms
  • Barcode Scanning — tüm kod formatları, çoklu kod, ZXing'den 2–3 kat daha hızlı
  • Pose Detection — 33 insan iskelet noktası, gerçek zamanlı izleme
  • Custom Model API — birleşik arayüz üzerinden kendi TFLite modelleriniz
  • Cihazda — tüm modeller yerel olarak, ücretsiz, internet olmadan çalışır

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun