2010-09-21 17 views
6

मैंने ओपनसीवी (एसवीएन से अंतिम संस्करण) संकलित और स्थापित किया मैक ओएस एक्स (यह शायद समस्या का स्रोत है)।ओपनसीवी पर धीमी चेहरा पहचान?

नमूना काम करता है, लेकिन चेहरे का पता लगाने एल्गोरिथ्म मेरे लिए धीमी गति से लगता है। चेहरे के लिए पहचान का समय लगभग 400ms है (मैंने अभी उदाहरण का उपयोग किया है)। एफपीएस तब काफी कम है।

यूट्यूब पर और सभी, मैं वास्तविक समय चेहरे का पता लगाने (iPhone पर भी) के साथ सुपर चिकनी वीडियो को देखने तो मैं भ्रमित लग रहा है। मुझे याद है कि यह मेरे पुराने विंडोज पीसी पर भी तेज है।

400 एमएस एक सही पता लगाने के समय है?

नोट: मेरी मैकबुक वर्ष (2009) नहीं है और सब कुछ उस पर ठीक चलाता है। मैं आईसाइट वेबकैम (एकीकृत वेब कैमरा) का उपयोग करता हूं। मेरे पास वेबकैम पर सिर्फ एक चेहरा (मेरा चेहरा) है। और यदि कोई चेहरा नहीं है तो यह लगभग उसी समय होता है।

+1

क्या आपने ओपनएमपी सक्षम के साथ संकलित किया था? यह इसके बिना बेकार है। – GManNickG

+0

मैं डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ संकलित करता हूं (इसलिए मुझे कोई जानकारी नहीं है)। क्या यह डिफ़ॉल्ट रूप से सक्षम है? –

+0

आपके कंपाइलर पर निर्भर करता है, लेकिन आमतौर पर नहीं। आपका कंपाइलर क्या है? इसके साथ ओपनएमपी को कैसे सक्षम करें, फिर से संकलित करें, और कोशिश करें। – GManNickG

उत्तर

5

इनपुट छवि का आकार क्या है। मैं अनुमान लगा रहा हूं 640x480। आम तौर पर जो लोग YouTube वीडियो पोस्ट करते हैं वे छवि को 160x120 में आकार देते हैं। 640x480 के पूर्ण संकल्प में 2-3 से अधिक एफपीएस प्राप्त करना बहुत मुश्किल है। 160x120 छवि भेजने की कोशिश करें। आपको कम से कम 10fps मिलना चाहिए।

+0

धन्यवाद, यह एक अच्छी सलाह है। यह प्रोजेक्ट अभी के लिए रुक गया है, लेकिन उत्तर के लिए +1 है। –

+0

मैं वर्तमान में लाइव फुलएचडी वेबकैम स्ट्रीम पर फेस डिटेक्शन चला रहा हूं। वीडियो को 480x270 पर स्केल करना और चेहरे का पता लगाना ओपनसीवी 1.0 के साथ मेरे कोरि 7 पर इंटरैक्टिव रेट (20-40ms) पर चलता है। – rotoglup

0

मैं, एक ही समस्या हो रही थी एक क्वाड कोर मशीन पर के साथ 4 जीबी रैम 500ms का पता लगाने प्रति था, फिर भी मैंने देखा है कि वहाँ एक स्केल विकल्प है .... को यह हो रही है:

./facedetect - -scale = 4

मैं < 20ms

आशा है कि मदद करता है,

Keukpa

+2

स्केल = 4 रखना गलत है !! स्केलफैक्टर उस चरणबद्धता को दर्शाता है जिसके साथ आप खोज बदलना चाहते हैंविंडोसाइज ... मतलब है, मान लीजिए कि आप आकार 1 * 100 की खिड़की से खोज रहे हैं, अगली बार जब आप विंडो आकार = 1 * 400 के साथ खोज करेंगे .... और इस प्रकार हम कम प्रदर्शन करते हैं पुनरावृत्तियों पर हम दोनों चेहरों को याद कर सकते हैं जो दो के बीच झूठ बोलते हैं। डिफ़ॉल्ट चरण 1.1 के करीब है जिसका अर्थ है कि विंडो आकार को 10% तक बदलना। –

3

का पता लगाने की दर पूर्व में जोड़ रहा है मिल vious जवाब:

आप भी चीजों को अधिकतम और सबसे महत्वपूर्ण बात detectMultiScale के लिए न्यूनतम आकार निर्धारित करके गति कर सकते हैं।

[साथ ही, जैसा कि पिछले उत्तरों का कहना है, भारी स्केलिंग-डाउन क्रम में है क्योंकि हायर डिटेक्टर बहुत सरल सुविधाओं का उपयोग करता है (6 पिक्सेल तक के संबंधों के लिए; बड़े पैमाने पर आप आयताकार जैसे क्षेत्रों को जोड़ते हैं जैसे कि यह था सिर्फ एक पिक्सेल)। मानक मैक/mbp2011 पर मुझे लगभग 60fps मिल सकते हैं जो पर्याप्त से अधिक है।]

एक बेहतर गति के लिए आप टेम्पलेट मैचिंग का उपयोग करके गैर-बदलते क्षेत्रों को भी समाप्त कर सकते हैं।

0

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

इसके अलावा, ओपनसीवी उन क्षेत्रों को त्यागने के लिए कैनी के उपयोग का समर्थन करता है जहां चेहरा खोजने की संभावना कोई नहीं है।

3

हाल ही में मुझे Simd Library मिला, जिसमें HAAR और LBP कैस्केड क्लासिफायर के implementation हैं। यह ओपनसीवी से मानक HAAR और एलबीपी कैसकेड का उपयोग कर सकते हैं। इस कार्यान्वयन में एसएसई 4.1, एवीएक्स 2 और एनईओएन (एआरएम) के उपयोग के साथ सिम अनुकूलन है, इसलिए यह मूल ओपनसीवी कार्यान्वयन के 2-3 गुना तेजी से काम करता है।

संबंधित मुद्दे