ML Kit: ano ito, mga library at ML para sa Android at iOS

May-akda: IT Sectr Nai-publish: 2026-07-18 Oras ng pagbabasa: 10 min

ML Kit — ay isang mobile SDK mula sa Google para sa pagsasama ng mga handa nang ML model sa Android at iOS app. Nagbibigay ang ML Kit ng mga API para sa pagkilala ng teksto, pag-detect ng mukha, pag-scan ng barcode, pagkilala ng bagay, pagsasalin ng teksto, pagtukoy ng pose, at segmentation ng imahe — lahat ng model ay gumagana sa device (on-device) nang walang obligadong koneksyon sa server. Ayon sa datos ng Google ML Kit, 2025, ang library ay ginagamit sa mahigit 100,000 app, nagpoproseso ng 2+ bilyong request bawat araw

Mga Pangunahing Punto

  • ML Kit — SDK mula sa Google para sa mga ML function sa mobile app
  • On-device — lahat ng model ay gumagana nang lokal, walang internet
  • Handa nang API — teksto, mukha, barcode, bagay, pagsasalin, pose
  • Cross-platform — suporta sa Android at iOS sa pamamagitan ng iisang API
  • Custom na model — pag-load ng sariling TFLite model

Ano ang ML Kit: mga kakayahan at arkitektura

ML Kit — ay isang Firebase-compatible na SDK para sa mga mobile platform, na nagbibigay ng 14 ML-API para sa Android at iOS. Pinalitan ng ML Kit ang Firebase ML (lumang pangalan) noong 2020 at available na ngayon bilang standalone na SDK sa pamamagitan ng Google Play Services (Android) o CocoaPods/SPM (iOS). Ang pangunahing bentahe — lahat ng model ay gumagana on-device, na ginagarantiyahan ang privacy ng data at operasyon nang walang internet.

Arkitektura ng ML Kit ay binuo sa paligid ng dalawang mode: bundled (model ay naka-embed sa APK/IPA) at downloaded (model ay dina-download sa pamamagitan ng Google Play Services sa unang tawag). Ang bundled mode ay nagbibigay ng instant start, ngunit pinapataas ang laki ng app ng 5–20 MB. Downloaded — nakakatipid ng espasyo, ngunit nangangailangan ng internet sa unang paglunsad. Inirerekomenda ng Google ang downloaded para sa mga API na hindi ginagamit sa bawat screen (Object Detection, Pose Detection).

Pag-customize sa pamamagitan ng TFLite — pinapayagan ng ML Kit na i-load ang sarili mong TensorFlow Lite model sa pamamagitan ng Custom Model API. Nagbibigay ito ng flexibility — gamitin ang mga handa nang API para sa mga standard na gawain at ang sarili mong model para sa mga specific. Nagbibigay ang ML Kit ng universal Input/Output handler na gumagana sa ByteBuffer at FloatArray. Ayon sa Google (2025), 40% ng ML Kit projects ay pinagsasama ang handa nang API at custom na model.

kotlin
// Pag-setup ng ML Kit Text Recognition (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 ->
        // Error sa pagproseso
    }

Firebase vs standalone — maaaring gamitin ang ML Kit sa Firebase (Cloud functions, Analytics, Crashlytics) o bilang standalone na SDK na walang Firebase. Ang standalone mode ay kumokonekta sa pamamagitan ng Google Play Services (Android) nang walang pag-configure ng Firebase account. Ang Cloud API ay available sa pamamagitan ng Firebase (Cloud Vision, Natural Language) para sa mga gawaing nangangailangan ng neural network sa Google server — ngunit ang mga function na ito ay may bayad at hindi on-device.

ML Kit Text Recognition: pagkilala ng teksto

ML Kit Text Recognition — API para sa optical character recognition (OCR) sa mga imahe. Sumusuporta sa dalawang mode: Latin-based (Latin alphabet, Cyrillic, numero — 45 wika) at Chinese/Japanese/Korean (CJK — hieroglyphic na wika). Ang Latin recognition ay gumagamit ng model V2 (mas mabilis) o V1 (mataas na precision). Ang V2 ay nagbibigay ng bilis na 10–30 ms per frame, V1 — 50–100 ms.

Mga kakayahan ng Text Recognition ay kinabibilangan ng pagkilala ng naka-print at sulat-kamay na teksto, pagtukoy ng oryentasyon ng teksto, pag-detect ng mga linya, salita, at simbolo, pagtukoy ng wika ng teksto. Ang API ay nagbabalik ng structure: Text → TextBlock → Line → Element (Word/Symbol). Bawat elemento ay may bounding box, confidence, at kinikilalang teksto. Ayon sa Google (2025), ang accuracy ng ML Kit Text Recognition V2 sa Latin alphabet ay 96%, sa Cyrillic — 91%.

