Face Detection एक कंप्यूटर विज़न तकनीक है जो डिजिटल छवियों और वीडियो स्ट्रीम में मानव चेहरों को खोजने और स्थानीकृत करने के लिए उपयोग होती है। Face Recognition (व्यक्ति की पहचान) के विपरीत, Face Detection केवल चेहरे की उपस्थिति और उसकी सीमाओं — bounding box और keypoints (आँखें, नाक, मुँह) को निर्धारित करता है। मोबाइल डेवलपमेंट में, Face Detection का उपयोग ML Kit, ARKit, Vision Framework और OpenCV में किया जाता है। Google ML Kit, 2025 के अनुसार, आधुनिक उपकरणों पर चेहरे का पता लगाने में 5–15 मि.से. लगते हैं जिसकी सटीकता 98% है।
मुख्य बातें
Face Detection कंप्यूटर विज़न का एक कार्य है जो छवि में मानव चेहरों की उपस्थिति और स्थान का पता लगाता है। एल्गोरिदम एक bounding box (चेहरे के चारों ओर आयत) और confidence score (चेहरा होने की संभावना) लौटाता है। आधुनिक एल्गोरिदम facial landmarks भी लौटाते हैं — प्रमुख बिंदु (आँखें, भौहें, नाक, मुँह, चेहरे की रूपरेखा)। Face Detection कई ML कार्यों के लिए पहला कदम है: व्यक्ति पहचान, AR फ़िल्टर, ध्यान विश्लेषण।
एल्गोरिदम का इतिहास Viola-Jones (2001) से शुरू हुआ — CPU पर Haar-जैसी विशेषताओं का कैस्केड। 2010 के दशक में HOG + SVM (Histogram of Oriented Gradients) का बोलबाला था। 2016 से सभी आधुनिक एल्गोरिदम कन्वोल्यूशनल न्यूरल नेटवर्क (CNN) पर आधारित हैं: MTCNN, RetinaFace, SSH, MobileNet-SSD, YOLO-Face। GPU पर CNN एल्गोरिदम 95–99% सटीकता देते हैं जबकि क्लासिक विधियाँ 85–90% देती हैं। WiderFace बेंचमार्क (2025) के अनुसार, RetinaFace सबसे कठिन सबसेट पर 96.3% mAP प्राप्त करता है।
MTCNN (Multi-Task Cascaded CNN) एक क्लासिक तीन-चरणीय डिटेक्टर है: P-Net (प्रस्ताव नेटवर्क) उम्मीदवार ढूँढता है, R-Net (रिफाइन नेटवर्क) उन्हें फ़िल्टर करता है, O-Net (आउटपुट नेटवर्क) bounding box को परिष्कृत करता है और landmarks आउटपुट करता है। MTCNN 640x480 रिज़ॉल्यूशन पर 30–50 मि.से. प्रति फ्रेम CPU पर चलता है। मोबाइल उपकरणों के लिए, MTCNN GPU के बिना गति और सटीकता का इष्टतम संतुलन प्रदान करता है।
| एल्गोरिदम | सटीकता (WiderFace) | गति (640x480) | प्लेटफ़ॉर्म |
|---|---|---|---|
| RetinaFace | 96.3% | 15 मि.से. (GPU) | Android, iOS |
| MTCNN | 91.2% | 30–50 मि.से. (CPU) | क्रॉस-प्लेटफ़ॉर्म |
| ML Kit | 98.0% | 5–15 मि.से. (GPU/NPU) | Android, iOS |
| OpenCV Haar | 82.5% | 5–10 मि.से. (CPU) | क्रॉस-प्लेटफ़ॉर्म |
रीयल-टाइम Face Detection के लिए वीडियो हेतु 30+ FPS आवश्यक है। यह NPU (न्यूरल प्रोसेसिंग यूनिट) — Qualcomm Hexagon, Apple Neural Engine, MediaTek APU की बदौलत आधुनिक स्मार्टफ़ोन पर संभव है। NPU 50–100 मि.वॉट बिजली खपत के साथ 2–5 मि.से. में डिटेक्शन करता है, जबकि GPU 500–2000 मि.वॉट खपत करता है। निरंतर डिटेक्शन (कैमरा हमेशा चालू) के लिए, डिवाइस के बिना गरम हुए NPU ही एकमात्र व्यावहारिक विकल्प है।
ML Kit Face Detection मोबाइल उपकरणों पर चेहरे का पता लगाने के लिए सबसे लोकप्रिय SDK है। ML Kit दो मोड प्रदान करता है: contour mode (सटीक मास्क ओवरले के लिए चेहरे के 468 कंटूर बिंदु) और classification mode (भावना पहचान: मुस्कान, खुली आँखें, खुला मुँह)। मोड FaceDetectorOptions में संयुक्त होते हैं। ML Kit NNAPI/GPU Delegate के माध्यम से अनुकूलन के साथ Google के MobileNetV2-SSD न्यूरल नेटवर्क का उपयोग करता है।
ML Kit Face Detection कॉन्फ़िगरेशन: setPerformanceMode(FACE_DETECTION_FAST / ACCURATE), setLandmarkMode (प्रमुख बिंदु), setContourMode (कंटूर बिंदु), setClassificationMode (भावनाएँ)। अधिकतम गति के लिए FAST + LANDMARKS_ONLY + बिना कंटूर का उपयोग करें। AR फ़िल्टर के लिए — ACCURATE + ALL_CONTOURS। Google (2025) के अनुसार, FAST मोड 5 मि.से. पर 98% सटीकता देता है, ACCURATE — 15 मि.से. पर 99%।
// ML Kit Face Detection with contours
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 में Face Tracking — वीडियो स्ट्रीम के लिए एक अनूठी सुविधा। प्रत्येक पहचाने गए चेहरे को एक tracking ID (पूर्णांक) दिया जाता है जो फ्रेमों के बीच बना रहता है। यह AR ऑब्जेक्ट्स को बिना पुनः डिटेक्शन के किसी विशिष्ट चेहरे से जोड़ने की अनुमति देता है। ट्रैकर Optical Flow का उपयोग करता है और आंशिक चेहरे के ढकने पर भी ID बनाए रखता है। जब चेहरा 1 सेकंड से अधिक समय तक फ्रेम से बाहर होता है तो Tracking ID रीसेट हो जाता है।
Apple Vision Framework iOS के लिए एक मूल फ्रेमवर्क है जो Apple Neural Engine पर Core ML के माध्यम से Face Detection के लिए काम करता है। Vision प्रदान करता है: VNDetectFaceRectanglesRequest (केवल bounding box) और VNDetectFaceLandmarksRequest (कंटूर बिंदुओं के साथ)। Vision Framework iOS 11 से iOS में निर्मित है और इसे अतिरिक्त SDK की आवश्यकता नहीं है — यह Foundation का हिस्सा है।
Vision Framework के लाभ: तृतीय-पक्ष लाइब्रेरीज़ पर शून्य निर्भरता, A12+ चिप्स पर Apple Neural Engine (ANE) के माध्यम से काम करता है, exifOrientation के माध्यम से स्वचालित छवि अभिविन्यास हैंडलिंग, गति/सटीकता ट्यूनिंग के लिए CIDetectorAccuracy समर्थन। Vision VNFaceObservation को bounding box (सामान्यीकृत निर्देशांक 0..1) और landmarks (VNFaceLandmarkRegion2D) के साथ लौटाता है।
iOS पर Vision बनाम ML Kit: Vision पुराने उपकरणों (A12–A15) पर तेज़ है क्योंकि यह मूल Apple न्यूरल इंजन का उपयोग करता है। ML Kit Google मॉडल का उपयोग करता है और जटिल कोणों (प्रोफ़ाइल, तीव्र झुकाव) पर अधिक सटीक हो सकता है। सरल डिटेक्शन (कैमरा, फ़ोटो) के लिए — Vision का उपयोग करें। AR फ़िल्टर और कंटूर मास्क के लिए — ML Kit का उपयोग करें (Vision में 76 बिंदुओं की तुलना में 468 बिंदु)।
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 // normalized 0..1
let confidence = face.confidence
}
}
let handler = VNImageRequestHandler(
cgImage: cgImage, orientation: .up, options: [:]
)
try handler.perform([request])
VNDetectFaceLandmarksRequest प्रमुख बिंदुओं के लिए विस्तारित संस्करण है। प्रत्येक बिंदु समूह के लिए VNFaceLandmarkRegion2D लौटाता है: leftEye, rightEye, nose, faceContour, innerLips, outerLips। प्रत्येक समूह CGPoint (सामान्यीकृत) की एक सरणी है। Vision ML Kit की तरह 468 बिंदु नहीं लौटाता — केवल 76 प्रमुख बिंदु। सटीक चेहरे के मास्क के लिए, ML Kit बेहतर है; बुनियादी डिटेक्शन के लिए, Vision पर्याप्त है।
OpenCV Haar Cascade Haar-जैसी विशेषताओं (Viola-Jones, 2001) के कैस्केड पर आधारित एक क्लासिक Face Detection एल्गोरिदम है। अपनी पुरानी होने के बावजूद, Haar Cascade अभी भी सीमित संसाधनों वाली परियोजनाओं में उपयोग किया जाता है: Raspberry Pi, IoT उपकरण, एम्बेडेड सिस्टम। एल्गोरिदम को GPU या NPU की आवश्यकता नहीं है — यह VGA-रिज़ॉल्यूशन फ्रेम पर 5–15 मि.से. प्रति फ्रेम की दर से किसी भी CPU पर चलता है।
LBP Cascade (Local Binary Patterns) OpenCV में Haar Cascade का एक विकल्प है। LBP तेज़ (2–5 मि.से.) और प्रकाश के प्रति कम संवेदनशील है, लेकिन अधिक गलत सकारात्मक परिणाम देता है। Haar अधिक सटीक (85–90% बनाम LBP का 80–85%) है, लेकिन चकाचौंध और छाया के प्रति संवेदनशील है। मोबाइल ऐप्स के लिए, OpenCV Face Detection सटीकता में न्यूरल नेटवर्क विधियों से कमतर है, लेकिन संगतता में जीतता है — यह किसी भी डिवाइस पर काम करता है।
// OpenCV Face Detection via CascadeClassifier
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 = face bounding box
}
OpenCV की सीमाएँ: उच्च गलत सकारात्मक दर (15% तक), प्रोफ़ाइल कोणों पर खराब प्रदर्शन (>30° — सटीकता 50% तक गिर जाती है), अतिरिक्त मॉडल के बिना landmarks नहीं, फ्रेमों के बीच कोई ट्रैकिंग नहीं। आधुनिक मोबाइल ऐप्स के लिए, OpenCV Face Detection Google Play Services (Huawei, Amazon Fire) के बिना उपकरणों के लिए फ़ॉलबैक के रूप में कार्य करता है। मुख्य परिदृश्यों के लिए — ML Kit या Vision का उपयोग करें।
Face Detection — छवि में चेहरे की उपस्थिति और स्थिति का निर्धारण। परिणाम: bounding box और प्रमुख बिंदु। Face Recognition — किसी व्यक्ति की उसके चेहरे से पहचान: यह निर्धारित करना कि यह चेहरा किसी विशिष्ट व्यक्ति का है। Face Recognition embeddings (चेहरे को दर्शाने वाली संख्याओं का वेक्टर) का उपयोग करता है और उनकी तुलना ज्ञात चेहरों के डेटाबेस से करता है। Face Recognition के लिए Face Detection एक अनिवार्य पहला कदम है।
Face Recognition तकनीकें: FaceNet (Google, 2015) — 128–512 float-मान embeddings के प्रशिक्षण के लिए triplet loss, ArcFace (2019) — additive angular margin loss, सर्वोत्तम सटीकता (LFW पर 99.83%)। मोबाइल ऐप्स के लिए, Face Recognition को कस्टम TFLite मॉडल की आवश्यकता होती है — ML Kit व्यक्ति पहचान के लिए तैयार API प्रदान नहीं करता (केवल डिटेक्शन)।
मोबाइल उपकरणों पर गोपनीयता: Face Detection सुरक्षित है — यह उपयोगकर्ता डेटा संग्रहीत नहीं करता। Face Recognition को तुलना के लिए embeddings या फ़ोटो संग्रहीत करने की आवश्यकता होती है। Apple को Face Recognition के लिए स्पष्ट उपयोगकर्ता सहमति की आवश्यकता है और विज्ञापन के लिए इसके उपयोग पर प्रतिबंध है। Google ML Kit जानबूझकर Face Recognition शामिल नहीं करता ताकि गोपनीयता जोखिमों से बचा जा सके। पहचान के बिना डिटेक्शन के लिए — कोई प्रतिबंध नहीं हैं।
| विशेषता | Face Detection | Face Recognition |
|---|---|---|
| परिणाम | चेहरा फ़ोटो में कहाँ है | चेहरा किसका है |
| एल्गोरिदम | MTCNN, RetinaFace, ML Kit | FaceNet, ArcFace, DeepFace |
| भंडारण | आवश्यक नहीं | एम्बेडिंग डेटाबेस |
| गोपनीयता | कम जोखिम | GDPR, CCPA प्रतिबंध |
Face Liveness Detection — यह सुनिश्चित करने के लिए एक अतिरिक्त जाँच कि चेहरा वास्तविक है (फ़ोटो/वीडियो नहीं)। आँखों की गति विश्लेषण (blink detection), सूक्ष्म-अभिव्यक्तियाँ, डेप्थ मैप (3D कैमरा) का उपयोग करता है। बैंकिंग और भुगतान अनुप्रयोगों के लिए Liveness Detection अनिवार्य है। ML Kit में अंतर्निहित liveness नहीं है — सत्यापन के लिए कस्टम मॉडल या Google Play Integrity API का उपयोग करें।
AR फ़िल्टर और मास्क — Face Detection का सबसे लोकप्रिय उपयोग। चेहरे के कंटूर बिंदुओं (468 बिंदु) के आधार पर, 3D मास्क, टोपी, चश्मा, मूंछें ओवरले की जाती हैं। ML Kit Face Detection + SceneKit (iOS) या Filament (Android) रीयल-टाइम AR अनुभव बनाता है। Snapchat और Instagram MobileNet + MTCNN पर आधारित अपने स्वयं के डिटेक्टर का उपयोग करते हैं। कस्टम AR फ़िल्टर के लिए, ML Kit और एक 3D इंजन पर्याप्त है।
फ़ोटो संपादक और रीटचिंग — Face Detection स्वचालित सुधार के लिए चेहरे के क्षेत्र की पहचान करता है: त्वचा के रंग का संतुलन, दोष हटाना, आँखों और दांतों में सुधार। OpenCV + ML Kit Face Detection Selective Gaussian Blur (त्वचा को चिकना करना) और आँखों के कंट्रास्ट के लिए निर्देशांक प्रदान करता है। वास्तविक अनुप्रयोग — Facetune, BeautyPlus, YouCam Makeup।
ध्यान निगरानी — टकटकी दिशा निर्धारण (gaze detection)। Face Detection bounding box और आँखों के landmarks लौटाता है। आँख के सापेक्ष पुतली की स्थिति से निर्धारित होता है कि उपयोगकर्ता कहाँ देख रहा है: स्क्रीन पर, बाएँ, दाएँ, ऊपर। ई-लर्निंग (यह निगरानी कि छात्र व्याख्यान देख रहा है), विज्ञापन (ध्यान मीट्रिक्स), ड्राइवर सहायता (थकान निगरानी) में उपयोग किया जाता है।
// ARKit + Vision for AR filter
let faceLandmarksRequest = VNDetectFaceLandmarksRequest { req, _ in
guard let face = req.results?.first as? VNFaceObservation else { return }
if let leftEye = face.landmarks?.leftEye {
// AR object overlay on left eye
}
}
let handler = VNSequenceRequestHandler()
for pixelBuffer in videoStream {
try handler.perform([faceLandmarksRequest], on: pixelBuffer)
}
चिकित्सा और कल्याण — Face Detection का उपयोग चेहरे की विषमता विश्लेषण (न्यूरोलॉजिकल विकारों का निदान), त्वचा के सूक्ष्म-कंपन से नाड़ी अनुमान (कैमरे के माध्यम से फोटोप्लेथिस्मोग्राफी), त्वचा की नमी निर्धारण के लिए किया जाता है। ML Kit Face Detection + OpenCV चिकित्सा प्रमाणन के बिना प्रारंभिक जांच के लिए पर्याप्त सटीकता प्रदान करते हैं। उत्पादन चिकित्सा के लिए, FDA/CE प्रमाणन आवश्यक है।
अक्सर पूछे जाने वाले प्रश्न
Face Detection — छवि में चेहरा ढूँढता है और उसकी सीमाएँ (आयत निर्देशांक) लौटाता है। Face Recognition — ज्ञात चेहरों के डेटाबेस से तुलना करके निर्धारित करता है कि चेहरा किसका है। डिटेक्शन पहचान के लिए पहला कदम है। ML Kit और Vision Framework केवल Face Detection प्रदान करते हैं। पहचान के लिए, आपको डिवाइस पर कस्टम TFLite मॉडल (FaceNet, ArcFace) + एम्बेडिंग डेटाबेस की आवश्यकता है।
ML Kit Face Detection NNAPI/GPU Delegate की बदौलत आधुनिक उपकरणों पर सबसे तेज़ है (5–15 मि.से. प्रति फ्रेम)। Apple Vision Framework iOS पर तेज़ है (A12+ ANE के माध्यम से) — 3–10 मि.से. OpenCV Haar Cascade — CPU पर 5–10 मि.से., लेकिन कम सटीकता (ML Kit के 98% की तुलना में 82%)। NPU वाले उपकरणों (Snapdragon 8 Gen 3, Apple A17 Pro) पर ML Kit और Vision 2–5 मि.से. में डिटेक्शन करते हैं।
ML Kit और Vision Framework चश्मे (गहरे रंग सहित) और मेडिकल मास्क के साथ सही ढंग से काम करते हैं। मास्क के साथ डिटेक्शन सटीकता 98% से घटकर 90–92% हो जाती है, लेकिन चेहरा अभी भी ऊपरी भाग (आँखें, भौहें, माथा) से पता लगाया जाता है। कंटूर बिंदु (चेहरे की रूपरेखा) कम सटीक हो जाते हैं — मास्क के लिए बिना कंटूर के केवल classification mode (मुस्कान, खुली आँखें) का उपयोग करें।
हाँ, रीयल-टाइम Face Detection सभी आधुनिक SDK द्वारा समर्थित है। ML Kit — CameraX Analyzer के माध्यम से 480p पर 60 FPS तक। Apple Vision — AVFoundation के माध्यम से iOS पर 30 FPS तक। रीयल-टाइम के लिए FAST प्रदर्शन मोड का उपयोग करें, रिज़ॉल्यूशन को 480p तक कम करें, और प्रत्येक फ्रेम को पुनः डिटेक्ट किए बिना फ्रेमों के बीच ID बनाए रखने के लिए face tracking (ML Kit) सक्षम करें।
नहीं, सभी आधुनिक मोबाइल Face Detection SDK पूरी तरह से ऑन-डिवाइस काम करते हैं। ML Kit पहले लॉन्च पर Google Play Services के माध्यम से मॉडल डाउनलोड करता है (यदि डाउनलोड किया गया मोड चुना गया है), जिसके बाद यह ऑफ़लाइन काम करता है। Apple Vision Framework — iOS में निर्मित, इंटरनेट की आवश्यकता नहीं। OpenCV — पूरी तरह से ऑफ़लाइन। क्लाउड API (Google Cloud Vision, AWS Rekognition) के लिए इंटरनेट आवश्यक है, लेकिन वे रीयल-टाइम डिटेक्शन के लिए मोबाइल ऐप्स में उपयोग नहीं किए जाते।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें