Initial commit

This commit is contained in:
Thomas FORGIONE
2015-04-21 16:47:12 +02:00
parent 4458dddae1
commit 8b08f66bff
141 changed files with 2612 additions and 0 deletions

158
Charges/cahier.mdown Normal file
View File

@@ -0,0 +1,158 @@
# Cahier des charges
## Description du besoin
Dans le cadre du projet long de 3ème année et en étroite collaboration avec
Bastien Durix dont la thèse porte sur le sujet de l'extraction de squelettes,
notre rôle est de fournir un pipeline complet allant partant d'un ensemble
d'images en entrée dont on segmente les contours. On extrait ensuite le
squelette. En parallèle, on apparie les points. Une fois ces deux premières
étapes faites, on cherche à habiller et enfin à animer le squelette ainsi
habillé en définissant des points de rotation.
Nous définissons ici un cahier des charges aussi précis que possible : dans un
premier temps, nous spécifions le besoin, puis nous dressons une liste
d'exigences.
## Livrables attendus et dates de livraison souhaitées
On s'appliquera à livrer une archive contenant :
- une documentation détaillée
- les codes sources : une partie calibrage et mise en correspondance dont la
date de livraison espérée est prévue pour le 6 février, puis une partie
habillage et animation dont la date de livraison est fixée au 13 mars
- une formation au C++ 11
## Fournitures du client
Le client s'engage à fournir les éléments suivants :
- les programmes réalisant l'extraction de squelette
- les formules mathématiques permettant l'habillage du squelette
- les références aux articles sur lesquels s'appuyer pour l'animation
## Contraintes techniques imposées
Les contraintes techniques sont les suivantes :
- le langage de programmation sera le C++
- il est suggéré de s'appuyer sur la librairie OpenCV
- l'utilitaire de compilation suggéré est CMake
- les librairies utilisées doivent toutes être portables entre Windows et
Linux
## Contraintes de gestion de projet et de suivi qualité
Les contraintes de gestion de projet sont les suivantes :
- la programmation sera effectuée par pair programming
- au moins une réunion par semaine sera effectuée avec le client
- une réunion par semaine est programmée chaque jeudi après-midi de 15h30 à
16h30 avec l'industrielle
## Organisation client
Les clients sont une équipe de chercheurs composée de :
- Bastien Durix, en thèse à l'IRIT
- Sylvie Chambon, maître de conférence à l'IRIT
- Géraldine Morin, maître de conférence à l'IRIT
Au moins une réunion par semaine sera effectuée avec le client, deux en début
de projet pour la rédaction du cahier des charges.
# Gestion des risques
## Tableau des risques
| Id | Description | Cause du risque | Proba(1-5) | Conséquence | Gravité(1-5) | Actions préventives | Actions correctives | Etat du risque |
| --- | --- | --- | :---: | --- | :---: | --- | --- | --- |
| 1 | Mauvaise estimation du temps | Sous-estimation de la difficulté du problème | 3 | Livraison en retard | 4 | Prendre de la marge sur le planning, nommer un responsable de l'avancement des différentes tâches | Augmenter la charge de travail, revoir le planning | Ouvert |
| 2 | L'autre groupe ne livre pas à temps | Sous-estimation de la difficulté de leur problème, augmentation de la charge de travail au dernier moment | 2 | Retard pour les tests de la partie mise en 3D du squelette | 3 | Envisager une autre méthode pour pouvoir tester sur des cas simples | Implémenter soi-même une méthode de segmentation plus simple se basant sur un simple seuil | Ouvert |
| 3 | L'autre groupe ne livre pas les bonnes sorties | Mauvaise compréhension des termes du sujet | 3 | Les tests ne fonctionneront pas correctement | 1 | Se mettre d'accord sur le format | Développement d'une fonction de transition | Ouvert |
| 4 | Les binaires fournis par le client ne sont pas compatibles | Complexité des systèmes | 2 | On ne peut pas continuer le pipeline | 3 | Discuter avec le client à propos du binaire fourni | Emuler le système permettant d'utiliser les binaires | Ouvert |
| 5 | L'entente au sein du groupe est fragile | Différentes habitudes de gestion de projet, de programmation | 1 | Tensions, ambiance accablante, stress intense | 5 | Nommer un responsable de la cohésion | Organiser une médiation entre les deux partis | Ouvert |
| 6 | L'entente avec l'autre groupe est périlleuse | Le découpage un peu bancal du projet pourrait amener des tensions | 2 | Difficultés à gérer les parties communes | 3 | Apporter une offrande en gage de bonne entente | Faire des compromis | Ouvert |
| 7 | L'un des membres est absent pendant une période donnée | Maladie, évènement | 5 | Absence d'une personne | 1 | Mettre en place des solutions de télétravail | Adaptation du planning | Ouvert |
| 8 | Production de code non fiable, non maintenable et non lisible | Manque de maîtrise des technologies utilisées | 4 | Pertes de temps, mauvaise qualité, devoir refaire des programmes | 3 | Formation au C++ par un expert technique | Appel de l'expert | Ouvert |
| 9 | Besoin d'accéder à une ressource supprimée de manière urgente | Utilisation d'une commande de suppression, crash du matériel | 2 | Pertes de temps, devoir refaire des programmes | 5 | Utiliser git | Utilisation de techniques de récupération de fichiers, longues et compliquées | Ouvert |
## Spécifications
### Partie appariement
- En entrée : $n$ images d'un même objet photographiées selon $n$ points de vue
différents sur un fond unis de même couleur (vert, rouge ou bleu) dont une
sera l'image de référence. Pour un même objet, les conditions de prises de
vue (éclairage, appareil photo, position de l'objet) doivent être les mêmes :
entre deux photos, l'objet ne doit pas bouger, c'est l'utilisateur qui se
déplace. Si le temps le permet, on pourra envisager de suspendre l'objet pour
les prises de vue. On définira une résolution minimale. Un marqueur (croix)
servant à calibrer par la suite la caméra sera visible sur le papier. On
définira précisément la façon dont ces marqueurs seront présents : un damier
risque de géner la segmentation. Des croix espacées régulièrement seraient
plus discrètes mais pourraient aussi géner. On se demande s'il serait
possible de n'afficher que 4 croix pour définir 4 coins.
- Traitement :
1. Appliquer SIFT sur chaque photo pour récupérer un ensemble de points
d'intérêt par photo. Les paramètres de l'algorithme SIFT seront à définir.
1. Définir les paramètres intrinsèques de la caméra sous la forme d'un fichier
au format xml (matK).
1. Définir les paramètres extrinsèques de la caméra à l'aide des marqueurs :
les détecter puis calculer l'homographie.
1. Appariement des points d'intérêt.
- En sortie : Des paires de correspondances de points d'intérêt entre l'image
de référence et une autre image.
### Partie habillage
- En entrée : un squelette 3D (B-Splines) et une fonction de rayon.
- Traitement : Utilise les surfaces canales.
- En sortie : Un maillage 3D (points et faces).
### Partie animation
- En entrée : le maillage 3D, les points d'articulations sur le squelette
et leur degré de liberté associé.
- Traitement: à élucider ?
- En sortie : l'affichage d'une animation.
### Définition des tâches
| | Détection des points d'intérêts | Appariement | Calibrage interne de la caméra | Calibrage externe de la caméra | Reconstruction 3D du squelette | Habillage | Animation |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Conception | | | | | | | |
| Rédaction de la documentation | | | | | | | |
| Préparation des tests | | | | | | | |
| Implémentation | | | | | | | |
### Matrice de Rasci
| | Groupe 8 | Chef de projet | Service qualité | Equipe 1 | Equipe 2 | Client | Régine Nigris|
| --- | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| Prise des photos | R | I | I | A-R | R | C | |
| Détection des points d'intérêts | | C | I | A-R | | C | |
| Appariement | | C | I | A-R | | C | |
| Calibrage interne de la caméra | | C | I | | A-R | C | |
| Calibrage externe de la caméra | | C | I | | A-R | C | |
| Reconstruction 3D du squelette | | C | I | R | A-R | C | |
| Habillage | | C | I | | | C | |
| Animation | | C | I | | | C | |
| Gestion de projet | | A | R | R | R | | C |
### Exigences
1. L'algorithme doit pouvoir évaluer les paramètres extrinsèques à partir des
marqueurs.
1. L'algorithme doit pouvoir évaluer les paramètres intrinsèques de la caméra.
### Rôles
Afin de réaliser le projet dans de bonnes conditions, nous avons choisis de développer notre prototype en travaillant par *pair-programming*, c'est à dire travailler en parallèle par groupe de deux. La cinquième personne serait quand à elle mobile et servirait de support aux deux groupes en cas de blocage sur un aspect technique. Le poste de *support technique* pourra éventuellement être tournant.
La répartition initiale des rôles est la suivante :
- Le chef de projet : Thomas Forgione
- Responsable qualité : Amandine Pailloux
- Expert algorithmique : Thierry Malon
- Gestion des ressources humaines : Marion Lenfant

View File

@@ -0,0 +1,335 @@
\documentclass{article}
\usepackage[top=2cm,bottom=2cm,left=2cm,right=2cm]{geometry}
\usepackage{array}
\usepackage{colortbl}
\usepackage{supertabular}
\author{Thomas Forgione, Emilie Jalras, Marion Lenfant, Thierry Malon and Amandine Pailloux}
\date{\today}
\title{Project management}
\begin{document}
\maketitle
\begin{center}
Version 3
\end{center}
\section{Need description}
Our third year final project consists in producing a 3D skeleton, its casing, and its animation
from some images of an object.
This project is done in collaboration with Bastien Durix, whose thesis is about skeleton extraction.
The steps of the project development are as follow :
\begin{itemize}
\item segmentation of the image
\item skeleton extraction
\item points matching
\item camera calibration
\item skeleton branches matching
\item skeleton casing
\item animation (using rotation points)
\end{itemize}
\subsection{Expected deliverables and delivery delay}
We will deliver an archive containing:
\begin{itemize}
\item detailed documentation (commented code and a user manual)
\item source code : camera calibration and points matching, delivered on February 6th,
and then casing and animation on March 13th.
\end{itemize}
\subsection{Client supplies}
The client engages to supply the following elements :
\begin{itemize}
\item programs performing the skeleton extraction
\item mathematical formulas for skeleton casing
\item scientific articles concerning animation
\end{itemize}
\subsection{Imposed technical constraints}
Our technical constraints are as follow :
\begin{itemize}
\item C++ as programming language
\item it is suggested to use the openCV library
\item CMake is suggested as compilation utility
\item used libraries must be portable between Windows and Linux
\end{itemize}
\subsection{Project management constraints and quality follow-up}
The project management constraints are the following :
\begin{itemize}
\item programming is done by pair programming
\item at least one meeting a week with the client will be carried out
\item one meeting a week is set every Thursday from 3:30pm to 4:30pm with the industrial
\end{itemize}
\subsection{Client organisation}
Our clients are a team of researchers composed from :
\begin{itemize}
\item Bastien Durix, preparing a thesis at the IRIT
\item Sylvie Chambon, lecturer at the IRIT
\item Geraldine Morin, lecturer at the IRIT
\end{itemize}
At least one meeting a week with the client will be carried out, and two meetings a week
at the beginning of the project to write the specifications.
\section{Risks management}
\subsection{Risks table}
\bottomcaption{Risks table}
\begin{supertabular}{|p{0.5cm}|p{2cm}|p{2cm}|p{1cm}|p{2cm}|p{1.5cm}|p{2cm}|p{2cm}|p{2cm}|p{1.5cm}|}
\hline
Id & Description & risk cause & Proba (1-5) & Consequence & Seriousness (1-5) & Preventive actions & Corrective actions & Risk state \\
\hline
\cellcolor{green} 1 & Bad time estimation & Under estimation of the problem difficulty & 3 & Late delivery & 4 & Time margin of the planning, name a task advancement responsible & Raise the work amount, revise the planning & Open \\
\hline
\cellcolor{yellow} 2 & The other group does not deliver the deliverables on time & Under estimation of their problem difficulty, last time augmentation of the work amount & 2 & Delay for tests on the 3D part of the skeleton & 3 & Contemplate an other method to test on simple case & Implement ourselves a segmentation method based on simple threshold & Open \\
\hline
\cellcolor{green} 3 & The other group delivers wrong outputs & Bad comprehension of the subject & 3 & Tests do not work correctly & 1 & Find en agreement on the format & Develop a transition function & Open \\
\hline
\cellcolor{yellow} 4 & Binaries provided by the client are not compatible & Systems complexity & 4 & We can not carry on with the pipeline & 4 & Discuss with the client the provided binary & Emulate the system allowing the use of the binaries & Open \\
\hline
\cellcolor{green} 5 & Fragile harmony inside the group & Different uses for project management and programmation & 1 & Tensions, bad ambiance, intense stress & 5 & Name a cohesion responsible & Organize a mediation beetween the two parties & Open \\
\hline
\cellcolor{green} 6 & Bad understanding with the other group & A bancal division of the project might bring tensions & 2 & Difficulty to manage shared parts & 3 & Bring a present as a sign of sympathy & Come to a compromise & Open \\
\hline
\cellcolor{green} 7 & A group member is absent during a certain period of time & Illness, event & 5 & Someone's absence & 1 & Put in place teleworking solutions & Planning adaptation & Open \\
\hline
\cellcolor{green} 8 & Production of unreliable, unmaintainable and illegible code & Lack of skills with the used technology & 4 & Lack of time, bad quality, need to reprogram & 3 & C++ formation by a technical expert & Call of the expert & Closed \\
\hline
\cellcolor{green} 9 & Need to access urgently to a deleted resource & Utilization of a suppression command, material crash & 2 & Lack of time, need to reprogram & 5 & Use github & Use of recuperation technology on long and complicated files & Open \\
\hline
\cellcolor{yellow} 10 & Pictures unadapted & Client not satisfied of the pictures & 4 & Wasting time & 2 & Defined the conditions of the shoot with the client more precisely & Be aware of client expectations and taking again the picture & Open \\
\hline
\cellcolor{green} 11 & New task to do & Client new needs & 4 & Late delivery & 4 & Add margin in planning & change planning and contact the client to negociate about this task & Closed \\
\hline
\cellcolor{green} 12 & Integration not cancelled & Client changes his mind and wants again the integration & 2 & Late delivery & 4 & discuss with the client & change planning & Open \\
\hline
\cellcolor{green} 13 & members of the group get remedial classes & bad results at the exams & 2 & member absent & 2 & add margin & change planning & Open \\
\hline
\end{supertabular}
\subsection{Specifications}
\subsubsection{Matching part}
\begin{itemize}
\item Input : $n$ images from the same object photographed on a plain green background within $n$ different points of view
of which one will be the reference image. For the same object the shooting conditions must be the same :
\begin{itemize}
\item the light
\item the object position
\item the camera used
\end{itemize}
A minimum resolution will be defined.
A target has to be printed and put on the image for calibration : we chose to use a chequerboard.
\item Processing :
\begin{enumerate}
\item Apply SURF on every picture to get a group of interest points for each picture.
The SURF algorithm parameters will be defined later
\item Define the camera intrinsic parameters as a .xml file.
\item Define the camera extrinsic parameters using the chequerboard.
\item Matching of the interest points.
\end{enumerate}
\item Output : correspondence pairs of interest points between the reference image and the other image.
\end{itemize}
\subsubsection{Casing part}
\begin{itemize}
\item Input : a 3D skeleton (B-Splines) and a rayon function.
\item Processing : Use canal surfaces
\item Output : a 3D mesh (edges and vertices)
\end{itemize}
\subsubsection{Animation part}
\begin{itemize}
\item Input : a 3D mesh, articulation points on the skeleton and their associated degree of freedom
\item Processing : to do
\item Output : animation display
\end{itemize}
\subsubsection{Tasks definition}
\begin{table}[h]
\begin{center}
\begin{tabular}{|p{2.2cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|}
\hline
& Keypoints detection & Matching & Camera intern calibration & Camera extern calibration & skeleton matching \\
\hline
Conception & Emilie and Amandine & Emilie and Amandine & Thomas & Thomas and Marion & Thierry and Thomas \\
\hline
Redaction of documentation & Emilie and Amandine & Emilie and Amandine & Thomas & Thomas and Marion & Thierry and Thomas \\
\hline
Tests & Emilie and Amandine & Emilie and Amandine & Thomas & Thomas, Marion and Thierry & Thierry and Thomas \\
\hline
Implementation & Emilie and Amandine & Emilie and Amandine & Thomas & Thomas and Marion & Thierry and Thomas \\
\hline
\end{tabular}
\caption{Tasks definition for part 1 : segmentation, camera calibration, skeletonization, matching}
\end{center}
\end{table}
\begin{table}[h]
\begin{center}
\begin{tabular}{|p{2.2cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|}
\hline
& Function B-Splines from controll points given & Compute caracteristic circle & Matching points on the circles & Quadrangular mesh computing & Ends processing & junctions processing \\
\hline
Conception & Thomas and Thierry & Emilie and Thierry & Marion and Thomas & Amandine and Thierry & Emilie and Amandine & Marion and Thomas \\
\hline
Redaction of documentation & Thomas and Thierry & Emilie and Thierry & Marion and Thomas & Amandine and Thierry & Emilie and Amandine & Marion and Thomas \\
\hline
Tests & & Thierry & & & Emilie, Amandine and Thierry & \\
\hline
Implementation & Thomas and Thierry & Emilie and Thierry & Marion and Thomas & Amandine and Thierry & Emilie and Amandine & Marion and Thomas \\
\hline
\end{tabular}
\caption{Tasks definition for part 2.1 : meshing}
\end{center}
\end{table}
\begin{table}[h]
\begin{center}
\begin{tabular}{|p{2.2cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|}
\hline
& clicks on joints & create branches & mesh and branches matching & renderer \\
\hline
Conception & & Emilie and Amandine & Thierry and Marion & Thomas\\
\hline
Redaction of documentation & & Emilie and Amandine & Thierry and Marion & Thomas\\
\hline
Tests & & & & \\
\hline
Implementation & & Emilie and Amandine &
Thierry and Marion & Thomas\\
\hline
\end{tabular}
\caption{Tasks definition for part 2.2 : animation}
\end{center}
\end{table}
\subsubsection{Matrix of responsibilities}
\begin{table}
\begin{tabular}{|p{2cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|}
\hline
& Group 8 & Project leader & Quality service & Team 1 & Team 2 & Client & Régine Nigris \\
\hline
Pictures shooting & R & I & I & A-R & R & C & \\
\hline
Interest points detection & & C & I & A-R & & C & \\
\hline
Matching & & C & I & A-R & & C & \\
\hline
Camera intern calibration & & C & I & & A-R & C & \\
\hline
Camera extern calibration & & C & I & A-R & C & & \\
\hline
Skeleton 3D reconstruction & & C & I & R & A-R & C & \\
\hline
Casing & & C & I & & & C & \\
\hline
Animation & & C & I & & & C & \\
\hline
Project management & & A & R & R & R & & C \\
\hline
\end{tabular}
\caption{Matrix of responsibilities}
\end{table}
\subsubsection{Requirements}
\begin{enumerate}
\item The algorithm must evaluate extrinsic parameters using the chequerboar.
\item The algorithm must be able to evaluate intrinsic parameters.
\end{enumerate}
\subsubsection{Roles}
We decided to develop our prototype working in "pair programming", meaning we will work in parallel in teams of two.
The fifth person would be mobile and support the other groups in case of blockage on a technical aspect.
These "technical support" post would be moving.
The initial role repartition is the following :
\begin{itemize}
\item Project leader : Thomas Forgione
\item Quality responsible : Amandine Pailloux
\item Tester : Thierry Malon
\item Task advancement responsible : Emilie Jalras
\item Integration responsible : Marion Lenfant
\end{itemize}
\subsubsection{Actions table}
\begin{table}
\begin{tabular}{|p{0.5cm}|p{3cm}|p{3cm}|p{2cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|p{1cm}|}
\hline
Id & Origin & Description & Accountable & Target date & Realisation & State & Risk table\\
\hline
1 & Project management & Meeting with the industrial supervisor & Thomas & 15 Jan & 15 Jan & Closed & \\
\hline
2 & Need of specifications & Meeting with the client & Thierry & 22 Jan & 22 Jan & Closed & \\
\hline
3 & Lack of knowledge from the developer & C++ training & Thomas & 22 Jan & 23 Jan & Closed & \\
\hline
4 & Team work \& version management & Git repository creation & Thomas & 05 Feb & 05 Feb & Closed & \\
\hline
5 & Project management & Meeting with the industrial supervisor & Thierry & 21 Jan & 21 Jan & Closed & \\
\hline
6 & Input needed & Taking pictures & Thierry & 22 Jan & 22 Jan & Closed & \\
\hline
7 & Report to write in english & Specifications translation & Emilie & 22 Jan & 22 Jan & Closed & \\
\hline
8 & Set up the dev tools & Install Linux / OpenCV & Thomas & 01 Feb & 02 Feb & Closed & \\
\hline
9 & Need of specifications & Meeting with the client & Thierry & 04 Feb & 04 Feb & Closed & \\
\hline
10 & Remember stuff to do & Actions table writing & Marion & 05 Feb & 04 Feb & Closed & \\
\hline
11 & Project management & Meeting with the industrial supervisor & Marion & 5 Feb & 5 Feb & Closed & \\
\hline
12 & Git Repository not well organized & Git cleaning & Thomas & 05 Feb & 05 Feb & Closed & \\
\hline
13 & Compatibility with the other team & Defining subskeletons format & Thierry & 06 Feb & 09 Feb & CLosed & \\
\hline
14 & Need of specifications & Meeting with the client & Thierry & 11 Feb & 11 Feb & Closed & \\
\hline
15 & The other group did'nt deliver binaries in time & Reschedule planning & Marion & 11 Feb & 11 Feb & Closed & 2 \\
\hline
16 & Binaries provided by he client are not compatible & Speak with the client & Thomas & 11 Feb & & Open & 4 \\
\hline
17 & Client new need & Contact the client by mail to know what we need to do & Thierry & 12 Feb & 12 Feb & Closed & 11 \\
\hline
18 & Project management & Meeting with the industrial supervisor & Amandine & 12 Feb & 12 Feb & Closed & \\
\hline
19 & Integration to do again & discuss with the client & Thierry & 25 Feb & 25 Feb & Closed &\\
\hline
20 & Project management & Meeting with the industrial supervisor & Emilie & 24 Feb & 24 Feb & Closed & \\
\hline
21 & Need of specifications & Meeting with the client & Thierry & 25 Feb & 25 Feb & Closed & \\
\hline
22 & The client need CMake to compile the code & Use CMake compilation & Thomas & 27 Feb & 27 Feb & Closed & \\
\hline
\end{tabular}
\caption{Actions table}
\end{table}
\end{document}

View File

@@ -0,0 +1,153 @@
# Specifications
## Need description
Our third year final project consists in producing a 3D skeleton, its casing, and its animation
from some images of an object.
This project is done in collaboration with Bastien Durix, whose thesis is about skeleton extraction.
The steps of the project development are as follow :
- segmentation of the image
- skeleton extraction
- points matching
- camera calibration
- skeleton branches matching
- skeleton casing
- animation (using rotation points)
## Expected deliverables and delivery delay
We will deliver an archive containing:
- detailed documentation (commented code and a user manual)
- source code : camera calibration and points matching, delivered on February 6th,
and then casing and animation on March 13th.
## Client supplies
The client engages to supply the following elements :
- programs performing the skeleton extraction
- mathematical formulas for skeleton casing
- scientific articles concerning animation
## Contraintes techniques imposées
## Imposed technical constraints
Our technical constraints are as follow :
- C++ as programming language
- it is suggested to use the openCV library
- CMake is suggested as compilation utility
- used libraries must be portable between Windows and Linux
## Project management constraints and quality follow-up
The project management constraints are the following :
- programming is done by pair programming
- at least one meeting a week with the client will be carried out
- one meeting a week is set every Thursday from 3:30pm to 4:30pm with the industrial
## Client organisation
Our clients are a team of researchers composed from :
- Bastien Durix, preparing a thesis at the IRIT
- Sylvie Chambon, lecturer at the IRIT
- Geraldine Morin, lecturer at the IRIT
At least one meeting a week with the client will be carried out, and two meetings a week
at the beginning of the project to write the specifications.
# Risks management
## Risks table
| Id | Description | risk cause | Proba(1-5) | Consequence | Seriousness(1-5) | Preventive actions | Corrective actions | Risk state |
| --- | --- | --- | :---: | --- | :---: | --- | --- | --- |
| 1 | Bad time estimation | Under estimation of the problem difficulty | 3 | Late delivery | 4 | Time margin of the planning, name a task advancement responsible | Raise the work amount, revise the planning | Open |
| 2 | The other group does not deliver the deliverables on time | Under estimation of their problem difficulty, last time augmentation of the work amount | 2 | Delay for tests on the 3D part of the skeleton | 3 | Contemplate an other method to test on simple case | Implement ourselves a segmentation method based on simple threshold | Open |
| 3 | The other group delivers wrong outputs | Bad comprehension of the subject | 3 | Tests do not work correctly | 1 | Find en agreement on the format | Develop a transition function | Open |
| 4 | Binaries provided by the client are not compatible | Systems complexity | 2 | We can not carry on with the pipeline | 3 | Discuss with the client the provided binary | Emulate the system allowing the use of the binaries | Open |
| 5 | Fragile harmony inside the group | Different uses for project management and programmation | 1 | Tensions, bad ambiance, intense stress | 5 | Name a cohesion responsible | Organize a mediation beetween the two parties | Open |
| 6 | Bad understanding with the other group | A bancal division of the project might bring tensions | 2 | Difficulty to manage shared parts | 3 | Bring a present as a sign of sympathy | Come to a compromise | Open |
| 7 | A group member is absent during a certain period of time | Illness, event | 5 | Someone's absence | 1 | Put in place teleworking solutions | Planning adaptation | Open |
| 8 | Production of unreliable, unmaintainable and illegible code | Lack of skills with the used technology | 4 | Lack of time, bad quality, need to reprogram | 3 | C++ formation by a technical expert | Call of the expert | Open |
| 9 | Need to access urgently to a deleted resource | Utilization of a suppression command, material crash | 2 | Lack of time, need to reprogram | 5 | Use github | Use of recuperation technology on long and complicated files | Open |
## Specifications
### Matching part
- Input : $n$ images from the same object photographed on a plain green background within $n$ different points of view
of which one will be the reference image. For the same object the shooting conditions must be the same :
- the light
- the object position
- the camera used
A minimum resolution will be defined.
A target has to be printed and put on the image for calibration : we chose to use a chequerboard.
- Processing :
1. Apply SIFT on every picture to get a group of interest points for each picture.
The SIFT algorithm parameters will be defined later.
1. Define the camera intrinsic parameters as a .xml file.
1. Define the camera extrinsic parameters using the chequerboard.
1. Matching of the interest points.
- Output : correspondence pairs of interest points between the reference image and the other image.
### Casing part
- Input : a 3D skeleton (B-Splines) and a rayon function.
- Processing : Use canal surfaces
- Output : a 3D mesh (edges and vertices)
### Animation part
- Input : a 3D mesh, articulation points on the skeleton and their associated degree of freedom
- Processing : to do
- Output : animation display
### Tasks definition
| | Interest points detection | Matching | Camera intern calibration | Camera extern calibration | skeleton 3D reconstruction | Casing | Animation |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Conception | | | | | | | |
| Redaction of documentation | | | | | | | |
| Tests preparation | | | | | | | |
| Implementation | | | | | | | |
### Rasci matrix
| | Group 8 | Project leader | Quality service | Team 1 | Team 2 | Client | Régine Nigris|
| --- | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| Pictures shooting | R | I | I | A-R | R | C | |
| Interest points detection | | C | I | A-R | | C | |
| Matching | | C | I | A-R | | C | |
| Camera intern calibration | | C | I | | A-R | C | |
| Camera extern calibration | | C | I | | A-R | C | |
| Skeleton 3D reconstruction | | C | I | R | A-R | C | |
| Casing | | C | I | | | C | |
| Animation | | C | I | | | C | |
| Project management | | A | R | R | R | | C |
### Requirements
1. The algorithm must evaluate extrinsic parameters using the chequerboar.
1. The algorithm must be able to evaluate intrinsic parameters.
### Roles
We decided to develop our prototype working in "pair programming", meaning we will work in parallel in teams of two.
The fifth person would be mobile and support the other groups in case of blockage on a technical aspect.
These "technical support" post would be moving.
The initial role repartition is the following :
- Project leader : Thomas Forgione
- Quality responsible : Amandine Pailloux