15

मैं अजगर में ओपनसीवी के हर कैस्केड चेहरे डिटेक्टर (सीवी। हायरडेटेक्ट ऑब्जेक्ट्स) का उपयोग कर रहा हूं।ओपनसीवी फेस डिटेक्टर में क्लासिफायर आत्मविश्वास

उदाहरण के लिए

:

faces = cv.HaarDetectObjects(grayscale, cascade, storage, 1.2, 2, 
    cv.CV_HAAR_DO_CANNY_PRUNING, (50,50)) 

     for f in faces: 
      print(f) 

यह इस रूप में detections की एक सूची प्रिंट होगा:

((174, 54, 114, 114), 53) 
((22, 51, 121, 121), 36) 
((321, 56, 114, 114), 21) 
((173, 263, 125, 125), 51) 
((323, 272, 114, 114), 20) 
((26, 271, 121, 121), 36) 

प्रत्येक पंक्ति जहां एक का पता लगाने का प्रतिनिधित्व करते हैं। पहले 4 नंबर शीर्ष बाएं बिंदु के एक्स, वाई स्थान, और बाउंडिंग बॉक्स की ऊंचाई, चौड़ाई हैं। आखिरी संख्या है (ओपनसीवी दस्तावेज से उद्धरण) पड़ोसियों की संख्या।

1) पिछले संख्या का क्या मतलब है:

मैं मैं दो प्रश्न हैं लगता है? गुगलिंग के दौरान मुझे इसका कोई संदर्भ नहीं मिला।

2) (अधिक महत्वपूर्ण) क्या प्रत्येक पहचान के लिए आत्मविश्वास स्कोर प्राप्त करने का कोई तरीका है? चेहरा वर्गीकरण कितना निश्चित है कि पहचान वास्तविक चेहरे से मेल खाती है?

धन्यवाद

+2

उपयोगी हो सकता है: http://haoxiang.org/2013/11/opencv-detectmultiscale-output-detection-score/ – Shai

उत्तर

7

1) का पता लगाने कोड एक वस्तु के लिए एक से अधिक का पता लगाने का उत्पादन - जैसे विभिन्न तराजू में, थोड़ा स्थानांतरित किया गया, आदि। तब विच्छेदनों को समूहीकृत किया जाता है और ऐसे समूह में पड़ोसियों की संख्या वापस लौटाई जाती है। व्हायोला जोन्स पेपर, अनुच्छेद 5.6 (http://research.microsoft.com/en-us/um/people/viola/Pubs/Detect/violaJones_IJCV.pdf) और ओपनसीवी स्रोत भी देखें।

2) आप संभावित रूप से कुछ आत्मविश्वास के रूप में पड़ोसियों की संख्या का उपयोग कर सकते हैं।

0

आपके प्रश्न और उत्तर के लिए बहुत बहुत धन्यवाद, मैं एक दिन के लिए आत्मविश्वास स्कोर के साथ ओपनसीवी फेस डिटेक्शन की तलाश में हूं। आपका प्रश्न और उत्तर मुझे समस्या को हल करने के लिए कुछ मार्गदर्शन देता है।

पामस्ट्रॉम की तरह कहा, अंतिम संख्या का मतलब उस क्लस्टर में ऑब्जेक्ट स्थितियों की संख्या है। और आप इसे आत्मविश्वास स्कोर के रूप में उपयोग कर सकते हैं।

जहां तक ​​मुझे पता है, पुरानी पायथन एपीआई में ऐसी ही तरह की एपीआई है। नए एपीआई में यह नहीं है (क्लस्टर में ऑब्जेक्ट की संख्या) मान।

मैंने अपना कोड यहां दिया है यदि यह किसी अन्य लोगों की मदद करेगा। यह एक पुराना पायथन एपीआई है जिसका ट्यूटोरियल ढूंढना मुश्किल है।

import sys 
import cv 

def detect_face(image): 
    image_size = cv.GetSize(image) 
    # # create grayscale version 
    grayscale = cv.CreateImage(image_size, 8, 1) 
    cv.CvtColor(image, grayscale, cv.CV_BGR2GRAY) 
    # # equalize histogram 
    cv.EqualizeHist(grayscale,grayscale) 

    #parameters to the detection function  
    cascade = cv.Load('haarcascade_frontalface_alt.xml') 
    haar_scale = 1.1 
    min_neighbors = 3 
    haar_flags = cv.CV_HAAR_DO_CANNY_PRUNING 
    min_size = (30,30) 

    faces = cv.HaarDetectObjects(grayscale, cascade, cv.CreateMemStorage(0), 
           haar_scale, min_neighbors, haar_flags, min_size) 

    print faces 

    if len(faces) > 0: 
     print '=> ' + str(len(faces)) + ' face detected!' 
     for ((x,y,width,height), n) in faces: 
      pt1 = (x,y) 
      pt2 = (x + width, y + height) 
      cv.Rectangle(image, pt1, pt2, cv.RGB(255, 0, 0), 3, 8, 0) 


if __name__ == '__main__': 

    filename = sys.argv[1] 
    image = cv.LoadImage(filename,cv.CV_LOAD_IMAGE_COLOR); 
    detect_face(image) 

    cv.ShowImage("cam", image) 
    cv.WaitKey(0) 
संबंधित मुद्दे