ML Kit: bu nima, kutubxonalar va Android va iOS uchun ML

Muallif: IT Sectr Nashr etilgan: 2026-07-18 O'qish vaqti: 10 daq

ML Kit — Android va iOS ilovalariga tayyor ML modellarini integratsiya qilish uchun Google-dan mobil SDK. ML Kit matnni aniqlash, yuzlarni topish, shtrix-kodlarni skanerlash, obyektlarni aniqlash, matn tarjimasi, pozani belgilash va tasvir segmentatsiyasi uchun API-larni taqdim etadi — barcha modellar serverga majburiy ulanishsiz qurilmada (on-device) ishlaydi. Google ML Kit, 2025 ma'lumotlariga ko'ra, kutubxona 100 000 dan ortiq ilovalarda qo'llaniladi, kuniga 2+ milliard so'rovni qayta ishlaydi

Asosiy nuqtalar

  • ML Kit — mobil ilovalarda ML funksiyalari uchun Google-dan SDK
  • On-device — barcha modellar mahalliy, internetsiz ishlaydi
  • Tayyor API — matn, yuzlar, shtrix-kodlar, obyektlar, tarjima, poza
  • Kross-platforma — yagona API orqali Android va iOS qo'llab-quvvatlashi
  • Maxsus modellar — o'z TFLite modellaringizni yuklash

ML Kit nima: imkoniyatlar va arxitektura

ML Kit — Android va iOS uchun 14 ML-API ni taqdim etuvchi Firebase-ga mos mobil platforma SDK. ML Kit 2020 yilda Firebase ML (eski nom) o'rnini egalladi va endi Google Play Services (Android) yoki CocoaPods/SPM (iOS) orqali mustaqil SDK sifatida mavjud. Asosiy afzallik — barcha modellar on-device ishlaydi, bu ma'lumotlar maxfiyligi va internetsiz ishlashni kafolatlaydi.

ML Kit arxitekturasi ikki rejim atrofida qurilgan: bundled (model APK/IPA ga o'rnatilgan) va downloaded (model birinchi chaqiruvda Google Play Services orqali yuklanadi). Bundled rejim tezkor start beradi, lekin ilova hajmini 5–20 MB ga oshiradi. Downloaded — joyni tejaydi, lekin birinchi ishga tushirishda internet talab qiladi. Google downloaded rejimini har ekranda ishlatilmaydigan API-lar (Object Detection, Pose Detection) uchun tavsiya qiladi.

TFLite orqali moslashtirish — ML Kit Custom Model API orqali o'z TensorFlow Lite modellingizni yuklash imkonini beradi. Bu moslashuvchanlik beradi — standart vazifalar uchun tayyor API-lardan, maxsus vazifalar uchun o'z modellingizdan foydalaning. ML Kit ByteBuffer va FloatArray bilan ishlaydigan universal Input/Output handler taqdim etadi. Google (2025) ma'lumotlariga ko'ra, ML Kit loyihalarining 40% tayyor API-lar va maxsus modellarni birlashtiradi.

kotlin
// ML Kit Text Recognition sozlamasi (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 ->
        // Qayta ishlash xatosi
    }

Firebase vs standalone — ML Kit Firebase (Cloud funksiyalari, Analytics, Crashlytics) bilan yoki Firebase-siz mustaqil SDK sifatida ishlatilishi mumkin. Standalone rejim Firebase hisobini sozlamasdan Google Play Services (Android) orqali ulanadi. Cloud API-lar Firebase (Cloud Vision, Natural Language) orqali Google serverida neyron tarmoqlarni talab qiladigan vazifalar uchun mavjud — lekin bu funksiyalar pullik va on-device emas.

ML Kit Text Recognition: matnni aniqlash

ML Kit Text Recognition — tasvirlarda optik belgilarni aniqlash (OCR) uchun API. Ikki rejimni qo'llab-quvvatlaydi: Latin-based (lotin, kirill, raqamlar — 45 til) va Chinese/Japanese/Korean (CJK — ieroglif tillari). Latin aniqlash V2 (tezroq) yoki V1 (yuqori aniqlik) modelidan foydalanadi. V2 kadr uchun 10–30 ms tezlik beradi, V1 — 50–100 ms.

Text Recognition imkoniyatlari bosma va qo'l yozuvi matnini aniqlash, matn yo'nalishini belgilash, qatorlar, so'zlar va belgilarni topish, matn tilini aniqlashni o'z ichiga oladi. API strukturani qaytaradi: Text → TextBlock → Line → Element (Word/Symbol). Har bir element bounding box, confidence va aniqlangan matnga ega. Google (2025) ma'lumotlariga ko'ra, ML Kit Text Recognition V2 lotin alifbosida aniqligi 96%, kirillda — 91%.

Real vaqtda Text Recognition — video oqimi uchun CameraX yoki Camera2 bilan foydalanish. ImageAnalysis.Analyzer yarating va kadrlarni ML Kit ga uzating. Samaradorlik uchun kadr o'lchamini 480p (640x480) ga tushiring — bu tezlik va aniqlik o'rtasidagi optimal muvozanatdir. ML Kit tasvir aylanishini avtomatik qayta ishlaydi, lekin maksimal tezlik uchun tasvirni to'g'ri yo'nalishda uzating.

kotlin
// CameraX Analizatori bilan Matnni Aniqlash
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 optimallashtirish: loyqa yoki qorong'i tasvirlarni aniqlashni yaxshilash uchun ImageDecoder dan foydalaning. Bosma matn uchun — TextRecognizerOptions.DEFAULT_OPTIONS (model V2). Qo'l yozuvi uchun — TextRecognizerOptions.SCRIPT_LATIN (aniqroq, lekin sekin). IT Sectr loyihalarida biz hujjatlarni aniqlash uchun V2 dan, chek va kvitansiyalar uchun Latin modelidan foydalanamiz.

ML Kit Face Detection: yuz va konturlarni topish

ML Kit Face Detection — tasvir va videolarda yuzlarni topish uchun API. Yuzning bounding box ini, ko'z, burun, og'iz, quloq koordinatalarini (468 kontur nuqtasi) va asosiy ifodalarni aniqlaydi: tabassum, ochiq og'iz, yopiq ko'zlar. Face Detection ML Kit ning eng tez API laridan biri: yuzlar va kontur nuqtalari soniga qarab kadr uchun 5–15 ms.

Face Detection rejimlari: contour mode (niqoblar/filtrlarni aniq qo'llash uchun 468 yuz kontur nuqtasi), classification mode (tabassum, ochiq ko'zlarni aniqlash), landmark mode (kontursiz asosiy nuqtalar). Rejimlar FaceDetectorOptions da birlashtiriladi. Barcha rejimlarni yoqish deteksiyani 2–3 marta sekinlashtiradi — vazifangiz uchun minimal zarur to'plamdan foydalaning.

AR ilovalarida Face Detection — kontur nuqtalari asosida ML Kit Snapchatga o'xshash filtrlar uchun yuz niqobini quradi. ML Kit x, y, z koordinatalari bilan 468 nuqtani qaytaradi (z = chuqurlik). Nuqtalar zamonaviy qurilmalarda sekundiga 30–60 marta yangilanadi. AR uchun FaceMeshDetector (ixtisoslashtirilgan versiya) dan foydalaning — u tekstura uchun uchburchak to'rini ham qaytaradi.

kotlin
// Kontur nuqtalari bilan Yuzni Topish
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 cheklovlari: API yuz kimga tegishli ekanligini tanimaydi (face recognition) — faqat yuzlarni topadi. Shaxsni identifikatsiya qilish uchun maxsus TFLite modelida FaceNet yoki ArcFace dan foydalaning. ML Kit 45° gacha burchakda, ko'zoynakli va qisman niqobli yuzlar bilan to'g'ri ishlaydi. Profil burchaklari (90°) uchun aniqlik 40–60% gacha tushadi.

ML Kit Barcode Scanning: barcha kod formatlarini o'qish

ML Kit Barcode Scanning — bir o'lchovli (EAN, UPC, Code 128) va ikki o'lchovli (QR, Data Matrix, PDF417) shtrix-kodlarni o'qish va dekodlash uchun API. Barcode Scanning tasvirda kodni topadi — ZXing dan farqli o'laroq, kod deyarli butun kadrni egallashini talab qiladi. ML Kit istalgan o'lcham va yo'nalishdagi kodni, shu jumladan bir kadrda bir nechta kodni topadi (multi-barcode rejimi).

Qo'llab-quvvatlanadigan formatlar: EAN-8, EAN-13, UPC-A, UPC-E, Code 39, Code 93, Code 128, ITF, Codabar, QR, Data Matrix, PDF417, Aztec. ML Kit formatni avtomatik aniqlaydi — kod turini ko'rsatish shart emas. Production da qo'llab-quvvatlanadigan formatlarni cheklash uchun setBarcodeFormats() dan foydalaning — bu ortiqcha dekodlash algoritmlarini chiqarib tashlash orqali skanerlashni 30–50% tezlashtiradi.

Real vaqtda Barcode Scanning — Text Recognition ga o'xshab, CameraX bilan integratsiya. ML Kit kadrlarni 60 FPS gacha chastotada qayta ishlaydi. Maksimal tezlik uchun setPerformanceMode(PerformanceMode.FAST) ni yoqing. ML Kit Barcode Scanning ZXing dan 2–3 marta tez va loyqa yoki qisman yopiq kodlarni aniqroq topadi. Google (2025) ma'lumotlariga ko'ra, ML Kit Barcode Scanning standart yoritishda 98.5% aniqlikka ega.

kotlin
// Format filtri bilan Shtrix-Kod Skanerlash
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 bilan solishtirish: ML Kit tezroq, aniqroq va integratsiyasi oson. ZXing — ochiq manba, to'liq oflayn ishlaydi, Google Play Services talab qilmaydi. ML Kit Google Play Services (Android) yoki CocoaPods (iOS) talab qiladi. Google bo'lmagan qurilmalarda (Huawei, Amazon Fire) ishlaydigan ilovalar uchun ZXing ni fallback sifatida ishlating. Qolganlari uchun — ML Kit, chunki ko'p kodli topish orqali yaxshiroq UX ta'minlaydi.

ML Kit da Object Detection va Pose Detection

ML Kit Object Detection — tasvirlarda obyektlarni topish va kuzatish uchun API. 1000+ kategoriyadan (ImageNet sinflari) obyektlarni topadi — odamlar, hayvonlar, transport, uy-ro'zg'or buyumlari. Object Detection ikki rejimda ishlaydi: single-image (yagona rasm) va streaming (kuzatish bilan video oqimi). Streaming rejimi obyektlarni kadrlar orasida kuzatib, har biriga noyob track ID tayinlaydi.

Pose Detection — 33 asosiy nuqta (skelet) bo'yicha inson pozasini aniqlash uchun API: bosh, elkalar, tirsaklar, bilaklar, sonlar, tizzalar, oyoqlar. Har bir nuqtaning koordinatalarini (x, y, z) va confidence ni aniqlaydi. Pose Detection fitness kuzatuvchilarida (takrorlashlarni hisoblash, shaklni nazorat qilish), AR ilovalarida (harakatlarni nusxalaydigan avatar) va sport analitikasida qo'llaniladi. Tezlik — odamlar soniga qarab kadr uchun 10–30 ms.

Object Tracking — ML Kit Object Detection kadrlar orasida kuzatish bilan Optical Flow ga asoslangan kuzatuvchidan foydalanadi. Obyekt topilganda, kuzatuvchi uni qayta topmasdan kuzatadi, bu CPU/GPU ni tejaydi. Agar kuzatuvchi obyektni yo'qotsa (tez harakat, to'sish), ML Kit qayta topishni ishga tushiradi. Google (2025) ma'lumotlariga ko'ra, kuzatuvchi 30 km/soat gacha harakat tezligida kadrlarning 95% da obyektni ushlab turadi.

kotlin
// Pozani Aniqlash (inson skeleti)
val poseDetector = PoseDetection.getClient(
    PoseDetectorOptions.Builder()
        .setDetectorMode(PoseDetectorOptions.STREAM_MODE)
        .build()
)

poseDetector.process(inputImage)
    .addOnSuccessListener { pose ->
        pose.allPoseLandmarks.forEach { landmark ->
            val type = landmark.landmarkType // CHAP_ELKA, O'NG_TIRSAK...
            val position = landmark.position3D
        }
    }

Selfie Segmentation — tasvirda insonni segmentatsiya qilish (insonni fondan ajratish) uchun API. Har bir piksel uchun ishonch niqobini qaytaradi. Selfie Segmentation video qo'ng'iroqlarda, foto muharrirlarda va AR ilovalarida fonni xiralashtirish yoki almashtirish uchun ishlatiladi. Niqob asl tasvir o'lchamidagi UInt8Array sifatida qaytariladi — har bir piksel 0.0 (fon) dan 1.0 (inson) gacha qiymatni o'z ichiga oladi.

ML Kit da maxsus TFLite modellari

Custom Model API — ML Kit interfeysi orqali o'z TensorFlow Lite modellaringizni yuklash va ishga tushirish imkoniyati. ML Kit yagona Input/Output API ni taqdim etadi: kirishda ByteBuffer, chiqishda FloatArray/TensorImage. Bu ML Kit afzalliklaridan (model boshqaruvi, tasvirni qayta ishlash, CameraX bilan bog'lanish) maxsus face recognition, object classification, NLP va boshqa modellar bilan foydalanish imkonini beradi.

