Principe de détermination des phases de croissances à partir d`une

publicité
Hakim El Gharrabi
GE5
Principe de détermination des phases de
croissances à partir d'une image d'écaille de
Smolt
1
Hakim El Gharrabi
GE5
Table des matières
1.
Introduction ..................................................................................................................................... 3
2.
Détermination de la courbe de croissance ....................................................................................... 3
3.
Points d’inflexions ........................................................................................................................... 5
4.
1)
Détermination du 1er point ........................................................................................................... 5
2)
Détermination du 2ème point......................................................................................................... 6
Conclusion ....................................................................................................................................... 7
Table des illustrations
Figure 1 : écaille ....................................................................................................................................... 3
Figure 2 : souche d'arbre ......................................................................................................................... 3
Figure 3 : ligne de mesure ....................................................................................................................... 4
Figure 4 : courbe de croissance ............................................................................................................... 4
Figure 5 : points d'inflexions ................................................................................................................... 5
Figure 6 : 1er point d'inflexion ................................................................................................................ 5
Figure 7 : 2ème point d'inflexion............................................................................................................. 6
Figure 8 : résultat obtenu ........................................................................................................................ 7
2
Hakim El Gharrabi
GE5
1. Introduction
Dans le cadre de notre formation d’ingénieur Génie Electrique, nous avons réalisé le projet suivant «
Mesure par vision du taux de croissance d'un smolt ». Le principe est de déterminer le taux de croissance
d’un smolt à partir d’une image d’écaille.
Un SMOLT est un saumon ayant atteint l’âge de sa descente passive vers la mer. Au printemps,
l’éclosion se produit. En grandissant, le saumon devient un tacon, il mesure alors de 5 à 18 cm. Il restera
en rivière 1 à 3 ans avant de se transformer en smolt. Les smolts vont alors se regrouper et se laisser
porter par le courant, c’est la dévalaison vers l’océan. Il s’effectue une transformation physique
complexe, ils deviennent plus grands pour leur permettre de passer de l’eau douce à l’eau salée.
Tout comme les arbres, les saumons déposent des circulis (une quarantaine par ans) selon deux phases :
 Printemps/été ou les circulis sont espacés,
 Automne/Hiver ou les circulis sont rapprochés.
Avec ceci on va pouvoir déterminer leurs taux de croissance. Actuellement ceci est fait à la main par
l’opérateur ce qui prend énormément de temps pour traiter plusieurs écailles. C’est pourquoi le CNSS
(Conservatoire National du Saumon Sauvage) a fait appel à nous, afin de créer une application qui traite
ces données pour ainsi avoir les courbes de croissant et les points d’inflexion1.
Nous allons détailler comment à partir d’une image d’écaille, on obtient une courbe de croissance.
Circuli
Figure 1 : écaille
Figure 2 : souche d'arbre
2. Détermination de la courbe de croissance
Pour déterminer la courbe de croissance à partir d’une image d’écaille, nous récupérons le centre de
l’écaille et son extrémité. Nous traçons une droite qui passe par ces points et nous récupérons la valeur
de chaque pixel de cette ligne en niveau de gris.
1
En mathématique, un point d’inflexion c’est la rupture d’une pente.
3
Hakim El Gharrabi
GE5
Figure 3 : ligne de mesure
Petit rappel sur les pixels : en niveau de gris les pixels sont codés sur 8bits c’est-à-dire peuvent prendre
la valeur de 0 (noir) à 255 (blanc).
Avec une inversion de couleur c’est-à-dire on soustrait la valeur de chaque pixel par 255. Sans cette
différence, nous n’obtenons pas les courbes voulues (255 − valeurpixel𝑛 ), on obtient la courbe
suivante, puis nous faisons le cumul de chaque pixel. Voici la formule ci-dessous.
𝒏𝒃_𝒑𝒊𝒙𝒆𝒍
𝒄𝒖𝒎𝒖𝒍𝒏 =
∑
𝒗𝒂𝒍𝒆𝒖𝒓_𝒑𝒊𝒙𝒆𝒍𝒏
𝒏=𝟏
50
Courbe donnée soustraitants
45
40
Courbe donnée de
l’algorithme
35
30
25
20
15
10
5
0
0
100
200
300
400
500
600
700
Figure 4 : courbe de croissance
En abscisse nous avons le nombre de pixels sur la ligne de mesure, et en ordonnée nous avons la
sommation de chaque pixel qui a été mis à l’échelle par rapport aux données des sous-traitants, pour
ainsi valider l’algorithme. Nous voyons très bien les phases de croissance du smolt avec les différentes
pentes de la courbe. Maintenant que nous avons la courbe de croissance, il va falloir déterminer les
points d’inflexion.
4
Hakim El Gharrabi
GE5
3. Points d’inflexions
Comme il a été dit en introduction, un point d’inflexion c’est une rupture de pente (points en rouge sur
la courbe). Voici un exemple ci-dessous.
Figure 5 : points d'inflexions
Pour déterminer les points d’inflexion, nous utilisons un algorithme de calcul d’erreur entre la courbe
d’algorithme et la courbe du client. Pour illustrer les processus, le procédé sera énuméré. L’opérateur va
saisir manuellement sur l’application développée, combien de points d’inflexion on doit trouver.
1) Détermination du 1er point
Pour cela, on trace une droite partant du début de la courbe avec les coordonnées (0, 0), jusqu’à la fin
de la courbe (droite en bleu sur la courbe ci-dessous).
50
45
40
35
30
25
20
15
10
5
0
0
100
200
300
400
500
600
700
Figure 6 : 1er point d'inflexion
5
Hakim El Gharrabi
GE5
Une fois que la droite est tracée, on calcule l’erreur entre la courbe de l’algorithme (rouge) à celle de
la droite (bleu) en balayant les n points que constituent les deux courbes avec la formule suivante.
𝒆𝒓𝒓𝒆𝒖𝒓𝒏 = (𝒄𝒐𝒖𝒓𝒃𝒆_𝒂𝒍𝒈𝒐𝒏 − 𝒅𝒓𝒐𝒊𝒕𝒆𝒏 )²
On cherche l’erreur maximale, une fois trouvée, on estime qu’un point d’inflexion s’y trouve. On
stocke les coordonnées de ce nouveau point.
2) Détermination du 2ème point
Pour le 2ème point on procède comme précédemment, c’est-à-dire on trace une nouvelle fois une droite
qui passe cette fois-ci par le nouveau point d’inflexion estimé précédemment jusqu’à la fin de la courbe.
On recalcule l’erreur entre les deux courbes. Une fois que l’on détermine l’erreur max, on estime que le
2ème point se trouve à cet emplacement et on stocke ces nouvelles coordonnées.
50
45
40
35
30
25
20
15
10
5
0
0
100
200
300
400
500
600
700
Figure 7 : 2ème point d'inflexion
Même principe pour trouver les n points que souhaite le client.
Pour déterminer ces points, nous avons utilisé le logiciel Matlab. Nous avons retranscrit cet algorithme
en une fonction Matlab (qui se code en c), puis testé sur une courbe d’algorithme, pour ainsi valider son
bon fonctionnement avant de l’implanter dans le code de l’application. Voici le résultat obtenu page
suivante.
6
Hakim El Gharrabi
GE5
Figure 8 : résultat obtenu
Comme on peut le voir sur le résultat obtenu, nous détectons bien les points d’inflexion. Actuellement
sur tous les algorithmes recherchés, c’est le seul qui donne de bons résultats. Donc nous l’avons ainsi
implanté dans l’application. Pour avoir de meilleurs résultats sur l’estimation des points, beaucoup de
théorie existent telle que les probabilités, les statistiques.
4. Conclusion
Dans cette note d’application, nous avons pu voir comment déterminer la courbe du taux de croissance
d’un smolt ainsi que ces points d’inflexion à partir d’une image. Les résultats obtenus dépendent de la
qualité de l’image et de l’écaille. Comme on a pu le voir, si, sur l’écaille à l’œil nu, on arrive facilement
à déterminer les différentes phases, l’algorithme fournira de bons résultats. Or si à l’œil nu on a du mal
à déterminer les différentes phases, l’algorithme donnera de mauvais résultats surtout pour la partie de
détection de point d’inflexion. C’est pour ça que l’on demande à l’opérateur, à l’aide de l’interface
Homme machine, de pouvoir modifier l’emplacement de ces points. L’algorithme actuel n’est pas tout
à fait au point, car pour estimer où se trouvent exactement les points d’inflexion, c’est davantage du
domaine du génie mathématique.
7
Téléchargement