2011-09-05 10 views
9

उद्देश्य व्यक्ति को एक अलग पृष्ठभूमि (उर्फ पृष्ठभूमि हटाने) पर प्रदर्शित करना है।किनेक्ट का उपयोग करके पृष्ठभूमि हटाने: शरीर के आकार के चारों ओर शोर दमन

मैं ऐसा करने के लिए माइक्रोसॉफ्ट के बीटा किनेक्ट एसडीके के साथ किनेक्ट का उपयोग कर रहा हूं। गहराई की मदद से, पृष्ठभूमि फ़िल्टर की जाती है और हमें केवल व्यक्ति की छवि मिलती है।

यह करना बहुत आसान है, और हम उस कोड को पा सकते हैं जो हर जगह इंटरनेट पर करता है। हालांकि, गहराई संकेत शोर है, और हमें पिक्सेल मिलते हैं जो प्रदर्शित होने वाले व्यक्ति से संबंधित नहीं होते हैं।

मैं एक बढ़त डिटेक्टर तब लागू होता है यह उपयोगी था देखने के लिए, और मैं वर्तमान में इस मिल: बढ़त का पता लगाने के बिना

यहाँ एक और है:

enter image description here

मेरे सवाल यह है: मैं किस तरह से व्यक्ति के चारों ओर इन शोर सफेद पिक्सल से छुटकारा पा सकता हूं?

मैंने morphological संचालन की कोशिश की, लेकिन शरीर के कुछ हिस्सों को मिटा दिया गया है और अभी भी सफेद पिक्सेल पीछे छोड़ दिया है।

एल्गोरिदम को रीयल-टाइम होने की आवश्यकता नहीं है, जब मैं 'छवि सहेजें' बटन दबाता हूं तो मैं इसे लागू कर सकता हूं।

संपादित करें 1:

मैं सिर्फ आकार सीमा पर करीबी फ्रेम के साथ पृष्ठभूमि घटाव करने की कोशिश की। आपके द्वारा देखे जाने वाले एकल पिक्सल झटकेदार होते हैं, जिसका अर्थ है कि यह शोर है और मैं आसानी से उनसे छुटकारा पा सकता हूं।

संपादित करें 2: Kinect के मैनुअल अंशांकन OpenNI ड्राइवर, जो सीधे अवरक्त छवि प्रदान करता है का उपयोग करके:

परियोजना अब खत्म हो गया है, और यहाँ हम क्या किया है। नतीजा वास्तव में अच्छा है, लेकिन प्रत्येक अंशांकन प्रत्येक किनेक्ट के लिए विशिष्ट है।

फिर, हमने सीमाओं पर थोड़ी पारदर्शिता लागू की, और परिणाम वास्तव में अच्छा लग रहा है! हालांकि, मैं चित्र नहीं दे सकता।

+1

क्या आप किनारे डिटेक्टर को लागू करने से पहले छवि पोस्ट कर सकते हैं? – misha

+1

बस इसे जोड़ा गया। – wormsparty

+0

क्या आप कोड – ravithejag

उत्तर

5

आपकी समस्या सिर्फ शोर सफेद पिक्सेल नहीं है। आप व्यक्ति के महत्वपूर्ण हिस्सों को भी याद कर रहे हैं, उदा। उसके दाहिने हाथ का हिस्सा। मैं गहराई डेटा की सीमा के साथ अधिक रूढ़िवादी होने की अनुशंसा करता हूं (अधिक झूठी सकारात्मक अनुमति दें)। यह आपको अधिक शोर पिक्सल देगा, लेकिन कम से कम आप पूरी तरह से व्यक्ति होगा।

शोर पिक्सल से छुटकारा पाने के लिए, मैं चीजों की एक जोड़ी के बारे में सोच सकते हैं:

  • पंख बाहरी पिक्सल (/ तीव्रता में उन्हें कम करने उनके पारदर्शिता बढ़ाने आप एक अल्फा चैनल का उपयोग कर रहे हैं)
  • छवि को चिकना करें, चिकनी छवि पर किनारे का पता लगाएं, फिर इन किनारों को अपनी मूल तेज छवि के साथ उपयोग करें।
  • कुछ हिस्सों को चिह्नित करने के लिए कुछ त्वचा क्षेत्र का पता लगाएं जो निश्चित रूप से किसी व्यक्ति से संबंधित हैं। skin detection in the YUV color space? और Skin Color Detection
  • कपड़े के लिए, रंग और संतृप्ति छवि के साथ काम करें। यदि आप टी-शर्ट का रंग जानते हैं (या कम से कम यह एक तटस्थ रंग नहीं है), तो यह आसानी से खड़ा होगा। यदि आप इस जानकारी को नहीं जानते हैं, तो दूसरे फ्रेम का उपयोग करके व्यक्ति के मॉडल का निर्माण करना उचित हो सकता है (यदि आपके वीडियो में एक बड़ा ग्रे ब्लॉब चल रहा है, तो संभावना है कि आपका विषय ग्रे शर्ट पहन रहा हो)

दृष्टिकोण पारस्परिक रूप से अनन्य नहीं हैं, इसलिए संयोजन में उन्हें करने की कोशिश करने लायक हो सकता है। अगर मैं किसी और चीज के बारे में सोचता हूं, तो मैं यहां वापस पोस्ट करूंगा।

+0

धन्यवाद, मैं कल आपके विचारों को देखूंगा। जो व्यक्ति गुम हैं, उसके बारे में, मेरे पास इसका नियंत्रण नहीं है, क्योंकि मैं एसडीके के व्यक्ति का पता लगाने का उपयोग करता हूं। यहां तक ​​कि अगर मैंने अपने स्वयं के संस्करण लिखे हैं, तो ये त्रुटियां तब होती हैं जब गहराई सिग्नल बहुत शोर है, जैसे कि हाथ किनारों या बालों पर। कभी-कभी, सिर के कुछ हिस्सों में मुझे 0 की गहराई मिलती है, जिसे मैं आसानी से ठीक नहीं कर सकता। – wormsparty

2

यदि किनारों पर जिटर को हल करने का कोई अन्य तरीका नहीं है तो आप हमेशा पोस्ट-प्रोसेस के रूप में एंटी-एलियास को आजमा सकते हैं।

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