Tətbiqlərdə Face Detection: bu nədir, metodlar və kitabxanalar

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

Face Detection — rəqəmsal şəkillərdə və video axınında insan üzlərini tapmaq və lokallaşdırmaq üçün kompüter görmə texnologiyasıdır. Face Recognition (şəxsiyyət identifikasiyası) fərqli olaraq, Face Detection yalnız üzün varlığını və onun sərhədlərini — bounding box və keypoints (gözlər, burun, ağız) müəyyən edir. Mobil inkişafda Face Detection ML Kit, ARKit, Vision Framework və OpenCV-də istifadə olunur. Google ML Kit, 2025 məlumatlarına görə, üz aşkarlama müasir cihazlarda 5–15 ms ərzində 98% dəqiqliklə yerinə yetirilir.

Əsas

  • Face Detection — şəkildə üzlərin tapılması, şəxsiyyət identifikasiyası deyil
  • Bounding box — x, y, w, h koordinatları ilə üz ətrafında düzbucaqlı
  • Keypoints — üzün əsas nöqtələri: gözlər, burun, ağız, qulaqlar (ML Kit-də 468 nöqtə)
  • On-device — aşkarlama server olmadan yerli olaraq cihazda aparılır
  • Real-time — müasir smartfonlarda HD-video üçün 30+ FPS

Face Detection nədir: prinsiplər və alqoritmlər

Face Detection — şəkildə insan üzlərinin varlığını və yerini müəyyən etmək üçün kompüter görmə tapşırığıdır. Alqoritm bounding box (üz ətrafında düzbucaqlı) və confidence score (bunun üz olma ehtimalı) qaytarır. Müasir alqoritmlər həmçinin facial landmarks — əsas nöqtələr (gözlər, qaşlar, burun, ağız, üz konturu) qaytarır. Face Detection bir çox ML tapşırıqları üçün ilk mərhələdir: şəxsiyyətin tanınması, AR filtrləri, diqqət analitikası.

Alqoritmlərin tarixi Viola-Jones (2001) — CPU-da Haar-oxşar xüsusiyyətlər kaskadı ilə başladı. 2010-cu illərdə HOG + SVM (Histogram of Oriented Gradients) üstünlük təşkil edirdi. 2016-cı ildən bəri bütün müasir alqoritmlər konvolyusiyalı neyron şəbəkələrə (CNN) əsaslanır: MTCNN, RetinaFace, SSH, MobileNet-SSD, YOLO-Face. GPU-da CNN alqoritmləri klassik metodlara qarşı 85–90% əvəzinə 95–99% dəqiqlik verir. WiderFace benchmarkına (2025) görə, RetinaFace ən çətin alt çoxluqda mAP 96.3% göstərir.

MTCNN (Multi-Task Cascaded CNN) — klassik üç mərhələli detektor: P-Net (Proposal Network) namizədləri tapır, R-Net (Refine Network) filtrləyir, O-Net (Output Network) bounding box-ı dəqiqləşdirir və landmarks çıxarır. MTCNN CPU-da 640x480 təsvir ölçüsündə kadr başına 30–50 ms sürətlə işləyir. Mobil cihazlar üçün MTCNN GPU olmadan sürət və dəqiqliyin optimal balansıdır.

AlqoritmDəqiqlik (WiderFace)Sürət (640x480)Platforma
RetinaFace96.3%15 ms (GPU)Android, iOS
MTCNN91.2%30–50 ms (CPU)Çarpaz platforma
ML Kit98.0%5–15 ms (GPU/NPU)Android, iOS
OpenCV Haar82.5%5–10 ms (CPU)Çarpaz platforma

Real-time Face Detection video üçün 30+ FPS tələb edir. Bu, NPU (Neural Processing Unit) — Qualcomm Hexagon, Apple Neural Engine, MediaTek APU sayəsində müasir smartfonlarda əldə edilə bilər. NPU 50–100 mVt enerji sərfiyyatı ilə 2–5 ms-də aşkarlama aparır, GPU isə 500–2000 mVt sərf edir. Davamlı aşkarlama (kamera həmişə açıq) üçün NPU cihazın həddindən artıq qızması olmadan yeganə praktik variantdır.

