Capturing, Encoding and Rendering Gestures using the Kinect Adan Patience Supervisor: Mr. Mehrdad Ghaziasgar Co-Supervisor: Mr. Reginald McDonald Dodds Mentor: Mr. Kenzo Abrahams Overview ▪ Recap ▪ Design Decisions and System Changes ▪ Interface ▪ Implementation ▪ Tools Used ▪ Project Plan Recap Introduction ▪ Many countries lack networking infrastructures which support video chatting applications such as Skype. ▪ Develop towards a video chatting application using the Kinect, that could possibly be used extensively by the deaf in the future. Recap Work Flow Recap High Level Design Input Capture Encode Render Video Frames Locate and Track User Get Joint Coordinates Get Frame and Read Coordinates Write Coordinates to File Inert Key Frame Animate Design Decisions and System Changes Previously Currently ▪ No Configuration File ▪ Create Configuration file ▪ Append Coordinates to tracking file ▪ Overwrite tracking file containing coordinate points ▪ Used line number in tracking file to determine frame number ▪ Create new file to store the frame count ▪ Key frame every 24th set of coordinates ▪ Key frame every 10th set of coordinates ▪ No real-time ▪ real-time key framing User Interface ▪ Setting foundation for the application ▪ Application not at a mature enough state for a user interface Implementation Input Update Skeleton Capture Encode Render Process Skeleton Get Joint Coordinates and Frame Count Configure User and Get Frame Count Draw Skeleton Write Coordinates to File and Frame Count Get Coordinates Map Coordinates Insert Key Frame Animate Configure User ▪ Assume 3 Positions for the Configuration File – Rest Arms – Arms Up – Spread Arms Maximum y-position centre shoulder ▪ Coordinates are stored in CONF.csv – Average of the centre shoulder position is calculated – Minimum and Maximum of both x and y coordinates are determined for both hands. Minimum x-position Minimum y-position Maximum x-position Map Coordinates ▪ Right Wrist – 𝑥 = 0 − 6.5 ∗ 𝑃, 𝑤ℎ𝑒𝑟𝑒 𝑃 = 𝑥𝑐𝑜𝑜𝑟𝑑𝑖𝑛𝑎𝑡𝑒 − 𝑥𝑎𝑣𝑔𝑠ℎ𝑜𝑢𝑙𝑑𝑒𝑟 Right Wrist 𝑥𝑚𝑖𝑛 −𝑥𝑎𝑣𝑔𝑠ℎ𝑜𝑢𝑙𝑑𝑒𝑟 – 𝑦 = 0.2 + 9.6 ∗ 𝑃, 𝑤ℎ𝑒𝑟𝑒 𝑃 = Centre Shoulder 𝑦𝑐𝑜𝑜𝑟𝑑𝑖𝑛𝑎𝑡𝑒 − 𝑦𝑚𝑖𝑛 𝑦𝑚𝑎𝑥 − 𝑦𝑚𝑖𝑛 Left Wrist ▪ Left Wrist – 𝑥 = 0 + 6.5 ∗ 𝑃, 𝑤ℎ𝑒𝑟𝑒 𝑃 = 𝑥𝑐𝑜𝑜𝑟𝑑𝑖𝑛𝑎𝑡𝑒 − 𝑥𝑎𝑣𝑔𝑠ℎ𝑜𝑢𝑙𝑑𝑒𝑟 -6.5 Units – 𝑦 = 0.2 + 9.6 ∗ 𝑃, 𝑤ℎ𝑒𝑟𝑒 𝑃 = 𝑥𝑚𝑎𝑥 −𝑥𝑎𝑣𝑔𝑠ℎ𝑜𝑢𝑙𝑑𝑒𝑟 𝑦𝑐𝑜𝑜𝑟𝑑𝑖𝑛𝑎𝑡𝑒 − 𝑦𝑚𝑖𝑛 𝑦𝑚𝑎𝑥 − 𝑦𝑚𝑖𝑛 Origin 6.5 Units Tools Used ▪ Platform – Windows 7 x86 ▪ Applications – Blender 2.49b – Visual Studio 2013 – Kinect SDK ▪ Languages – Python 2.6 – C++ Project Plan Term1 Term2 Term3 Term4 • Identify User Requirements, Analyse User Requirements, Literature Survey • Become Acquainted with OpenCV and C++ • Identify Objects and Classes in the OOD and analyse the Class’ methods and attributes, Design UI and Choose the Render Application • Familiarise myself with the Kinect SDK and API • Create the Capture and Encode Classes leveraging from the Kinect • Develop the mapping function. Create UI and finalise application • Test the application against the User Requirements • Optimise where possible and iron out bugs
© Copyright 2025 Paperzz