ML Kit: ไลบรารีและ ML สำหรับ Android และ iOS

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-07-18 เวลาอ่าน: 10 นาที

ML Kit คือ SDK บนมือถือจาก Google สำหรับผสานรวมโมเดล ML สำเร็จรูปลงในแอปพลิเคชัน Android และ iOS ML Kit มี API สำหรับการรู้จำข้อความ การตรวจจับใบหน้า การสแกนบาร์โค้ด การรู้จำวัตถุ การแปลข้อความ การตรวจจับท่าทาง และการแบ่งส่วนภาพ — โมเดลทั้งหมดทำงานบนอุปกรณ์ (on-device) โดยไม่จำเป็นต้องเชื่อมต่อเซิร์ฟเวอร์ ตามข้อมูลจาก Google ML Kit, 2025 ไลบรารีนี้ถูกใช้ในแอปพลิเคชันมากกว่า 100,000 รายการ ประมวลผลคำขอมากกว่า 2 พันล้านครั้งต่อวัน

ประเด็นสำคัญ

  • ML Kit — SDK จาก Google สำหรับฟังก์ชัน ML ในแอปพลิเคชันบนมือถือ
  • บนอุปกรณ์ — โมเดลทั้งหมดทำงานในเครื่อง โดยไม่ต้องใช้อินเทอร์เน็ต
  • API พร้อมใช้ — ข้อความ ใบหน้า บาร์โค้ด วัตถุ การแปล ท่าทาง
  • ข้ามแพลตฟอร์ม — รองรับ Android และ iOS ผ่าน API เดียว
  • โมเดลที่กำหนดเอง — โหลดโมเดล TFLite ของคุณเอง

ML Kit คืออะไร: ความสามารถและสถาปัตยกรรม

ML Kit คือ SDK ที่เข้ากันได้กับ Firebase สำหรับแพลตฟอร์มบนมือถือที่ให้ ML API จำนวน 14 รายการสำหรับ Android และ iOS ML Kit เข้ามาแทนที่ Firebase ML (ชื่อเก่า) ในปี 2020 และปัจจุบันพร้อมใช้งานเป็น SDK แบบสแตนด์อโลนผ่าน Google Play Services (Android) หรือ CocoaPods/SPM (iOS) ข้อได้เปรียบหลักคือโมเดลทั้งหมดทำงานบนอุปกรณ์ ซึ่งรับประกันความเป็นส่วนตัวของข้อมูลและการทำงานแบบออฟไลน์

สถาปัตยกรรม ML Kit สร้างขึ้นจากสองโหมด: bundled (โมเดลฝังอยู่ใน APK/IPA) และ downloaded (โมเดลถูกดาวน์โหลดผ่าน Google Play Services เมื่อเรียกใช้ครั้งแรก) โหมด bundled ให้เริ่มต้นทันทีแต่เพิ่มขนาดแอป 5–20 MB โหมด downloaded ประหยัดพื้นที่แต่ต้องใช้อินเทอร์เน็ตในการเปิดใช้ครั้งแรก Google แนะนำ downloaded สำหรับ API ที่ไม่ได้ใช้ทุกหน้าจอ (Object Detection, Pose Detection)

การปรับแต่งผ่าน TFLite — ML Kit ให้คุณโหลดโมเดล TensorFlow Lite ของคุณเองผ่าน Custom Model API ซึ่งให้ความยืดหยุ่น — ใช้ API พร้อมใช้สำหรับงานมาตรฐานและโมเดลของคุณเองสำหรับงานเฉพาะ ML Kit มีตัวจัดการอินพุต/เอาต์พุตสากลที่ทำงานกับ ByteBuffer และ FloatArray ตามข้อมูลของ Google (2025) 40% ของโครงการ ML Kit รวม API พร้อมใช้และโมเดลที่กำหนดเอง

kotlin
// การตั้งค่า 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 ->
        // ข้อผิดพลาดในการประมวลผล
    }

Firebase vs แบบสแตนด์อโลน — ML Kit สามารถใช้กับ Firebase (ฟังก์ชัน Cloud, Analytics, Crashlytics) หรือเป็น SDK แบบสแตนด์อโลนโดยไม่ต้องใช้ Firebase โหมดสแตนด์อโลนเชื่อมต่อผ่าน Google Play Services (Android) โดยไม่ต้องตั้งค่าบัญชี Firebase Cloud API พร้อมใช้งานผ่าน Firebase (Cloud Vision, Natural Language) สำหรับงานที่ต้องใช้โครงข่ายประสาทเทียมบนเซิร์ฟเวอร์ Google — แต่ฟังก์ชันเหล่านี้มีค่าใช้จ่ายและไม่ใช่ on-device

ML Kit Text Recognition: การรู้จำข้อความ

ML Kit Text Recognition — API สำหรับการรู้จำอักขระด้วยแสง (OCR) บนภาพ รองรับสองโหมด: Latin-based (ละติน ซิริลลิก ตัวเลข — 45 ภาษา) และ Chinese/Japanese/Korean (CJK — ภาษาเชิงอุดมคติ) การรู้จำละตินใช้โมเดล V2 (เร็วกว่า) หรือ V1 (ความแม่นยำสูง) V2 ให้ความเร็ว 10–30 มิลลิวินาทีต่อเฟรม V1 — 50–100 มิลลิวินาที

ความสามารถของ Text Recognition รวมถึงการรู้จำข้อความที่พิมพ์และเขียนด้วยลายมือ การตรวจจับทิศทางของข้อความ การค้นหาบรรทัด คำและอักขระ การกำหนดภาษาของข้อความ API ส่งคืนโครงสร้าง: Text → TextBlock → Line → Element (Word/Symbol) แต่ละองค์ประกอบมีกรอบขอบเขต (bounding box) ความเชื่อมั่น และข้อความที่รู้จำ ตามข้อมูลของ Google (2025) ความแม่นยำของ ML Kit Text Recognition V2 บนอักษรละตินคือ 96% บนซิริลลิก — 91%

Text Recognition แบบเรียลไทม์ — การใช้กับ CameraX หรือ Camera2 สำหรับสตรีมวิดีโอ สร้าง ImageAnalysis.Analyzer และส่งเฟรมไปยัง ML Kit เพื่อประสิทธิภาพ ให้ลดความละเอียดเฟรมลงเหลือ 480p (640x480) — นี่คือสมดุลที่เหมาะสมที่สุดระหว่างความเร็วและความแม่นยำ ML Kit จัดการการหมุนภาพโดยอัตโนมัติ แต่เพื่อความเร็วสูงสุด ให้ส่งภาพในทิศทางที่ถูกต้อง

kotlin
// การรู้จำข้อความด้วย 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: ใช้ ImageDecoder เพื่อปรับปรุงการรู้จำภาพเบลอหรือมืด สำหรับข้อความที่พิมพ์ — TextRecognizerOptions.DEFAULT_OPTIONS (โมเดล V2) สำหรับข้อความที่เขียนด้วยลายมือ — TextRecognizerOptions.SCRIPT_LATIN (แม่นยำกว่าแต่ช้ากว่า) ในโครงการ IT Sectr เราใช้ V2 สำหรับการรู้จำเอกสารและโมเดล Latin สำหรับเช็คและใบเสร็จ

ML Kit Face Detection: การตรวจจับใบหน้าและโครงร่าง

ML Kit Face Detection — API สำหรับตรวจจับใบหน้าในภาพและวิดีโอ ตรวจจับกรอบขอบเขตใบหน้า พิกัดตา จมูก ปาก หู (468 จุดโครงร่าง) และการแสดงออกพื้นฐาน: ยิ้ม ปากเปิด ตาหลับ Face Detection เป็นหนึ่งใน API ที่เร็วที่สุดของ ML Kit: 5–15 มิลลิวินาทีต่อเฟรม ขึ้นอยู่กับจำนวนใบหน้าและจุดโครงร่าง

โหมดของ Face Detection: โหมดโครงร่าง (468 จุดโครงร่างใบหน้าสำหรับการวางซ้อนหน้ากาก/ฟิลเตอร์อย่างแม่นยำ) โหมดการจำแนก (การตรวจจับรอยยิ้ม ดวงตาที่เปิด) โหมดจุดสำคัญ (จุดสำคัญโดยไม่มีโครงร่าง) โหมดต่างๆ จะรวมกันใน FaceDetectorOptions การเปิดใช้ทุกโหมดทำให้การตรวจจับช้าลง 2–3 เท่า — ใช้ชุดขั้นต่ำที่จำเป็นสำหรับงานของคุณ

Face Detection ในแอปพลิเคชัน AR — จากจุดโครงร่าง ML Kit สร้างหน้ากากใบหน้าสำหรับฟิลเตอร์แบบ Snapchat ML Kit ส่งคืน 468 จุดพร้อมพิกัด x, y, z (z = ความลึก) จุดจะอัปเดต 30–60 ครั้งต่อวินาทีบนอุปกรณ์สมัยใหม่ สำหรับการวางซ้อน AR ให้ใช้ FaceMeshDetector (เวอร์ชันเฉพาะทาง) — ซึ่งส่งคืนสามเหลี่ยมเมชสำหรับการจัดพื้นผิวด้วย