Text Recognition sa real-time — paggamit sa CameraX o Camera2 para sa video stream. Gumawa ng ImageAnalysis.Analyzer at ipadala ang mga frame sa ML Kit. Para sa performance, bawasan ang resolution ng frame sa 480p (640x480) — ito ang optimal na balance sa pagitan ng bilis at accuracy. Awtomatikong hinahawakan ng ML Kit ang rotation ng imahe, ngunit para sa maximum na bilis, ipadala ang imahe sa tamang oryentasyon.

kotlin
// Pagkilala ng Teksto gamit ang 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() }
    }
}

Optimization ng Text Recognition: gamitin ang ImageDecoder para mapabuti ang pagkilala ng malabo o madilim na mga imahe. Para sa naka-print na teksto — TextRecognizerOptions.DEFAULT_OPTIONS (model V2). Para sa sulat-kamay — TextRecognizerOptions.SCRIPT_LATIN (mas accurate, ngunit mas mabagal). Sa mga proyekto ng IT Sectr, ginagamit namin ang V2 para sa pagkilala ng dokumento at ang Latin model para sa mga tseke at resibo.

ML Kit Face Detection: pag-detect ng mukha at contours

ML Kit Face Detection — API para sa pag-detect ng mukha sa mga imahe at video. Tinutukoy ang bounding box ng mukha, coordinates ng mga mata, ilong, bibig, tainga (468 contour points) at mga basic na expression: ngiti, bukas na bibig, nakapikit na mata. Ang Face Detection ay isa sa pinakamabilis na API ng ML Kit: 5–15 ms per frame depende sa bilang ng mga mukha at contour points.

Mga mode ng Face Detection: contour mode (468 contour points ng mukha para sa tumpak na paglalapat ng mask/filter), classification mode (pag-detect ng ngiti, bukas na mata), landmark mode (key points na walang contour). Ang mga mode ay pinagsasama sa FaceDetectorOptions. Ang pag-activate ng lahat ng mode ay nagpapabagal ng detection ng 2–3 beses — gamitin ang minimum na kinakailangang set para sa iyong gawain.

Face Detection sa AR app — batay sa contour points, ang ML Kit ay bumubuo ng face mask para sa Snapchat-like filters. Ang ML Kit ay nagbabalik ng 468 points na may coordinates x, y, z (z = depth). Ang mga point ay ina-update 30–60 beses bawat segundo sa modernong device. Para sa AR application, gamitin ang FaceMeshDetector (specialized version) — ito ay nagbabalik din ng triangles ng mesh para sa texturing.

kotlin
// Pag-detect ng Mukha gamit ang contour points
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
        }
    }

Mga limitasyon ng Face Detection: Hindi kinikilala ng API kung kanino ang mukha (face recognition) — dini-detect lamang ang mga mukha. Para sa identification ng tao, gamitin ang FaceNet o ArcFace sa custom na TFLite model. Tama ang paggana ng ML Kit sa mga mukha sa anggulong hanggang 45°, may salamin at bahagyang mask. Para sa profile angles (90°) bumababa ang accuracy sa 40–60%.

ML Kit Barcode Scanning: pagbasa ng lahat ng format ng code

ML Kit Barcode Scanning — API para sa pagbasa at pag-decode ng one-dimensional (EAN, UPC, Code 128) at two-dimensional (QR, Data Matrix, PDF417) na barcode. Dini-detect ng Barcode Scanning ang code sa imahe — hindi tulad ng ZXing, na nangangailangan na ang code ay sumasakop ng halos buong frame. Dini-detect ng ML Kit ang code ng anumang laki at oryentasyon, kabilang ang maraming code sa isang frame (multi-barcode mode).

Mga format na sinusuportahan: EAN-8, EAN-13, UPC-A, UPC-E, Code 39, Code 93, Code 128, ITF, Codabar, QR, Data Matrix, PDF417, Aztec. Awtomatikong tinutukoy ng ML Kit ang format — hindi kailangang tukuyin ang uri ng code. Sa production, gamitin ang setBarcodeFormats() para limitahan ang mga sinusuportahang format — pinapabilis nito ang pag-scan ng 30–50% sa pamamagitan ng pag-alis ng mga hindi kinakailangang decoding algorithm.

Barcode Scanning sa real-time — katulad ng Text Recognition, pagsasama sa CameraX. Pinoproseso ng ML Kit ang mga frame na may frequency na hanggang 60 FPS. Para sa maximum na bilis, i-activate ang setPerformanceMode(PerformanceMode.FAST). Ang Barcode Scanning ng ML Kit ay 2–3 beses na mas mabilis kaysa ZXing at mas tumpak na dini-detect ang malabo o bahagyang natatakpan na mga code. Ayon sa Google (2025), ang ML Kit Barcode Scanning ay may 98.5% accuracy sa standard na ilaw.

kotlin
// Pag-scan ng Barcode gamit ang format filter
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
        }
    }

Paghahambing sa ZXing: Ang ML Kit ay mas mabilis, mas tumpak, at mas madaling isama. ZXing — open-source, gumagana nang ganap na offline, hindi nangangailangan ng Google Play Services. Ang ML Kit ay nangangailangan ng Google Play Services (Android) o CocoaPods (iOS). Para sa mga app na tumatakbo sa device na walang Google (Huawei, Amazon Fire), gamitin ang ZXing bilang fallback. Para sa iba — ML Kit, dahil nagbibigay ito ng mas mahusay na UX sa pamamagitan ng multi-code detection.

Object Detection at Pose Detection sa ML Kit

ML Kit Object Detection — API para sa pag-detect at pag-track ng mga bagay sa mga imahe. Dini-detect ang mga bagay mula sa 1000+ kategorya (ImageNet classes) — tao, hayop, sasakyan, gamit sa bahay. Ang Object Detection ay gumagana sa dalawang mode: single-image (iisang larawan) at streaming (video stream na may tracking). Ang streaming mode ay sumusubaybay sa mga bagay sa pagitan ng mga frame, na nagtatalaga sa bawat isa ng unique na track ID.

Pose Detection — API para sa pagtukoy ng pose ng tao batay sa 33 key points (skeleton): ulo, balikat, siko, pulso, balakang, tuhod, paa. Tinutukoy ang coordinates (x, y, z) at confidence ng bawat point. Ang Pose Detection ay inilalapat sa fitness tracker (pagbilang ng repetitions, control ng form), AR app (avatar na kinokopya ang galaw), at sports analytics. Bilis — 10–30 ms per frame depende sa bilang ng tao.

Object Tracking — ang ML Kit Object Detection na may tracking sa pagitan ng frame ay gumagamit ng tracker na batay sa Optical Flow. Kapag ang bagay ay na-detect, sinusundan ito ng tracker nang walang re-detection, na nakakatipid ng CPU/GPU. Kung mawala ng tracker ang bagay (mabilis na galaw, pagharang), magsisimula ang ML Kit ng re-detection. Ayon sa Google (2025), pinapanatili ng tracker ang bagay sa 95% ng mga frame sa bilis ng paggalaw na hanggang 30 km/h.

kotlin
// Pag-detect ng Pose (skeleton ng tao)
val poseDetector = PoseDetection.getClient(
    PoseDetectorOptions.Builder()
        .setDetectorMode(PoseDetectorOptions.STREAM_MODE)
        .build()
)

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

Selfie Segmentation — API para sa segmentation ng tao sa imahe (paghihiwalay ng tao mula sa background). Nagbabalik ng confidence mask para sa bawat pixel. Ginagamit ang Selfie Segmentation para sa pag-blur o pagpapalit ng background sa video calls, photo editor, at AR app. Ang mask ay ibinabalik bilang UInt8Array na kasing laki ng orihinal na imahe — bawat pixel ay naglalaman ng value mula 0.0 (background) hanggang 1.0 (tao).

Custom na TFLite model sa ML Kit

Custom Model API — kakayahang mag-load at magpatakbo ng sariling TensorFlow Lite model sa pamamagitan ng ML Kit interface. Nagbibigay ang ML Kit ng unified Input/Output API: ByteBuffer sa input, FloatArray/TensorImage sa output. Ito ay nagpapahintulot sa paggamit ng mga bentahe ng ML Kit (pamamahala ng model, pagproseso ng imahe, koneksyon sa CameraX) na may custom na model para sa face recognition, object classification, NLP, at iba pa.

Pag-load ng model — ilagay ang .tflite file sa assets/ (Android) o bundle (iOS) at i-load sa pamamagitan ng CustomModelDownloadConditions o Firebase Model Manager. Para sa pag-download ng malalaking model (5+ MB), gamitin ang download conditions: Wi-Fi, naka-charge, sa background. Inirerekomenda ng Google na i-load ang model sa unang paglunsad ng app, hindi sa sandali ng unang paggamit.

