P14AB04 Estimation de l'activité de Saumons par vision » History » Version 13

axel BARRIEUX, 04/06/2021 02:17 PM

1 2 axel BARRIEUX
p=. !https://forge.clermont-universite.fr/attachments/download/16081/P1422_title_bandeau_20140412113411_20140412113421.jpg!
2 2 axel BARRIEUX
3 2 axel BARRIEUX
*Projet GE2-GE3 2013* : P14AB04 Estimation de l'activité de Saumons par vision
4 2 axel BARRIEUX
*Entreprise / Client* : Salmoniculture Chanteuge / M. Patrick MARTIN
5 2 axel BARRIEUX
*Auteurs : Amin SOUFARI* / Jordane MALLERET / Yuan XU
6 2 axel BARRIEUX
*Responsable Projet* : M. Jacques LAFFONT
7 2 axel BARRIEUX
*Tuteur industriel* : M. Jean-Yves RIGNAULT
8 2 axel BARRIEUX
9 2 axel BARRIEUX
[[1. Résumé]] 
10 2 axel BARRIEUX
[[2. Abstract]] 
11 2 axel BARRIEUX
[[3. Introduction]] 
12 2 axel BARRIEUX
[[4. Présentation du Sujet]] 
13 2 axel BARRIEUX
[[5. Cahier des Charges]] 
14 2 axel BARRIEUX
[[6. Développement]] 
15 2 axel BARRIEUX
16 2 axel BARRIEUX
p(((. [[1. Problématiques]] 
17 2 axel BARRIEUX
[[2. Faisabilité]] 
18 2 axel BARRIEUX
[[3. Etude Théorique]]
19 2 axel BARRIEUX
[[4. Solutions]] 
20 2 axel BARRIEUX
    
21 2 axel BARRIEUX
[[7. Gestion de Projet]] 
22 2 axel BARRIEUX
        
23 2 axel BARRIEUX
p(((. [[1. W.B.S.]] 
24 2 axel BARRIEUX
[[2. Gantt]] 
25 2 axel BARRIEUX
    
26 2 axel BARRIEUX
[[8. Notes d'application]] 
27 2 axel BARRIEUX
28 2 axel BARRIEUX
p(((. [[1. sujet 1]] 
29 2 axel BARRIEUX
[[2. sujet 2]] 
30 2 axel BARRIEUX
    
31 2 axel BARRIEUX
[[9. Bilan]] 
32 2 axel BARRIEUX
        
33 2 axel BARRIEUX
p(((. [[1. Etat d'avancement]] 
34 2 axel BARRIEUX
[[2. Analyse Critique]]  
35 2 axel BARRIEUX
[[3. Perspectives]] 
36 2 axel BARRIEUX
37 2 axel BARRIEUX
[[10. Bibliographie]] 
38 2 axel BARRIEUX
39 4 axel BARRIEUX
p=. *%{color:red}1. Résumé%*
40 3 axel BARRIEUX
41 1 axel BARRIEUX
42 4 axel BARRIEUX
*Dans le cadre de notre formation d’ingénieur au département Génie Électrique de Polytech’Clermont-Ferrand, nous avons l’opportunité de réaliser le suivi et la réalisation du projet industriel intitulé : Estimation de l’activité de saumons par vision. Ce projet est proposé par le Conservatoire National du Saumon Sauvage (CNSS) de Chateugnes en Haute-Loire (43) dans le cadre du programme de repeuplement de l’Allier en saumons.*
43 4 axel BARRIEUX
44 4 axel BARRIEUX
*Mots clés : Saumon, Traitement d’image, OpenCV, Correction, Vitesse, Orientation, Répartition, Erreur*
45 4 axel BARRIEUX
46 4 axel BARRIEUX
---
47 4 axel BARRIEUX
48 4 axel BARRIEUX
p=. *%{color:red}2. Abstract%*
49 4 axel BARRIEUX
50 4 axel BARRIEUX
*In the context of our engineering electrical engineering at Polytech 'Clermont-Ferrand, we had the opportunity to study the project : "Estimation de l’activité de saumons par vision". This project is proposed by the CNSS (Conservatoire National du Saumon Sauvage) in order to rincrease the number of salmon at the river Allier.
51 4 axel BARRIEUX
Key Words: Salmon, Image processing, OpenCV, optical flow algorithm, correlation algorithm, Corrector, Error*
52 4 axel BARRIEUX
 
53 4 axel BARRIEUX
p=. *%{color:red}3. Introduction%*
54 4 axel BARRIEUX
55 4 axel BARRIEUX
*L’adaptation des écosystèmes, des plantes, des animaux et des micro-organismes aux changements globaux représente un enjeu stratégique, économique et sociétal important.
56 4 axel BARRIEUX
Une bonne connaissance de ces mécanismes d’adaptation devrait permettre de maintenir la capacité d’évolution des écosystèmes naturels et la productivité des écosystèmes exploités. C’est dans cette thématique que le programme de BIOADAPT se motive.
57 4 axel BARRIEUX
Dans le cadre de ce programme l’ANR, le CNSS, et le museum national d’histoire naturelle se sont rassemblés pour étudier en particularité le projet de << Réchauffement global et l’adaptation à la migration chez le saumon Atlantique de rivière longue, l’axe Loire-Allier >>.
58 4 axel BARRIEUX
Pour parvenir à cet objectif, le CNSS nous propose de créer un algorithme permettant d’estimer l’activité des saumons par vision. Pour cela des expérimentations avec un suivi vidéo sur le comportement des jeunes saumons ont été programmées au sein du CNSS notamment en plaçant ces jeunes saumons face à des situations de stress.*
59 4 axel BARRIEUX
60 4 axel BARRIEUX
---
61 4 axel BARRIEUX
62 4 axel BARRIEUX
p=. *%{color:red}4. Présentation du Sujet%*
63 4 axel BARRIEUX
64 4 axel BARRIEUX
*Dans le cadre du programme de recherche BIOADAPT de l’Agence nationale de la Recherche (ANR), le conservatoire national du saumon sauvage (CNSS) s’est associé avec le CNRS et le Museum national d’histoire naturelle dans un projet commun sur le Réchauffement global et l’adaptation à la migration chez le saumon atlantique de rivière longue, et en particulier sur l’axe Loire-Allier. Nous avons dès alors eu l’opportunité de choisir le sujet : Estimation de l’activité de saumons par vision.*
65 4 axel BARRIEUX
66 4 axel BARRIEUX
*Notre client est dès lors M. Patrick Martin représentant de la salmoniculture de Chanteuges en Haute-Loire (43).*
67 4 axel BARRIEUX
68 4 axel BARRIEUX
---
69 4 axel BARRIEUX
70 4 axel BARRIEUX
p=. *%{color:red}5.Cahier des Charges%*
71 4 axel BARRIEUX
72 4 axel BARRIEUX
*L’objectif global du projet est de pouvoir automatiser le traitement des images enregistrées pour caractériser le comportement de nage des poissons. Ils pourront être classés suivants :*
73 4 axel BARRIEUX
74 4 axel BARRIEUX
p(((. *- L'orientation*
75 4 axel BARRIEUX
76 4 axel BARRIEUX
*Le poisson face au courant sans mouvement (comportement rheotactic positif), le poisson se déplace et nage à contre-courant (comportement rheotactic positif) et, le poisson se déplace dans le sens du courant (comportement rheotactic négatif).*
77 4 axel BARRIEUX
78 4 axel BARRIEUX
p(((. *- La vitesse*
79 4 axel BARRIEUX
80 4 axel BARRIEUX
*Des données sur la vitesse angulaire des poissons devront être fournies pour chaque heure en fonction des moyennes individuelles observées.*
81 4 axel BARRIEUX
82 4 axel BARRIEUX
p(((. *- La répartition*
83 4 axel BARRIEUX
84 4 axel BARRIEUX
*Déterminer la tendance de regroupement des poissons par rapport au bassin entier.*
85 4 axel BARRIEUX
86 4 axel BARRIEUX
*Le sujet du projet de cette année est de qualifier la précision de l’algorithme développé en 2013, de quantifier les erreurs et leur origine et de proposer une structure améliorée du programme. Cet objectif a pour but de pouvoir assurer et démontrer la précision des mesures effectuée sur la vitesse des poissons.*
87 4 axel BARRIEUX
88 4 axel BARRIEUX
---
89 4 axel BARRIEUX
90 4 axel BARRIEUX
p=. *%{color:#82B6E1}6. Développement%*
91 4 axel BARRIEUX
92 4 axel BARRIEUX
---
93 4 axel BARRIEUX
94 4 axel BARRIEUX
*%{color:#82B6E1}6. 1 Problématiques%*
95 4 axel BARRIEUX
96 4 axel BARRIEUX
*Les problématiques se concentrent principalement sur l’optimisation et la quantification d’erreur du programme en langage C++ avec OpenCV issue de la phase d’étude de faisabilité.*
97 4 axel BARRIEUX
98 4 axel BARRIEUX
*Ce dernier a pour fonction de:*
99 4 axel BARRIEUX
100 4 axel BARRIEUX
p(((. *- Déterminer la vitesse, le sens de nage et la répartition des poissons.
101 4 axel BARRIEUX
- Traiter les vidéos de jour et de nuit.
102 4 axel BARRIEUX
- Être fiable dans toutes les phases de l'évolution du poisson.
103 4 axel BARRIEUX
- Calculer la vitesse sous quatre configurations de bassin différent*
104 4 axel BARRIEUX
105 4 axel BARRIEUX
106 4 axel BARRIEUX
*L’optimisation se porte principalement sur la robustesse du programme et sur la minimisation des erreurs de vitesses mesurées*
107 4 axel BARRIEUX
108 4 axel BARRIEUX
p(((. *- Améliorer la stabilité du programme pour certaines vidéos
109 4 axel BARRIEUX
- Minimiser les erreurs sur les vitesses angulaires
110 4 axel BARRIEUX
- Fournir les relevés de mesures sur un fichier Excel*
111 4 axel BARRIEUX
112 4 axel BARRIEUX
---
113 4 axel BARRIEUX
114 4 axel BARRIEUX
*%{color:#82B6E1}6. 2 Faisabilité%*
115 4 axel BARRIEUX
116 4 axel BARRIEUX
*La faisabilité de ce projet repose sur la possibilité de déterminer l’erreur sur chacune des sources susceptibles de la générer. Il faut donc une référence sur laquelle on va pouvoir comparer les vitesses angulaires réelles des poissons et celles que nous calculons via notre programme.*
117 4 axel BARRIEUX
118 4 axel BARRIEUX
*Cette faisabilité ne peut être validée que si le travail de sous-traitances prévu pour les « nouveaux » GE4 se fait avec minutie.
119 4 axel BARRIEUX
Le projet ne peut arriver à son terme que si la phase de détection des poissons dans les différents bassins est rapide et correcte. La majorité des vidéos étant déjà faite, il faut donc trouver une solution qui permet d’identifier les saumons sans avoir à baliser en amont ces derniers.*
120 4 axel BARRIEUX
121 4 axel BARRIEUX
*La base de données des vidéos est équivalente à près de 3 ans de vidéos filmées 24 h/24 et 7jours sur 7. Le programme ne doit en aucun cas s’arrêter en cas de conflits avec l’une de ces vidéos, elle doit dans l’éventuel cas pouvoir « ignorer » la vidéo problématique et continuer son exécution.*
122 4 axel BARRIEUX
123 4 axel BARRIEUX
---
124 4 axel BARRIEUX
125 4 axel BARRIEUX
*%{color:#82B6E1}6. 3 Etude Théorique%*
126 4 axel BARRIEUX
127 4 axel BARRIEUX
p(((((. *%{color:#82B6E1}1)Indentification des différentes sources d’imprécision%*
128 4 axel BARRIEUX
129 4 axel BARRIEUX
*Les principales sources d’erreur sont issues de :*
130 4 axel BARRIEUX
131 4 axel BARRIEUX
p(((. *- L’erreur de parallaxe et de la profondeur du poisson dans le bassin
132 4 axel BARRIEUX
- L’erreur issue de la corrélation des images
133 4 axel BARRIEUX
- La distance parcourue d’un poisson entre 2 scanlines*
134 4 axel BARRIEUX
135 4 axel BARRIEUX
p(((((. *%{color:#82B6E1}2) Correction de la vidéo déformée%*
136 5 axel BARRIEUX
137 5 axel BARRIEUX
p=. !https://forge.clermont-universite.fr/attachments/download/16082/Image1_20150201192756_20150201192815.png!
138 6 axel BARRIEUX
139 6 axel BARRIEUX
p=. !https://forge.clermont-universite.fr/attachments/download/16083/Image2_20150201193018_20150201193043.png!
140 6 axel BARRIEUX
141 6 axel BARRIEUX
p=. Image issue de la camera
142 6 axel BARRIEUX
143 6 axel BARRIEUX
*Dans les vidéos fournies, le rond du bassin n’est pas exactement centré, ce que l’on appelle la déformation de la vidéo. Si nous traitons les problématiques sur les vidéos déformées, on obtiendra les résultats biaisés.*
144 6 axel BARRIEUX
145 6 axel BARRIEUX
*Pour corriger la vidéo déformée, nous développons un programme permettant de corriger les vidéos pour chaque bassin. Dans notre programme, nous considérons cette forme déformée comme une forme ellipse. Notre programme permet tout d’abord de détecter cette ellipse et ensuite de la transformer en cercle.*
146 6 axel BARRIEUX
147 6 axel BARRIEUX
*Pour la détection de l’ellipse, mathématiquement, on doit trouver les paramètres indiqués dans la figure suivante :*
148 7 axel BARRIEUX
149 7 axel BARRIEUX
p=. !https://forge.clermont-universite.fr/attachments/download/16084/Image3_20150201193018_20150201193102.png!
150 7 axel BARRIEUX
151 7 axel BARRIEUX
p=. Equation parabolique
152 7 axel BARRIEUX
153 7 axel BARRIEUX
*Mais cela n’est pas facile, surtout lors d’un cas d’une ellipse à droite, donc nous détectons l’ellipse en cliquant sur les 4 extrémités dans les images capturées.*
154 7 axel BARRIEUX
155 7 axel BARRIEUX
*Une fois l’ellipse est détectée, en utilisant une fonction de OpenCV warpPerspective, on transforme l’ellipse en forme cercle pour les 4 bassins selon le nom de la vidéo.*
156 7 axel BARRIEUX
157 7 axel BARRIEUX
*Voici un exemple de la correction pour le bassin 8 :*
158 8 axel BARRIEUX
159 8 axel BARRIEUX
p=. !https://forge.clermont-universite.fr/attachments/download/16085/Image4_20150201193018_20150201193119.png!
160 8 axel BARRIEUX
161 8 axel BARRIEUX
p=. Correction d'image
162 8 axel BARRIEUX
163 8 axel BARRIEUX
p(((. *%{color:#82B6E1}3) Calcul des imprécisions%*
164 8 axel BARRIEUX
165 8 axel BARRIEUX
p(((. 3.1) Calcul de l’imprécision liée à la profondeur 
166 8 axel BARRIEUX
167 8 axel BARRIEUX
*Pour ce calcul, nous cherchons dans le pire des cas, sur les 2 extrémités du bassin, le poisson à la surface du bassin et le poisson au fond du bassin.*
168 9 axel BARRIEUX
169 9 axel BARRIEUX
p=. !https://forge.clermont-universite.fr/attachments/download/16086/im1_20150202002856_20150202002911.png!
170 9 axel BARRIEUX
171 9 axel BARRIEUX
*Dans la figure au-dessus, le poisson p2 est le poisson à la face du bassin, le poisson p1 est le poisson au fond du bassin, ils ont la même taille réelle L. Et leurs tailles relatives dans image capturée est l2 et l1 qui ne sont pas égales.
172 9 axel BARRIEUX
d est la distance entre la lentille de la caméra et la surface, a est la distance de l’écran à la lentille de la caméra, h est la profondeur entre la surface et le fond.*
173 9 axel BARRIEUX
174 9 axel BARRIEUX
*D’après la relation géométrique, nous avons la relation ci-dessous :*
175 10 axel BARRIEUX
176 10 axel BARRIEUX
p=. !https://forge.clermont-universite.fr/attachments/download/16087/im2_20150202002737_20150202002757.png!
177 11 axel BARRIEUX
178 11 axel BARRIEUX
p=. !https://forge.clermont-universite.fr/attachments/download/16088/im3_20150202002737_20150202002809.png!
179 11 axel BARRIEUX
180 11 axel BARRIEUX
181 12 axel BARRIEUX
*D’après le calcul, nous trouvons une imprécision maximale au pire des cas, qui est égale à 24%.*
182 11 axel BARRIEUX
183 11 axel BARRIEUX
184 12 axel BARRIEUX
p(((. *3.2) Calcul de l’imprécision de la corrélation*
185 11 axel BARRIEUX
186 12 axel BARRIEUX
*La corrélation consiste donc à compter le nombre d’images au moment où on obtient le maximum de la vraisemblance.*
187 1 axel BARRIEUX
188 12 axel BARRIEUX
*Nous avons plus ou moins une erreur de 2 images au pire des cas.
189 12 axel BARRIEUX
Donc nous avons la relation suivante :*
190 1 axel BARRIEUX
191 12 axel BARRIEUX
p(((. !https://forge.clermont-universite.fr/attachments/download/16089/im4_20150202003253_20150202003510.png!
192 12 axel BARRIEUX
193 12 axel BARRIEUX
*pas : une image
194 12 axel BARRIEUX
195 12 axel BARRIEUX
*Comme en 1 seconde il y a 15 images, donc nous avons trouves une imprécision maximale en temps : 2/15 = 13,3%*
196 12 axel BARRIEUX
197 12 axel BARRIEUX
p(((. *3.3) Calcul de l’imprécision liée à la distance parcourue d’un poisson entre 2 scanlines*
198 12 axel BARRIEUX
199 12 axel BARRIEUX
*Dans l’algorithme de 2013, nous avons fait une hypothèse que les poissons passent perpendicuilairement par les 2 scanlines, mais en réalité, les poissons peuvent faire un pacrours d’un arc, donc cela est aussi une source d’erruer.*
200 13 axel BARRIEUX
201 13 axel BARRIEUX
p=. !https://forge.clermont-universite.fr/attachments/download/16090/im5_20150202003851_20150202003915.png!
202 13 axel BARRIEUX
203 13 axel BARRIEUX
*Dans la figure au dessus, d est le parcours supposé du possion dans l’algorithme de 2013, qui est imposé à 30 pixels. l est le parcours réel du poisson. α est l’angle de l’arc du parcours du poisson. R est le rayon du bassin, r est le rayon du parcours du poisson. a est la distance entre le poisson et la droite passante par le centre du bassin.*
204 13 axel BARRIEUX
205 13 axel BARRIEUX
*D’apès la relation géomérique et mahtématique, nous avons les relations suivantes :*