मुझे एक निश्चित लोगो का पता लगाने के लिए पाइथन के साथ उपयोग के लिए अपनी खुद की हायर कैस्केड एक्सएमएल फ़ाइल बनाने में दिलचस्पी है (मान लें कि यह सेब लोगो है)।मैं अपना खुद का हायर कैस्केड कैसे बना सकता हूं और इसे लागू कर सकता हूं?
मैं http://docs.opencv.org/trunk/doc/user_guide/ug_traincascade.html और http://note.sonots.com/SciSoftware/haartraining.html
समस्या है पर निर्देशों का पालन करने की कोशिश की है, हालांकि मैं एक वैध कार्य कर झरना फ़ाइल मिलता है, यह कुछ भी पता नहीं लगा पाया। विशेष रूप से, जब मैं इसे बनाने के लिए उपयोग की जाने वाली मूल छवि के अंदर ऑब्जेक्ट का पता लगाने का प्रयास करता हूं, तब भी इसका पता नहीं लगाया जाता है।
मैंने पहले से ही छवि का आकार बदलने की कोशिश की है, या इसे एक तस्वीर में डालने से इसे बड़े संदर्भ में डालने की कोशिश की है।
मैं क्या गलत कर रहा हूं?
खोल में, मैं चलाएँ:
opencv_createsamples -img original.jpg -bg negatives.dat -vec samples_set.vec -w 48 -h 48
opencv_traincascade -bg negatives.dat -data mycascade -vec samples_set.vec -w 48 -h 48
जो एक झरना फ़ाइल बनाने, ठीक से काम करने लगता है। फिर, अजगर में:
import cv2
cascade2 = cv2.CascadeClassifier('mycascade.xml')
cv2Image = cv2.imread('original.jpg')
cascade2.detectMultiScale(cv2Image)
और पहचान खाली ऊपर आता है। मैंने एक "मानक" एक्सएमएल के साथ परीक्षण करने का प्रयास किया जो कि अजगर के साथ आता है और यह काम करता है, इसलिए मेरे साथ कुछ गलत है।
तुम सच में लोगो का पता लगाने कर रहे हैं मैं के बाद से लोगो आकार आमतौर पर निरंतर निकाले सुविधाओं में अच्छी तरह से मेल करेगा कर रहे हैं सुविधाओं निष्कर्षण और मिलान झारना/सर्फ/ओर्ब/MSER .. उपयोग करने के लिए सुझाव देते हैं। हार सुविधाओं के साथ मेरी oppionion लोगो का पता लगाने में बहुत अजीब do.Because आमतौर पर लोगो की पर्याप्त सुविधाओं अन्य वस्तुओं (चेहरा, आंखें, नाक आदि) की तरह opencv के माध्यम से प्रशिक्षित होने की जरूरत नहीं है करने के लिए किया जाएगा। लोगो आमतौर पर किनारों और कोनों से भरे होते हैं। लेकिन मैं आपके परिणामों के बारे में भी सुनना चाहता हूं। – isrish
-w 48 -h 48 काफी लगता है। (डिफ़ॉल्ट 24 है)। क्या आपने छोटे मूल्यों की कोशिश की है? यह 'आंतरिक आकार' है, न कि createsamples चरण में अपने लोगो का आकार – berak