Modelni yuklash — .tflite faylini assets/ (Android) yoki bundle (iOS) ga joylashtiring va CustomModelDownloadConditions yoki Firebase Model Manager orqali yuklang. Katta modellarni (5+ MB) yuklash uchun yuklash shartlaridan foydalaning: Wi-Fi, zaryadlangan, fonda. Google modelni birinchi ishlatish paytida emas, balki ilovaning birinchi ishga tushirilishida yuklashni tavsiya qiladi.

kotlin
// Maxsus TFLite modelini yuklash
val conditions = CustomModelDownloadConditions.Builder()
    .requireWifi()
    .build()
val remoteModel = CustomRemoteModel.Builder("my_model")
    .setRemoteModelName("my_model_v2")
    .build()

remoteModel.download(conditions)
    .addOnSuccessListener { /* model ready */ }
    .addOnFailureListener {
        // Aktivlardan o'rnatilgan modeldan foydalanish
    }

Maxsus modellarni optimallashtirish: delegate mosligi bilan TFLite Converter dan foydalaning. Maksimal samaradorlik uchun modelni kvantlang (INT8) — bu model hajmini 4x kamaytiradi va XNNPACK Delegate orqali inferensni 2–3x tezlashtiradi. ML Kit Custom Model API Dynamic Shape (batch = 1), Image Input (UInt8, Float32) va Tensor Output ni qo'llab-quvvatlaydi.

Tez-tez beriladigan savollar

Android da ML Kit nima?

ML Kit — Android va iOS uchun tayyor ML modellari bilan Google SDK. Matnni aniqlash (OCR), yuzni topish, shtrix-kodlarni skanerlash, obyektlarni aniqlash, pozani belgilash, tarjima va segmentatsiya uchun API larni o'z ichiga oladi. Qurilmada ishlaydi, internet talab qilmaydi. Google Play Services (Android) yoki CocoaPods (iOS) orqali minimal — bir qator bog'liqlik bilan ulanadi.

ML Kit TensorFlow Lite dan nimasi bilan farq qiladi?

ML Kit — muayyan vazifalar (matn, yuzlar, kodlar) uchun tayyor API larga ega yuqori darajali SDK. TensorFlow Lite — istalgan TFLite modelini ishga tushirish uchun past darajali ishga tushirish muhiti. ML Kit TFLite ni o'z ichiga oladi, lekin standart vazifalar uchun tayyor kod va optimallashtirishlarni beradi. Matnni aniqlash kerak bo'lsa — ML Kit (5 qator kod). O'z neyron tarmog'ingiz bo'lsa — TFLite (20+ qator).

ML Kit internetsiz ishlaydimi?

Ha, barcha asosiy ML Kit API lari (Text Recognition, Face Detection, Barcode Scanning, Object Detection, Pose Detection, Image Labeling) modelni dastlabki yuklashdan keyin internetga ulanmasdan to'liq on-device ishlaydi. Cloud API (Cloud Vision, Natural Language) — ixtiyoriy va internet talab qiladi. Downloaded modellar uchun internet faqat modelni birinchi yuklashda kerak.

ML Kit iOS da ishlatilishi mumkinmi?

Ha, ML Kit iOS ni CocoaPods yoki Swift Package Manager orqali to'liq qo'llab-quvvatlaydi. API lar Android versiyasiga o'xshash. iOS uchun ML Kit Vision Framework va Core ML dan foydalanadi — modellar Apple Neural Engine (A12+) da ishlaydi. iOS da ML Kit UIImage, CVPixelBuffer va CMSampleBuffer bilan ishlaydi. iOS 12+ va Xcode 15+ qo'llab-quvvatlashi.

ML Kit bepulmi?

Ha, ML Kit on-device API lari mutlaqo bepul, so'rovlar sonida cheklov yo'q. Cloud API (Firebase orqali) — bepul limitdan oshgandan keyin pullik ($200/oy bepul). On-device modellar Firebase hisobini talab qilmaydi — ML Kit Google Play Services orqali mustaqil ishlaydi. Tijorat ilovalari uchun on-device ML Kit nol operatsion xarajat bilan xavfsiz tanlovdir.

Xulosa

  • ML Kit — Android va iOS uchun 14 tayyor ML-API bilan Google SDK
  • Text Recognition — lotin (45 til) va CJK uchun OCR, aniqlik 91–96%
  • Face Detection — 468 kontur nuqtasi, tabassum, ochiq ko'zlar, 5–15 ms
  • Barcode Scanning — barcha kod formatlari, multi-kod, ZXing dan 2–3x tez
  • Pose Detection — 33 inson skelet nuqtasi, real vaqtda kuzatish
  • Custom Model API — yagona interfeys orqali o'z TFLite modellari
  • On-device — barcha modellar mahalliy, bepul, internetsiz ishlaydi

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing