2015-05-28 10 views
10

वर्तमान में मैं किनेक्ट का उपयोग करके एक परियोजना पर काम कर रहा हूं जिसके लिए मुझे यह जानने की आवश्यकता है कि उस समय व्यक्ति कहां देख रहा है, जिसके लिए मुझे पता चला कि मुझे उस व्यक्ति की दृष्टि की रेखा ढूंढनी है।किनेक्ट का उपयोग कर किसी व्यक्ति की दृष्टि की रेखा का पता कैसे लगाया जाए?

अभी, मैं व्यक्ति के कंकाल का मुख्य बिंदु पा सकता हूं लेकिन आंखों के आंदोलन को ट्रैक नहीं कर सकता।

if (body.TrackingState == SkeletonTrackingState.Tracked) 
{ 
    Joint joint = body.Joints[JointType.Head]; 
    SkeletonPoint skeletonPoint = joint.Position; 

    // 2D coordinates in pixels 
    System.Drawing.Point point = new System.Drawing.Point(); 

    if (_mode == CameraMode.Color) 
    { 
     // Skeleton-to-Color mapping 
     ColorImagePoint colorPoint = _sensor.CoordinateMapper.MapSkeletonPointToColorPoint(skeletonPoint, ColorImageFormat.RgbResolution640x480Fps30); 

     point.X = colorPoint.X; 
     point.Y = colorPoint.Y; 
     //Console.WriteLine(" X == " + point.X + " Y == " + point.Y); 
     X = (int)Math.Floor(point.X + 0.5); 
     Y = (int)Math.Floor(point.Y + 0.5); 
    } 

    // DRAWING... 
    Ellipse ellipse = new Ellipse 
    { 
     Fill = System.Windows.Media.Brushes.LightBlue, 
     Width = 20, 
     Height = 20 
    }; 

    Canvas.SetLeft(ellipse, point.X - ellipse.Width/2); 
    Canvas.SetTop(ellipse, point.Y - ellipse.Height/2); 

    canvas.Children.Add(ellipse); 
} 

यहां बिंदु.एक्स और पॉइंट.वे कंकाल के मुख्य बिंदु हैं।

+0

मैंने हमेशा केनेक्ट एसडीके से गड़बड़ नहीं की है, लेकिन क्या सिर के घूर्णन का पता लगाना संभव नहीं है? –

+0

@JohnOdom आप मेरी समस्या में सिर के घूर्णन का उपयोग कैसे करते हैं .... अपने विचार को प्राप्त नहीं कर सकते .. हालांकि मैं कंकाल निर्देशांक –

+0

का उपयोग कर सिर की स्थिति में परिवर्तनों को समझ सकता हूं, मैं सोच रहा था कि क्या आप ट्रैक रखने में सक्षम थे सिर के घूर्णन (कीनेक्ट का सामना करने के लिए 0 डिग्री) के बारे में आप यह देखकर "दृष्टि की रेखा" को समझ सकते हैं कि यह कितना घुमाया गया है। पूर्व: यदि सिर ने यॉ (+ ज़ेड अक्ष को ऊपर/नीचे) पर +45 डिग्री घुमाया तो उपयोगकर्ता बाईं तरफ देख रहा है। यह ओवरकिल की तरह लग सकता है लेकिन यह मैं किनेक्ट एसडीके को देखे बिना पेशकश कर सकता हूं। –

उत्तर

1

क्या आपने फेसबेसिक्स नमूना परियोजना को देखा है?

मुझे विश्वास है कि आप FaceFrameSource/FaceFrameReader (नोट: HDFace नहीं) का उपयोग करना चाहते हैं। आप Quarternion (और नमूना प्रोजेक्ट का अनुवाद पिच/यॉ/रोल) के रूप में चेहरा अभिविन्यास प्राप्त करने में सक्षम होंगे।

कंकाल से सिर के 3 डी स्थान के साथ संयोजन, मुझे लगता है कि आप दृष्टि की अनुमानित रेखा बनाने में सक्षम होना चाहिए।

How-to Videos अभिविन्यास पर कुछ जानकारी सहित कवर फेस (5 वां वीडियो, लगभग 18:20 में छोड़ें - आपका विशिष्ट प्रश्न 21:49 पर पूछा गया है)।

संपादित करें: FaceBasics नमूना परियोजना में किए गए संशोधनों दिखा अवधारणा के असहज प्रमाण -/रोल कुछ लाइनें परिभाषित ~ लाइन 565, सही होने के बाद चेहरे की जानकारी तैयार की है (मैं भी पिच/विचलन के दायरे को बदलने के लिए की जरूरत को जोड़ा गया ऊपर और उनके डिफ़ॉल्ट मान 0 पर सेट करें)। यह एक सिर के लिए एक सर्कल बनाता है, और एक पीले रंग की रेखा लगभग अनुमानित स्थान को देखती है।

Joint HeadJoint = this.bodies[faceIndex].Joints[JointType.Head]; 
ColorSpacePoint colorPoint = this.coordinateMapper.MapCameraPointToColorSpace(HeadJoint.Position); 
Point HeadPoint = new Point(colorPoint.X, colorPoint.Y); 
Point GazePoint = new Point(HeadPoint.X - Math.Sin((double)yaw * 0.0175) * 600, HeadPoint.Y - Math.Sin((double)pitch * 0.0175) * 600); 
drawingContext.DrawLine(new Pen(System.Windows.Media.Brushes.Yellow, 5), HeadPoint, GazePoint); 
drawingContext.DrawEllipse(System.Windows.Media.Brushes.LightBlue, null, HeadPoint, 70, 70); 

संपादित करें 2: बस देखा अपने नए टिप्पणी करते हुए कहा कि आप एसडीके v1.8 का उपयोग कर रहे हैं - मेरा उत्तर v2.0 के बंद जा रहा है, और मैं बात नहीं कर सकते हैं कि कैसे के लिए चीजों के साथ अलग होगा पुराना एसडीके/सेंसर।

+0

हाँ मैंने उन वीडियो को देखा है, और दृष्टि की रेखा के लिए फेसबेसिक्स कोड को संशोधित करना मुझे एक बहुत ही मुश्किल काम लगता है क्योंकि इसमें अलग-अलग मॉड्यूल शामिल थे जो एक-दूसरे पर एक दूसरे पर निर्भर थे ... धन्यवाद –

+0

मुझे लगता है कि आपके पास बहुत मुश्किल समय यदि आप चेहरे अभिविन्यास को ट्रैक करना चाहते हैं लेकिन FaceFrameSource का उपयोग किए बिना। –

+0

को अभी केनेक्ट v2 और एडाप्टर मिल गया है ... अब आपके सुझावों को कार्यान्वित कर देगा ... आपको –

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

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