Android və iOS-da ML Kit Face Detection

ML Kit Face Detection — mobil cihazlarda üzləri aşkarlamaq üçün ən məşhur SDK-dır. ML Kit iki rejim təklif edir: contour mode (dəqiq maska vurmaq üçün 468 üz kontur nöqtəsi) və classification mode (emosiyaların müəyyən edilməsi: gülümsəmə, açıq gözlər, açıq ağız). Rejimlər FaceDetectorOptions-da birləşdirilir. ML Kit NNAPI/GPU Delegate vasitəsilə optimallaşdırma ilə Google MobileNetV2-SSD neyron şəbəkəsindən istifadə edir.

ML Kit Face Detection qurulması: setPerformanceMode(FACE_DETECTION_FAST / ACCURATE), setLandmarkMode (əsas nöqtələr), setContourMode (kontur nöqtələri), setClassificationMode (emosiyalar). Maksimum sürət üçün FAST + LANDMARKS_ONLY + kontursuz istifadə edin. AR filtrləri üçün — ACCURATE + ALL_CONTOURS. Google-a (2025) görə, FAST rejimi 5 ms-də 98% dəqiqlik verir, ACCURATE — 15 ms-də 99%.

kotlin
// ML Kit Face Detection konturlarla
val options = FaceDetectorOptions.Builder()
    .setContourMode(FaceDetectorOptions.ContourMode.ALL)
    .setClassificationMode(FaceDetectorOptions.ClassificationMode.ALL)
    .setPerformanceMode(FaceDetectorOptions.PerformanceMode.FAST)
    .enableTracking()
    .build()
val detector = FaceDetection.getClient(options)

detector.process(inputImage)
    .addOnSuccessListener { faces ->
        faces.forEach { face ->
            val trackingId = face.trackingId
            val smile = face.smilingProbability
            val leftEyeOpen = face.leftEyeOpenProbability
        }
    }

ML Kit-də Face Tracking — video axını üçün unikal xüsusiyyətdir. Aşkarlanan hər üzə kadrlar arasında qalan tracking ID (tam ədəd) təyin edilir. Bu, təkrar aşkarlama olmadan AR obyektlərini konkret üzə bağlamağa imkan verir. Traktor Optical Flow-dan istifadə edir və üz qismən örtüldükdə belə ID-ni saxlayır. Tracking ID üz kadrdan 1 saniyədən çox çıxdıqda sıfırlanır.

Apple Vision Framework: VNDetectFaceRectanglesRequest

Apple Vision Framework — Apple Neural Engine vasitəsilə Core ML üzərində işləyən Face Detection üçün yerli iOS framework-üdür. Vision VNDetectFaceRectanglesRequest (yalnız bounding box) və VNDetectFaceLandmarksRequest (kontur nöqtələri ilə) təqdim edir. Vision Framework iOS 11-dən etibarən iOS-a daxildir və əlavə SDK tələb etmir — Foundation-ın bir hissəsidir.

Vision Framework üstünlükləri: üçüncü tərəf kitabxanalarından sıfır asılılıq, A12+ çiplərində Apple Neural Engine (ANE) vasitəsilə işləmə, exifOrientation vasitəsilə avtomatik təsvir oriyentasiyası, sürət/dəqiqlik tənzimlənməsi üçün CIDetectorAccuracy dəstəyi. Vision bounding box (normallaşdırılmış koordinatlar 0..1) və landmarks (VNFaceLandmarkRegion2D) ilə VNFaceObservation qaytarır.

iOS-da Vision vs ML Kit: Vision köhnə cihazlarda (A12–A15) daha sürətlidir, çünki Apple-ın yerli neyron mühərriklərindən istifadə edir. ML Kit Google modellərindən istifadə edir və mürəkkəb bucaqlarda (profil, güclü əyilmə) daha dəqiq ola bilər. Sadə aşkarlama (kamera, foto) üçün — Vision. AR filtrləri və kontur maskaları üçün — ML Kit (Vision-da 76 nöqtəyə qarşı 468 nöqtə).

swift
import Vision

let request = VNDetectFaceRectanglesRequest { request, error in
    guard let observations = request.results as? [VNFaceObservation] else { return }
    for face in observations {
        let rect = face.boundingBox // normallaşdırılmış 0..1
        let confidence = face.confidence
    }
}

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

VNDetectFaceLandmarksRequest — əsas nöqtələr üçün genişləndirilmiş versiyadır. Hər nöqtə qrupu üçün VNFaceLandmarkRegion2D qaytarır: leftEye, rightEye, nose, faceContour, innerLips, outerLips. Hər qrup CGPoint massividir (normallaşdırılmış). Vision ML Kit kimi 468 nöqtə qaytarmır — yalnız 76 əsas nöqtə. Dəqiq üz maskası üçün ML Kit daha yaxşıdır, əsas aşkarlama üçün — Vision.

OpenCV Haar Cascade: klassik yanaşma

OpenCV Haar Cascade — Haar-oxşar xüsusiyyətlər kaskadına əsaslanan klassik Face Detection alqoritmidir (Viola-Jones, 2001). Yaşına baxmayaraq, Haar Cascade hələ də məhdud resurslu layihələrdə istifadə olunur: Raspberry Pi, IoT cihazları, daxili sistemlər. Alqoritm GPU və ya NPU tələb etmir — VGA təsvir ölçüsündə kadr başına 5–15 ms sürətlə istənilən CPU-da işləyir.

LBP Cascade (Local Binary Patterns) — OpenCV-də Haar Cascade-ə alternativdir. LBP daha sürətli (2–5 ms) və işıqlandırmaya daha az həssasdır, lakin daha çox yanlış müsbət nəticələr verir. Haar daha dəqiqdir (LBP üçün 80–85%-ə qarşı 85–90%), lakin parıltı və kölgələrə həssasdır. Mobil tətbiqlər üçün OpenCV Face Detection dəqiqlik baxımından neyron şəbəkə metodlarından geri qalır, lakin uyğunluq baxımından qalib gəlir — istənilən cihazda işləyir.

kotlin
// OpenCV Face Detection CascadeClassifier vasitəsilə
val cascadeFile = File(context.filesDir, "haarcascade_frontalface_default.xml")
val faceDetector = CascadeClassifier(cascadeFile.absolutePath)

val gray = Mat()
Imgproc.cvtColor(colorFrame, gray, Imgproc.COLOR_RGBA2GRAY)
val faces = MatOfRect()
faceDetector.detectMultiScale(gray, faces)

faces.toList().forEach { rect ->
    // rect = üz bounding box
}

OpenCV çatışmazlıqları: yüksək yanlış müsbət nisbəti (15% qədər), profil bucaqları ilə zəif iş (>30° — dəqiqliyin 50% düşməsi), əlavə model olmadan landmarks-ın olmaması, kadrlar arasında tracking yoxdur. Müasir mobil tətbiqlər üçün OpenCV Face Detection Google Play Services olmayan cihazlar (Huawei, Amazon Fire) üçün fallback-dir. Əsas ssenarilər üçün — ML Kit və ya Vision.

Face Detection vs Face Recognition: fərq

Face Detection — şəkildə üzün varlığını və mövqeyini müəyyən etmək. Nəticə: bounding box və əsas nöqtələr. Face Recognition — üz əsasında şəxsiyyətin identifikasiyası: bu üzün konkret bir şəxsə aid olduğunu müəyyən etmək. Face Recognition embeddinglərdən (üzü təmsil edən ədədlər vektoru) istifadə edir və onları məlum üzlər bazası ilə müqayisə edir. Face Detection Face Recognition üçün məcburi ilk mərhələdir.

Face Recognition texnologiyaları: FaceNet (Google, 2015) — 128–512 float dəyər ölçüsündə embeddingləri öyrətmək üçün triplet loss, ArcFace (2019) — additive angular margin loss, ən yaxşı dəqiqlik (LFW-də 99.83%). Mobil tətbiqlər üçün Face Recognition fərdi TFLite modeli tələb edir — ML Kit şəxsiyyət identifikasiyası üçün hazır API təqdim etmir (yalnız aşkarlama).

Mobil cihazlarda məxfilik: Face Detection təhlükəsizdir — istifadəçi haqqında məlumat saxlamır. Face Recognition müqayisə üçün embeddinglərin və ya fotoşəkillərin saxlanmasını tələb edir. Apple Face Recognition üçün istifadəçinin açıq razılığını tələb edir və reklam üçün istifadəsini qadağan edir. Google ML Kit məxfilik risklərindən qaçmaq üçün qəsdən Face Recognition daxil etmir. Identifikasiya olmadan aşkarlama üçün — heç bir məhdudiyyət yoxdur.

XüsusiyyətFace DetectionFace Recognition
NəticəÜz fotoda haradadırÜz kimə aiddir
AlqoritmlərMTCNN, RetinaFace, ML KitFaceNet, ArcFace, DeepFace
SaxlamaTələb olunmurEmbeddinglər bazası
MəxfilikAşağı riskGDPR, CCPA məhdudiyyətləri

Face Liveness Detection — üzün real olduğuna əlavə yoxlama (şəkil/video deyil). Göz hərəkəti analizi (blink detection), mikro-mimika, dərinlik xəritəsi (3D kamera) istifadə edir. Liveness Detection bank və ödəniş tətbiqləri üçün məcburidir. ML Kit-də daxili liveness yoxdur — fərdi model və ya yoxlama üçün Google Play Integrity API istifadə edin.

Mobil tətbiqlərdə Face Detection tətbiqi

AR filtrləri və maskalar — Face Detection-ın ən populyar tətbiqidir. Üz kontur nöqtələrinə (468 nöqtə) əsasən 3D maskalar, papaqlar, eynəklər, bığlar vurulur. ML Kit Face Detection + SceneKit (iOS) və ya Filament (Android) real-time AR təcrübəsi yaradır. Snapchat və Instagram MobileNet + MTCNN əsasında öz detektorlarından istifadə edir. Fərdi AR filtrləri üçün ML Kit və 3D mühərrik kifayətdir.

Foto redaktorları və retuş — Face Detection avtomatik korreksiya üçün üz sahəsini müəyyən edir: dəri rənginin hamarlanması, qüsurların silinməsi, göz və dişlərin yaxşılaşdırılması. OpenCV + ML Kit Face Detection Selective Gaussian Blur (dərinin hamarlanması) və göz kontrastı üçün koordinatlar verir. Real tətbiq — Facetune, BeautyPlus, YouCam Makeup.

Diqqət nəzarəti — baxış istiqamətinin müəyyən edilməsi (gaze detection). Face Detection bounding box və göz landmarks-ı qaytarır. Göz bəbəyinin gözə nisbətən mövqeyinə əsasən istifadəçinin hara baxdığı müəyyən edilir: ekrana, sola, sağa, yuxarı. E-təhsildə (tələbənin mühazirəyə baxdığına nəzarət), reklamda (diqqət metrikaları), sürücü asistentlərində (yorğunluq nəzarəti) tətbiq olunur.

swift
// AR filtri üçün ARKit + Vision
let faceLandmarksRequest = VNDetectFaceLandmarksRequest { req, _ in
    guard let face = req.results?.first as? VNFaceObservation else { return }
    if let leftEye = face.landmarks?.leftEye {
        // Sol gözdə AR obyekt örtüyü
    }
}

let handler = VNSequenceRequestHandler()
for pixelBuffer in videoStream {
    try handler.perform([faceLandmarksRequest], on: pixelBuffer)
}

Tibb və wellness — Face Detection üz asimmetriyasının təhlili (nevroloji pozğunluqların diaqnostikası), dərinin mikrovibrasiyası ilə nəbzin qiymətləndirilməsi (kamera vasitəsilə fotopletismoqrafiya), dərinin nəmlik səviyyəsinin təyini üçün istifadə olunur. ML Kit Face Detection + OpenCV tibbi sertifikatlaşdırma olmadan ilkin skrininq üçün kifayət qədər dəqiqlik təmin edir. İstehsal tibb üçün FDA/CE sertifikatı tələb olunur.

Tez-tez verilən suallar

Face Detection və Face Recognition arasında fərq nədir?

Face Detection — şəkildə üzü tapır və onun sərhədlərini (düzbucaqlının koordinatları) qaytarır. Face Recognition — bu üzün kimə aid olduğunu müəyyən edir, məlum üzlər bazası ilə müqayisə edir. Aşkarlama tanıma üçün ilk addımdır. ML Kit və Vision Framework yalnız Face Detection təmin edir. Tanıma üçün fərdi TFLite modeli (FaceNet, ArcFace) + cihazda embeddinglər bazası lazımdır.

Hansı Face Detection SDK mobil cihazlarda ən sürətlidir?

ML Kit Face Detection — NNAPI/GPU Delegate sayəsində müasir cihazlarda ən sürətli (kadr başına 5–15 ms). Apple Vision Framework — iOS-da daha sürətli (A12+ ANE vasitəsilə) — 3–10 ms. OpenCV Haar Cascade — CPU-da 5–10 ms, lakin aşağı dəqiqlik (ML Kit-də 98%-ə qarşı 82%). NPU olan cihazlarda (Snapdragon 8 Gen 3, Apple A17 Pro) ML Kit və Vision 2–5 ms-də aşkarlama aparır.

Face Detection qaranlıq eynək və ya maska ilə işləyirmi?

ML Kit və Vision Framework eynəklər (o cümlədən qaranlıq) və tibbi maskalarla düzgün işləyir. Maska ilə aşkarlama dəqiqliyi 98%-dən 90–92%-ə düşür, lakin üz yenə də yuxarı hissədən (gözlər, qaşlar, alın) aşkarlanır. Kontur nöqtələri (üz konturu) daha az dəqiq olur — maskalar üçün yalnız kontursuz classification mode (gülümsəmə, açıq gözlər) istifadə edin.

Face Detection real vaxtda istifadə edilə bilərmi?

Bəli, real vaxtda Face Detection bütün müasir SDK-lar tərəfindən dəstəklənir. ML Kit — CameraX Analyzer vasitəsilə 480p kadrda 60 FPS-ə qədər. Apple Vision — AVFoundation vasitəsilə iOS-da 30 FPS-ə qədər. Real-time üçün FAST performance rejimindən istifadə edin, təsvir ölçüsünü 480p-ə endirin və hər kadrın təkrar aşkarlanması olmadan kadrlar arasında ID-ni saxlamaq üçün face tracking (ML Kit) aktivləşdirin.

Face Detection üçün cihazda internet lazımdırmı?

Xeyr, bütün müasir mobil Face Detection SDK-lar tamamilə yerli işləyir. ML Kit modeli ilk işə salınmada Google Play Services vasitəsilə yükləyir (əgər yüklənmiş rejim seçilibsə), bundan sonra oflayn işləyir. Apple Vision Framework — iOS-a daxildir, internet tələb etmir. OpenCV — tam oflayn. Bulud API-ləri (Google Cloud Vision, AWS Rekognition) üçün internet lazımdır, lakin onlar real-time üçün mobil tətbiqlərdə istifadə edilmir.

Nəticə

  • Face Detection — şəkildə üzlərin axtarışı: bounding box və əsas nöqtələr
  • ML Kit — 5–15 ms, 98% dəqiqlik, 468 kontur nöqtəsi, tracking ID
  • Apple Vision — yerli iOS, ANE vasitəsilə, 3–10 ms, 76 landmarks
  • OpenCV Haar — klassik metod, CPU, 82% dəqiqlik, köhnə cihazlar üçün fallback
  • Face Detection ≠ Face Recognition — aşkarlama şəxsiyyəti identifikasiya etmir
  • Real-time — NPU vasitəsilə müasir cihazlarda 60 FPS-ə qədər
  • Tətbiq — AR filtrləri, retuş, diqqət nəzarəti, tibb

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