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ə 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.
| Alqoritm | Dəqiqlik (WiderFace) | Sürət (640x480) | Platforma |
|---|---|---|---|
| RetinaFace | 96.3% | 15 ms (GPU) | Android, iOS |
| MTCNN | 91.2% | 30–50 ms (CPU) | Çarpaz platforma |
| ML Kit | 98.0% | 5–15 ms (GPU/NPU) | Android, iOS |
| OpenCV Haar | 82.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.
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%.
// 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 — 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ə).
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 — 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.
// 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 — şə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ət | Face Detection | Face Recognition |
|---|---|---|
| Nəticə | Üz fotoda haradadır | Üz kimə aiddir |
| Alqoritmlər | MTCNN, RetinaFace, ML Kit | FaceNet, ArcFace, DeepFace |
| Saxlama | Tələb olunmur | Embeddinglər bazası |
| Məxfilik | Aşağı risk | GDPR, 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.
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.
// 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 — şə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.
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.
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.
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.
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ə
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.
Həm də oxuyun