kotlin
// การตรวจจับใบหน้าด้วยจุดโครงร่าง
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: API ไม่รู้จักว่าใบหน้าเป็นของใคร (การรู้จำใบหน้า) — ตรวจจับเฉพาะใบหน้า สำหรับการระบุตัวตน ให้ใช้ FaceNet หรือ ArcFace บนโมเดล TFLite ที่กำหนดเอง ML Kit ทำงานได้ถูกต้องกับใบหน้าในมุมสูงสุด 45°, ใส่แว่นตาและหน้ากากบางส่วน สำหรับมุมด้านข้าง (90°) ความแม่นยำลดลงเหลือ 40–60%

ML Kit Barcode Scanning: การอ่านรูปแบบรหัสทั้งหมด

ML Kit Barcode Scanning — API สำหรับอ่านและถอดรหัสบาร์โค้ด 1D (EAN, UPC, Code 128) และ 2D (QR, Data Matrix, PDF417) Barcode Scanning ตรวจจับรหัสในภาพ — ต่างจาก ZXing ที่ต้องให้รหัสกินพื้นที่เกือบทั้งเฟรม ML Kit ตรวจจับรหัสทุกขนาดและทิศทาง รวมถึงหลายรหัสในเฟรมเดียว (โหมดหลายบาร์โค้ด)

รูปแบบที่รองรับ: EAN-8, EAN-13, UPC-A, UPC-E, Code 39, Code 93, Code 128, ITF, Codabar, QR, Data Matrix, PDF417, Aztec ML Kit กำหนดรูปแบบโดยอัตโนมัติ — ไม่จำเป็นต้องระบุประเภทของรหัส ในการใช้งานจริง ให้ใช้ setBarcodeFormats() เพื่อจำกัดรูปแบบที่รองรับ — ซึ่งช่วยเพิ่มความเร็วในการสแกน 30–50% โดยการตัดอัลกอริทึมการถอดรหัสที่ไม่จำเป็นออก

Barcode Scanning แบบเรียลไทม์ — คล้ายกับ Text Recognition ผสานรวมกับ CameraX ML Kit ประมวลผลเฟรมด้วยความเร็วสูงสุด 60 FPS เพื่อความเร็วสูงสุด ให้เปิดใช้ setPerformanceMode(PerformanceMode.FAST) ML Kit Barcode Scanning เร็วกว่า ZXing 2–3 เท่าและแม่นยำกว่าในการตรวจจับรหัสที่เบลอหรือถูกบดบังบางส่วน ตามข้อมูลของ Google (2025) ML Kit Barcode Scanning มีความแม่นยำ 98.5% ภายใต้แสงมาตรฐาน

kotlin
// การสแกนบาร์โค้ดด้วยตัวกรองรูปแบบ
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: ML Kit เร็วกว่า แม่นยำกว่า และผสานรวมได้ง่ายกว่า ZXing เป็นโอเพนซอร์ส ทำงานแบบออฟไลน์ได้อย่างสมบูรณ์ ไม่ต้องใช้ Google Play Services ML Kit ต้องใช้ Google Play Services (Android) หรือ CocoaPods (iOS) สำหรับแอปที่ทำงานบนอุปกรณ์ที่ไม่มี Google (Huawei, Amazon Fire) ให้ใช้ ZXing เป็นตัวสำรอง สำหรับกรณีอื่น — ใช้ ML Kit เนื่องจากให้ UX ที่ดีกว่าด้วยการตรวจจับหลายรหัส

Object Detection และ Pose Detection ใน ML Kit

ML Kit Object Detection — API สำหรับตรวจจับและติดตามวัตถุในภาพ ตรวจจับวัตถุจากมากกว่า 1,000 หมวดหมู่ (คลาส ImageNet) — คน สัตว์ ยานพาหนะ ของใช้ในบ้าน Object Detection ทำงานในสองโหมด: single-image (ภาพเดียว) และ streaming (สตรีมวิดีโอพร้อมการติดตาม) โหมด streaming ติดตามวัตถุระหว่างเฟรม โดยกำหนด ID การติดตามที่ไม่ซ้ำกันให้แต่ละวัตถุ

Pose Detection — API สำหรับกำหนดท่าทางของมนุษย์ผ่าน 33 จุดสำคัญ (โครงกระดูก): ศีรษะ ไหล่ ข้อศอก ข้อมือ สะโพก เข่า เท้า กำหนดพิกัด (x, y, z) และความเชื่อมั่นของแต่ละจุด Pose Detection ใช้ในเครื่องติดตามฟิตเนส (นับจำนวนครั้ง ตรวจสอบฟอร์ม) แอปพลิเคชัน AR (อวาตาร์เลียนแบบการเคลื่อนไหว) และการวิเคราะห์กีฬา ความเร็ว — 10–30 มิลลิวินาทีต่อเฟรม ขึ้นอยู่กับจำนวนคน

Object Tracking — ML Kit Object Detection พร้อมการติดตามระหว่างเฟรมใช้ตัวติดตามที่ใช้ Optical Flow เมื่อตรวจพบวัตถุ ตัวติดตามจะติดตามโดยไม่ต้องตรวจจับซ้ำ ซึ่งประหยัด CPU/GPU หากตัวติดตามสูญเสียวัตถุ (เคลื่อนที่เร็ว มีสิ่งบดบัง) ML Kit จะเริ่มการตรวจจับใหม่ ตามข้อมูลของ Google (2025) ตัวติดตามรักษาวัตถุไว้ได้ 95% ของเฟรมที่ความเร็วสูงสุด 30 กม./ชม.

kotlin
// การตรวจจับท่าทาง (โครงกระดูกมนุษย์)
val poseDetector = PoseDetection.getClient(
    PoseDetectorOptions.Builder()
        .setDetectorMode(PoseDetectorOptions.STREAM_MODE)
        .build()
)

poseDetector.process(inputImage)
    .addOnSuccessListener { pose ->
        pose.allPoseLandmarks.forEach { landmark ->
            val type = landmark.landmarkType // ไหล่_ซ้าย, ข้อศอก_ขวา...
            val position = landmark.position3D
        }
    }

Selfie Segmentation — API สำหรับแบ่งส่วนบุคคลออกจากภาพ (แยกบุคคลออกจากพื้นหลัง) ส่งคืนมาสก์ความเชื่อมั่นสำหรับแต่ละพิกเซล Selfie Segmentation ใช้สำหรับเบลอหรือเปลี่ยนพื้นหลังในการโทรวิดีโอ โปรแกรมแก้ไขภาพ และแอปพลิเคชัน AR มาสก์จะถูกส่งคืนเป็น UInt8Array ที่มีขนาดเท่ากับภาพต้นฉบับ — แต่ละพิกเซลมีค่าตั้งแต่ 0.0 (พื้นหลัง) ถึง 1.0 (บุคคล)

โมเดล TFLite ที่กำหนดเองใน ML Kit

Custom Model API — ความสามารถในการโหลดและเรียกใช้โมเดล TensorFlow Lite ของคุณเองผ่านอินเทอร์เฟซ ML Kit ML Kit มี API อินพุต/เอาต์พุตแบบรวม: ByteBuffer เป็นอินพุต, FloatArray/TensorImage เป็นเอาต์พุต ซึ่งช่วยให้ใช้ประโยชน์จากข้อดีของ ML Kit (การจัดการโมเดล การประมวลผลภาพ การผสานรวม CameraX) ร่วมกับโมเดลที่กำหนดเองสำหรับการรู้จำใบหน้า การจำแนกวัตถุ NLP และอื่นๆ

การโหลดโมเดล — วางไฟล์ .tflite ใน assets/ (Android) หรือ bundle (iOS) และโหลดผ่าน CustomModelDownloadConditions หรือ Firebase Model Manager สำหรับการดาวน์โหลดโมเดลขนาดใหญ่ (5+ MB) ให้ใช้เงื่อนไขการดาวน์โหลด: Wi-Fi, ชาร์จอยู่, พื้นหลัง Google แนะนำให้ดาวน์โหลดโมเดลเมื่อเปิดใช้แอปครั้งแรก ไม่ใช่ในช่วงเวลาที่ใช้งานครั้งแรก

kotlin
// กำลังโหลดโมเดล TFLite ที่กำหนดเอง
val conditions = CustomModelDownloadConditions.Builder()
    .requireWifi()
    .build()
val remoteModel = CustomRemoteModel.Builder("my_model")
    .setRemoteModelName("my_model_v2")
    .build()

remoteModel.download(conditions)
    .addOnSuccessListener { /* model ready */ }
    .addOnFailureListener {
        // ใช้โมเดลแบบรวมจาก assets
    }

การเพิ่มประสิทธิภาพโมเดลที่กำหนดเอง: ใช้ TFLite Converter ที่เข้ากันได้กับ delegate เพื่อประสิทธิภาพสูงสุด ให้ควอนไทซ์โมเดล (INT8) — ซึ่งลดขนาดโมเดล 4 เท่าและเร่งการอนุมาน 2–3 เท่าผ่าน XNNPACK Delegate ML Kit Custom Model API รองรับ Dynamic Shape (batch = 1), Image Input (UInt8, Float32) และ Tensor Output

คำถามที่พบบ่อย

ML Kit ใน Android คืออะไร

ML Kit คือ SDK ของ Google ที่มีโมเดล ML พร้อมใช้สำหรับ Android และ iOS รวมถึง API สำหรับการรู้จำข้อความ (OCR), การตรวจจับใบหน้า, การสแกนบาร์โค้ด, การรู้จำวัตถุ, การตรวจจับท่าทาง, การแปล และการแบ่งส่วน ทำงานบนอุปกรณ์ ไม่ต้องใช้อินเทอร์เน็ต เชื่อมต่อผ่าน Google Play Services (Android) หรือ CocoaPods (iOS) อย่างน้อยที่สุด — ด้วยบรรทัดการพึ่งพาเพียงบรรทัดเดียว

ML Kit แตกต่างจาก TensorFlow Lite อย่างไร

ML Kit — SDK ระดับสูงพร้อม API พร้อมใช้สำหรับงานเฉพาะ (ข้อความ ใบหน้า รหัส) TensorFlow Lite — รันไทม์ระดับต่ำสำหรับเรียกใช้โมเดล TFLite ใดๆ ML Kit รวม TFLite ไว้ภายใน แต่ให้โค้ดพร้อมใช้และการเพิ่มประสิทธิภาพสำหรับงานมาตรฐาน หากคุณต้องการรู้จำข้อความ — ML Kit (5 บรรทัดโค้ด) หากคุณมีโครงข่ายประสาทเทียมของตัวเอง — TFLite (20+ บรรทัด)

ML Kit ทำงานได้โดยไม่ต้องใช้อินเทอร์เน็ตหรือไม่

ใช่ API หลักทั้งหมดของ ML Kit (Text Recognition, Face Detection, Barcode Scanning, Object Detection, Pose Detection, Image Labeling) ทำงานบนอุปกรณ์อย่างสมบูรณ์โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ตหลังจากดาวน์โหลดโมเดลครั้งแรก Cloud API (Cloud Vision, Natural Language) เป็นทางเลือกและต้องใช้อินเทอร์เน็ต สำหรับโมเดลที่ดาวน์โหลด ต้องใช้อินเทอร์เน็ตเฉพาะการดาวน์โหลดโมเดลครั้งแรกเท่านั้น

ML Kit สามารถใช้บน iOS ได้หรือไม่

ใช่ ML Kit รองรับ iOS อย่างสมบูรณ์ผ่าน CocoaPods หรือ Swift Package Manager API คล้ายกับเวอร์ชัน Android สำหรับ iOS ML Kit ใช้ Vision Framework และ Core ML ภายใน — โมเดลทำงานบน Apple Neural Engine (A12+) ML Kit บน iOS ทำงานกับ UIImage, CVPixelBuffer และ CMSampleBuffer รองรับ iOS 12+ และ Xcode 15+

ML Kit ฟรีหรือไม่

ใช่ API on-device ของ ML Kit ฟรีอย่างสมบูรณ์ ไม่มีข้อจำกัดเกี่ยวกับจำนวนคำขอ Cloud API (ผ่าน Firebase) มีค่าใช้จ่ายหลังจากขีดจำกัดฟรี ($200/เดือนฟรี) โมเดล on-device ไม่ต้องการบัญชี Firebase — ML Kit ทำงานแบบสแตนด์อโลนผ่าน Google Play Services สำหรับแอปพลิเคชันเชิงพาณิชย์ ML Kit on-device เป็นตัวเลือกที่ปลอดภัยโดยมีค่าใช้จ่ายในการดำเนินงานเป็นศูนย์

สรุป

  • ML Kit — Google SDK พร้อม API ML พร้อมใช้ 14 รายการสำหรับ Android และ iOS
  • Text Recognition — OCR สำหรับละติน (45 ภาษา) และ CJK ความแม่นยำ 91–96%
  • Face Detection — 468 จุดโครงร่าง ยิ้ม ดวงตาเปิด 5–15 มิลลิวินาที
  • Barcode Scanning — ทุกรูปแบบรหัส หลายรหัส เร็วกว่า ZXing 2–3 เท่า
  • Pose Detection — 33 จุดโครงกระดูกมนุษย์ ติดตามแบบเรียลไทม์
  • Custom Model API — โมเดล TFLite ของคุณเองผ่านอินเทอร์เฟซแบบรวม
  • บนอุปกรณ์ — โมเดลทั้งหมดทำงานในเครื่อง ฟรี โดยไม่ต้องใช้อินเทอร์เน็ต

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม