"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ >  > पायथन में ओपनकेवी और रोबोफ्लो के साथ लिंग का पता लगाना - एनालिटिक्स विदिया

पायथन में ओपनकेवी और रोबोफ्लो के साथ लिंग का पता लगाना - एनालिटिक्स विदिया

2025-04-29 को पोस्ट किया गया
ब्राउज़ करें:652

परिचय

चेहरे की छवियों से लिंग का पता लगाना कंप्यूटर विजन के कई आकर्षक अनुप्रयोगों में से एक है। इस परियोजना में, हम लिंग वर्गीकरण के लिए OpenCV और Roboflow API के लिए OpenCV को जोड़ते हैं, एक उपकरण बनाते हैं जो चेहरे की पहचान करता है, उनकी जांच करता है, और उनके लिंग की भविष्यवाणी करता है। हम इस कोड को टाइप करने और चलाने के लिए विशेष रूप से Google Colab में पायथन का उपयोग करेंगे। यह प्रत्यक्ष कोड का एक आसान-से-फ़ॉलो वॉकथ्रू देता है, प्रत्येक चरण को स्पष्ट करता है ताकि आप इसे समझ सकें और इसे अपने उपक्रमों पर लागू कर सकें।

सीखने का उद्देश्य

    ]
  • लिंग वर्गीकरण के लिए रोबोफ्लो एपीआई को एकीकृत करना सीखें।
  • पायथन में छवियों को संसाधित करने और हेरफेर करने के तरीकों का पता लगाएं।
  • ] ]
  • ]
  • सामग्री की तालिका
  • पायथन में opencv और रोबोफ्लो का उपयोग करके लिंग का पता लगाने के लिए? छवि

चरण ४: लिंग का पता लगाने वाली एपीआई चरण ५: प्रत्येक का पता लगाया गया चेहरा चरण ६: परिणामों को प्रदर्शित करना

अजगर में OpenCV और Roboflow का उपयोग करके लिंग का पता लगाने के लिए? ]

चरण 1: पुस्तकालयों को आयात करना और छवि अपलोड करना
  • प्राथमिक कदम महत्वपूर्ण पुस्तकालयों के परिणामस्वरूप है। हम चित्र की तैयारी के लिए OpenCV का उपयोग कर रहे हैं, क्लस्टर से निपटने के लिए numpy, और Matplotlib के बारे में कल्पना करने के लिए। हमने एक ऐसी छवि भी अपलोड की है जिसमें चेहरे शामिल थे जिनका हम विश्लेषण करना चाहते थे।
    • Google.colab आयात फ़ाइलों से CV2 आयात करें एनपी के रूप में संख्या को आयात करें Matplotlib आयात pyplot से plt के रूप में Inference_sdk आयात inferencehhttpclient से # तस्विर अपलोड करना अपलोड किया गया = files.upload () # छवि लोड करें अपलोड में फ़ाइल नाम के लिए। keys (): img_path = फ़ाइल नाम
    • ] अपलोड करने पर, चित्र को स्थानांतरित नाम के एक शब्द संदर्भ में रखा जाता है, जहां कुंजियाँ रिकॉर्ड नामों की तुलना करती हैं। ए फॉर लूप का उपयोग तब आगे की प्रक्रिया के लिए फ़ाइल पथ को निकालने के लिए किया जाता है। छवि प्रसंस्करण कार्यों को संभालने के लिए, OpenCV चेहरे का पता लगाने और उनके चारों ओर बाउंडिंग बॉक्स खींचने के लिए नियोजित है। उसी समय, Matplotlib का उपयोग परिणामों की कल्पना करने के लिए किया जाता है, जिसमें छवि और क्रॉप्ड चेहरों को प्रदर्शित करना शामिल है।
    • ] ] यह मॉडल मानव चेहरों से मिलता -जुलता पैटर्न के लिए छवि को स्कैन करता है और उनके निर्देशांक देता है।
    • # चेहरे का पता लगाने के लिए HAAR कैस्केड मॉडल को लोड करें face_cascade = cv2.cascadeclassifier (cv2.data.haarcascades 'haarcascade_frontalface_default.xml')
    • यह आमतौर पर ऑब्जेक्ट डिटेक्शन के लिए एक प्रचलित रणनीति है। यह ऑब्जेक्ट (इस मामले में, चेहरे) से जुड़े किनारों, बनावट और पैटर्न की पहचान करता है। OpenCV एक पूर्व-प्रशिक्षित फेस डिटेक्शन मॉडल प्रदान करता है, जिसे `CascadeClassifier.`
    • का उपयोग करके लोड किया जाता है
    • चरण 3: छवि में चेहरे का पता लगाना
    • ] बाद में, हम छवि में चेहरे खोजने के लिए फेस डिटेक्टर का उपयोग करते हैं।
    • # छवि को लोड करें और ग्रेस्केल में परिवर्तित करें img = cv2.imread (img_path) ग्रे = cv2.cvtcolor (img, cv2.color_bgr2gray) # छवि में चेहरे का पता लगाएं चेहरे = face_cascade.detectmultiscale (ग्रे, स्केलफैक्टोर = 1.1, minneighbors = 5, minsize = (30, 30))
  • छवि लोडिंग और रूपांतरण:

] ]

चेहरे का पता लगाना:

] ] ]

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 () का उपयोग करके प्रत्येक चेहरे के ऊपर पाठ लेबल के रूप में जोड़ता है, एक स्पष्ट और जानकारीपूर्ण ओवरले प्रदान करता है।

चरण 6: परिणाम प्रदर्शित करना

अंत में, हम आउटपुट की कल्पना करते हैं। हम पहले 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))
    ]
  • परिणाम प्रदर्शित करना:
      ] ]
    • मूल डेटा
  • आउटपुट परिणाम डेटा

निष्कर्ष

] लिंग भविष्यवाणी के लिए फेस डिटेक्शन और रोबोफ्लो के लिए ओपनएनईसीवी को लागू करने से, हमने एक ऐसी प्रणाली बनाई जो छवियों में लिंग को सटीक रूप से पहचान और वर्गीकृत कर सकती है। विज़ुअलाइज़ेशन के लिए Matplotlib के अलावा ने हमारी परियोजना को और बढ़ाया, जिससे परिणामों के स्पष्ट और व्यावहारिक प्रदर्शन प्रदान किए गए। यह परियोजना इन प्रौद्योगिकियों के संयोजन की प्रभावशीलता पर प्रकाश डालती है और वास्तविक दुनिया के अनुप्रयोगों में उनके व्यावहारिक लाभों को प्रदर्शित करती है, लिंग का पता लगाने के कार्यों के लिए एक मजबूत समाधान की पेशकश करती है।

चाबी छीनना
# 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।

लिंग का पता लगाने वाला मॉडल कैसे काम करता है? मॉडल चेहरों का पता लगाने के लिए छवियों का विश्लेषण करता है और फिर प्रशिक्षित एआई एल्गोरिदम के आधार पर पुरुष या महिला के रूप में प्रत्येक खोजे गए चेहरे को वर्गीकृत करता है। यह भविष्यवाणियों के लिए आत्मविश्वास स्कोर को आउटपुट करता है।

q4।

लिंग का पता लगाने के लिए कितना सही है? मॉडल विश्वसनीय भविष्यवाणियों को इंगित करने वाले आत्मविश्वास स्कोर के साथ उच्च सटीकता को प्रदर्शित करता है। उदाहरण के लिए, परिणामों में आत्मविश्वास स्कोर 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