Image Labeling: nədir, metodları və iş prinsipi

Müəllif: IT Sectr Dərc olunub: 2026-07-19 Oxuma vaxtı: 9 dəq

Image Labeling — kompüter görmə sahəsində bir tapşırıqdır ki, neyron şəbəkə şəklə əvvəlcədən təyin edilmiş siniflər dəstindən etiketlər təyin edir: sadədən (pişik, it, maşın) spesifikə (bitki növü, smartfon modeli, tibbi görüntü). Mobil inkişafda Image Labeling qalereyada fotoşəkillərin avto-teqlənməsi, istifadəçi məzmununun moderasiyası, foto ilə məhsulların vizual axtarışı və AR tətbiqləri üçün istifadə olunur. Google ML Kit, 2025-ə görə, daxili təsnifatçı 400+ kateqoriyanı kadr başına 10–20 ms-də 91% dəqiqliklə (top-1) tanıyır.

Əsas məqamlar

  • Image Labeling — şəklə əvvəlcədən təyin edilmiş siniflər dəstindən etiketlərin təyin edilməsi
  • ML Kit — 400+ daxili etiket, 10–20 ms, 91% top-1 accuracy
  • Core ML — iOS-da Vision + custom models vasitəsilə nativ təsnifat
  • Xüsusi modellər — TensorFlow, PyTorch ilə öyrənmə, TFLite-ə çevrilmə
  • On-device — bütün hesablamalar lokal, məlumatların serverə göndərilməsi olmadan

Image Labeling nədir: təsnifatın əsasları

Image Labeling — şəkil təsnifatının alt növüdür, burada model şəkli qəbul edir və təlim dəstindən hər bir sinif üçün ehtimalları qaytarır. Object detection-dan fərqli olaraq, Image Labeling obyektin şəkildəki mövqeyini müəyyən etmir — yalnız onun mövcudluğunu və ya olmamasını göstərir. Image segmentation-dan fərqli olaraq, obyektin konturunu ayırmır. Image Labeling “fotoda nə var?” sualını həll edir, “harada və nə var?” sualını yox.

Təsnifatçının arxitekturası: CNN backbone (MobileNet, ResNet, EfficientNet) şəkildən feature map çıxarır, Global Average Pooling məkan ölçülərini yığışdırır, Softmax aktivasiyalı tam bağlı təbəqə (Dense) sinif ehtimallarını verir. MobileNetV2 — mobil cihazlar üçün ən məşhur backbone: 3.5M parametr, Pixel 6-da GPU vasitəsilə 0.5–2 ms çıxarım. EfficientNet-Lite — daha yaxşı accuracy/parametr nisbəti olan alternativ.

Top-1 vs Top-5 accuracy: top-1 — model əsas sinfi düzgün təxmin etdi (ML Kit üçün 91%); top-5 — düzgün sinif ən yüksək ehtimallı beşlikdədir (ML Kit üçün 98%). İstehsal tətbiqləri üçün top-5 istifadə edin və istifadəçiyə bir neçə etiket variantı göstərin. Məzmun moderasiyası üçün — confidence >= 0.8 həddi ilə top-1 (false positive nisbətini 40% azaldır).

ArxitekturaParametrlərLatencyTop-1Ölçü
MobileNetV23.5M0.5–2 ms90.2%14 MB
MobileNetV32.5M0.3–1.5 ms91.5%10 MB
EfficientNet-Lite04.7M1–3 ms92.3%18 MB
ResNet-5025.6M10–30 ms95.2%98 MB

On-device vs Cloud: cihazda təsnifat (ML Kit, Core ML) 1–20 ms gecikmə və tam məlumat məxfiliyi təmin edir. Cloud API (Google Cloud Vision, AWS Rekognition) — 500–2000 ms gecikmə + sorğu başına xərc, lakin daha dəqiq (97–99%) daha böyük modellər (ViT, CLIP) sayəsində. Real-time tətbiqlər (kamera, AR) üçün on-device seçin. Mürəkkəb ssenarilər (tibb, ekspertiza) üçün — on-device-ə fallback ilə cloud.

Android və iOS-da ML Kit Image Labeling

ML Kit Image Labeling — Google-dan cihazda şəkillərin təsnifatı üçün hazır kitabxana. İki rejimdə mövcuddur: on-device (pulsuz, 400+ etiket, 10–20 ms) və cloud (pullu, 10000+ etiket, 500+ ms). On-device versiya MobileNetV3 + INT8 kvantlaşdırmasından istifadə edir, diskdə 4 MB yer tutur. ML Kit avtomatik olaraq şəklin oriyentasiyasını təyin edir və təsnifatdan əvvəl ölçüsünü optimallaşdırır.

