154 lines
6.9 KiB
Markdown
154 lines
6.9 KiB
Markdown
# 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
|
|
|