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 downloaded মোড সুপারিশ করে API-গুলির জন্য যা প্রতি স্ক্রিনে ব্যবহার করা হয় না (Object Detection, Pose Detection)।
TFLite-এর মাধ্যমে কাস্টমাইজেশন — ML Kit আপনাকে Custom Model API-এর মাধ্যমে আপনার নিজস্ব TensorFlow Lite মডেল লোড করার অনুমতি দেয়। এটি নমনীয়তা প্রদান করে — স্ট্যান্ডার্ড কাজের জন্য প্রস্তুত API এবং নির্দিষ্ট কাজের জন্য নিজস্ব মডেল ব্যবহার করুন। ML Kit একটি ইউনিভার্সাল Input/Output হ্যান্ডলার প্রদান করে যা ByteBuffer এবং FloatArray-এর সাথে কাজ করে। 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 (ল্যাটিন, সিরিলিক, অঙ্ক — ৪৫টি ভাষা) এবং 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। MLKit স্বয়ংক্রিয়ভাবে ফরম্যাট নির্ধারণ করে — কোড টাইপ উল্লেখ করার প্রয়োজন নেই। প্রোডাকশনে সমর্থিত ফরম্যাট সীমিত করতে 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 অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন