Image Labeling ایک کمپیوٹر وژن کا کام ہے جس میں ایک عصبی نیٹ ورک پہلے سے طے شدہ کلاسز کے سیٹ سے تصویر کو لیبل تفویض کرتا ہے: سادہ (بلی، کتا، گاڑی) سے لے کر مخصوص (پودے کی قسم، اسمارٹ فون ماڈل، میڈیکل اسکین) تک۔ موبائل ڈویلپمنٹ میں، Image Labeling گیلری میں تصاویر کے آٹو ٹیگنگ، صارف کے مواد کی نگرانی، تصویر کے ذریعے مصنوعات کی بصری تلاش اور AR ایپلی کیشنز کے لیے استعمال ہوتا ہے۔ Google ML Kit، 2025 کے مطابق، بلٹ ان کلاسیفائر 91% درستگی (top-1) کے ساتھ 10–20 ms میں 400+ زمروں کو پہچانتا ہے۔
اہم نکات
Image Labeling تصویر کی درجہ بندی کی ایک ذیلی قسم ہے جہاں ماڈل ان پٹ کے طور پر ایک تصویر لیتا ہے اور تربیتی سیٹ سے ہر کلاس کے لیے احتمالات واپس کرتا ہے۔ آبجیکٹ کا پتہ لگانے کے برعکس، Image Labeling تصویر میں اشیاء کی پوزیشن کا تعین نہیں کرتا — صرف ان کی موجودگی یا غیر موجودگی۔ تصویر کی تقسیم کے برعکس، یہ شے کی شکل کا تعین نہیں کرتا۔ Image Labeling سوال کا جواب دیتا ہے “تصویر میں کیا ہے؟”، نہ کہ “تصویر میں کہاں اور کیا ہے؟”
کلاسیفائر کا فن تعمیر: ایک CNN بیک بون (MobileNet، ResNet، EfficientNet) تصویر سے فیچر میپ نکالتا ہے، Global Average Pooling مقامی جہتوں کو سکیڑتا ہے، اور Softmax ایکٹیویشن کے ساتھ ایک مکمل منسلک پرت (Dense) کلاس کے احتمالات پیدا کرتی ہے۔ MobileNetV2 موبائل آلات کے لیے سب سے مقبول بیک بون ہے: 3.5M پیرامیٹرز، Pixel 6 پر GPU کے ذریعے 0.5–2 ms انفرنس۔ EfficientNet-Lite بہتر درستگی/پیرامیٹر تناسب کے ساتھ ایک متبادل ہے۔
Top-1 بمقابلہ Top-5 درستگی: top-1 — ماڈل نے مرکزی کلاس کا صحیح اندازہ لگایا (ML Kit میں 91%)؛ top-5 — صحیح کلاس پانچ سب سے زیادہ ممکنہ کلاسز میں شامل ہے (ML Kit میں 98%)۔ پروڈکشن ایپلی کیشنز کے لیے، top-5 استعمال کریں اور صارف کو متعدد لیبل آپشنز دکھائیں۔ مواد کی نگرانی کے لیے، اعتماد کی حد >= 0.8 کے ساتھ top-1 استعمال کریں (غلط مثبت شرح کو 40% کم کرتا ہے)۔
| فن تعمیر | پیرامیٹرز | تاخیر | Top-1 | سائز |
|---|---|---|---|---|
| MobileNetV2 | 3.5M | 0.5–2 ms | 90.2% | 14 MB |
| MobileNetV3 | 2.5M | 0.3–1.5 ms | 91.5% | 10 MB |
| EfficientNet-Lite0 | 4.7M | 1–3 ms | 92.3% | 18 MB |
| ResNet-50 | 25.6M | 10–30 ms | 95.2% | 98 MB |
ڈیوائس پر بمقابلہ کلاؤڈ: ڈیوائس پر درجہ بندی (ML Kit، Core ML) مکمل ڈیٹا پرائیویسی کے ساتھ 1–20 ms تاخیر دیتی ہے۔ کلاؤڈ API (Google Cloud Vision، AWS Rekognition) — 500–2000 ms تاخیر اور فی درخواست لاگت، لیکن بڑے ماڈلز (ViT، CLIP) کی وجہ سے زیادہ درست (97–99%) ہے۔ ریئل ٹائم ایپلی کیشنز (کیمرہ، AR) کے لیے، ڈیوائس پر آپشن منتخب کریں۔ پیچیدہ منظرناموں (طب، ماہر تجزیہ) کے لیے، ڈیوائس پر فال بیک کے ساتھ کلاؤڈ استعمال کریں۔
ML Kit Image Labeling ڈیوائس پر تصویر کی درجہ بندی کے لیے Google کی تیار لائبریری ہے۔ دو طریقوں میں دستیاب: ڈیوائس پر (مفت، 400+ لیبل، 10–20 ms) اور کلاؤڈ (ادا شدہ، 10000+ لیبل، 500+ ms)۔ ڈیوائس پر ورژن INT8 کوانٹائزیشن کے ساتھ MobileNetV3 استعمال کرتا ہے، ڈسک پر 4 MB جگہ لیتا ہے۔ ML Kit خود بخود تصویر کی سمت کا پتہ لگاتا ہے اور درجہ بندی سے پہلے سائز کو بہتر بناتا ہے۔
ML Kit API: InputImage (Bitmap، media.Image، filePath سے) → ImageLabeler → ImageLabel (لیبل، اعتماد، انڈیکس) کی فہرست کے ساتھ OnSuccessListener۔ اعتماد کی حد (پہلے سے طے شدہ 0.5) لیبل واپس کرنے کے لیے کم از کم اعتماد ہے۔ حد کو 0.7 تک بڑھانے سے فی فریم لیبل کی تعداد کم ہو جاتی ہے لیکن ہر ایک کی درستگی بڑھ جاتی ہے۔ مواد کی نگرانی کے لیے، حد کو 0.8 پر سیٹ کریں۔
val labeler = ImageLabeling.getClient(
ImageLabelerOptions.DEFAULT_OPTIONS
)
labeler.process(inputImage)
.addOnSuccessListener { labels ->
labels
.filter { it.confidence >= 0.7f }
.forEach { label ->
log("Label: ${label.label}")
log("Confidence: ${label.confidence}")
}
}
.addOnFailureListener { error -> handleError(error) }
iOS پر ML Kit: API Android جیسی ہے، UIImage یا CMSampleBuffer استعمال کرتا ہے۔ ML Kit خود بخود A12+ آلات پر Core ML + ANE استعمال کرتا ہے۔ iOS 16+ کے لیے، ML Kit Image Labeling iPhone 15 Pro پر 8–15 ms تاخیر دیتا ہے۔ تاخیر کو کم سے کم کرنے کے لیے، کم سے کم ممکنہ تصویر ریزولوشن (MobileNet کے لیے 224x224) پاس کریں — ML Kit خود بخود اسکیل کرتا ہے، لیکن بڑی تصاویر کو تبدیل کرنے میں 2–5 ms اوور ہیڈ شامل ہوتا ہے۔
Core ML ڈیوائس پر ML ماڈل چلانے کے لیے Apple کا فریم ورک ہے۔ Vision Framework (VNCoreMLRequest) کے ساتھ مل کر، Core ML کم سے کوڈ کے ساتھ تصویر کی درجہ بندی کو قابل بناتا ہے۔ Apple بلٹ ان ماڈل فراہم کرتا ہے: SqueezeNet (5 MB، 80.5% top-1)، ResNet50 (98 MB، 95.2%)، MobileNetV2 (14 MB، 90.2%)۔ .mlmodel یا .mlpackage فارمیٹ میں ماڈل TensorFlow یا PyTorch سے coremltools کے ذریعے تبدیل کیے جاتے ہیں۔
VNCoreMLRequest ایک Vision API ہے جو تصویر کی پری پروسیسنگ (اسکیلنگ، کراپ ٹو فل، کلر اسپیس کنورژن) سنبھالتا ہے اور نتیجہ ماڈل کو بھیجتا ہے۔ Vision identifier (کلاس کا نام) اور confidence (0..1) کے ساتھ VNClassificationObservation واپس کرتا ہے۔ MaxCandidates واپس کردہ لیبل کی زیادہ سے زیادہ تعداد ہے (پہلے سے طے شدہ 1)۔ خودکار انتخاب کی درجہ بندی کے لیے، imageCropAndScaleOption = .centerCrop کے ساتھ VNCoreMLRequest استعمال کریں۔
guard let model = try? VNCoreMLModel(for: MobileNetV2().model) else { return }
let request = VNCoreMLRequest(model: model) { request, _ in
guard let results = request.results as? [VNClassificationObservation] else { return }
results.prefix(5).forEach { obs in
print("لیبل: \(obs.identifier)، اعتماد: \(obs.confidence)")
}
}
request.imageCropAndScaleOption = .centerCrop
let handler = VNImageRequestHandler(cgImage: cgImage, options: [:])
try handler.perform([request])
iOS پر Core ML بمقابلہ ML Kit: Core ML مقامی ہے، اضافی SDK کی ضرورت نہیں ہے، اور ANE (Apple Neural Engine) کے لیے بہتر طور پر بہتر بنایا گیا ہے۔ ML Kit Google کے ماڈلز کی بدولت پیچیدہ مناظر پر زیادہ درست ہے۔ Core ML کسی بھی ماڈل (coremltools کے ذریعے تبدیل کردہ) کو سپورٹ کرتا ہے، جبکہ ML Kit صرف اپنے ماڈلز کو سپورٹ کرتا ہے۔ فوری نفاذ کے لیے، ML Kit استعمال کریں۔ زیادہ سے زیادہ ماڈل کنٹرول کے لیے، Core ML استعمال کریں۔ ایک عملی طریقہ: ایک ایپ میں دونوں فریم ورک استعمال کریں — معیاری لیبل کے لیے ML Kit، کسٹم لیبل کے لیے Core ML۔
کسٹم Image Labeling ماڈلز — ایک مخصوص کام کے لیے اپنا کلاسیفائر تربیت دینا: پھل کے معیار کی پہچان، پروڈکشن لائن پر نقائص کا پتہ لگانا، کتے کی نسلوں کی درجہ بندی۔ اس عمل میں ڈیٹا سیٹ جمع کرنا (فی کلاس 1000+ تصاویر)، تشریح، پہلے سے تربیت یافتہ MobileNetV2 یا EfficientNet پر ٹرانسفر لرننگ کے ذریعے تربیت، اور TFLite / Core ML میں تبدیلی شامل ہے۔
ٹرانسفر لرننگ — موبائل کلاسیفائرز کی تربیت کا بنیادی طریقہ۔ ImageNet پر پہلے سے تربیت یافتہ ماڈل لیا جاتا ہے، نچلی پرتیں (CNN بیک بون) منجمد کر دی جاتی ہیں، اور اوپری پرتوں کو دوبارہ تربیت دی جاتی ہے (فائن ٹیوننگ)۔ اس کے لیے فی کلاس صرف 100–500 تصاویر درکار ہوتی ہیں اور Google Colab (GPU) پر 1–2 گھنٹے لگتے ہیں۔ لائبریریاں: TensorFlow Keras (Android)، PyTorch + coremltools (iOS)۔ نتیجہ: ہدف کلاسز پر 95–98% درستگی۔
// TFLite کسٹم ماڈل انفرنس
val interpreter = Interpreter(loadModelFile(context))
val inputImage = TensorImage.fromBitmap(bitmap)
.apply { load(Bitmap.createScaledBitmap(bitmap, 224, 224, true)) }
val output = Array(1) { FloatArray(NUM_CLASSES) }
interpreter.run(inputImage.tensorBuffer, output)
val probabilities = TensorLabel.mapIndexToLabels(output[0])
val topClass = probabilities.maxByOrNull { it.value }
ML Kit Custom Model API — ایک متبادل: TFLite Interpreter کوڈ لکھنے کی ضرورت نہیں — ML Kit ماڈل لوڈ کرتا ہے اور پری پروسیسنگ خود بخود سنبھالتا ہے۔ کسٹم Image Labeler ان پٹ سائز 224x224x3 اور آؤٹ پٹ score float[NUM_CLASSES] کے ساتھ TFLite ماڈل قبول کرتا ہے۔ صرف ماڈل فائل فراہم کریں اور معیاری لیبل حاصل کریں۔ ML Kit Custom Model API تجویز کیا جاتا ہے اگر ماڈل TFLite فارمیٹ سے مماثل ہو۔ اگر انفرنس پر زیادہ باریک کنٹرول کی ضرورت ہو (فی کلاس حد)، تو براہ راست TFLite Interpreter استعمال کریں۔
TFLite (TensorFlow Lite) موبائل اور ایج آلات کے لیے Google کا ماڈل فارمیٹ ہے۔ یہ کوانٹائزیشن (FP16, INT8) کو سپورٹ کرتا ہے، جو ماڈل کے سائز کو 4 گنا کم کرتا ہے اور رفتار کو 2–3 گنا بڑھاتا ہے، معمولی درستگی کے نقصان (1–2%) کے ساتھ۔ TFLite Android پر GPU Delegate (OpenGL/OpenCL) کے ذریعے اور iOS پر Core ML Delegate کے ذریعے چلتا ہے۔ TFLite Task API Image Classifier، Object Detector اور دیگر کاموں کے لیے ایک متحد انٹرفیس فراہم کرتا ہے۔
Core ML Apple کا فارمیٹ ہے (.mlpackage — نیا، .mlmodel — پرانا)۔ یہ کوانٹائزیشن (FP16) اور وزن کی پیلٹائزیشن (1/2/4/6/8 بٹ تک) کو سپورٹ کرتا ہے، جو 80% تک ماڈل کمپریشن حاصل کرتا ہے۔ Core ML ANE (Neural Engine)، GPU اور CPU استعمال کرتا ہے — نظام خود بخود بہترین انجن منتخب کرتا ہے۔ PyTorch سے torch.onnx.export + coremltools کے ذریعے، TensorFlow سے tf-keras + coremltools کے ذریعے تبدیلی۔ iOS 18+ Core ML Training API کے ذریعے ڈیوائس پر تربیت کو سپورٹ کرتا ہے۔
| خصوصیت | TFLite | Core ML |
|---|---|---|
| سائز (MobileNetV2) | 14 MB (FP32) / 3.5 MB (INT8) | 14 MB (FP16) / 2.8 MB (4-bit) |
| انفرنس انجن | GPU / NNAPI / XNNPACK | ANE / GPU / CPU (خودکار) |
| کوانٹائزیشن | FP16, INT8, DynamicRange | FP16, پیلٹائزیشن (1-8 bit) |
| iOS کارکردگی | Core ML Delegate (2–5 ms) | مقامی ANE (1–3 ms) |
| اوزار | TFLite Model Maker, Task API | coremltools, Create ML |
ONNX بطور درمیانی فارمیٹ: ماڈلز کو ONNX (PyTorch → ONNX، TensorFlow → ONNX) اور پھر onnx2tf یا onnx2coreml کے ذریعے TFLite / Core ML میں تبدیل کریں۔ ONNX ایک متحد فارمیٹ ہے جو 70+ فریم ورکس کے ذریعے سپورٹ کیا جاتا ہے۔ یہ پائپ لائن کو آسان بناتا ہے: ایک تربیت یافتہ ماڈل → ONNX → دونوں پلیٹ فارمز کے لیے مقامی فارمیٹس۔ کراس پلیٹ فارم پروجیکٹس کے لیے PyTorch میں تربیت + ONNX میں تبدیلی → TFLite (Android) / Core ML (iOS) تجویز کردہ پائپ لائن ہے۔
تصاویر کا آٹو ٹیگنگ — گیلری ایپس (Google Photos، Apple Photos) خود بخود تصاویر کو لیبل تفویض کرتی ہیں: “ساحل”، “غروب آفتاب”، “کتا”، “کھانا”۔ ML Kit Image Labeling پس منظر میں گیلری کی ہر تصویر پر کارروائی کرتا ہے — 100 تصاویر کے لیے 1–2 سیکنڈ (بیچ)۔ صارف دستی ترتیب کے بغیر لیبل کے ذریعے تلاش حاصل کرتا ہے۔ Google Photos پیچیدہ مناظر کے لیے ڈیوائس پر درجہ بندی اور بعد میں سرور کی تصدیق کا استعمال کرتا ہے۔
مواد کی نگرانی — صارف کے مواد (سوشل نیٹ ورکس، مارکیٹ پلیسز، UGC پلیٹ فارمز) میں ناپسندیدہ تصاویر کا خودکار پتہ لگانا۔ ML Kit Custom Model 92–96% درستگی کے ساتھ NSFW مواد، تشدد اور پروپیگنڈے کا پتہ لگاتا ہے۔ ٹرگر حد — اعتماد 0.8۔ غلط مثبت (قانونی طبی تصاویر) کو کم کرنے کے لیے، کلاسیفائرز کی ایک کمیٹی استعمال کریں: Image Labeling + Object Detection + Blur Detection۔ ڈیوائس پر نگرانی تیز تر ہے اور صارف کی پرائیویسی کی حفاظت کرتی ہے۔
مصنوعات کی بصری تلاش — صارف کسی پروڈکٹ (جوتے، بیگ، فرنیچر) کی تصویر لیتا ہے، ایپ لیبل کا تعین کرتی ہے اور کیٹلاگ میں اسی طرح کی مصنوعات ڈھونڈتی ہے۔ Image Labeling تلاش کو ایک زمرے تک محدود کرتا ہے، پھر فیچر ڈسکرپٹر (فیچر ویکٹر) بصری طور پر ملتی جلتی اشیاء ڈھونڈتے ہیں۔ Pinterest Lens، Google Lens اور Amazon StyleSnap یہ طریقہ استعمال کرتے ہیں۔ ڈیوائس پر درجہ بندی 10–30 ms میں نتائج دیتی ہے، کلاؤڈ تلاش — 200–500 ms میں۔
// بصری تلاش کے لیے Core ML کے ساتھ Image Labeling
let request = VNCoreMLRequest(model: productClassifier) { req, _ in
guard let result = req.results?.first as? VNClassificationObservation,
result.confidence > 0.6 else { return }
SearchService.findSimilarProducts(
category: result.identifier,
image: capturedPhoto,
limit: 10
) { products in
DispatchQueue.main.async {
self.showResults(products)
}
}
}
AR اور تعلیمی ایپس — Image Labeling کیمرے کے ذریعے ریئل ٹائم میں اشیاء کی درجہ بندی کرتا ہے۔ صارف اپنا فون پودے کی طرف اشارہ کرتا ہے — ایپ نام، دیکھ بھال کی ہدایات اور پانی دینے کا شیڈول دکھاتی ہے۔ مکینیکل پرزے کی طرف اشارہ کرتا ہے — اس کا مقصد بتاتی ہے۔ ضرورت: تاخیر < 30 ms۔ فلیگ شپ آلات پر EfficientNet-Lite 15–25 ms دیتا ہے۔ کم روشنی میں، درستگی کم ہو جاتی ہے — ایک انکولی اعتماد کی حد استعمال کریں (ان پٹ کے معیار میں کمی کی تلافی کے لیے کم روشنی میں حد کم کریں)۔
اکثر پوچھے گئے سوالات
Image Labeling تعین کرتا ہے کہ تصویر میں کون سی اشیاء موجود ہیں لیکن ان کا مقام نہیں بتاتا۔ Object Detection اشیاء کا پتہ لگاتا ہے اور ہر ایک کے لیے باؤنڈنگ باکس واپس کرتا ہے۔ Image Labeling تیز تر ہے (1–20 ms بمقابلہ 20–100 ms)، کم تربیتی ڈیٹا درکار ہے، لیکن مقامی معلومات فراہم نہیں کرتا۔ سادہ درجہ بندی (بلی/کتا) کے لیے، Image Labeling استعمال کریں۔ ہدف کی پہچان (کتنی اشیاء، کہاں ہیں) کے لیے، Object Detection استعمال کریں۔
نہیں، ML Kit Image Labeling مکمل طور پر ڈیوائس پر کام کرتا ہے۔ ماڈل پہلے لانچ پر ڈاؤن لوڈ ہوتا ہے (ڈاؤن لوڈڈ موڈ — 4 MB) اور مقامی طور پر محفوظ ہوتا ہے۔ Core ML ماڈل ایپ کے ساتھ بنڈل ہوتے ہیں۔ TFLite کسٹم ماڈل APK کا حصہ ہے۔ تمام حسابات ڈیوائس پر چلتے ہیں اور سرور کو کوئی ڈیٹا نہیں بھیجا جاتا۔ یہ صارف کی پرائیویسی اور آف لائن فعالیت کی ضمانت دیتا ہے۔ کلاؤڈ درجہ بندی (Google Cloud Vision) ایک متبادل ہے جس کے لیے انٹرنیٹ درکار ہے اور زیادہ درستگی فراہم کرتا ہے۔
MobileNetV2 پر ٹرانسفر لرننگ کے لیے: فی کلاس کم از کم 50–100 تصاویر، بہترین 300–500۔ جتنا زیادہ تنوع (زاویے، روشنی، پس منظر)، درستگی اتنی ہی زیادہ۔ شروع سے تربیت (پہلے سے تربیت یافتہ ماڈل کے بغیر) کے لیے، فی کلاس کم از کم 1000 تصاویر درکار ہیں۔ سفارش: فی کلاس 200 تصاویر سے شروع کریں، درستگی کا جائزہ لیں اور کم درستگی والی کلاسز کے لیے ڈیٹا شامل کریں۔ ڈیٹا آگمینٹیشن (گھماؤ، اسکیلنگ، شفٹ) نئے ڈیٹا کو جمع کیے بغیر موثر ڈیٹا سیٹ کو 3–5 گنا بڑھاتا ہے۔
بنیادی طریقے: تربیت کے بعد INT8 کوانٹائزیشن — 1–2% درستگی کے نقصان کے ساتھ سائز 4 گنا کم کرتی ہے؛ پروننگ (غیر اہم وزن کو ہٹانا) — 50% تک کمپریشن؛ ڈسٹلیشن (ایک بڑے ٹیچر ماڈل کے آؤٹ پٹ پر تربیت یافتہ چھوٹا اسٹوڈنٹ ماڈل) — 80% تک کمپریشن۔ MobileNetV2 INT8 3.5 MB جگہ لیتا ہے، SqueezeNet — 5 MB۔ ہدف کا سائز — پیش رفت کے اشارے کے بغیر فوری لوڈنگ کے لیے 10 MB سے زیادہ نہیں۔
ML Kit Image Labeling v2 Google کے ٹیسٹ سیٹ (400+ کلاسز) پر 91% top-1 درستگی دکھاتا ہے۔ Top-5 درستگی — 98% ہے۔ غیر معیاری زاویوں اور روشنی کے حالات میں، درستگی 75–85% تک گر سکتی ہے۔ پروڈکشن کے لیے، کم معیار کی پیش گوئیوں کی مستحکم فلٹرنگ کے لیے 0.7 اعتماد کی حد استعمال کرنے کی سفارش کی جاتی ہے۔ اگر درستگی ناکافی ہے تو، مخصوص ڈیٹا سیٹ پر تربیت یافتہ کسٹم ماڈل استعمال کریں: ہدف کلاسز پر 95–98% درستگی۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں