Projet

Général

Profil

P14AB04 Estimation de l'activité de Saumons par vision » Historique » Version 19

Anonyme, 06/04/2021 14:25

1 2 Anonyme
p=. !https://forge.clermont-universite.fr/attachments/download/16081/P1422_title_bandeau_20140412113411_20140412113421.jpg!
2
3
*Projet GE2-GE3 2013* : P14AB04 Estimation de l'activité de Saumons par vision
4
*Entreprise / Client* : Salmoniculture Chanteuge / M. Patrick MARTIN
5
*Auteurs : Amin SOUFARI* / Jordane MALLERET / Yuan XU
6
*Responsable Projet* : M. Jacques LAFFONT
7
*Tuteur industriel* : M. Jean-Yves RIGNAULT
8
9
[[1. Résumé]] 
10
[[2. Abstract]] 
11
[[3. Introduction]] 
12
[[4. Présentation du Sujet]] 
13
[[5. Cahier des Charges]] 
14
[[6. Développement]] 
15
16
p(((. [[1. Problématiques]] 
17
[[2. Faisabilité]] 
18
[[3. Etude Théorique]]
19
[[4. Solutions]] 
20
    
21
[[7. Gestion de Projet]] 
22
        
23
p(((. [[1. W.B.S.]] 
24
[[2. Gantt]] 
25
    
26
[[8. Notes d'application]] 
27
28
p(((. [[1. sujet 1]] 
29
[[2. sujet 2]] 
30
    
31
[[9. Bilan]] 
32
        
33
p(((. [[1. Etat d'avancement]] 
34
[[2. Analyse Critique]]  
35
[[3. Perspectives]] 
36
37
[[10. Bibliographie]] 
38
39 4 Anonyme
p=. *%{color:red}1. Résumé%*
40 3 Anonyme
41 1 Anonyme
42 4 Anonyme
*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
44
*Mots clés : Saumon, Traitement d’image, OpenCV, Correction, Vitesse, Orientation, Répartition, Erreur*
45
46
---
47
48
p=. *%{color:red}2. Abstract%*
49
50
*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
Key Words: Salmon, Image processing, OpenCV, optical flow algorithm, correlation algorithm, Corrector, Error*
52
 
53
p=. *%{color:red}3. Introduction%*
54
55
*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
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
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
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
60
---
61
62
p=. *%{color:red}4. Présentation du Sujet%*
63
64
*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
66
*Notre client est dès lors M. Patrick Martin représentant de la salmoniculture de Chanteuges en Haute-Loire (43).*
67
68
---
69
70
p=. *%{color:red}5.Cahier des Charges%*
71
72
*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
74
p(((. *- L'orientation*
75
76
*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
78
p(((. *- La vitesse*
79
80
*Des données sur la vitesse angulaire des poissons devront être fournies pour chaque heure en fonction des moyennes individuelles observées.*
81
82
p(((. *- La répartition*
83
84
*Déterminer la tendance de regroupement des poissons par rapport au bassin entier.*
85
86
*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
88
---
89
90
p=. *%{color:#82B6E1}6. Développement%*
91
92
---
93
94
*%{color:#82B6E1}6. 1 Problématiques%*
95
96
*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
98
*Ce dernier a pour fonction de:*
99
100
p(((. *- Déterminer la vitesse, le sens de nage et la répartition des poissons.
101
- Traiter les vidéos de jour et de nuit.
102
- Être fiable dans toutes les phases de l'évolution du poisson.
103
- Calculer la vitesse sous quatre configurations de bassin différent*
104
105
106
*L’optimisation se porte principalement sur la robustesse du programme et sur la minimisation des erreurs de vitesses mesurées*
107
108
p(((. *- Améliorer la stabilité du programme pour certaines vidéos
109
- Minimiser les erreurs sur les vitesses angulaires
110
- Fournir les relevés de mesures sur un fichier Excel*
111
112
---
113
114
*%{color:#82B6E1}6. 2 Faisabilité%*
115
116
*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
118
*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
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
121
*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
123
---
124
125
*%{color:#82B6E1}6. 3 Etude Théorique%*
126
127
p(((((. *%{color:#82B6E1}1)Indentification des différentes sources d’imprécision%*
128
129
*Les principales sources d’erreur sont issues de :*
130
131
p(((. *- L’erreur de parallaxe et de la profondeur du poisson dans le bassin
132
- L’erreur issue de la corrélation des images
133
- La distance parcourue d’un poisson entre 2 scanlines*
134
135
p(((((. *%{color:#82B6E1}2) Correction de la vidéo déformée%*
136 5 Anonyme
137
p=. !https://forge.clermont-universite.fr/attachments/download/16082/Image1_20150201192756_20150201192815.png!
138 6 Anonyme
139
p=. !https://forge.clermont-universite.fr/attachments/download/16083/Image2_20150201193018_20150201193043.png!
140
141
p=. Image issue de la camera
142
143
*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
145
*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
147
*Pour la détection de l’ellipse, mathématiquement, on doit trouver les paramètres indiqués dans la figure suivante :*
148 7 Anonyme
149
p=. !https://forge.clermont-universite.fr/attachments/download/16084/Image3_20150201193018_20150201193102.png!
150
151
p=. Equation parabolique
152
153
*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
155
*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
157
*Voici un exemple de la correction pour le bassin 8 :*
158 8 Anonyme
159
p=. !https://forge.clermont-universite.fr/attachments/download/16085/Image4_20150201193018_20150201193119.png!
160
161
p=. Correction d'image
162
163
p(((. *%{color:#82B6E1}3) Calcul des imprécisions%*
164
165
p(((. 3.1) Calcul de l’imprécision liée à la profondeur 
166
167
*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 Anonyme
169
p=. !https://forge.clermont-universite.fr/attachments/download/16086/im1_20150202002856_20150202002911.png!
170
171
*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
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
174
*D’après la relation géométrique, nous avons la relation ci-dessous :*
175 10 Anonyme
176
p=. !https://forge.clermont-universite.fr/attachments/download/16087/im2_20150202002737_20150202002757.png!
177 11 Anonyme
178
p=. !https://forge.clermont-universite.fr/attachments/download/16088/im3_20150202002737_20150202002809.png!
179
180
181 12 Anonyme
*D’après le calcul, nous trouvons une imprécision maximale au pire des cas, qui est égale à 24%.*
182 11 Anonyme
183
184 12 Anonyme
p(((. *3.2) Calcul de l’imprécision de la corrélation*
185 11 Anonyme
186 12 Anonyme
*La corrélation consiste donc à compter le nombre d’images au moment où on obtient le maximum de la vraisemblance.*
187 1 Anonyme
188 12 Anonyme
*Nous avons plus ou moins une erreur de 2 images au pire des cas.
189
Donc nous avons la relation suivante :*
190 1 Anonyme
191 12 Anonyme
p(((. !https://forge.clermont-universite.fr/attachments/download/16089/im4_20150202003253_20150202003510.png!
192
193
*pas : une image
194
195
*Comme en 1 seconde il y a 15 images, donc nous avons trouves une imprécision maximale en temps : 2/15 = 13,3%*
196
197
p(((. *3.3) Calcul de l’imprécision liée à la distance parcourue d’un poisson entre 2 scanlines*
198
199
*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 Anonyme
201
p=. !https://forge.clermont-universite.fr/attachments/download/16090/im5_20150202003851_20150202003915.png!
202
203
*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
205
*D’apès la relation géomérique et mahtématique, nous avons les relations suivantes :*
206 14 Anonyme
207
p<. !https://forge.clermont-universite.fr/attachments/download/16091/im6_20150202004622_20150202004635.png!
208 15 Anonyme
209
p<. !https://forge.clermont-universite.fr/attachments/download/16092/im7_20150202004622_20150202004651.png!
210
211
*Enfin l peut s’exprimer en fonction d’a et de d.*
212 16 Anonyme
213
p<. !https://forge.clermont-universite.fr/attachments/download/16093/im8_20150202004622_20150202004711.png!
214
215
*Quand a = 0, la distance entre le poisson et la droite passante par le centre du bassin est nul, le poisson est autour du rond du bassin. Dans ce cas, le poisson fait une distance maximale, nous trouvon : lmax = (π-0)d/2 = 47 pixels.
216
Nous avons une imprécision maximale de 36% qui est rare d'atteindre.*
217
218
*Quand a = R, la distance entre le poisson et la droite passante par le centre du bassin est égale au rayon du bassin, le poisson est au bord du bassin. Dans ce cas, le poisson fait une distance minimale, son trajet est le plus proche du parcours supposé dans l’algorithme, nous avons : lmin ≈ d =30,009 pixels.
219
Nous trouvons une imprécision minimale de 0.03%.*
220
221
*cette année nous avons develloppé un nouvel algorthme permettant de rendre un meilleur résultat, mais, il existe toujours des erreurs matérielles à cause de la position de la caméra, en revanche, on arrive à réduire les imprécisions dites algoritemiques avec le nouvel algorithme implémenté.*
222
223
---
224
225
*%{color:#82B6E1}6. 4 Solutions%*
226
227
*La faisabilité du projet montre qu’une approche purement locale basée sur la méthode des scanlines est sujette à des erreurs variables et difficilement corrigibles. On propose donc une nouvelle solution basée sur la notion de « poisson à poisson ».*
228
229
p(((. *%{color:#82B6E1}1) Détection des poissons%*
230
231
*La détection des poissons est l’étape clé du programme, car si on ne détecte pas les poissons, il est difficile d’analyser les résultats.*
232
233
*Deux principales méthodes sont ici utilisées, elles apportent chacun sont lots d’avantage et contraintes. Cependant une fois réunis les résultats sont robustes et cohérents.*
234
235
*+Méthode du background substraction (BS)+*
236
237
*Le BS est une technique fréquemment utilisée pour générer dans un premier temps une image de fond des objets statiques présent dans une vidéo ou une scène et en déterminer les éléments différents de l’image de fond. En d’autres termes on cherche les éléments mobiles (current frame) par rapport au fond( background model ). Ceci est fait via des routines OpenCV réalisant une comparaison d’image et un seuillage fixe.
238
Le résultat obtenu est alors une image binarisée (foreground mask).*
239 17 Anonyme
240
p=. !https://forge.clermont-universite.fr/attachments/download/16094/Image5_20150201193018_20150201193134.png!
241
242
p=. Méthode BS OpenCV
243
244
*La méthode est relativement fiable si le modèle du fond est correctement effectué. Cela se traduit par un fond qui est statique dans le temps. Cependant, ce fond nécessite un temps de traitement aussi long que le nombre d’images d’une vidéo comporte des variations.*
245
246
*Les vidéos des bassins présentent le mouvement de nombreux poissons, de vagues, de déplacement de dépôt sur la surface du bassin. Le modèle de background doit donc être construit sur une moyenne dynamique d’image. Cette méthode est relativement couteuse en temps de traitement mais permet de mettre en évidence la présence de poisson.*
247 18 Anonyme
248
p=. !https://forge.clermont-universite.fr/attachments/download/16095/Image6_20150201193018_20150201193152.png!
249
250
p=. Image seuillée obtenue
251
252
*Une fois l’image seuillée déduite, il est alors possible de déduire les contours appartenant aux saumons. Pour cela, il suffit d’estimer les dimensions des contours.*
253 19 Anonyme
254
p=. !https://forge.clermont-universite.fr/attachments/download/16096/Image7_20150201193018_20150201193207.png!
255
256
p=. Detection des poissons
257
258
*+Méthode du seuillage adaptatif+*
259
260
*La méthode proposée, consiste à découper l’image en sous-image de manière judicieuse afin d’adapter le seuil à chacune d’entre elles. Cette méthode se décompose en 2 grandes étapes.*
261
262
*La première étape est le découpage de l’image. Ceci peut se baser sur la méthode de Horowitz et Pavilidis (1972) qui consiste à diviser l’image en plusieurs régions en suivant des tests d’homogénéité.*