ML Kit Google का एक मोबाइल SDK है जो Android और iOS ऐप्लिकेशन में रेडी-मेड ML मॉडल को एकीकृत करने के लिए है। ML Kit टेक्स्ट रिकग्निशन, फेस डिटेक्शन, बारकोड स्कैनिंग, ऑब्जेक्ट डिटेक्शन, टेक्स्ट अनुवाद, पोज़ डिटेक्शन और इमेज सेगमेंटेशन के लिए API प्रदान करता है — सभी मॉडल डिवाइस पर (on-device) बिना सर्वर कनेक्शन के काम करते हैं। Google ML Kit, 2025 के अनुसार, यह लाइब्रेरी 100,000 से अधिक ऐप्लिकेशन में उपयोग होती है, प्रतिदिन 2+ बिलियन अनुरोध प्रोसेस करती है
मुख्य बिंदु
ML Kit एक Firebase-संगत SDK है जो मोबाइल प्लेटफ़ॉर्म के लिए Android और iOS हेतु 14 ML API प्रदान करता है। ML Kit ने 2020 में Firebase ML (पुराना नाम) को बदल दिया और अब Google Play Services (Android) या CocoaPods/SPM (iOS) के माध्यम से एक स्वतंत्र SDK के रूप में उपलब्ध है। मुख्य लाभ यह है कि सभी मॉडल डिवाइस पर काम करते हैं, डेटा गोपनीयता और ऑफ़लाइन संचालन सुनिश्चित करते हैं।
ML Kit आर्किटेक्चर दो मोड पर आधारित है: bundled (मॉडल APK/IPA में एम्बेडेड) और downloaded (पहली कॉल पर Google Play Services के माध्यम से मॉडल डाउनलोड होता है)। Bundled मोड तत्काल शुरुआत देता है लेकिन ऐप का आकार 5–20 MB बढ़ा देता है। Downloaded मोड स्थान बचाता है लेकिन पहले लॉन्च पर इंटरनेट की आवश्यकता होती है। Google उन API के लिए downloaded की सिफारिश करता है जो हर स्क्रीन पर उपयोग नहीं होते (Object Detection, Pose Detection)।
TFLite के माध्यम से अनुकूलन — ML Kit आपको Custom Model API के माध्यम से अपना स्वयं का TensorFlow Lite मॉडल लोड करने की अनुमति देता है। यह लचीलापन प्रदान करता है — मानक कार्यों के लिए तैयार API और विशिष्ट कार्यों के लिए अपना मॉडल उपयोग करें। ML Kit ByteBuffer और FloatArray के साथ काम करने वाला एक सार्वभौमिक Input/Output हैंडलर प्रदान करता है। Google (2025) के अनुसार, 40% ML Kit प्रोजेक्ट तैयार API और कस्टम मॉडल को जोड़ते हैं।
// 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 बनाम स्वतंत्र — ML Kit का उपयोग Firebase (Cloud फ़ंक्शन, Analytics, Crashlytics) के साथ या Firebase के बिना एक स्वतंत्र SDK के रूप में किया जा सकता है। स्वतंत्र मोड Firebase खाता सेट किए बिना Google Play Services (Android) के माध्यम से जुड़ता है। Cloud API Firebase (Cloud Vision, Natural Language) के माध्यम से उन कार्यों के लिए उपलब्ध हैं जिनमें Google सर्वर पर न्यूरल नेटवर्क की आवश्यकता होती है — लेकिन ये सुविधाएं भुगतान वाली हैं और on-device नहीं हैं।
ML Kit Text Recognition — छवियों पर ऑप्टिकल कैरेक्टर रिकग्निशन (OCR) के लिए API। दो मोड का समर्थन करता है: Latin-based (लैटिन, सिरिलिक, अंक — 45 भाषाएं) और Chinese/Japanese/Korean (CJK — विचारधारात्मक भाषाएं)। लैटिन पहचान मॉडल V2 (तेज़) या V1 (उच्च सटीकता) का उपयोग करती है। V2 10–30 ms प्रति फ्रेम देता है, V1 — 50–100 ms।
Text Recognition क्षमताएं में मुद्रित और हस्तलिखित टेक्स्ट की पहचान, टेक्स्ट ओरिएंटेशन का पता लगाना, पंक्तियों, शब्दों और अक्षरों का पता लगाना, टेक्स्ट भाषा का निर्धारण शामिल है। API एक संरचना लौटाता है: Text → TextBlock → Line → Element (Word/Symbol)। प्रत्येक तत्व में बाउंडिंग बॉक्स, कॉन्फिडेंस और पहचाना गया टेक्स्ट होता है। Google (2025) के अनुसार, लैटिन लिपि पर ML Kit Text Recognition V2 की सटीकता 96%, सिरिलिक पर — 91% है।
रीयल-टाइम Text Recognition — वीडियो स्ट्रीम के लिए CameraX या Camera2 का उपयोग। ImageAnalysis.Analyzer बनाएं और फ्रेम को ML Kit में पास करें। प्रदर्शन के लिए, फ्रेम रिज़ॉल्यूशन को 480p (640x480) तक कम करें — यह गति और सटीकता के बीच इष्टतम संतुलन है। ML Kit स्वचालित रूप से इमेज रोटेशन को संभालता है, लेकिन अधिकतम गति के लिए छवि को सही ओरिएंटेशन में पास करें।
// 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 — छवियों और वीडियो में चेहरे का पता लगाने के लिए API। चेहरे का बाउंडिंग बॉक्स, आंखों, नाक, मुंह, कानों के निर्देशांक (468 कंटूर पॉइंट) और बुनियादी अभिव्यक्तियां: मुस्कान, खुला मुंह, बंद आंखें का पता लगाता है। Face Detection सबसे तेज़ ML Kit API में से एक है: चेहरों की संख्या और कंटूर पॉइंट के आधार पर 5–15 ms प्रति फ्रेम।
Face Detection मोड: contour मोड (सटीक मास्क/फ़िल्टर ओवरले के लिए 468 चेहरे के कंटूर पॉइंट), classification मोड (मुस्कान, खुली आंखों का पता लगाना), landmark मोड (कंटूर के बिना मुख्य बिंदु)। मोड FaceDetectorOptions में संयुक्त होते हैं। सभी मोड सक्षम करने से डिटेक्शन 2–3 गुना धीमा हो जाता है — अपने कार्य के लिए न्यूनतम आवश्यक सेट का उपयोग करें।
AR ऐप्लिकेशन में Face Detection — कंटूर पॉइंट के आधार पर ML Kit Snapchat-जैसे फ़िल्टर के लिए फेस मास्क बनाता है। ML Kit x, y, z निर्देशांक (z = गहराई) के साथ 468 पॉइंट लौटाता है। आधुनिक उपकरणों पर पॉइंट प्रति सेकंड 30–60 बार अपडेट होते हैं। AR ओवरले के लिए FaceMeshDetector (विशेष संस्करण) का उपयोग करें — यह टेक्सचरिंग के लिए मेश त्रिकोण भी लौटाता है।
// कंटूर पॉइंट के साथ फेस डिटेक्शन
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 यह नहीं पहचानता कि चेहरा किसका है (face recognition) — केवल चेहरे का पता लगाता है। पहचान के लिए कस्टम TFLite मॉडल पर FaceNet या ArcFace का उपयोग करें। ML Kit 45° तक के कोणों पर, चश्मे और आंशिक मास्क के साथ चेहरों पर सही ढंग से काम करता है। प्रोफ़ाइल कोणों (90°) पर सटीकता 40–60% तक गिर जाती है।
ML Kit Barcode Scanning — 1D (EAN, UPC, Code 128) और 2D (QR, Data Matrix, PDF417) बारकोड पढ़ने और डिकोड करने के लिए API। 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% है।
// फ़ॉर्मेट फ़िल्टर के साथ बारकोड स्कैनिंग
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 प्रदान करता है।
ML Kit Object Detection — छवियों में ऑब्जेक्ट का पता लगाने और ट्रैक करने के लिए API। 1000+ श्रेणियों (ImageNet क्लास) से ऑब्जेक्ट का पता लगाता है — लोग, जानवर, वाहन, घरेलू सामान। Object Detection दो मोड में काम करता है: single-image (एकल फोटो) और streaming (ट्रैकिंग के साथ वीडियो स्ट्रीम)। Streaming मोड फ्रेम के बीच ऑब्जेक्ट को ट्रैक करता है, प्रत्येक को एक अद्वितीय ट्रैक ID प्रदान करता है।
Pose Detection — 33 प्रमुख बिंदुओं (कंकाल) के माध्यम से मानव मुद्रा निर्धारित करने के लिए API: सिर, कंधे, कोहनी, कलाई, कूल्हे, घुटने, पैर। प्रत्येक बिंदु के निर्देशांक (x, y, z) और कॉन्फिडेंस निर्धारित करता है। Pose Detection का उपयोग फ़िटनेस ट्रैकर्स (दोहराव गिनती, फ़ॉर्म जांच), AR ऐप्लिकेशन (अवतार हरकतों की नकल करता है) और खेल विश्लेषण में किया जाता है। गति — लोगों की संख्या के आधार पर 10–30 ms प्रति फ्रेम।
Object Tracking — इंटर-फ्रेम ट्रैकिंग के साथ ML Kit Object Detection Optical Flow-आधारित ट्रैकर का उपयोग करता है। जब ऑब्जेक्ट का पता चलता है, ट्रैकर बिना पुनः डिटेक्शन के उसका अनुसरण करता है, CPU/GPU बचाता है। यदि ट्रैकर ऑब्जेक्ट खो देता है (तेज़ गति, अवरोध), ML Kit पुनः डिटेक्शन शुरू करता है। Google (2025) के अनुसार, ट्रैकर 30 किमी/घंटा तक की गति पर 95% फ्रेम में ऑब्जेक्ट को बनाए रखता है।
// पोज़ डिटेक्शन (मानव कंकाल)
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 (व्यक्ति) तक का मान होता है।
Custom Model API — ML Kit इंटरफ़ेस के माध्यम से अपने स्वयं के TensorFlow Lite मॉडल लोड और चलाने की क्षमता। ML Kit एक एकीकृत Input/Output API प्रदान करता है: इनपुट के रूप में ByteBuffer, आउटपुट के रूप में FloatArray/TensorImage। यह ML Kit के लाभों (मॉडल प्रबंधन, इमेज प्रोसेसिंग, CameraX एकीकरण) का उपयोग फेस रिकग्निशन, ऑब्जेक्ट क्लासिफिकेशन, NLP और अधिक के लिए कस्टम मॉडल के साथ करने की अनुमति देता है।
मॉडल लोड करना — .tflite फ़ाइल को assets/ (Android) या bundle (iOS) में रखें और CustomModelDownloadConditions या Firebase Model Manager के माध्यम से लोड करें। बड़े मॉडल (5+ MB) डाउनलोड करने के लिए डाउनलोड शर्तों का उपयोग करें: Wi-Fi, चार्ज, बैकग्राउंड। Google पहले उपयोग के क्षण में नहीं, बल्कि पहले ऐप लॉन्च पर मॉडल डाउनलोड करने की सिफारिश करता है।
// कस्टम 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 का उपयोग करें। अधिकतम प्रदर्शन के लिए मॉडल को क्वांटाइज़ करें (INT8) — यह मॉडल आकार को 4 गुना कम करता है और XNNPACK Delegate के माध्यम से इनफ़रेंस को 2–3 गुना तेज़ करता है। ML Kit Custom Model API Dynamic Shape (batch = 1), Image Input (UInt8, Float32) और Tensor Output का समर्थन करता है।
अक्सर पूछे जाने वाले प्रश्न
ML Kit Google का एक SDK है जिसमें Android और iOS के लिए तैयार ML मॉडल हैं। इसमें टेक्स्ट रिकग्निशन (OCR), फेस डिटेक्शन, बारकोड स्कैनिंग, ऑब्जेक्ट डिटेक्शन, पोज़ डिटेक्शन, अनुवाद और सेगमेंटेशन के लिए API शामिल हैं। डिवाइस पर काम करता है, इंटरनेट की आवश्यकता नहीं है। Google Play Services (Android) या CocoaPods (iOS) के माध्यम से न्यूनतम रूप से जुड़ता है — एक निर्भरता पंक्ति के साथ।
ML Kit — विशिष्ट कार्यों (टेक्स्ट, चेहरे, कोड) के लिए तैयार API के साथ उच्च-स्तरीय SDK। TensorFlow Lite — किसी भी TFLite मॉडल को चलाने के लिए निम्न-स्तरीय रनटाइम। ML Kit में TFLite अंतर्निहित है लेकिन मानक कार्यों के लिए तैयार कोड और अनुकूलन प्रदान करता है। यदि आपको टेक्स्ट पहचानने की आवश्यकता है — ML Kit (5 कोड पंक्तियां)। यदि आपका अपना न्यूरल नेटवर्क है — TFLite (20+ पंक्तियां)।
हां, सभी मुख्य ML Kit API (Text Recognition, Face Detection, Barcode Scanning, Object Detection, Pose Detection, Image Labeling) प्रारंभिक मॉडल डाउनलोड के बाद बिना इंटरनेट कनेक्शन के पूरी तरह से डिवाइस पर काम करते हैं। Cloud API (Cloud Vision, Natural Language) वैकल्पिक हैं और इंटरनेट की आवश्यकता है। डाउनलोड किए गए मॉडल के लिए, इंटरनेट केवल पहले मॉडल डाउनलोड के लिए आवश्यक है।
हां, ML Kit CocoaPods या Swift Package Manager के माध्यम से iOS का पूरी तरह से समर्थन करता है। API Android संस्करण के समान हैं। iOS के लिए, ML Kit अंतर्निहित रूप से Vision Framework और Core ML का उपयोग करता है — मॉडल Apple Neural Engine (A12+) पर चलते हैं। iOS पर ML Kit UIImage, CVPixelBuffer और CMSampleBuffer के साथ काम करता है। iOS 12+ और Xcode 15+ का समर्थन करता है।
हां, ML Kit on-device API पूरी तरह से मुफ्त हैं, अनुरोधों की संख्या पर कोई सीमा नहीं है। Cloud API (Firebase के माध्यम से) मुफ्त सीमा के बाद भुगतान वाले हैं ($200/माह मुफ्त)। On-device मॉडल को Firebase खाते की आवश्यकता नहीं है — ML Kit Google Play Services के माध्यम से स्वतंत्र रूप से काम करता है। वाणिज्यिक ऐप्लिकेशन के लिए, on-device ML Kit शून्य परिचालन लागत के साथ एक सुरक्षित विकल्प है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें