# Introduction

- [Introduction](#introduction)
- [Kinect sensor](#kinect-sensor)
  - [What's inside the Kinect sensor?](#whats-inside-the-kinect-sensor)
  - [Software and SDK](#software-and-sdk)
- [Course of the practical work](#course-of-the-practical-work)
- [Evaluation](#evaluation)


The goal of this resource is to go deeper into *Object Oriented Programming* through the use of an (formerly) innovative device (**KinecT**) and simple gesture detection algorithms.  
It is made of three exercises:
- the first one aims at retrieving information from the **Kinect** (4 hours)
- the second one aims at writing a gesture detection algorithm (4 hours)
- and the last one is a free subject exercise where you are asked to develop a simple app using the former two exercises.  

This document is a quick introduction to the **Kinect** sensor.

# Kinect sensor

**Kinect** is a device designed by Microsoft, initially for the **Xbox360** and **Windows**, and then also for **Xbox One**.   
Its purpose is to allow controlling applications (mainly games) without any physical device, with your own body. It is then a **Natural User Interface**.  

It has first been sold in late 2010 (v1), and later in february 2012 (v2), and the windows version in july 2014. The production has ended in 2017.  
But since 2019, the new **Azure Kinect** has been released. I do not have tested it yet.  
  
> Tip 💡  
> The word **Kinect** is a puzzle between *kinetic* (movement) and *connect*. 

## What's inside the Kinect sensor?
The **Kinect** sensor owns various sensors.  
It is an horizontal bar with:
- an infrared projector,
- cameras (RGB camera, time of flight camera),
- depth sensor,
- a special microchip generating a grid to allow position calculation
- a motorized pivot to position automatically the bar towards the users
- microphones

It allows:
- full body 3D motion capture (skeleton tracking)
- facial recognition
- voice recognition

## Software and SDK
If you want to use the **Kinect** sensor v2, you need to use the [**Kinect for Windows SDK 2.0**](https://www.microsoft.com/en-us/download/details.aspx?id=44561). You can then use C# (XAML), C++ or VB.NET.  
However, due to its released date, it is not possible to use it with .NET Core or MAUI. You have to use a **.NET Framework** project to develop for the **Kinect**.

# Course of the practical work
You have only 1 hour of introduction in theater, and then 14 hours of practical work. This can be done only in the **C21** room where the **Kinect SDK** is installed.  
> ⚠️ Available material ⚠️  
> Due to the small number of **Kinect** sensors owned by IUT Clermont Auvergne, it is not possible to borrow one for the period, a weekend, or a night. If you want to work with the sensor outside of the practical work, you can borrow one during the day, if it is not used by another group. But all sensors should be returned at the end of the day.  

You have three exercises to realize. It is advised to use:
- 4 to 6 hours for the first one,
- 4 to 6 hours for the second one,
- 2 to 6 hours for the third one.  

Some parts of the exercises are mandatory to access the next exercise, some are not.  

It is advised to organized yourself:
- before practical work:
  - study the advised themes via resources given in the subjects,
  - prepare your questions if you have some
- during the practical work:
  - realize the different tasks
  - validate your new skills acquisition with your teacher
- after the practical work:
  - update and analyze your *to do list*
  - check the skills that have not been vaidated yet with your teacher.

# Evaluation

You will be evaluated three times (one for each exercise). It will be done during the practical works.  
In order to help you, we deliver you a *skill list* that you will have to fill by validating skills with your teacher.  
To obtain a validation, you will have to prove your skill knowledge to your teacher through an oral interview or a test.  
The final note will be composed of all the validated skills by the teacher at the end of the last minute of the last practical work hour.  

Exercise | Subject | Coefficient
--- | --- | ---
1 | Kinect Streams | 7
2.1 | Gesture Recognition (Bases & Postures) | 3
2.2 | Gesture Recognition (Dynamic Gestures) | 2
2.3 | Gesture Recognition (Mapping) | 2
3 | Free App | 7

---

Copyright © 2023-2024 Marc Chevaldonné