चेहरे की छवियों से लिंग का पता लगाना कंप्यूटर विजन के कई आकर्षक अनुप्रयोगों में से एक है। इस परियोजना में, हम लिंग वर्गीकरण के लिए OpenCV और Roboflow API के लिए OpenCV को जोड़ते हैं, एक उपकरण बनाते हैं जो चेहरे की पहचान करता है, उनकी जांच करता है, और उनके लिंग की भविष्यवाणी करता है। हम इस कोड को टाइप करने और चलाने के लिए विशेष रूप से Google Colab में पायथन का उपयोग करेंगे। यह प्रत्यक्ष कोड का एक आसान-से-फ़ॉलो वॉकथ्रू देता है, प्रत्येक चरण को स्पष्ट करता है ताकि आप इसे समझ सकें और इसे अपने उपक्रमों पर लागू कर सकें।
चरण ४: लिंग का पता लगाने वाली एपीआई चरण ५: प्रत्येक का पता लगाया गया चेहरा चरण ६: परिणामों को प्रदर्शित करना
] ] ]
from google.colab import files import cv2 import numpy as np from matplotlib import pyplot as plt from inference_sdk import InferenceHTTPClient # Upload image uploaded = files.upload() # Load the image for filename in uploaded.keys(): img_path = filename] ] ] क्लाइंट = InferenceRhttpClient ( api_url = "https://detect.roboflow.com", api_key = "use_your_api" )
] ] प्रत्येक फसली चेहरे की छवि को अस्थायी रूप से बचाया जाता है और रोबोफ्लो एपीआई में भेजा जाता है, जहां लिंग-डिटेक्शन-क्यूइयग/2 मॉडल का उपयोग लिंग की भविष्यवाणी करने के लिए किया जाता है।
] यह एक विश्वास स्कोर के साथ भविष्यवाणियां प्रदान करता है, यह दर्शाता है कि मॉडल वर्गीकरण के बारे में कितना निश्चित है। मॉडल को एक मजबूत डेटासेट पर प्रशिक्षित किया जाता है, जिससे यह चेहरे की छवियों की एक विस्तृत श्रृंखला में सटीक भविष्यवाणियां करने की अनुमति देता है। इन भविष्यवाणियों को एपीआई द्वारा लौटा दिया जाता है और प्रत्येक चेहरे को पहचाने गए लिंग और आत्मविश्वास के स्तर के साथ लेबल करने के लिए उपयोग किया जाता है।# Load the Haar Cascade model for face detection face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades 'haarcascade_frontalface_default.xml')# आरंभिक चेहरा गिनती face_count = 0 # लेबल के साथ फसली चेहरे की छवियों को स्टोर करने के लिए सूची cropped_faces = [] # प्रत्येक का पता चला चेहरा for (x, y, w, h) चेहरे में: face_count = 1 # पता लगाए गए चेहरों के चारों ओर आयतें ड्रा करें CV2.Rectangle (IMG, (x, y), (x w, y h), (255, 0, 0), 2) # चेहरे का क्षेत्र निकालें face_img = img [y: y h, x: x w] # अस्थायी रूप से चेहरे की छवि को सहेजें face_img_path = 'temp_face.jpg' cv2.imwrite (face_img_path, face_img) # InferenceHttpClient का उपयोग करके लिंग का पता लगाएं परिणाम = client.infer (face_img_path, model_) यदि परिणाम और परिणाम में 'भविष्यवाणियां' ['भविष्यवाणियां']: भविष्यवाणी = परिणाम ['भविष्यवाणियां'] [0] लिंग = भविष्यवाणी ['वर्ग'] आत्मविश्वास = भविष्यवाणी ['आत्मविश्वास'] # लिंग और आत्मविश्वास के साथ आयत को लेबल करें लेबल = f '{लिंग} ({आत्मविश्वास: .2f})' Cv2.puttext (IMG, लेबल, (x, y - 10), cv2.font_hershey_simplex, 0.8, (255, 0, 0), 2) # सूची में लेबल के साथ फसली चेहरे को जोड़ें cropped_faces.append ((face_img, लेबल))
] यह तब स्लाइसिंग (face_img = img [y: y h, x: x w]) का उपयोग करके चेहरे के क्षेत्र को फसल देता है, इसे आगे की प्रक्रिया के लिए अलग करता है। अस्थायी रूप से फसली चेहरे को बचाने के बाद, सिस्टम इसे क्लाइंट.इन्फर () के माध्यम से रोबोफ्लो मॉडल को भेजता है, जो एक विश्वास स्कोर के साथ लिंग भविष्यवाणी को लौटाता है। सिस्टम इन परिणामों को Cv2.puttext () का उपयोग करके प्रत्येक चेहरे के ऊपर पाठ लेबल के रूप में जोड़ता है, एक स्पष्ट और जानकारीपूर्ण ओवरले प्रदान करता है।
अंत में, हम आउटपुट की कल्पना करते हैं। हम पहले BGR से छवि को RGB में परिवर्तित करते हैं (जैसा कि OpenCV डिफ़ॉल्ट रूप से BGR का उपयोग करता है), फिर पता चला चेहरों और लिंग भविष्यवाणियों को प्रदर्शित करता है। उसके बाद, हम अपने संबंधित लेबल के साथ व्यक्तिगत फसली चेहरे दिखाते हैं।
# Load the image and convert to grayscale img = cv2.imread(img_path) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # Detect faces in the image faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
चाबी छीनना
# Load the Haar Cascade model for face detection face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades 'haarcascade_frontalface_default.xml')
परियोजना पूर्व-प्रशिक्षित एआई मॉडल का उपयोग करके छवियों से लिंग का पता लगाने और वर्गीकृत करने के लिए एक प्रभावी दृष्टिकोण प्रदर्शित करती है। प्रदर्शन ठीक निश्चित रूप से लंबे समय तक यौन अभिविन्यास को अलग करता है, इसकी अटूट गुणवत्ता को प्रदर्शित करता है।
]
]
] यह सटीकता विश्वसनीय लिंग वर्गीकरण की आवश्यकता वाले अनुप्रयोगों के लिए महत्वपूर्ण है।
]
Q1।
परियोजना का उद्देश्य क्या है? परियोजना का उद्देश्य एआई का उपयोग करके छवियों से लिंग का पता लगाना और वर्गीकृत करना है। यह तस्वीरों में व्यक्तियों के लिंगों की पहचान करने और लेबल करने के लिए पूर्व-प्रशिक्षित मॉडल का लाभ उठाता है।q2
# Initialize face count face_count = 0 # List to store cropped face images with labels cropped_faces = [] # Process each detected face for (x, y, w, h) in faces: face_count = 1 # Draw rectangles around the detected faces cv2.rectangle(img, (x, y), (x w, y h), (255, 0, 0), 2) # Extract the face region face_img = img[y:y h, x:x w] # Save the face image temporarily face_img_path = 'temp_face.jpg' cv2.imwrite(face_img_path, face_img) # Detect gender using the InferenceHTTPClient result = CLIENT.infer(face_img_path, model_) if 'predictions' in result and result['predictions']: prediction = result['predictions'][0] gender = prediction['class'] confidence = prediction['confidence'] # Label the rectangle with the gender and confidence label = f'{gender} ({confidence:.2f})' cv2.putText(img, label, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (255, 0, 0), 2) # Add the cropped face with label to the list cropped_faces.append((face_img, label))
q3।
लिंग का पता लगाने वाला मॉडल कैसे काम करता है? मॉडल चेहरों का पता लगाने के लिए छवियों का विश्लेषण करता है और फिर प्रशिक्षित एआई एल्गोरिदम के आधार पर पुरुष या महिला के रूप में प्रत्येक खोजे गए चेहरे को वर्गीकृत करता है। यह भविष्यवाणियों के लिए आत्मविश्वास स्कोर को आउटपुट करता है।लिंग का पता लगाने के लिए कितना सही है? मॉडल विश्वसनीय भविष्यवाणियों को इंगित करने वाले आत्मविश्वास स्कोर के साथ उच्च सटीकता को प्रदर्शित करता है। उदाहरण के लिए, परिणामों में आत्मविश्वास स्कोर 80%से ऊपर था, जो मजबूत प्रदर्शन दिखा रहा था।
# Convert image from BGR to RGB for display img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # Display the image with detected faces and gender labels plt.figure(figsize=(10, 10)) plt.imshow(img_rgb) plt.axis('off') plt.title(f"Detected Faces: {face_count}") plt.show() # Display each cropped face with its label horizontally fig, axes = plt.subplots(1, face_count, figsize=(15, 5)) for i, (face_img, label) in enumerate(cropped_faces): face_rgb = cv2.cvtColor(face_img, cv2.COLOR_BGR2RGB) axes[i].imshow(face_rgb) axes[i].axis('off') axes[i].set_title(label) plt.show()मॉडल प्रक्रिया किस तरह की छवियां हो सकती है?
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3