2013-05-06 5 views
7

मैं 2 डी छवि 2D image के आधार पर किसी व्यक्ति के चेहरे के तीन कोण ढूंढने की कोशिश कर रहा हूं।ओपनसीवी, सी ++ और छवि 2 डी के साथ हेड पॉज़ अनुमान - जियोमेट्रिक विधि - रोल, यॉ और पिच

मैं चेहरे, आंखों, नाक और मुंह को खोजने के लिए हार्कास्केड के साथ ओपनसीवी का उपयोग कर रहा हूं। लेकिन मुझे कोई ज्यामितीय विधि नहीं मिली है जो मुझे एक्स, वाई और जेड (रोल, पिच और यॉ) कोणों को खोजने में मदद कर सकती है।

क्या कोई मुझे सी ++ या जावा में कुछ विधि दिखाने में मदद कर सकता है?

+0

यह एक सी ++ सवाल ऐसा नहीं है मुझे लगता है कि टैग निकाला गया। –

उत्तर

5

एक छवि और कोई अन्य जानकारी नहीं दी गई, कोणों के लिए कोई भी समाधान नहीं है। सिर्फ यो के मामले पर विचार करें। 2 डी विमान पर प्रक्षेपित, यह नाक/मुंह के संबंध में आंखों के बीच अनुमानित दूरी और आंखों की नियुक्ति में एक छोटे से परिवर्तन के रूप में दिखाई देता है। हालांकि, यह दूरी व्यक्ति से व्यक्ति तक स्थिर नहीं है।

इसके आसपास एक सामान्य तरीका यह है कि उपयोगकर्ता नाममात्र '0' कोणों के लिए सीधे कैमरे पर देखकर अपना चेहरा कैलिब्रेट करें। इस बिंदु पर, अब आपके पास संदर्भ लंबाई है जिसके विरुद्ध आप बाद की छवियों की तुलना कर सकते हैं।

लंबाई अभी भी पर्याप्त जानकारी नहीं है, हालांकि, स्पष्ट अनुमानित दूरी परिवर्तन की मात्रा ऑप्टिक्स और कैमरे से चेहरे की दूरी पर निर्भर करती है। ऑप्टिक्स जो आप आमतौर पर मैन्युअल रूप से कॉन्फ़िगर करते हैं; दूरी 'औसत' चेहरे के आयामों को मानकर आप अनुमान लगा सकते हैं और 'नाममात्र' छवि मानते हुए उन आयामों को पूरी तरह से मेल खाते हैं। यदि आप पाते हैं कि यह किसी विशेष चेहरे के लिए घूर्णन का अनुमान लगा रहा है या अनुमान लगा रहा है तो आप इसे समायोज्य बना सकते हैं।

एक बार जब आप इन सभी धारणाओं को जगह ले लेते हैं, तो यह काफी सरल ज्यामिति है। आप नाक से मुंह तक आंखों से रेखा से रोल का अनुमान लगा सकते हैं। आप आंखों के बीच अंतर को मापने के लिए माप सकते हैं। अंत में, आप आंखों/मुंह या आंखों/नाक के बीच की दूरी का उपयोग करके पिच का अनुमान लगा सकते हैं। ध्यान रखें, ये धारणाएं सबसे अच्छी तरह से काम करती हैं जब चेहरा अभी भी नाममात्र के करीब है।

+0

लेकिन मैं ऐसा करने के लिए सी ++ में कुछ विधि जानना चाहता हूं। –

0

तो, आप नाक, आंखों और मुंह की स्थिति के आधार पर चेहरे के अभिविन्यास (आरपीवाई-कोण में) खोजना चाहते हैं। यह मानते हुए कि सभी तीन (चार - दो आंखें) दिखाई दे रही हैं, मैं सिर के अभिविन्यास को निर्धारित करने के लिए चेहरे की सममित विशेषताएं का उपयोग करूंगा, जैसे:

आंखों के बीच एक रेखा का उपयोग किसी एक के संदर्भ के रूप में किया जा सकता है अक्ष (उदाहरण के लिए पिच)। फिर, हम मान सकते हैं कि रोल धुरी नाक की दिशा में इंगित करता है - जिसे नाक के स्थितित्मक विस्थापन के माध्यम से आंखों के बीच मध्य बिंदु तक मापा जा सकता है। और आखिरकार, यॉ को आंखों के बीच मध्य बिंदु, नाक की स्थिति और मुंह की स्थिति के बीच दूरी संबंध के माध्यम से मापा जा सकता था।

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

रास्ते से दिलचस्प आवेदन!

0

यदि आप सही आंख, बाएं आंख और नाक का पता लगाने के लिए एक कैस्केड वर्गीकृत का उपयोग करते हैं, तो प्रत्येक सुविधा (फीचर x/2, फीचर वाई/2) के केंद्र की गणना करें, यह आपको आपकी छवि पर तीन एक्स-वाई अंक देगा।

यदि आप दूसरे की तुलना में अधिक हैं, तो आप प्रत्येक आंख के वाई मानों को देख कर रोल का पता लगा सकते हैं, इसका मतलब है कि सिर सबसे कम वाई मान की दिशा में झुका हुआ है (जैसा कि एक आंख दूसरे चालों को ऊपर ले जाती है)

आप नाक के एक्स मान को देखकर यॉ का पता लगा सकते हैं, यदि उपयोगकर्ता अपने बाएं दिखता है, तो उनकी नाक का एक्स मान उनके बाएं आंख के एक्स मान के करीब होगा, और दाईं ओर देखकर दाहिने आंखों पर एक्स मान।

यदि आप उपयोगकर्ता देख रहे हैं, तो आप नाक के वाई मान को देखकर पिच का पता लगा सकते हैं, वाई मान दोनों आंखों के मूल्य के करीब होगा और यदि वे नीचे देखेंगे, तो वाई मान आगे से दूर होगा आंखों का मूल्य

अब इस पाठ्यक्रम का काफी सही नहीं है और आप सटीक कोण नहीं देंगे, फिर भी आप कोशिश करते हैं और (की तलाश में, छोड़ दिया वास्तव में बाईं की तलाश में, इंतजार कर रहे) कुछ समूहों यानी भीतर प्रत्येक मूल्य वर्गीकृत करने के लिए इस जानकारी का उपयोग कर सकते हैं

एकमात्र चीज जो मैं देख सकता हूं कि आप एक छवि में तीनों की गणना करने के प्रभाव को प्रभावित कर सकते हैं, यदि रोल काफी कठोर है तो यॉ की गणना करना मुश्किल हो सकता है क्योंकि एक्स अक्ष अब फ्लैट नहीं है।

आप 2 डी रोटेशन के माध्यम से छवि को सही करके इसे हल कर सकते हैं। आप कितना छवि इस जानकारी आप छवि में सुधार करें और (बारी बारी से करने के लिए छवि एक 2 डी रोटेशन मैट्रिक्स बनाने और ताना affine का उपयोग करके खोजने प्रसंस्करण के साथ जारी रख सकते हैं के साथ

Value = (right eye Y/2) - (left eye Y/2) 

साथ घुमाया जा करने की जरूरत है खोजने की जरूरत होगी)

क्षमा करें अगर यह एक necro का एक सा है, लेकिन मैंने पाया उपरोक्त विधि बहुत सफल होने के लिए और मुझे आशा है कि यह मदद किसी

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