ML Kit API: InputImage (Bitmap, media.Image, filePath-dən) → ImageLabeler → ImageLabel siyahısı ilə OnSuccessListener (label, confidence, index). MillisThreshold (standart 0.5) — etiketin qaytarılması üçün minimum inam. Həddi 0.7-yə qaldırmaq kadr başına etiketlərin sayını azaldır, lakin hər birinin dəqiqliyini artırır. Məzmun moderasiyası üçün həddi 0.8 təyin edin.

kotlin
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-ə bənzəyir, UIImage və ya CMSampleBuffer istifadə edir. ML Kit A12+ cihazlarında avtomatik olaraq Core ML + ANE istifadə edir. iOS 16+ üçün ML Kit Image Labeling iPhone 15 Pro-da 8–15 ms gecikmə verir. Gecikməni minimuma endirmək üçün şəkli mümkün olan ən aşağı qətnamədə göndərin (MobileNet üçün 224x224) — ML Kit özü miqyaslayır, lakin böyük şəkillərin çevrilməsi 2–5 ms əlavə yük əlavə edir.

iOS-da Core ML və Vision Framework

Core ML — Apple-ın cihazda ML modellərini işə salmaq üçün çərçivəsi. Vision Framework (VNCoreMLRequest) ilə birlikdə Core ML minimal kodla şəkilləri təsnif etməyə imkan verir. Apple daxili modellər təqdim edir: SqueezeNet (5 MB, 80.5% top-1), ResNet50 (98 MB, 95.2%), MobileNetV2 (14 MB, 90.2%). .mlmodel və ya .mlpackage formatındakı modellər coremltools vasitəsilə TensorFlow, PyTorch-dan çevrilir.

VNCoreMLRequest — şəklin ilkin emalını (miqyaslama, crop-to-fill, rəng fəzasının çevrilməsi) öz üzərinə götürən və nəticəni modelə ötürən Vision API. Vision identifier (sinif adı) və confidence (0..1) ilə VNClassificationObservation qaytarır. MaxCandidates — qaytarılan etiketlərin maksimum sayı (standart 1). Avtomatik seçimlə təsnifat üçün imageCropAndScaleOption = .centerCrop ilə VNCoreMLRequest istifadə edin.

swift
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 xüsusi model çıxarımı")
    }
}
request.imageCropAndScaleOption = .centerCrop

let handler = VNImageRequestHandler(cgImage: cgImage, options: [:])
try handler.perform([request])

iOS-da Core ML vs ML Kit: Core ML — nativdir, əlavə SDK tələb etmir, ANE (Apple neyron mühərriki) üçün daha yaxşı optimallaşdırılıb. ML Kit — Google modelləri sayəsində mürəkkəb səhnələrdə daha dəqiqdir. Core ML istənilən modelləri dəstəkləyir (coremltools ilə çevrilmiş), ML Kit — yalnız öz modellərini. Sürətli tətbiq üçün — ML Kit. Model üzərində maksimal nəzarət üçün — Core ML. Praktik seçim: bir tətbiqdə hər iki çərçivə — standart etiketlər üçün ML Kit, xüsusi etiketlər üçün Core ML.

Xüsusi modellərin öyrədilməsi və inteqrasiyası

Xüsusi Image Labeling modelləri — spesifik tapşırıq üçün öz təsnifatçının öyrədilməsi: meyvələrin keyfiyyətinin tanınması, konveyerdə qüsurların aşkarlanması, it cinslərinin təsnifatı. Prosesə məlumat dəstinin toplanması (sinif başına 1000+ şəkil), qeyd etmə, əvvəlcədən öyrədilmiş MobileNetV2 və ya EfficientNet-də transfer learning ilə öyrənmə və TFLite / Core ML-ə çevirmə daxildir.

Transfer Learning — mobil təsnifatçıların öyrədilməsinin əsas metodu. ImageNet-də əvvəlcədən öyrədilmiş model götürülür, aşağı təbəqələr (CNN backbone) dondurulur, yuxarı təbəqələr (Fine-tuning) yenidən öyrədilir. Bu, sinif başına cəmi 100–500 şəkil tələb edir və Google Colab-da (GPU) 1–2 saat çəkir. Kitabxanalar: TensorFlow Keras (Android), PyTorch + coremltools (iOS). Nəticə: hədəf siniflərdə 95–98% accuracy.

kotlin
// Core ML ilə Image Labeling vizual axtarış üçün
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 — alternativ: TFLite Interpreter üçün kod yazmağa ehtiyac yoxdur — ML Kit özü modeli yükləyir və ilkin emalı idarə edir. Custom Image Labeler giriş ölçüsü 224x224x3 və çıxış score float[NUM_CLASSES] olan TFLite modelini qəbul edir. Sadəcə model faylını ötürmək və standart etiketləri əldə etmək kifayətdir. ML Kit Custom Model API, model TFLite formatına uyğundursa tövsiyə olunur. Çıxarım üzərində daha incə nəzarət tələb olunarsa (həddlər, sinif başına threshold) — birbaşa TFLite Interpreter istifadə edin.

TFLite və Core ML: formatların müqayisəsi

TFLite (TensorFlow Lite) — mobil və edge cihazlar üçün Google model formatı. Kvantlaşdırmanı (FP16, INT8) dəstəkləyir, bu da modelin ölçüsünü 4 dəfə azaldır və sürəti 2–3x artırır, az dəqiqlik itkisi (1–2%) bahasına. TFLite Android-də GPU Delegate (OpenGL/OpenCL) vasitəsilə, iOS-da — Core ML Delegate vasitəsilə işləyir. TFLite Task API Image Classifier, Object Detector və digər tapşırıqlar üçün vahid interfeys təmin edir.

Core ML — Apple formatı (.mlpackage — yeni, .mlmodel — köhnə). Kvantlaşdırmanı (FP16), çəki paletləşdirməsini (weight palettization 1/2/4/6/8 bit) dəstəkləyir, bu da modelin 80%-ə qədər sıxılmasını təmin edir. Core ML ANE (Neural Engine), GPU və CPU istifadə edir — sistem avtomatik olaraq optimal mühərriki seçir. PyTorch-dan torch.onnx.export + coremltools vasitəsilə, TensorFlow-dan — tf-keras + coremltools vasitəsilə çevrilmə. iOS 18+ Core ML Training API vasitəsilə cihazda öyrənməni dəstəkləyir.

XüsusiyyətTFLiteCore ML
Ölçü (MobileNetV2)14 MB (FP32) / 3.5 MB (INT8)14 MB (FP16) / 2.8 MB (4-bit)
Çıxarım mühərrikiGPU / NNAPI / XNNPACKANE / GPU / CPU (auto)
KvantlaşdırmaFP16, INT8, DynamicRangeFP16, Palettization (1-8 bit)
iOS PerformansıCore ML Delegate (2–5 ms)Nativ ANE (1–3 ms)
AlətlərTFLite Model Maker, Task APIcoremltools, Create ML

ONNX aralıq format kimi: modelləri ONNX-ə çevirin (PyTorch → ONNX, TensorFlow → ONNX) və sonra onnx2tf və ya onnx2coreml vasitəsilə TFLite / Core ML-ə keçirin. ONNX — 70+ çərçivə tərəfindən dəstəklənən vahid format. Bu, pipeline-i sadələşdirir: bir öyrədilmiş model → ONNX → hər iki platforma üçün nativ formatlar. PyTorch-da öyrənmə + ONNX → TFLite (Android) / Core ML (iOS) — çoxplatformalı layihələr üçün tövsiyə olunan pipeline.

Image Labeling-in tətbiqlərdə istifadəsi

Fotoşəkillərin avtomatik teqlənməsi — qalereya tətbiqləri (Google Photos, Apple Photos) avtomatik olaraq şəkillərə etiketlər təyin edir: “çimərlik”, “gün batımı”, “it”, “yemək”. ML Kit Image Labeling qalereyadakı hər şəkili fonda emal edir — 100 şəkil üçün 1–2 saniyə (batch). İstifadəçi əl ilə çeşidləmədən etiketlər üzrə axtarış əldə edir. Google Photos mürəkkəb səhnələr üçün sonradan server yoxlaması ilə cihazda təsnifatdan istifadə edir.

Məzmun moderasiyası — istifadəçi məzmununda (sosial şəbəkələr, marketpleyslər, UGC platformaları) arzuolunmaz şəkillərin avtomatik aşkarlanması. ML Kit Custom Model NSFW məzmunu, zorakılığı, təbliğatı 92–96% dəqiqliklə aşkarlayır. İşə düşmə həddi — confidence 0.8. Yanlış pozitivləri (qanuni tibbi şəkillər) azaltmaq üçün təsnifatçı komitəsindən istifadə edin: Image Labeling + Object Detection + Blur Detection. Cihazda moderasiya daha sürətlidir və istifadəçi məxfiliyini qoruyur.

Məhsulların vizual axtarışı — istifadəçi məhsulu şəklə çəkir (ayaqqabı, çanta, mebel), tətbiq etiketi müəyyənləşdirir və kataloqda oxşar məhsulları tapır. Image Labeling axtarışı kateqoriyaya qədər daraldır, sonra xüsusiyyət deskriptorları (feature vectors) vizual olaraq oxşar nümunələri tapır. Pinterest Lens, Google Lens, Amazon StyleSnap bu yanaşmadan istifadə edir. Cihazda təsnifat 10–30 ms-də nəticə verir, cloud — məhsul bazasında axtarış 200–500 ms-də.

swift
// 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 və təhsil tətbiqləri — Image Labeling kamera vasitəsilə real vaxtda obyektləri təsnif edir. İstifadəçi telefonu bitkiyə yönəldir — tətbiq ad, qulluq, suvarma göstərir. Mexanizm hissəsinə yönəldir — məqsədi izah edir. Tələb: gecikmə < 30 ms. Flagship cihazlarda EfficientNet-Lite 15–25 ms verir. Zəif işıqlandırmada dəqiqlik düşür — avtomatik confidence həddi istifadə edin (zəif işıqda həddi aşağı salın, giriş keyfiyyətinin düşməsini kompensasiya etmək üçün).

Tez-tez verilən suallar

Image Labeling Object Detection-dan nə ilə fərqlənir?

Image Labeling şəkildə hansı obyektlərin olduğunu müəyyən edir, lakin onların yerini göstərmir. Object Detection — obyektləri tapır və hər birinin bounding box-nı qaytarır. Image Labeling daha sürətlidir (1–20 ms vs 20–100 ms), öyrənmək üçün daha az məlumat tələb edir, lakin mövqe məlumatı vermir. Sadə təsnifat üçün (pişik/it) — Image Labeling. Dəqiq tanıma üçün (neçə obyekt, haradadır) — Object Detection.

Cihazda Image Labeling üçün internet lazımdır?

Xeyr, ML Kit Image Labeling tamamilə cihazda işləyir. Model ilk işə salınmada yüklənir (yüklənmiş rejim — 4 MB) və lokal olaraq saxlanılır. Core ML modelləri tətbiq ilə birlikdə yüklənir. TFLite Custom Model — APK-nın hissəsidir. Bütün hesablamalar cihazda aparılır, məlumatlar serverə göndərilmir. Bu, istifadəçi məxfiliyini və internet olmadan işləməyi təmin edir. Bulud təsnifatı (Google Cloud Vision) — internetlə və daha yüksək dəqiqliklə alternativdir.

Xüsusi modeli öyrətmək üçün neçə şəkil lazımdır?

MobileNetV2-də transfer learning üçün: sinif başına minimum 50–100 şəkil, optimal olaraq 300–500. Dəyişkənlik nə qədər çox olarsa (bucaqlar, işıqlandırma, fon), dəqiqlik o qədər yüksək olar. Sıfırdan öyrənmə (əvvəlcədən öyrədilmiş model olmadan) sinif başına minimum 1000 şəkil tələb edir. Tövsiyə: sinif başına 200 şəkildən başlayın, accuracy-ni qiymətləndirin, aşağı dəqiqlikli siniflər üçün məlumat əlavə edin. Data augmentation (dönmələr, miqyas, sürüşmə) yeni məlumat toplamadan effektiv məlumat dəstini 3–5x artırır.

Image Labeling üçün TFLite model ölçüsünü necə azaltmaq olar?

Əsas metodlar: təlimdən sonra INT8 kvantlaşdırması (post-training quantization) — ölçüsü 4x azaldır, 1–2% accuracy itkisi ilə; budama (pruning) — az əhəmiyyətli çəkilərin atılması, 50% sıxılmaya qədər; distillə (distillation) — böyük müəllim modelinin çıxışlarında öyrədilmiş kiçik tələbə modeli — 80% sıxılmaya qədər. MobileNetV2 INT8 3.5 MB, SqueezeNet — 5 MB yer tutur. Hədəf ölçü — dərhal yükləmə üçün 10 MB-dan çox olmamalıdır.

ML Kit Image Labeling v2-nin dəqiqliyi nədir?

ML Kit Image Labeling v2 Google test dəstində (400+ sinif) top-1 accuracy 91% göstərir. Top-5 accuracy — 98%. Qeyri-standart bucaqlarda və işıqlandırma şəraitində dəqiqlik 75–85%-ə düşə bilər. İstehsal üçün aşağı keyfiyyətli proqnozların sabit filtrlənməsi üçün confidence həddi 0.7 istifadə etmək tövsiyə olunur. Dəqiqlik kifayət deyilsə — spesifik məlumat dəstində öyrədilmiş xüsusi modeldən istifadə edin: hədəf siniflərdə accuracy 95–98%.

Nəticə

  • Image Labeling — sabit dəstdən etiketlər təyin etməklə şəkillərin təsnifatı
  • ML Kit Image Labeling — 400+ etiket, 10–20 ms gecikmə, 91% accuracy cihazda
  • Core ML + Vision — ANE sürətləndirməsi və xüsusi modellərlə nativ iOS yanaşması
  • Transfer Learning — sinif başına 100–500 şəkil, Google Colab-da 1–2 saat öyrənmə
  • TFLite / Core ML — ölçü azaltmaq üçün kvantlaşdırma ilə iki əsas format
  • On-device — məxfilik, sıfır gecikmə, internet olmadan
  • Tətbiq — foto teqləmə, məzmun moderasiyası, AR, məhsulların vizual axtarışı

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun