Initial commit
This commit is contained in:
158
Charges/cahier.mdown
Normal file
158
Charges/cahier.mdown
Normal 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
|
||||
335
Charges/projectManagement.tex
Normal file
335
Charges/projectManagement.tex
Normal 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}
|
||||
153
Charges/specifications.mdown
Normal file
153
Charges/specifications.mdown
Normal 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
|
||||
|
||||
Reference in New Issue
Block a user