kotlin
// Pag-load ng custom na TFLite model
val conditions = CustomModelDownloadConditions.Builder()
    .requireWifi()
    .build()
val remoteModel = CustomRemoteModel.Builder("my_model")
    .setRemoteModelName("my_model_v2")
    .build()

remoteModel.download(conditions)
    .addOnSuccessListener { /* model ready */ }
    .addOnFailureListener {
        // Gamitin ang bundled model mula sa assets
    }

Optimization ng custom na model: gamitin ang TFLite Converter na may delegate compatibility. Para sa maximum na performance, i-quantize ang model (INT8) — binabawasan nito ang laki ng model ng 4x at pinapabilis ang inference ng 2–3x sa pamamagitan ng XNNPACK Delegate. Ang ML Kit Custom Model API ay sumusuporta sa Dynamic Shape (batch = 1), Image Input (UInt8, Float32), at Tensor Output.

Mga Madalas Itanong

Ano ang ML Kit sa Android?

ML Kit — ay isang SDK mula sa Google na may handa nang ML model para sa Android at iOS. Kabilang ang mga API para sa pagkilala ng teksto (OCR), pag-detect ng mukha, pag-scan ng barcode, pagkilala ng bagay, pagtukoy ng pose, pagsasalin, at segmentation. Gumagana sa device, hindi nangangailangan ng internet. Kumokonekta sa pamamagitan ng Google Play Services (Android) o CocoaPods (iOS) nang minimal — isang linya ng dependency.

Paano naiiba ang ML Kit sa TensorFlow Lite?

ML Kit — isang high-level na SDK na may handa nang API para sa specific na gawain (teksto, mukha, code). TensorFlow Lite — isang low-level runtime para sa pagpapatakbo ng anumang TFLite model. Ang ML Kit ay may kasamang TFLite sa ilalim ng hood, ngunit nagbibigay ng handa nang code at optimization para sa standard na gawain. Kung kailangan mong makilala ang teksto — ML Kit (5 linya ng code). Kung may sarili kang neural network — TFLite (20+ linya).

Gumagana ba ang ML Kit nang walang internet?

Oo, lahat ng pangunahing API ng ML Kit (Text Recognition, Face Detection, Barcode Scanning, Object Detection, Pose Detection, Image Labeling) ay gumagana nang ganap na on-device nang walang koneksyon sa internet pagkatapos ng initial na pag-download ng model. Cloud API (Cloud Vision, Natural Language) — opsyonal at nangangailangan ng internet. Para sa downloaded model, ang internet ay kailangan lamang sa unang pag-download ng model.

Maaari bang gamitin ang ML Kit sa iOS?

Oo, ganap na sinusuportahan ng ML Kit ang iOS sa pamamagitan ng CocoaPods o Swift Package Manager. Ang mga API ay katulad ng Android version. Para sa iOS, ang ML Kit ay gumagamit ng Vision Framework at Core ML — ang mga model ay tumatakbo sa Apple Neural Engine (A12+). Ang ML Kit sa iOS ay gumagana sa UIImage, CVPixelBuffer, at CMSampleBuffer. Suporta para sa iOS 12+ at Xcode 15+.

Libre ba ang ML Kit?

Oo, ang on-device API ng ML Kit ay ganap na libre, walang limitasyon sa bilang ng request. Cloud API (sa pamamagitan ng Firebase) — may bayad pagkatapos lumampas sa libreng limit ($200/buwan libre). Ang on-device model ay hindi nangangailangan ng Firebase account — ang ML Kit ay gumagana nang standalone sa pamamagitan ng Google Play Services. Para sa komersyal na app, ang on-device ML Kit ay isang ligtas na pagpipilian na may zero operational cost.

Buod

  • ML Kit — Google SDK na may 14 handa nang ML-API para sa Android at iOS
  • Text Recognition — OCR para sa Latin alphabet (45 wika) at CJK, accuracy 91–96%
  • Face Detection — 468 contour points, ngiti, bukas na mata, 5–15 ms
  • Barcode Scanning — lahat ng format ng code, multi-code, 2–3x mas mabilis kaysa ZXing
  • Pose Detection — 33 points ng skeleton ng tao, real-time tracking
  • Custom Model API — sariling TFLite model sa pamamagitan ng unified interface
  • On-device — lahat ng model ay gumagana nang lokal, libre, walang internet

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din