Image Labeling — kompyuter ko'rish sohasidagi vazifa bo'lib, unda neyron tarmoq tasvirga oldindan belgilangan sinflar to'plamidan teglar beradi: oddiydan (mushuk, it, mashina) maxsusgacha (o'simlik turi, smartfon modeli, tibbiy tasvir). Mobil ishlanmada Image Labeling galereyadagi fotosuratlarni avtomatik teglash, foydalanuvchi kontentini moderatsiya qilish, fotosurat bo'yicha mahsulotlarni vizual qidirish va AR ilovalari uchun qo'llaniladi. Google ML Kit, 2025 ma'lumotlariga ko'ra, o'rnatilgan klassifikator 400+ kategoriyani kadrda 10–20 ms da 91% aniqlik bilan (top-1) taniydi.
Asosiy
Image Labeling — tasvir tasniflashning kichik turi bo'lib, unda model tasvirni qabul qiladi va o'quv to'plamidagi har bir sinf uchun ehtimolliklarni qaytaradi. Object detection dan farqli o'laroq, Image Labeling ob'ektning tasvirdagi joylashuvini aniqlamaydi — faqat uning mavjudligi yoki yo'qligini bildiradi. Image segmentation dan farqli o'laroq, ob'ekt konturini ajratmaydi. Image Labeling “fotosuratda nima bor?” degan savolni hal qiladi, “qayerda va nima bor?” degan savolni emas.
Klassifikator arxitekturasi: CNN backbone (MobileNet, ResNet, EfficientNet) tasvirdan feature map chiqaradi, Global Average Pooling fazoviy o'lchamlarni yig'adi, Softmax aktivatsiyali to'liq bog'langan qatlam (Dense) sinf ehtimolliklarini beradi. MobileNetV2 — mobil qurilmalar uchun eng mashhur backbone: 3.5M parametr, Pixel 6 da GPU orqali 0.5–2 ms xulosa chiqarish. EfficientNet-Lite — yaxshiroq accuracy/parametr nisbatiga ega muqobil.
Top-1 vs Top-5 accuracy: top-1 — model asosiy sinfni to'g'ri topdi (ML Kit uchun 91%); top-5 — to'g'ri sinf eng yuqori ehtimolli beshlik ichida (ML Kit uchun 98%). Ishlab chiqarish ilovalari uchun top-5 dan foydalaning va foydalanuvchiga bir nechta teg variantlarini ko'rsating. Kontent moderatsiyasi uchun — confidence >= 0.8 chegarasi bilan top-1 (noto'g'ri ijobiy ko'rsatkichni 40% ga kamaytiradi).
| Arxitektura | Parametrlar | Latency | Top-1 | Hajm |
|---|---|---|---|---|
| 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 |
On-device vs Cloud: qurilmada tasniflash (ML Kit, Core ML) 1–20 ms kechikish va to'liq ma'lumot maxfiyligini beradi. Cloud API (Google Cloud Vision, AWS Rekognition) — 500–2000 ms kechikish + so'rov uchun xarajat, lekin aniqroq (97–99%) kattaroq modellar (ViT, CLIP) hisobiga. Real-time ilovalar (kamera, AR) uchun on-device ni tanlang. Murakkab stsenariylar (tibbiyot, ekspertiza) uchun — on-device ga fallback bilan cloud.
ML Kit Image Labeling — Google dan qurilmada tasvirlarni tasniflash uchun tayyor kutubxona. Ikki rejimda mavjud: on-device (bepul, 400+ teg, 10–20 ms) va cloud (pulli, 10000+ teg, 500+ ms). On-device versiyasi MobileNetV3 + INT8 kvantlashdan foydalanadi, diskda 4 MB joy egallaydi. ML Kit avtomatik ravishda tasvir yo'nalishini aniqlaydi va tasniflashdan oldin hajmini optimallashtiradi.
ML Kit API: InputImage (Bitmap, media.Image, filePath dan) → ImageLabeler → ImageLabel ro'yxati bilan OnSuccessListener (label, confidence, index). MillisThreshold (standart 0.5) — tegni qaytarish uchun minimal ishonch. Chegarani 0.7 ga ko'tarish kadrdagi teglar sonini kamaytiradi, lekin har birining aniqligini oshiradi. Kontent moderatsiyasi uchun chegarani 0.8 qilib belgilang.
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 da ML Kit: API Android ga o'xshash, UIImage yoki CMSampleBuffer dan foydalanadi. ML Kit A12+ qurilmalarida avtomatik ravishda Core ML + ANE dan foydalanadi. iOS 16+ uchun ML Kit Image Labeling iPhone 15 Pro da 8–15 ms kechikish beradi. Kechikishni minimallashtirish uchun tasvirni mumkin bo'lgan eng past rezolyutsiyada yuboring (MobileNet uchun 224x224) — ML Kit o'zi masshtablaydi, lekin katta tasvirlarni konvertatsiya qilish 2–5 ms qo'shimcha yuk qo'shadi.
Core ML — Apple ning qurilmada ML modellarini ishga tushirish uchun framework i. Vision Framework (VNCoreMLRequest) bilan birgalikda Core ML minimal kod bilan tasvirlarni tasniflash imkonini beradi. Apple o'rnatilgan modellarni taqdim etadi: SqueezeNet (5 MB, 80.5% top-1), ResNet50 (98 MB, 95.2%), MobileNetV2 (14 MB, 90.2%). .mlmodel yoki .mlpackage formatidagi modellar coremltools orqali TensorFlow, PyTorch dan konvertatsiya qilinadi.
VNCoreMLRequest — tasvirni oldindan qayta ishlashni (masshtablash, crop-to-fill, rang fazosini konvertatsiya qilish) o'z zimmasiga oladigan va natijani modelga uzatadigan Vision API. Vision identifier (sinf nomi) va confidence (0..1) bilan VNClassificationObservation qaytaradi. MaxCandidates — qaytariladigan teglarning maksimal soni (standart 1). Avtomatik tanlash bilan tasniflash uchun imageCropAndScaleOption = .centerCrop bilan VNCoreMLRequest dan foydalaning.
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("TFLite maxsus model xulosasi")
}
}
request.imageCropAndScaleOption = .centerCrop
let handler = VNImageRequestHandler(cgImage: cgImage, options: [:])
try handler.perform([request])
iOS da Core ML vs ML Kit: Core ML — mahalliy, qo'shimcha SDK talab qilmaydi, ANE (Apple neyron dvigateli) uchun yaxshiroq optimallashtirilgan. ML Kit — Google modellari tufayli murakkab sahnalarda aniqroq. Core ML har qanday modellarni qo'llab-quvvatlaydi (coremltools orqali konvertatsiya qilingan), ML Kit — faqat o'z modellarini. Tez joriy qilish uchun — ML Kit. Model ustida maksimal nazorat uchun — Core ML. Amaliy tanlov: bitta ilovada ikkala framework — standart teglar uchun ML Kit, maxsus teglar uchun Core ML.
Maxsus Image Labeling modellari — o'z klassifikatoringizni muayyan vazifa uchun o'qitish: mevalar sifatini tanib olish, konveyerdagi nuqsonlarni aniqlash, it zotlarini tasniflash. Jarayon ma'lumotlar to'plamini yig'ish (sinf uchun 1000+ tasvir), belgilash, oldindan o'qitilgan MobileNetV2 yoki EfficientNet da transfer learning orqali o'qitish va TFLite / Core ML ga konvertatsiya qilishni o'z ichiga oladi.
Transfer Learning — mobil klassifikatorlarni o'qitishning asosiy usuli. ImageNet da oldindan o'qitilgan model olinadi, pastki qatlamlar (CNN backbone) muzlatiladi, yuqori qatlamlar (Fine-tuning) qayta o'qitiladi. Bu sinf uchun atigi 100–500 tasvir talab qiladi va Google Colab da (GPU) 1–2 soat davom etadi. Kutubxonalar: TensorFlow Keras (Android), PyTorch + coremltools (iOS). Natija: maqsadli sinflarda 95–98% accuracy.
// Image Labeling Core ML bilan vizual qidirish uchun
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 — muqobil: TFLite Interpreter uchun kod yozish shart emas — ML Kit o'zi modelni yuklaydi va oldindan qayta ishlashni boshqaradi. Custom Image Labeler kirish hajmi 224x224x3 va chiqish score float[NUM_CLASSES] bo'lgan TFLite modelini qabul qiladi. Faqat model faylini uzatish va standart teglarni olish kifoya. ML Kit Custom Model API, agar model TFLite formatiga mos keladigan bo'lsa tavsiya etiladi. Agar xulosa chiqarish ustida aniqroq nazorat talab qilinsa (chegaralar, sinf uchun threshold) — to'g'ridan-to'g'ri TFLite Interpreter dan foydalaning.
TFLite (TensorFlow Lite) — mobil va edge qurilmalar uchun Google model formati. Kvantlashni (FP16, INT8) qo'llab-quvvatlaydi, bu model hajmini 4 marta kamaytiradi va tezlikni 2–3x oshiradi, ozgina aniqlik yo'qotishi (1–2%) evaziga. TFLite Android da GPU Delegate (OpenGL/OpenCL) orqali, iOS da — Core ML Delegate orqali ishlaydi. TFLite Task API Image Classifier, Object Detector va boshqa vazifalar uchun yagona interfeysni ta'minlaydi.
Core ML — Apple formati (.mlpackage — yangi, .mlmodel — eski). Kvantlashni (FP16), vazn paletizatsiyasini (weight palettization 1/2/4/6/8 bit) qo'llab-quvvatlaydi, bu modelni 80% gacha siqish imkonini beradi. Core ML ANE (Neural Engine), GPU va CPU dan foydalanadi — tizim avtomatik ravishda optimal dvigatelni tanlaydi. PyTorch dan torch.onnx.export + coremltools orqali, TensorFlow dan — tf-keras + coremltools orqali konvertatsiya. iOS 18+ Core ML Training API orqali qurilmada o'qitishni qo'llab-quvvatlaydi.
| Xususiyat | TFLite | Core ML |
|---|---|---|
| Hajm (MobileNetV2) | 14 MB (FP32) / 3.5 MB (INT8) | 14 MB (FP16) / 2.8 MB (4-bit) |
| Xulosa dvigateli | GPU / NNAPI / XNNPACK | ANE / GPU / CPU (auto) |
| Kvantlash | FP16, INT8, DynamicRange | FP16, Palettization (1-8 bit) |
| iOS ishlashi | Core ML Delegate (2–5 ms) | Mahalliy ANE (1–3 ms) |
| Asboblar | TFLite Model Maker, Task API | coremltools, Create ML |
ONNX oraliq format sifatida: modellarni ONNX ga konvertatsiya qiling (PyTorch → ONNX, TensorFlow → ONNX) va keyin onnx2tf yoki onnx2coreml orqali TFLite / Core ML ga o'tkazing. ONNX — 70+ framework tomonidan qo'llab-quvvatlanadigan yagona format. Bu pipeline ni soddalashtiradi: bitta o'qitilgan model → ONNX → ikkala platforma uchun mahalliy formatlar. PyTorch da o'qitish + ONNX → TFLite (Android) / Core ML (iOS) — ko'p platformali loyihalar uchun tavsiya etilgan pipeline.
Fotosuratlarni avtomatik teglash — galereya ilovalari (Google Photos, Apple Photos) avtomatik ravishda tasvirlarga teglar beradi: “plyaj”, “quyosh botishi”, “it”, “ovqat”. ML Kit Image Labeling galereyadagi har bir fotosuratni fonda qayta ishlaydi — 100 ta fotosurat uchun 1–2 soniya (batch). Foydalanuvchi qo'lda saralashsiz teglar bo'yicha qidiruv oladi. Google Photos murakkab sahnalar uchun keyingi server tekshiruvi bilan qurilmada tasniflashdan foydalanadi.
Kontent moderatsiyasi — foydalanuvchi kontentidagi (ijtimoiy tarmoqlar, marketpleyslar, UGC platformalari) nomaqbul tasvirlarni avtomatik aniqlash. ML Kit Custom Model NSFW kontentni, zo'ravonlikni, tashviqotni 92–96% aniqlik bilan aniqlaydi. Ishlash chegarasi — confidence 0.8. Noto'g'ri ijobiy holatlarni (qonuniy tibbiy tasvirlar) kamaytirish uchun klassifikatorlar qo'mitasidan foydalaning: Image Labeling + Object Detection + Blur Detection. Qurilmada moderatsiya tezroq va foydalanuvchi maxfiyligini himoya qiladi.
Mahsulotlarni vizual qidirish — foydalanuvchi mahsulotni suratga oladi (poyabzal, sumka, mebel), ilova tegni aniqlaydi va katalogda o'xshash mahsulotlarni topadi. Image Labeling qidiruvni kategoriyagacha toraytiradi, so'ngra xususiyat deskriptorlari (feature vectors) vizual o'xshash namunalarni topadi. Pinterest Lens, Google Lens, Amazon StyleSnap bu yondashuvdan foydalanadi. Qurilmada tasniflash 10–30 ms da natija beradi, cloud — mahsulot bazasida qidirish 200–500 ms da.
// Image Labeling with Core ML for visual search
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 va ta'lim ilovalari — Image Labeling kamera orqali real vaqtda ob'ektlarni tasniflaydi. Foydalanuvchi telefonni o'simlikka yo'naltiradi — ilova nom, parvarish, sug'orishni ko'rsatadi. Mexanizm qismiga yo'naltiradi — maqsadini tushuntiradi. Talab: kechikish < 30 ms. Flagship qurilmalarda EfficientNet-Lite 15–25 ms beradi. Zaif yorug'likda aniqlik pasayadi — avtomatik confidence chegarasidan foydalaning (zaif yorug'likda chegarani pasaytiring, kirish sifatining pasayishini kompensatsiya qilish uchun).
Tez-tez beriladigan savollar
Image Labeling tasvirda qanday ob'ektlar borligini aniqlaydi, lekin ularning joylashishini ko'rsatmaydi. Object Detection — ob'ektlarni topadi va har birining bounding box ini qaytaradi. Image Labeling tezroq (1–20 ms vs 20–100 ms), o'qitish uchun kamroq ma'lumot talab qiladi, lekin joylashuv ma'lumotini bermaydi. Oddiy tasniflash uchun (mushuk/it) — Image Labeling. Aniq tanib olish uchun (nechta ob'ekt, qayerda) — Object Detection.
Yo'q, ML Kit Image Labeling to'liq qurilmada ishlaydi. Model birinchi ishga tushirishda yuklanadi (yuklab olingan rejim — 4 MB) va lokal saqlanadi. Core ML modellari ilova bilan birga yuklanadi. TFLite Custom Model — APK ning bir qismi. Barcha hisob-kitoblar qurilmada bajariladi, ma'lumotlar serverga yuborilmaydi. Bu foydalanuvchi maxfiyligini va internetsiz ishlashni kafolatlaydi. Bulut tasniflash (Google Cloud Vision) — internet bilan va yuqori aniqlikdagi muqobil.
MobileNetV2 da transfer learning uchun: sinf uchun kamida 50–100 tasvir, optimal 300–500. O'zgaruvchanlik qancha ko'p bo'lsa (burchaklar, yorug'lik, fon), aniqlik shuncha yuqori bo'ladi. Noldan o'qitish (oldindan o'qitilgan modelsiz) sinf uchun kamida 1000 tasvir talab qiladi. Tavsiya: sinf uchun 200 tasvirdan boshlang, accuracy ni baholang, past aniqlikdagi sinflar uchun ma'lumot qo'shing. Data augmentation (aylantirish, masshtab, siljitish) yangi ma'lumot yig'masdan samarali ma'lumotlar to'plamini 3–5x oshiradi.
Asosiy usullar: o'qitishdan keyin INT8 kvantlash (post-training quantization) — hajmni 4x kamaytiradi, 1–2% accuracy yo'qotishi bilan; pruning (ahamiyatsiz vaznlarni tashlab yuborish) — 50% gacha siqish; distillation (katta o'qituvchi model chiqishlarida o'qitilgan kichik talaba model) — 80% gacha siqish. MobileNetV2 INT8 3.5 MB, SqueezeNet — 5 MB egallaydi. Maqsadli hajm — darhol yuklash uchun 10 MB dan oshmasligi kerak.
ML Kit Image Labeling v2 Google test to'plamida (400+ sinf) top-1 accuracy 91% ni ko'rsatadi. Top-5 accuracy — 98%. Nostandart burchaklar va yorug'lik sharoitlarida aniqlik 75–85% gacha tushishi mumkin. Ishlab chiqarish uchun past sifatli bashoratlarni barqaror filtrlash uchun confidence chegarasi 0.7 dan foydalanish tavsiya etiladi. Agar aniqlik yetarli bo'lmasa — muayyan ma'lumotlar to'plamida o'qitilgan maxsus modeldan foydalaning: maqsadli sinflarda accuracy 95–98%.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.