इस प्रोजेक्ट के बारे में
face_recognition चेहरों को पहचानने और उनमें हेरफेर करने के लिए एक पायथन लाइब्रेरी और कमांड-लाइन टूल है। यह dlib के अत्याधुनिक फेस रिकग्निशन मॉडल पर बनाया गया है, और README के अनुसार Labeled Faces in the Wild (LFW) बेंचमार्क पर इसकी सटीकता 99.38% है। यह चेहरों का पता लगाने, चेहरे के लैंडमार्क निकालने, फेस एनकोडिंग की गणना करने और लोगों की पहचान करने के लिए चेहरों की तुलना करने हेतु एक सरल API प्रदान करता है।
## मुख्य विशेषताएं
- `face_locations()` के साथ एक छवि में सभी चेहरों को ढूंढें, जिसमें उच्च सटीकता के लिए एक वैकल्पिक डीप-लर्निंग-आधारित CNN मॉडल शामिल है (बेहतर प्रदर्शन के लिए CUDA की आवश्यकता होती है)।
- `face_landmarks()` के साथ चेहरे की विशेषताओं (आंखें, नाक, मुंह, ठुड्डी) का पता लगाएं और उन्हें रेखांकित करें, जिससे डिजिटल मेकअप जैसे एप्लिकेशन संभव हो पाते हैं।
- `face_encodings()` द्वारा उत्पन्न 128-आयामी फेस एनकोडिंग की तुलना करके और `compare_faces()` का उपयोग करके मिलान करने से चेहरों की पहचान करें।
- दो कमांड-लाइन प्रोग्राम शामिल हैं: छवियों के फ़ोल्डर में ज्ञात लोगों की पहचान करने के लिए `face_recognition`, और चेहरे के बाउंडिंग-बॉक्स निर्देशांक आउटपुट करने के लिए `face_detection`।
## इंस्टॉलेशन
- macOS या Linux पर Python 3.3+ या Python 2.7 की आवश्यकता है। Windows आधिकारिक तौर पर समर्थित नहीं है, लेकिन समुदाय द्वारा प्रदान किए गए निर्देशों के साथ काम कर सकता है।
- पायथन बाइंडिंग के साथ `dlib` पहले इंस्टॉल होना चाहिए (macOS/Ubuntu पर स्रोत से बनाएं, या पूर्व-कॉन्फ़िगर VM का उपयोग करें)।
- `cmake` इंस्टॉल करने के बाद `pip3 install face_recognition` के माध्यम से इंस्टॉल करें (उदाहरण के लिए, macOS पर `brew install cmake`)।
- Nvidia Jetson Nano, Raspberry Pi 2+, FreeBSD (`pkg install graphics/py-face-recognition`) और Windows के लिए अतिरिक्त प्लेटफ़ॉर्म गाइड शामिल हैं।
- Heroku या AWS जैसे क्लाउड होस्ट पर आसान तैनाती के लिए एक Docker इमेज प्रदान की गई है।
## उपयोग का उदाहरण (पायथन)
```python
import face_recognition
# छवि में चेहरे ढूंढें
image = face_recognition.load_image_file("your_file.jpg")
face_locations = face_recognition.face_locations(image)
# चेहरे के लैंडमार्क प्राप्त करें
face_landmarks_list = face_recognition.face_landmarks(image)
# किसी व्यक्ति की पहचान करें
known_image = face_recognition.load_image_file("biden.jpg")
unknown_image = face_recognition.load_image_file("unknown.jpg")
biden_encoding = face_recognition.face_encodings(known_image)[0]
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]
results = face_recognition.compare_faces([biden_encoding], unknown_encoding)
```
## कमांड-लाइन इंटरफ़ेस
- `face_recognition ./known_people/ ./unknown_pictures/` प्रत्येक पहचाने गए चेहरे के लिए एक पंक्ति प्रिंट करता है, जिसमें फ़ाइल नाम और पहचाना गया नाम (या `unknown_person`) होता है।
- `--tolerance 0.54` मिलान को सख्त बनाता है; `--show-distance true` गणना की गई फेस दूरी को प्रिंट करता है।
- `--cpus 4` (या सभी कोर के लिए `-1`) मल्टी-कोर सिस्टम पर समानांतर प्रसंस्करण को सक्षम बनाता है।
- `face_detection ./folder_with_pictures/` प्रत्येक पाए गए चेहरे के लिए शीर्ष, दाएं, नीचे, बाएं पिक्सेल निर्देशांक प्रिंट करता है।
## उदाहरण स्क्रिप्ट
रिपॉजिटरी में कई उदाहरण शामिल हैं, जिनमें शामिल हैं:
- डिफ़ॉल्ट HOG मॉडल और CNN डीप-लर्निंग मॉडल के साथ फेस डिटेक्शन।
- रीयल-टाइम वेबकैम पहचान (सरल और तेज़ संस्करण, OpenCV की आवश्यकता है)।
- वीडियो फ़ाइलों में और कैमरे के साथ Raspberry Pi पर फेस रिकग्निशन।
- Flask का उपयोग करके HTTP वेब सेवा।
- प्रति व्यक्ति कई छवियों पर प्रशिक्षण के लिए K-निकटतम पड़ोसी (K-nearest neighbors) और SVM क्लासिफायर।
- लाइव वेबकैम वीडियो में चेहरों को धुंधला करना।
## सावधानियां
- रिकग्निशन मॉडल वयस्कों पर प्रशिक्षित है और 0.6 के डिफ़ॉल्ट तुलना थ्रेशोल्ड के साथ बच्चों पर अच्छा प्रदर्शन नहीं कर सकता है।
- सटीकता जातीय समूहों के बीच भिन्न हो सकती है; विकी ज्ञात सटीकता समस्याओं पर चर्चा करता है।
- तैनाती के लिए, एक Dockerfile और पूर्व-निर्मित Docker इमेज शामिल हैं, जिसमें Nvidia ड्राइवर और nvidia-docker का उपयोग करने वाले Linux सिस्टम के लिए GPU समर्थन है।
यह प्रोजेक्ट dlib की फेस रिकग्निशन क्षमताओं के चारों ओर एक सरल, उच्च-स्तरीय रैपर के रूप में व्यापक रूप से उपयोग किया जाता है और यह प्रोटोटाइपिंग और उन उत्पादन अनुप्रयोगों के लिए उपयुक्त है जहां फेस डिटेक्शन और पहचान की आवश्यकता होती है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.